/* =====================================================================
   FDT — booking page (boarding-pass design). Loaded after booking-plus.css,
   which still supplies the mechanics of its widgets (scanner, nationality
   picker, Ask AI panel); this file gives everything the new look.
   ===================================================================== */
.bk{background:var(--page);--notch:var(--page)}
.bk-top{padding:26px 24px 0}
.crumbs{font-size:14px;color:var(--muted)}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs i{font-style:normal;margin:0 6px;color:var(--faint)}
.bk-top h1{margin-top:8px;font-size:clamp(28px,3.2vw,40px);font-weight:800}
.bk-top h1 span{color:var(--green)}
.bk-top>p{margin-top:6px;color:var(--muted);max-width:760px}
.bk-proof{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:12px;font-weight:600;color:var(--ink)}
.bk-proof i{font-style:normal;color:var(--faint)}
.bk-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;align-items:start;padding:22px 24px 90px}
.bk-eyebrow{color:var(--green-ink);margin-bottom:10px}
.bk-main,.bk-grid>.sum{min-width:0}
.bp-steps{overflow-x:auto;scrollbar-width:none}
.bp-steps::-webkit-scrollbar{display:none}

/* ---------- progress (booking-plus) as a departure board ---------- */
.bp-progress{background:var(--navy)!important;border:0!important;border-radius:var(--r-lg)!important;box-shadow:none!important;color:#fff!important;padding:14px 18px!important;margin:0 0 16px!important;top:calc(var(--hdr-h,70px) + 8px)!important}
.bp-progress-top strong{color:var(--amber)!important;font:600 12px/1.2 var(--cond)!important;letter-spacing:.22em!important;text-transform:uppercase}
.bp-progress-top .bp-pct{color:var(--lime)!important;font:700 13px/1.2 var(--mono)!important}
.bp-bar{background:rgba(255,255,255,.12)!important}
.bp-bar span{background:var(--lime)!important}
.bp-bar span::after{display:none!important}
.bp-step{background:rgba(255,255,255,.08)!important;border:0!important;box-shadow:none!important;color:#C7D1DF!important;font:600 12.5px/1.2 var(--cond)!important;letter-spacing:.08em;text-transform:uppercase}
.bp-step:hover{background:rgba(255,255,255,.14)!important}
.bp-step i{background:rgba(255,255,255,.1)!important;color:#fff!important;border:0!important;box-shadow:none!important;font-family:var(--mono)!important}
.bp-step.done{color:#fff!important;background:rgba(63,211,156,.16)!important}
.bp-step.done i{background:var(--green)!important}

/* ---------- form sheets ---------- */
#dummyTicketForm{counter-reset:fdtsec}
/* the side gutter is the sheet's own padding (the header strip reaches back out over it), so no
   child's margin — booking-page and booking-plus give several of them !important margins — can undo it */
#dummyTicketForm>fieldset{--gut:22px;position:relative;margin:0 0 16px!important;padding:0 var(--gut) 4px!important;border:1px solid var(--line)!important;border-radius:var(--r-lg)!important;background:#fff!important;box-shadow:none!important;overflow:visible;min-width:0}
#dummyTicketForm>fieldset::after{display:none!important}
#dummyTicketForm>fieldset>legend{float:left;width:calc(100% + 2 * var(--gut));display:flex!important;align-items:center;gap:12px;margin:0 calc(-1 * var(--gut)) 20px!important;padding:13px 22px!important;border-radius:var(--r-lg) var(--r-lg) 0 0;background:var(--navy)!important;color:#fff!important;font:600 14px/1.2 var(--cond)!important;letter-spacing:.16em!important;text-transform:uppercase}
#dummyTicketForm>fieldset>legend::before{counter-increment:fdtsec;content:counter(fdtsec,decimal-leading-zero)!important;width:auto!important;height:auto!important;background:none!important;box-shadow:none!important;color:var(--amber)!important;font:700 14px/1 var(--mono)!important;border-radius:0!important;display:inline!important}
#dummyTicketForm>fieldset>legend+*{clear:both}
#dummyTicketForm>fieldset.bp-complete>legend{background:var(--green)!important}
#dummyTicketForm>fieldset.bp-complete>legend::before{color:#fff!important}
#dummyTicketForm .sub-fs{border:0!important;padding:0!important;margin:14px 0 0!important;min-width:0}
#dummyTicketForm .sub-fs>legend{float:none;width:auto;padding:0!important;margin:0 0 8px!important;background:none!important;color:var(--muted)!important;font:600 12.5px/1.2 var(--cond)!important;letter-spacing:.12em!important;text-transform:uppercase;display:block!important}
#dummyTicketForm .sub-fs>legend::before{content:none!important}
#dummyTicketForm h3,#dummyTicketForm h5{margin:0 0 10px!important;font:700 13px/1.3 var(--mono)!important;color:var(--muted)!important;letter-spacing:.04em!important;text-transform:uppercase}
#dummyTicketForm hr{display:none}
#dummyTicketForm .mb-3{margin-bottom:14px!important}

/* grid (replaces Bootstrap's) */
#dummyTicketForm .row{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px!important;margin:0!important}
#dummyTicketForm .row>[class*="col-"]{width:auto!important;max-width:none!important;padding:0!important;margin:0!important;flex:none!important}
#dummyTicketForm #return .row{grid-template-columns:repeat(2,minmax(0,1fr))}
#dummyTicketForm .col-md-6{grid-column:span 1}
#dummyTicketForm fieldset .row:has(> .col-md-6){grid-template-columns:repeat(2,minmax(0,1fr))}
#dummyTicketForm .passenger .row{grid-template-columns:repeat(5,minmax(0,1fr))!important}
#dummyTicketForm .passenger .row>.col-md-3{grid-column:auto!important}
#dummyTicketForm .passenger .row>.col-md-3:nth-child(1){grid-column:span 1!important}
#dummyTicketForm .passenger .row>.col-md-3:nth-child(2),#dummyTicketForm .passenger .row>.col-md-3:nth-child(3),#dummyTicketForm .passenger .row>.col-md-3:nth-child(4){grid-column:span 2!important}
#dummyTicketForm .passenger .row>.col-md-3:nth-child(5){grid-column:span 3!important}

/* fields */
#dummyTicketForm .form-label{display:block;margin:0 0 6px!important;font:600 12.5px/1.2 var(--cond)!important;letter-spacing:.12em!important;text-transform:uppercase!important;color:var(--muted)!important}
#dummyTicketForm .form-control:not(#phone-input),#dummyTicketForm .form-select{padding:0 15px!important}
#dummyTicketForm .form-control,#dummyTicketForm .form-select{width:100%;height:52px!important;border:1px solid var(--field)!important;border-radius:10px!important;background-color:#fff!important;box-shadow:none!important;font:600 17px/1.2 var(--font)!important;color:var(--ink)!important}
#dummyTicketForm .form-select{appearance:none;padding-right:40px!important;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%235F6B7C' stroke-width='1.8'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 15px center!important}
#dummyTicketForm textarea.form-control:not(#phone-input){height:auto!important;min-height:96px;padding:12px 15px!important;line-height:1.5!important}
#dummyTicketForm .form-control::placeholder{color:#AEB8C5!important;font-weight:500}
#dummyTicketForm .form-control:focus,#dummyTicketForm .form-select:focus{outline:0;border-color:var(--green)!important;box-shadow:0 0 0 3px rgba(14,159,110,.15)!important}
#dummyTicketForm .is-invalid{border-color:var(--red)!important}
#dummyTicketForm .text-danger,#dummyTicketForm .error:not(input):not(select):not(textarea),.bp-name-err{display:block;margin-top:6px;color:var(--red)!important;font-size:14px!important;font-weight:600}
#dummyTicketForm .note{margin:4px 0 0!important;padding:10px 12px;border-radius:10px;background:var(--page)!important;border:0!important;color:var(--ink-2)!important;font-size:14.5px}
.iti{width:100%}
.iti__flag-container{z-index:3}

/* ticket type: segmented control */
#dummyTicketForm .ticket-type{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:5px;border-radius:12px;background:var(--page);margin-bottom:18px!important}
#dummyTicketForm .ticket-type label{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;margin:0!important;border-radius:9px;font:600 14px/1.2 var(--cond);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);cursor:pointer}
#dummyTicketForm .ticket-type input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
#dummyTicketForm .ticket-type label:has(input:checked){background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(11,30,58,.12),0 0 0 2px var(--green)}
#dummyTicketForm .ticket-type label:has(input:focus-visible){outline:3px solid rgba(14,159,110,.45)}

/* receive method cards (booking-plus builds the inner text) */
#dummyTicketForm .receive-method{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#dummyTicketForm .receive-method label{border:1px solid var(--field)!important;border-radius:12px!important;background:#fff!important;box-shadow:none!important;margin:0!important;color:var(--ink)!important}
#dummyTicketForm .receive-method label:has(input:checked){border-color:var(--green)!important;box-shadow:0 0 0 2px var(--green)!important;background:#F6FBF8!important}
#dummyTicketForm .receive-method label::before{background-color:var(--mint)!important;color:var(--green-ink)!important}
#dummyTicketForm .receive-method label:has(input:checked)::after{background:var(--green)!important;border-color:var(--green)!important}

/* passenger / flight / hotel blocks */
#dummyTicketForm .passenger,#dummyTicketForm .flight,#dummyTicketForm .hotel{padding:0!important;border:0!important;background:none!important;box-shadow:none!important}
#dummyTicketForm .passenger+.passenger,#dummyTicketForm .flight+.flight,#dummyTicketForm .hotel+.hotel{margin-top:18px!important;padding-top:18px!important;border-top:2px dashed var(--line-2)!important}
#dummyTicketForm .btn-secondary{display:inline-flex!important;align-items:center;gap:8px;margin:4px 0 18px!important;padding:10px 18px!important;border:1px dashed #9ED2BA!important;border-radius:10px!important;background:#fff!important;color:var(--green-ink)!important;box-shadow:none!important;font:700 15.5px/1.2 var(--font)!important}
#dummyTicketForm .btn-secondary:hover{background:var(--mint)!important}
#dummyTicketForm .btn-secondary::before{color:var(--green-ink)!important;background:none!important}
#dummyTicketForm .group-hint{display:flex;align-items:center;gap:8px;margin:-4px 0 18px;color:var(--green-ink);font-weight:600;font-size:15px}
/* × to remove a traveller / flight / hotel: a true circle level with the block title
   (the site's .btn-sm minimum height had stretched it into an oval sitting above the title) */
#dummyTicketForm .remove-passenger,#dummyTicketForm .remove-flight,#dummyTicketForm .remove-hotel{min-height:0!important;width:32px!important;height:32px!important;box-shadow:none!important;border-color:var(--line)!important;color:var(--muted)!important}
#dummyTicketForm .bp-x-confirm{width:auto!important;color:#fff!important}
#dummyTicketForm .bp-head{min-height:32px}

/* passport scanner + quick fill */
.mrz-scan-box{border:1px dashed #9ED2BA!important;background:#F6FBF8!important;border-radius:14px!important;margin-bottom:16px!important}
.bp-scan-btn{background:var(--green)!important;box-shadow:none!important}
.bp-scan-line{background:var(--green)!important;box-shadow:none!important}
#smartFillBox.smart-fill-box{background:#fff!important;border:1px dashed #9ED2BA!important;border-radius:var(--r-lg)!important;box-shadow:none!important;margin-bottom:16px!important}
#smartFillBox.bp-working::after{background:var(--green)!important}
#smartFillBox.bp-working .sfb-row{background:#fff!important;border-color:var(--green)!important}
.sfb-icon{background:var(--green)!important;box-shadow:none!important}
.sfb-yes,#smartFillBox #smart-fill-btn{background:var(--green)!important;box-shadow:none!important;color:#fff!important}
.sfb-badge,.sfb-title{color:var(--ink)!important}

/* AI check + Ask AI (booking-plus) */
.bp-aicheck{background:#fff!important;border:1px solid var(--line)!important;box-shadow:none!important}
.bp-aicheck-btn{background:var(--navy)!important;box-shadow:none!important}
.bp-ask-fab{background:var(--navy)!important;box-shadow:var(--sh)!important}
/* in the bottom pay bar Ask AI keeps its own white button (navy here made its purple text unreadable) */
.bp-summary .bp-ask-fab{background:#fff!important;box-shadow:none!important}
.bp-summary .bp-ask-fab.on{background:#EEEAFE!important}
.bp-ask-top{background:var(--navy)!important}
.bp-ask-msg.me,.bp-ask-form button{background:var(--green)!important}
.bp-tripwarn{border-radius:12px!important}
.ui-datepicker td.ui-datepicker-current-day a,.ui-datepicker td a.ui-state-active{background:var(--green)!important;box-shadow:none!important}

/* ---------- checkout block (end of form) ---------- */
#dummyTicketForm .checkout{padding:22px;border-radius:var(--r-lg);background:#fff;border:1px solid var(--line)}
.price-sum{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:10px 20px;padding-bottom:16px;border-bottom:2px dashed var(--line)}
#fdt-price-amount{font:800 34px/1.1 var(--font);color:var(--ink);letter-spacing:-.01em;margin-top:4px}
#fdt-price-bits{font-size:14.5px;color:var(--muted)}
/* full price struck through beside the discounted one, and the saving in green */
.price-now{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 12px;margin-top:4px}
.price-now #fdt-price-amount{margin-top:0}
.was{font:600 18px/1.2 var(--font);color:var(--muted);text-decoration:line-through;text-decoration-thickness:1.5px}
.save{font-size:14.5px;font-weight:700;color:var(--green-ink);margin:4px 0 2px}
.was:empty,.save:empty{display:none}
.price-sum p{font-size:14px;color:var(--muted);max-width:240px}
#dummyTicketForm .terms label{display:flex;gap:10px;align-items:flex-start;font-size:15.5px;color:var(--ink-2);cursor:pointer}
#dummyTicketForm .terms input{flex:none;width:19px;height:19px;margin-top:3px;accent-color:var(--green)}
.pay-note{margin:0 0 12px;padding:12px 14px;border-radius:10px;font-weight:600;font-size:15px}
.pay-note.info{background:var(--mint);color:var(--green-ink)}
.pay-note.error{background:#FDECEC;color:var(--red)}
#dummyTicketForm .proceed-btn-container{margin:0}
#dummyTicketForm .proceed-btn{display:flex!important;align-items:center;justify-content:center;gap:10px;width:100%;min-height:58px;border:0!important;border-radius:12px!important;background:var(--green)!important;box-shadow:none!important;color:#fff!important;font:700 18px/1 var(--font)!important;cursor:pointer}
#dummyTicketForm .proceed-btn:hover{background:var(--green-d)!important}
#dummyTicketForm .proceed-btn:disabled{opacity:.85;cursor:progress}
#dummyTicketForm .proceed-btn::after,.bp-sum-btn::after{display:none!important}
#dummyTicketForm .proceed-btn svg,.sum [data-pay-btn] svg{width:19px;height:19px}
.secure{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:12px;font-size:14px;font-weight:600;color:var(--muted)}
.secure svg{width:15px;height:15px;color:var(--green-ink)}
.secure .rzp{color:#0C2451;font-weight:800}

/* ---------- summary pass (aside) ---------- */
.sum{position:sticky;top:calc(var(--hdr-h,70px) + 16px)}
.sum .pass{grid-template-columns:1fr;margin-top:0;box-shadow:var(--sh);border:1px solid var(--line)}
.sum .pass::before,.sum .pass::after,.sum .pass-band::after{content:none}
.sum .pass-band{grid-template-columns:1fr auto;padding:12px 0}
.sum .pass-band>*{padding:0 20px}
.sum-main{padding:18px 20px}
.sum-route{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}
.sum-route b{display:block;font:800 26px/1.1 var(--mono);color:var(--ink);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sum-route b.ph{color:#B9C4D0;font-family:var(--font)}
.sum-route .line{display:flex;align-items:center;color:var(--green)}
.sum-route .line i{flex:1;border-top:2px dashed #BFD9CD}
.sum-route .line svg{width:20px;height:20px;transform:rotate(90deg)}
.sum-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;margin-top:16px}
.sum-grid b{display:block;margin-top:3px;font-weight:700;color:var(--ink)}
.sum-perf{position:relative;border-top:2px dashed var(--line)}
.sum-perf::before,.sum-perf::after{content:"";position:absolute;top:-14px;width:26px;height:26px;border-radius:50%;background:var(--notch);border:1px solid var(--line)}
.sum-perf::before{left:-14px;clip-path:inset(0 0 0 50%)}
.sum-perf::after{right:-14px;clip-path:inset(0 50% 0 0)}
.sum-pay{padding:18px 20px 20px}
.sum-total{display:flex;justify-content:space-between;align-items:baseline;align-items:last baseline;gap:10px}
.sum-amt{display:flex;flex-direction:column;align-items:flex-end;min-width:0}
.sum-amt .was{font-size:16px}
.sum-pay .save{margin:6px 0 0;font-size:14px}
.sum-total b{font:800 32px/1.1 var(--font);color:var(--ink);letter-spacing:-.01em}
.sum-off{font-size:14px;color:var(--muted);margin:2px 0 14px;min-height:1em}
.sum [data-pay-btn]{min-height:56px;font-size:18px}
.sum .pays{justify-content:center}
.sum .pays span{border-color:var(--line);color:var(--muted)}
.sum .barcode{height:34px;margin-top:16px}
.sum-links{display:grid;gap:8px;padding:14px 20px;border-top:1px solid var(--line-2);font-weight:700;font-size:15px}
.sum-links a{display:flex;align-items:center;gap:8px;text-decoration:none}
.sum-links svg{width:17px;height:17px}
.ai-card{display:flex;gap:12px;align-items:center;margin-top:14px;padding:15px 16px;border-radius:var(--r);border:1px solid var(--line);background:#fff;text-decoration:none;color:var(--muted);font-size:14.5px;line-height:1.4}
.ai-card em{display:block;font:600 11.5px/1.3 var(--cond);font-style:normal;letter-spacing:.14em;text-transform:uppercase;color:var(--green-ink)}
.ai-card b{display:block;color:var(--ink);font-size:16px}
.ai-card u{text-decoration:none;font-weight:700;color:var(--green-ink)}

/* booking-plus sticky pay bar: phones only (the summary pass does this job on desktop) */
.bp-summary{background:#fff!important;border-top:1px solid var(--line)!important;box-shadow:0 -8px 24px rgba(11,30,58,.08)!important}
.bp-sum-total{color:var(--ink)!important;font-family:var(--font)!important}
.bp-sum-btn{background:var(--green)!important;box-shadow:none!important;color:#fff!important;border-radius:12px!important}

/* ---------- info strip ---------- */
.bk-info{padding:56px 0;background:#fff;border-top:1px solid var(--line)}
.bk-info .split{align-items:start;gap:40px}
.bk-desc{margin-top:8px;font-size:19px;color:var(--ink-2)}
.trust3{display:grid;gap:16px;list-style:none;padding:0}
.trust3 li{display:flex;gap:14px;align-items:flex-start}
.trust3 h4{margin:0;font-size:18px;color:var(--ink)}
.trust3 p{margin-top:2px;font-size:15.5px;color:var(--muted)}
.bk-page .float-pay{display:none}

@media (min-width:901px){ .bp-summary{display:none!important} }
@media (max-width:1120px){ .bk-grid{grid-template-columns:minmax(0,1fr) 320px} }
@media (max-width:900px){
  .bk-grid{grid-template-columns:1fr;padding-bottom:40px}
  .sum{position:static}
  .bp-progress{top:calc(var(--hdr-h,70px))!important}
}
@media (max-width:640px){
  .bk-top{padding:20px 16px 0}
  .bk-grid{padding:16px 16px 40px}
  #dummyTicketForm>fieldset{--gut:16px}
  #dummyTicketForm>fieldset>legend{padding:12px 16px!important}
  #dummyTicketForm .row,#dummyTicketForm #return .row,#dummyTicketForm fieldset .row:has(> .col-md-6){grid-template-columns:1fr!important}
  #dummyTicketForm .passenger .row{grid-template-columns:1fr 1fr!important}
  #dummyTicketForm .passenger .row>.col-md-3:nth-child(n){grid-column:span 2!important}
  #dummyTicketForm .passenger .row>.col-md-3:nth-child(1){grid-column:span 1!important}
  #dummyTicketForm .ticket-type label{font-size:12.5px;letter-spacing:.06em}
  #dummyTicketForm .checkout{padding:18px}
}
/* the bottom pay bar's buttons may shrink and wrap (long translated labels) rather than run off the screen */
.bp-summary-in>*{min-width:0}
.bp-sum-btn,.bp-summary .bp-ask-fab{flex:0 1 auto!important;line-height:1.2}
/* phones: the two delivery cards stack, and the bottom pay bar keeps Ask AI and Proceed inside the screen */
@media (max-width:480px){
  #dummyTicketForm .receive-method{grid-template-columns:1fr}
  .bp-summary-in{gap:8px!important}
  .bp-summary .bp-ask-fab{padding:9px 10px!important}
  .bp-sum-btn{padding:12px 14px!important}
  .bp-sum-total{font-size:1.1rem!important}
}
