/* Tripgare v2 — single hand-written stylesheet.
   No build step: edit this file directly and reload.
   Sections: tokens, base, nav, hero, guide, search, journey,
   protection, options, timing, map, currency, care, reviews,
   quote form, after-sales, group, band, footer, FABs, motion. */
:root{
  /* North America side — cool, quiet */
  --na-deep:#1E3A44; --na-mid:#2F5A66; --na-soft:#DCE9EC; --na-pale:#EFF6F7;
  /* India side — warm */
  --in-deep:#8C2F1E; --in-mid:#D2691E; --in-gold:#E8A317; --in-soft:#FBE8D2; --in-pale:#FFF6EC;
  --ink:#1C1A17; --ink-2:#5B554D; --ink-3:#948C81;
  --paper:#FFFCF7; --card:#FFFFFF; --line:#E6DED2;
  --skin:#EFC49F; --skin-2:#C68B62; --hair:#2A1D14;
  --ok:#2C7A5B; --ok-soft:#E3F2EB; --warn:#B4451F; --warn-soft:#FCE9E1;
}
*,*::before,*::after{box-sizing:border-box;}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:"DM Sans",system-ui,sans-serif;font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img,svg{display:block;max-width:100%;}
a{color:inherit;}
:focus-visible{outline:2px solid var(--in-mid);outline-offset:3px;}
.wrap{max-width:1160px;margin:0 auto;padding-inline:clamp(18px,4.5vw,44px);}
h1,h2,h3{margin:0;line-height:1.05;font-weight:600;}
h1{font-family:"Fraunces",Georgia,serif;font-size:clamp(2.4rem,6vw,4.3rem);letter-spacing:-.02em;}
h2{font-family:"Fraunces",Georgia,serif;font-size:clamp(1.85rem,3.9vw,2.8rem);letter-spacing:-.018em;}
h3{font-family:"Fraunces",Georgia,serif;font-size:1.35rem;letter-spacing:-.012em;}
p{margin:0 0 1em;}
.eyebrow{font-size:.7rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--in-mid);margin:0 0 14px;}
.lede{font-size:1.13rem;color:var(--ink-2);max-width:54ch;}
.sec{padding-block:clamp(52px,8vw,98px);}
.sec__head{max-width:58ch;margin-bottom:clamp(28px,4.5vw,50px);}
.sec__head p{color:var(--ink-2);margin-top:12px;}
.center{text-align:center;margin-inline:auto;}
.muted{font-size:.83rem;color:var(--ink-3);}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font:inherit;font-weight:700;font-size:.95rem;
  padding:14px 26px;border-radius:40px;border:2px solid transparent;text-decoration:none;cursor:pointer;
  transition:background .16s,border-color .16s,transform .16s,color .16s;}
.btn--warm{background:var(--in-mid);color:#fff;}
.btn--warm:hover{background:var(--in-deep);transform:translateY(-2px);}
.btn--cool{background:var(--na-deep);color:#fff;}
.btn--cool:hover{background:#12262D;transform:translateY(-2px);}
.btn--line{background:transparent;color:var(--ink);border-color:var(--line);}
.btn--line:hover{border-color:var(--in-mid);color:var(--in-deep);}
.btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.4);}
.btn--ghost:hover{border-color:#fff;background:rgba(255,255,255,.14);color:#fff;transform:translateY(-2px);}
.btn--sm{padding:10px 18px;font-size:.86rem;}

/* nav */
.nav{background:rgba(255,252,247,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:60;}
/* nowrap keeps the currency switch and Call us pinned right; the links
   flex in the middle and shrink before anything is allowed to wrap. */
.nav .wrap{max-width:1340px;}
.nav__in{display:flex;align-items:center;gap:clamp(12px,2vw,28px);padding-block:11px;flex-wrap:nowrap;}
.logo{flex:none;}
.logo img{height:46px;width:auto;}
.nav__links{display:flex;align-items:center;gap:clamp(10px,1.4vw,22px);list-style:none;margin:0;padding:0;
  flex:1 1 auto;justify-content:center;min-width:0;overflow:hidden;}
.nav__links a{text-decoration:none;color:var(--ink-2);font-size:.9rem;font-weight:500;white-space:nowrap;}
.nav__links a:hover{color:var(--in-deep);}
.nav__cta{display:flex;align-items:center;gap:10px;flex:none;margin-left:auto;padding-left:8px;}

/* A sixth nav link that appears only once the bar has collapsed to a menu,
   where vertical space is free. Above 1180px the bar holds five links and no
   more — measured, not assumed: six clips "Contact" on any window narrower
   than 1255px. */
.nav__more{display:none;}

/* mobile menu button — hidden on desktop */
.nav__toggle{display:none;flex:none;align-items:center;justify-content:center;width:42px;height:42px;
  border:1.5px solid var(--line);border-radius:12px;background:var(--card);cursor:pointer;padding:0;}
.nav__toggle span{display:block;width:18px;height:2px;background:var(--ink);position:relative;transition:background .15s;}
.nav__toggle span::before,.nav__toggle span::after{content:"";position:absolute;left:0;width:18px;height:2px;
  background:var(--ink);transition:transform .18s,top .18s;}
.nav__toggle span::before{top:-6px;}
.nav__toggle span::after{top:6px;}
.nav__toggle[aria-expanded="true"] span{background:transparent;}
.nav__toggle[aria-expanded="true"] span::before{top:0;transform:rotate(45deg);}
.nav__toggle[aria-expanded="true"] span::after{top:0;transform:rotate(-45deg);}

@media(max-width:1180px){
  .nav__toggle{display:flex;}
  .nav__links{position:absolute;left:0;right:0;top:100%;background:var(--card);
    border-bottom:1px solid var(--line);box-shadow:0 18px 34px -24px rgba(28,26,23,.5);
    flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;
    padding:6px clamp(18px,4.5vw,44px) 14px;display:none;}
  .nav__links.is-open{display:flex;}
  .nav__links a{display:block;padding:13px 2px;font-size:1rem;border-bottom:1px solid var(--line);}
  .nav__links li:last-child a{border-bottom:none;}
  .nav__more{display:block;}
  .nav{position:sticky;}
  .nav__in{position:relative;}
}
@media(max-width:560px){
  .logo img{height:38px;}
  .nav__cta .btn{padding:9px 14px;font-size:.82rem;}
  .curr button{padding:6px 10px;font-size:.72rem;}
}
.curr{display:inline-flex;background:var(--na-pale);border-radius:40px;padding:3px;gap:2px;}
.curr button{font:inherit;font-size:.75rem;font-weight:700;color:var(--na-mid);background:transparent;border:none;
  padding:6px 13px;border-radius:40px;cursor:pointer;transition:background .15s,color .15s;}
.curr button[aria-pressed="true"]{background:var(--na-deep);color:#fff;}

/* split hero */
.split{position:relative;overflow:hidden;
  background:linear-gradient(100deg,var(--na-pale) 0,var(--na-pale) 48%,var(--in-pale) 52%,var(--in-pale) 100%);}
.split::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;transform:translateX(-50%);opacity:.5;
  pointer-events:none;
  background:repeating-linear-gradient(to bottom,var(--in-mid) 0 8px,transparent 8px 18px);}
.split__label{position:absolute;top:18px;font-size:.65rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;}
.split__label--na{left:clamp(18px,4.5vw,44px);color:var(--na-mid);}
.split__label--in{right:clamp(18px,4.5vw,44px);color:var(--in-mid);}
.split__in{position:relative;padding-block:clamp(56px,7.6vw,92px) clamp(38px,5.6vw,68px);text-align:center;}
.split h1{max-width:17ch;margin:0 auto 20px;}
.split h1 .na{color:var(--na-deep);}
.split h1 .in{color:var(--in-deep);font-style:italic;}
.split .lede{margin-inline:auto;}
.split__scene{margin-top:clamp(24px,3.6vw,40px);}
@media(max-width:820px){
  .split{background:linear-gradient(170deg,var(--na-pale) 0,var(--na-pale) 46%,var(--in-pale) 54%,var(--in-pale) 100%);}
  /* On a phone the hero is one column, so a line across the middle lands on
     the paragraph and makes it hard to read. The gradient and the two labels
     already carry the split — the seam is decoration we can drop. */
  .split::before{display:none;}
  .split__label{position:static;display:inline-block;margin:0 8px 10px;}
}

/* guide */
.guide{display:flex;align-items:flex-end;gap:16px;max-width:660px;margin-block:clamp(24px,3.6vw,42px);}
.guide--right{margin-left:auto;flex-direction:row-reverse;}
.guide__fig{width:clamp(88px,11vw,126px);flex:none;}
.guide__say{background:var(--card);border:2px solid var(--line);border-radius:20px;padding:16px 20px;position:relative;
  font-size:1rem;line-height:1.55;box-shadow:0 16px 34px -26px rgba(28,26,23,.5);}
.guide__say::after{content:"";position:absolute;bottom:20px;left:-9px;width:14px;height:14px;background:var(--card);
  border-left:2px solid var(--line);border-bottom:2px solid var(--line);transform:rotate(45deg);pointer-events:none;}
.guide--right .guide__say::after{left:auto;right:-9px;transform:rotate(225deg);}
.guide__say b{color:var(--in-deep);}
.guide__nm{display:block;font-size:.67rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-bottom:5px;}
@media(max-width:560px){.guide,.guide--right{flex-direction:column;align-items:flex-start;}.guide__say::after{display:none;}}

/* search dock */
.dock{background:var(--card);border:2px solid var(--na-deep);border-radius:22px;padding:7px;
  box-shadow:0 26px 54px -34px rgba(30,58,68,.6);max-width:1000px;margin:0 auto;}
.dock__seg{display:flex;gap:4px;padding:6px 8px 2px;}
.dock__seg button{font:inherit;font-size:.83rem;font-weight:700;color:var(--ink-2);background:transparent;border:none;
  padding:7px 15px;border-radius:40px;cursor:pointer;}
.dock__seg button[aria-pressed="true"]{background:var(--na-deep);color:#fff;}
.dock__f{display:grid;grid-template-columns:1.1fr 1.1fr .9fr .9fr auto;gap:2px;margin-top:4px;}
.dfld{padding:10px 16px;border-radius:14px;transition:background .15s;}
.dfld:hover{background:var(--na-pale);}
.dfld label{display:block;font-size:.63rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:2px;}
.dfld input,.dfld select{width:100%;border:none;outline:none;font:inherit;font-weight:700;background:transparent;font-size:.96rem;color:var(--ink);}
.dfld input::placeholder{color:var(--ink-3);font-weight:400;}
.dock__go{display:flex;align-items:center;padding:4px;}
@media(max-width:900px){.dock__f{grid-template-columns:1fr 1fr;}.dock__go{grid-column:1/-1;}.dock__go .btn{width:100%;}}
@media(max-width:520px){.dock__f{grid-template-columns:1fr;}}

/* journey */
.journey{background:linear-gradient(180deg,var(--na-pale),var(--in-pale));border-block:1px solid var(--line);
  padding-block:clamp(38px,5.6vw,68px);overflow:hidden;}
.journey__art{width:100%;max-width:1400px;margin-inline:auto;}
.journey__steps{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,2.4vw,30px);margin-top:clamp(22px,3.2vw,38px);}
@media(max-width:820px){.journey__steps{grid-template-columns:1fr 1fr;gap:22px;}}
@media(max-width:480px){.journey__steps{grid-template-columns:1fr;}}
.jstep__n{display:inline-flex;align-items:center;justify-content:center;width:27px;height:27px;border-radius:50%;
  background:var(--in-mid);color:#fff;font-size:.77rem;font-weight:700;margin-bottom:9px;}
.jstep h3{font-size:1.05rem;margin-bottom:5px;}
.jstep p{font-size:.91rem;color:var(--ink-2);margin:0;}

/* ── PROTECTION COMPARER — the signature element ── */
.prot{background:var(--card);border:2px solid var(--line);border-radius:26px;overflow:hidden;}
.prot__tabs{display:grid;grid-template-columns:1fr 1fr;gap:0;}
.prot__tab{font:inherit;font-weight:700;font-size:.97rem;padding:18px 20px;background:var(--na-pale);color:var(--ink-2);
  border:none;border-bottom:3px solid transparent;cursor:pointer;transition:background .16s,color .16s,border-color .16s;
  display:flex;align-items:center;justify-content:center;gap:9px;text-align:center;}
.prot__tab:hover{color:var(--ink);}
.prot__tab[aria-selected="true"]{background:var(--card);color:var(--ink);}
.prot__tab[data-mode="one"][aria-selected="true"]{border-bottom-color:var(--ok);}
.prot__tab[data-mode="two"][aria-selected="true"]{border-bottom-color:var(--warn);}
.prot__tab .badge{font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;padding:3px 9px;border-radius:40px;}
.prot__tab[data-mode="one"] .badge{background:var(--ok-soft);color:var(--ok);}
.prot__tab[data-mode="two"] .badge{background:var(--warn-soft);color:var(--warn);}
.prot__body{padding:clamp(22px,3.2vw,34px);}
.prot__lead{font-size:1.05rem;margin-bottom:20px;}
.prot__rows{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden;}
.prow{display:grid;grid-template-columns:minmax(160px,240px) 1fr;gap:16px;background:var(--card);padding:14px 18px;align-items:start;}
.prow__q{font-size:.83rem;font-weight:700;letter-spacing:.02em;color:var(--ink-3);}
.prow__a{font-size:.96rem;}
.prow__a .good{color:var(--ok);font-weight:700;}
.prow__a .bad{color:var(--warn);font-weight:700;}
@media(max-width:640px){.prow{grid-template-columns:1fr;gap:3px;}}
.prot__note{margin-top:18px;padding:15px 18px;border-radius:14px;font-size:.92rem;}
.prot__note--one{background:var(--ok-soft);color:#15503B;}
.prot__note--two{background:var(--warn-soft);color:#7A2E14;}

/* three options */
.opts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:stretch;}
@media(max-width:900px){.opts{grid-template-columns:1fr;}}
.opt{background:var(--card);border:2px solid var(--line);border-radius:22px;padding:24px;display:flex;flex-direction:column;
  transition:border-color .18s,transform .18s;}
.opt:hover{transform:translateY(-3px);}
.opt--rec{border-color:var(--in-mid);position:relative;}
.opt__flag{position:absolute;top:-13px;left:24px;background:var(--in-mid);color:#fff;font-size:.65rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;padding:5px 12px;border-radius:40px;}
.opt__k{font-size:.67rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px;}
.opt__p{font-family:"Fraunces",Georgia,serif;font-size:1.9rem;margin-bottom:4px;}
.opt__p small{display:block;font-family:"DM Sans",sans-serif;font-size:.64rem;font-weight:700;letter-spacing:.11em;
  text-transform:uppercase;color:var(--ink-3);}
.opt ul{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:9px;font-size:.92rem;}
.opt li{display:flex;gap:9px;align-items:flex-start;color:var(--ink-2);}
.opt li .i{flex:none;width:17px;height:17px;margin-top:3px;}

/* timing */
.timing{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:820px){.timing{grid-template-columns:1fr;}}
.tcard{border:2px solid var(--line);border-radius:22px;padding:26px;background:var(--card);}
.tcard--now{background:var(--in-pale);border-color:var(--in-soft);}
.tcard--wait{background:var(--na-pale);border-color:var(--na-soft);}
.tcard h3{margin-bottom:12px;}
.tcard ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:.94rem;color:var(--ink-2);}
.tcard li{padding-left:18px;position:relative;}
.tcard li::before{content:"";position:absolute;left:0;top:9px;width:7px;height:7px;border-radius:50%;background:var(--in-mid);}
.tcard--wait li::before{background:var(--na-mid);}

/* map */
.mapwrap{display:grid;grid-template-columns:minmax(280px,430px) 1fr;gap:clamp(24px,4vw,58px);align-items:center;}
@media(max-width:880px){.mapwrap{grid-template-columns:1fr;}}
.pin{cursor:pointer;}
.pin circle.hit{fill:transparent;}
.pin .dot{fill:var(--in-mid);transition:r .18s,fill .18s;}
/* fill-box, or `center` means the centre of the whole map and every halo
   expands from there instead of from its own pin — up to 266px adrift. */
.pin .halo{fill:var(--in-mid);opacity:.18;transform-box:fill-box;transform-origin:center;
  animation:halo 3.2s ease-out infinite;}
.pin .lbl{font-family:"DM Sans",sans-serif;font-size:13px;font-weight:700;fill:var(--ink);}
.pin:hover .dot,.pin:focus-visible .dot,.pin.on .dot{r:8;fill:var(--in-deep);}
.pin:hover .lbl,.pin.on .lbl{fill:var(--in-deep);}
@keyframes halo{0%{opacity:.28;transform:scale(.7);}100%{opacity:0;transform:scale(2.1);}}
/* .region / .region-lbl removed 5 Aug 2026 — they shaded approximate state
   areas over an approximate outline. See partials/map.blade.php. */
.mapcard{background:var(--card);border:2px solid var(--line);border-radius:22px;padding:26px 28px;min-height:250px;transition:border-color .2s;}
.mapcard.on{border-color:var(--in-mid);}
.mapcard__iata{font-family:"Fraunces",Georgia,serif;font-size:2.5rem;color:var(--in-mid);line-height:1;}
.mapcard h3{margin:6px 0 4px;font-size:1.45rem;}
.mapcard__sub{font-size:.89rem;color:var(--ink-2);margin-bottom:14px;}
.mapcard__note{font-size:.9rem;color:var(--ink-2);background:var(--in-pale);border-radius:12px;padding:12px 14px;margin-bottom:16px;}
.mapcard__p{font-size:1.05rem;font-weight:700;margin-bottom:16px;}
.mapcard__p small{display:block;font-size:.64rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);}
.maplist{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;}
.maplist a{font-size:.84rem;font-weight:700;text-decoration:none;color:var(--ink-2);background:var(--card);
  border:1.5px solid var(--line);border-radius:40px;padding:7px 15px;transition:border-color .15s,color .15s,background .15s;}
.maplist a:hover{border-color:var(--in-mid);color:var(--in-deep);background:var(--in-pale);}

/* currency bridge */
.bridge{display:grid;grid-template-columns:1fr auto 1fr;gap:clamp(14px,2.4vw,28px);align-items:center;}
@media(max-width:820px){.bridge{grid-template-columns:1fr;}}
.bpanel{border:2px solid var(--line);border-radius:22px;padding:24px;background:var(--card);}
.bpanel--in{background:var(--in-pale);border-color:var(--in-soft);}
.bpanel--out{background:var(--na-pale);border-color:var(--na-soft);}
.bpanel label{display:block;font-size:.65rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px;}
.bpanel__in{display:flex;align-items:center;gap:8px;background:var(--card);border:1.5px solid var(--line);border-radius:14px;padding:12px 16px;}
.bpanel__in input{border:none;outline:none;font:inherit;font-size:1.2rem;font-weight:700;width:100%;background:transparent;color:var(--ink);}
.bpanel__big{font-family:"Fraunces",Georgia,serif;font-size:2.4rem;letter-spacing:-.02em;color:var(--na-deep);line-height:1.1;}
.bpanel__brk{font-size:.81rem;color:var(--ink-2);margin-top:6px;}
.bmid{text-align:center;}
.bmid__badge{display:inline-block;background:var(--in-mid);color:#fff;font-size:.73rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;padding:8px 15px;border-radius:40px;white-space:nowrap;}
.bmid__ar{color:var(--ink-3);font-size:1.4rem;margin-block:8px;}
@media(max-width:820px){.bmid__ar{transform:rotate(90deg);display:inline-block;}}

/* care */
.care{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,2.8vw,32px);}
@media(max-width:860px){.care{grid-template-columns:1fr;}}
.carecard{background:var(--card);border:2px solid var(--line);border-radius:24px;overflow:hidden;transition:border-color .18s,transform .18s;}
.carecard:hover{border-color:var(--in-mid);transform:translateY(-3px);}
.carecard__art{background:var(--in-pale);padding:20px;display:flex;align-items:center;justify-content:center;aspect-ratio:16/9;}
.carecard--cool .carecard__art{background:var(--na-pale);}
.carecard__b{padding:24px 26px 28px;}
.carecard h3{margin-bottom:9px;}
.carecard p{color:var(--ink-2);margin:0;font-size:.95rem;}
.taglist{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px;}
.taglist span{font-size:.78rem;font-weight:600;color:var(--ink-2);background:var(--na-pale);border-radius:40px;padding:5px 12px;}

/* checklist */
.check{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
@media(max-width:760px){.check{grid-template-columns:1fr;}}
.check div{display:flex;gap:11px;align-items:flex-start;background:var(--card);border:1.5px solid var(--line);
  border-radius:14px;padding:15px 17px;font-size:.93rem;color:var(--ink-2);}
.check .i{flex:none;width:19px;height:19px;margin-top:2px;}

/* band */
.band{background:var(--na-deep);color:#fff;border-radius:28px;padding:clamp(32px,5vw,58px);position:relative;overflow:hidden;}
/* pointer-events:none is not optional here — without it this decorative
   circle sits over the WhatsApp button and swallows both click and hover. */
.band::after{content:"";position:absolute;right:-60px;top:-60px;width:280px;height:280px;
  border-radius:50%;background:var(--in-mid);opacity:.22;pointer-events:none;}
.band__in{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center;position:relative;z-index:1;}
@media(max-width:800px){.band__in{grid-template-columns:1fr;}}
.band h2{color:#fff;margin-bottom:10px;}
.band p{color:#B8CBD0;margin:0;max-width:46ch;}

/* footer */
.foot{border-top:1px solid var(--line);padding-block:46px 104px;margin-top:clamp(48px,7vw,86px);}
.foot__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:30px;}
@media(max-width:760px){.foot__grid{grid-template-columns:1fr 1fr;}}
.foot h3,.foot__h{font-size:.67rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin:0 0 13px;font-family:"DM Sans",sans-serif;}
.foot ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.foot a{color:var(--ink-2);text-decoration:none;font-size:.9rem;}
.foot a:hover{color:var(--in-deep);}
.foot__legal{margin-top:32px;padding-top:20px;border-top:1px solid var(--line);font-size:.76rem;color:var(--ink-3);}
.foot .logo img{height:28px;margin-bottom:12px;}

/* FABs */
.fab-stack{position:fixed;right:17px;bottom:17px;display:flex;flex-direction:column;gap:11px;z-index:70;align-items:flex-end;}
.fab{position:relative;display:flex;align-items:center;gap:10px;text-decoration:none;border-radius:40px;height:54px;
  padding:0 18px 0 15px;font-weight:700;color:#fff;box-shadow:0 16px 32px -12px rgba(28,26,23,.5);
  transition:transform .18s,background .18s;}
.fab__lb{max-width:0;overflow:hidden;white-space:nowrap;font-size:.86rem;transition:max-width .26s ease;}
.fab:hover .fab__lb,.fab:focus-visible .fab__lb{max-width:170px;}
.fab:hover,.fab:focus-visible{transform:translateY(-2px);}
.fab--wa{background:var(--ok);}
.fab--wa:hover{background:#1F6248;}
.fab--call{background:var(--in-mid);}
.fab--call:hover{background:var(--in-deep);}
.fab__ring{position:absolute;inset:0;border-radius:40px;border:2px solid var(--ok);animation:ring 2.6s ease-out infinite;}
@keyframes ring{0%{opacity:.7;transform:scale(.95);}100%{opacity:0;transform:scale(1.3);}}

/* motion */
/* ── SVG character animation ────────────────────────────────────────────
   ⚠ READ THIS BEFORE TOUCHING ANY transform ON AN SVG ELEMENT.

   SVG is not HTML. On an SVG element `transform-box` defaults to `view-box`
   and `transform-origin` defaults to `0 0` — so a transform pivots around the
   top-left of the WHOLE drawing, and any percentage origin resolves against
   the whole viewBox, not the element you put it on.

   That is what made every character fall apart: scaleY on the eyes squashed
   them toward the corner of the SVG (they left the face by up to 153px), and
   rotate on an arm swung it around a point hundreds of px away.

   Two correct fixes, both used below:
     • transform-box:fill-box — makes `center`/percentages mean the element's
       own box. Right when the pivot IS the element's centre (eyes, halos).
     • an explicit origin in user units, set per instance — right when the
       pivot is an anatomical point that is not the centre of anything, e.g.
       a shoulder. Each .m-wave group carries its own
       style="transform-origin:<x>px <y>px" naming its shoulder. */

/* translateY needs no origin, so float was never affected. */
.m-float{animation:mfloat 6s ease-in-out infinite;}
@keyframes mfloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-7px);}}
/* ⚠ Do not nest one .m-float inside another — the child gets both parents'
   translation and drifts away from the body at twice the amplitude. */

.m-blink{transform-box:fill-box;transform-origin:center;animation:mblink 5.4s infinite;}
@keyframes mblink{0%,94%,100%{transform:scaleY(1);}97%{transform:scaleY(.1);}}
/* No transform-origin here on purpose: each arm sets its own shoulder. */
.m-wave{animation:mwave 3.2s ease-in-out infinite;}
@keyframes mwave{0%,58%,100%{transform:rotate(0);}68%{transform:rotate(-18deg);}78%{transform:rotate(5deg);}88%{transform:rotate(-11deg);}}
.m-plane{animation:mplane 15s linear infinite;}
@keyframes mplane{0%{offset-distance:0%;}100%{offset-distance:100%;}}
.guide__fig:hover .m-wave{animation-duration:1s;}
@media(prefers-reduced-motion:reduce){.m-float,.m-blink,.m-wave,.m-plane,.fab__ring,.pin .halo{animation:none !important;}}

/* ── Trustpilot / verified reviews ───────────────── */
.tp{background:var(--card);border:2px solid var(--line);border-radius:26px;overflow:hidden;}
.tp__top{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  padding:22px clamp(20px,3vw,30px);background:var(--na-pale);border-bottom:2px solid var(--line);}
.tp__score{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.tp__num{font-family:"Fraunces",Georgia,serif;font-size:2.5rem;line-height:1;color:var(--ink);}
.tp__num span{font-size:1rem;color:var(--ink-3);font-family:"DM Sans",sans-serif;font-weight:600;}
.tp__meta{font-size:.9rem;color:var(--ink-2);}
.tp__meta b{color:var(--ink);}
.tp__stars{display:flex;gap:3px;margin-bottom:5px;}
.tp__stars .s{width:22px;height:22px;background:#00B67A;display:flex;align-items:center;justify-content:center;border-radius:2px;}
.tp__stars svg{width:16px;height:16px;}
.tp__logo{display:flex;align-items:center;gap:7px;font-weight:700;font-size:.95rem;color:var(--ink);text-decoration:none;white-space:nowrap;}
.tp__logo:hover{color:#00B67A;}
.tp__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);}
@media(max-width:920px){.tp__grid{grid-template-columns:1fr 1fr;}}
@media(max-width:620px){.tp__grid{grid-template-columns:1fr;}}
.tpr{background:var(--card);padding:24px clamp(18px,2.4vw,26px);display:flex;flex-direction:column;}
.tpr__stars{display:flex;gap:2px;margin-bottom:12px;}
.tpr__stars .s{width:17px;height:17px;background:#00B67A;display:flex;align-items:center;justify-content:center;border-radius:2px;}
.tpr__stars svg{width:12px;height:12px;}
.tpr h3{font-size:1.02rem;margin-bottom:8px;}
.tpr__body{font-size:.93rem;color:var(--ink-2);margin:0 0 18px;flex:1;}
.tpr__who{display:flex;align-items:center;gap:11px;}
.tpr__av{width:36px;height:36px;border-radius:50%;background:var(--in-soft);color:var(--in-deep);flex:none;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;}
.tpr__nm{font-weight:700;font-size:.9rem;line-height:1.3;}
.tpr__sub{font-size:.76rem;color:var(--ink-3);display:flex;align-items:center;gap:6px;}
.tpr__vf{display:inline-flex;align-items:center;gap:3px;color:#00875A;font-weight:700;}
.tpr__vf svg{width:11px;height:11px;}
.tp__foot{padding:16px clamp(20px,3vw,30px);border-top:2px solid var(--line);display:flex;
  align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;}

/* ── Quote form ──────────────────────────────────── */
/* NOTE: no overflow:hidden here. The airport autocomplete is absolutely
   positioned and would be clipped by it — the exact bug that broke the
   search on the other site. Corners are rounded on the children instead. */
.qf{background:var(--card);border:2px solid var(--line);border-radius:26px;}
.qf__hd{padding:22px clamp(20px,3vw,30px);background:var(--in-pale);border-bottom:2px solid var(--line);border-radius:24px 24px 0 0;}
.qf__hd h3{font-size:1.3rem;margin-bottom:5px;}
.qf__hd p{margin:0;font-size:.92rem;color:var(--ink-2);}
.qf__body{padding:clamp(20px,3vw,30px);}
.qf__grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media(max-width:720px){.qf__grid{grid-template-columns:1fr;}}
.qf__row{display:flex;flex-direction:column;}
.qf__row--full{grid-column:1/-1;}
.qf label,.qf legend{font-size:.68rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);margin-bottom:7px;padding:0;}
.qf input[type=text],.qf input[type=email],.qf input[type=tel],.qf input[type=date],.qf select,.qf textarea{
  width:100%;font:inherit;font-size:.98rem;color:var(--ink);background:var(--paper);
  border:1.5px solid var(--line);border-radius:12px;padding:12px 15px;outline:none;transition:border-color .15s;}
.qf input:focus,.qf select:focus,.qf textarea:focus{border-color:var(--in-mid);}
.qf textarea{min-height:96px;resize:vertical;}
.qf fieldset{border:none;margin:0;padding:0;}
.chips{display:flex;flex-wrap:wrap;gap:8px;}
.chip{position:relative;}
.chip input{position:absolute;opacity:0;width:0;height:0;}
.chip span{display:inline-flex;align-items:center;gap:7px;font-size:.88rem;font-weight:600;color:var(--ink-2);
  background:var(--paper);border:1.5px solid var(--line);border-radius:40px;padding:9px 16px;cursor:pointer;
  transition:border-color .15s,background .15s,color .15s;}
.chip span:hover{border-color:var(--in-mid);color:var(--in-deep);}
.chip input:checked + span{background:var(--in-mid);border-color:var(--in-mid);color:#fff;}
.chip input:focus-visible + span{outline:2px solid var(--in-mid);outline-offset:2px;}
.qf__foot{padding:0 clamp(20px,3vw,30px) clamp(22px,3vw,30px);display:flex;align-items:center;
  justify-content:space-between;gap:16px;flex-wrap:wrap;}
.qf__ok{margin:18px clamp(20px,3vw,30px) 0;padding:16px 18px;border-radius:14px;background:var(--ok-soft);
  color:#15503B;font-size:.94rem;display:none;}
.qf__ok.on{display:block;}
.qf__hint{font-size:.8rem;color:var(--ink-3);margin-top:6px;}

/* ── After-sales ─────────────────────────────────── */
.as{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
@media(max-width:820px){.as{grid-template-columns:1fr;}}
.ascard{background:var(--card);border:2px solid var(--line);border-radius:20px;padding:24px 26px;
  transition:border-color .18s,transform .18s;}
.ascard:hover{border-color:var(--in-mid);transform:translateY(-3px);}
.ascard__k{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;
  background:var(--in-pale);color:var(--in-deep);margin-bottom:13px;}
.ascard__k svg{width:19px;height:19px;}
.ascard h3{font-size:1.12rem;margin-bottom:8px;}
.ascard p{margin:0;font-size:.94rem;color:var(--ink-2);}
.asnote{margin-top:20px;background:var(--na-pale);border-left:4px solid var(--na-mid);border-radius:0 14px 14px 0;
  padding:18px 22px;font-size:.97rem;color:var(--ink-2);}
.asnote b{color:var(--ink);}

/* ── Group travel ────────────────────────────────── */
.gt{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
@media(max-width:880px){.gt{grid-template-columns:1fr;}}
.gtcard{background:var(--card);border:2px solid var(--line);border-radius:22px;padding:26px;}
.gtcard h3{font-size:1.15rem;margin-bottom:9px;}
.gtcard p{margin:0;font-size:.93rem;color:var(--ink-2);}
.gtnum{font-family:"Fraunces",Georgia,serif;font-size:2.2rem;color:var(--in-mid);line-height:1;margin-bottom:10px;}


/* ── Airport autocomplete ────────────────────────── */
.ac{position:relative;}
/* The dock columns are narrow; the dropdown must be free to be wider than
   its field or every airport name wraps into an unreadable column. */
.ac__list{position:absolute;left:0;top:calc(100% + 4px);z-index:30;
  min-width:max(100%, 340px);max-width:min(440px, 90vw);
  background:var(--card);border:1.5px solid var(--in-mid);border-radius:14px;
  box-shadow:0 22px 44px -20px rgba(28,26,23,.45);
  max-height:300px;overflow-y:auto;padding:5px;display:none;}
@media(max-width:520px){.ac__list{min-width:min(340px,86vw);}}
.ac__list.is-open{display:block;}
.ac__opt{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:10px;cursor:pointer;}
.ac__txt{min-width:0;display:flex;flex-direction:column;}
.ac__opt:hover,.ac__opt.is-active{background:var(--in-pale);}
.ac__code{flex:none;font-weight:700;font-size:.82rem;letter-spacing:.06em;color:var(--in-deep);
  background:var(--in-soft);border-radius:7px;padding:4px 8px;min-width:46px;text-align:center;}
.ac__city{font-weight:600;font-size:.93rem;line-height:1.3;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ac__sub{font-size:.78rem;color:var(--ink-3);line-height:1.3;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ac__none{padding:12px;font-size:.9rem;color:var(--ink-3);}

/* ── Trip type inside the quote form ─────────────── */
.qf__trip{display:inline-flex;background:var(--na-pale);border-radius:40px;padding:3px;gap:2px;}
.qf__trip label{position:relative;margin:0;}
.qf__trip input{position:absolute;opacity:0;width:0;height:0;}
.qf__trip span{display:inline-block;font-size:.82rem;font-weight:700;letter-spacing:0;text-transform:none;
  color:var(--na-mid);padding:8px 18px;border-radius:40px;cursor:pointer;transition:background .15s,color .15s;}
.qf__trip input:checked + span{background:var(--na-deep);color:#fff;}
.qf__trip input:focus-visible + span{outline:2px solid var(--in-mid);outline-offset:2px;}

/* a disabled return date should look inert, not broken */
.qf__row.is-off{opacity:.45;}
.qf__row.is-off input{background:var(--bone,#F3EEE5);cursor:not-allowed;}


/* ── Search results ──────────────────────────────── */
/* ── Manage my booking ──────────────────────────────────────────────────
   Lookup, itinerary and the agent screens behind them. Prefixed .bk so it
   can never collide with the search results styles, which use .sr. */
.bklook{background:var(--card);border:2px solid var(--line);border-radius:24px;
  padding:clamp(22px,3vw,32px);max-width:560px;}
.bkfld{margin-bottom:16px;}
.bkfld label{display:block;font-size:.76rem;letter-spacing:.07em;text-transform:uppercase;
  font-weight:700;color:var(--ink-3);margin-bottom:6px;}
.bkfld input{width:100%;font:inherit;padding:12px 14px;border:2px solid var(--line);
  border-radius:12px;background:var(--paper);}
.bkfld input:focus{outline:2px solid var(--na-deep);outline-offset:1px;border-color:var(--na-deep);}
.bkfld small{display:block;color:var(--ink-3);font-size:.8rem;margin-top:5px;}
.bkerr{color:var(--in-deep);font-size:.9rem;font-weight:600;margin:0 0 14px;}
.bkhelp{margin-top:18px;font-size:.88rem;color:var(--ink-2);border-top:2px solid var(--line);padding-top:16px;}

.bkhead{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap;
  padding-bottom:20px;border-bottom:2px solid var(--line);margin-bottom:24px;}
.bkhead__r{text-align:right;}
.bkref{font-family:Fraunces,Georgia,serif;font-size:2rem;letter-spacing:.05em;line-height:1.1;}
.bkpill{display:inline-block;font-size:.7rem;letter-spacing:.07em;text-transform:uppercase;
  font-weight:700;padding:4px 11px;border-radius:999px;}
.bkpill--ok{background:#E7F2E8;color:#2E7D32;}
.bkpill--warn{background:var(--in-soft);color:var(--in-deep);}
.bkpill--info{background:var(--na-soft);color:var(--na-mid);}

.bknote{border-radius:18px;padding:18px 20px;margin-bottom:22px;font-size:.94rem;}
.bknote--warn{background:var(--in-pale);border:2px solid var(--in-soft);}
.bknote--info{background:var(--na-pale);border:2px solid var(--na-soft);}
.bknote--ok{background:#EFF6EF;border:2px solid #CFE3D0;}
.bknote p{margin:8px 0 0;color:var(--ink-2);}
.bkchanges{margin:10px 0 0;padding-left:20px;color:var(--ink-2);}
.bkchanges li{margin-bottom:4px;}

.bkleghead{font-family:Fraunces,Georgia,serif;font-size:1.2rem;margin:26px 0 12px;}
.bkleg{background:var(--card);border:2px solid var(--line);border-radius:20px;overflow:hidden;}
.bkleg__top{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  padding:12px 20px;background:var(--na-pale);border-bottom:2px solid var(--line);font-size:.86rem;}
.bkleg__top b{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--na-mid);}
.bkseg{display:grid;grid-template-columns:112px 1fr 112px;gap:18px;align-items:center;padding:20px;}
.bkport{text-align:center;}
.bkport b{display:block;font-family:Fraunces,Georgia,serif;font-size:1.6rem;line-height:1.1;}
.bkport span{display:block;font-size:.78rem;color:var(--ink-3);}
.bkport i{display:block;font-style:normal;font-weight:700;font-size:1.05rem;margin-top:4px;}
/* The date, shown only when a flight crosses midnight — long-haul east does
   it twice. Deliberately the real date and not a "+1 day" marker: half the
   people reading it count from this flight, the other half from home. */
.bkdate{display:inline-block !important;margin-top:3px;padding:2px 8px;border-radius:999px;
  background:var(--in-soft);color:var(--in-deep);font-size:.72rem !important;font-weight:700;}
.bkmid{text-align:center;}
.bkair{font-weight:700;font-size:.92rem;}
.bkop{display:block;font-weight:400;font-size:.8rem;color:var(--ink-3);}
.bkline{height:2px;background:var(--line);position:relative;margin:12px 0;}
.bkline::after{content:"";position:absolute;right:-1px;top:-4px;border-left:8px solid var(--line);
  border-top:5px solid transparent;border-bottom:5px solid transparent;}
.bkmid small{color:var(--ink-3);font-size:.8rem;}
.bkconn{margin:0 20px;padding:8px 14px;background:var(--paper);border:1px dashed var(--line);
  border-radius:10px;font-size:.84rem;color:var(--ink-2);text-align:center;}
.bkconn--tight{background:var(--in-pale);border-color:var(--in-soft);color:var(--in-deep);}
.bkleg__foot{display:flex;gap:20px;flex-wrap:wrap;padding:12px 20px;margin-top:16px;
  border-top:2px solid var(--line);background:var(--paper);font-size:.84rem;color:var(--ink-2);}

.bktz{margin:16px 0 0;font-size:.83rem;color:var(--ink-3);}
.bkgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px;}
.bkcard{background:var(--card);border:2px solid var(--line);border-radius:20px;padding:20px;}
.bkcard h3{margin:0 0 10px;font-family:Fraunces,Georgia,serif;font-size:1.05rem;}
.bkcard p{margin:0;color:var(--ink-2);font-size:.9rem;}
.bkpax{list-style:none;margin:0;padding:0;}
.bkpax li{padding:8px 0;border-bottom:1px dashed var(--line);font-size:.94rem;}
.bkpax li:last-child{border-bottom:0;}
.bkchips{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px;}
.bkchip{display:inline-flex;align-items:center;gap:7px;padding:6px 13px;border-radius:999px;
  border:1.5px solid var(--na-soft);background:var(--na-pale);font-size:.86rem;font-weight:600;}
.bkchip i{font-style:normal;font-size:.72rem;color:#2E7D32;text-transform:uppercase;letter-spacing:.04em;}
.bkopt{display:flex;gap:10px;align-items:flex-start;margin-top:12px;font-size:.88rem;color:var(--ink-2);}
.bkopt input{margin-top:4px;}
.bkrow{display:flex;gap:10px;flex-wrap:wrap;}
.bkcta{background:linear-gradient(120deg,var(--in-pale),var(--card));border:2px solid var(--in-soft);
  border-radius:24px;padding:clamp(22px,3vw,30px);margin-top:24px;}
.bkcta h2{font-family:Fraunces,Georgia,serif;font-size:1.3rem;margin:0 0 6px;}
.bkcta p{color:var(--ink-2);margin:0 0 16px;max-width:60ch;}

/* Visible to a screen reader, not on screen. The search box has a visible
   placeholder but a placeholder is not a label. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0;}

.bksearch{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:18px;}
.bksearch input{flex:1;min-width:260px;font:inherit;padding:10px 14px;border:2px solid var(--line);
  border-radius:12px;background:var(--card);}
.bksearch input:focus{outline:2px solid var(--na-deep);outline-offset:1px;border-color:var(--na-deep);}

.bktable{overflow-x:auto;}
.bktable table{width:100%;border-collapse:collapse;font-size:.88rem;}
.bktable th{text-align:left;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-3);padding:8px 10px;border-bottom:2px solid var(--line);white-space:nowrap;}
.bktable td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top;}
.bktable tr.is-past{opacity:.55;}
.bkiata{width:4.5em;font:inherit;font-weight:700;text-transform:uppercase;text-align:center;
  padding:5px;border:2px solid var(--line);border-radius:8px;background:var(--paper);}
.bkiata.is-missing{border-color:var(--in-mid);background:var(--in-pale);}
/* A leg the parser could not read at all. Loud on purpose: saving is blocked
   until it is dealt with, and a flight quietly missing is the worst outcome. */
.bktable tr.is-broken td{background:var(--in-pale);}
.bkbroken{color:var(--in-deep);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;}
.bklink{font:inherit;font-size:.85rem;background:none;border:0;padding:0;cursor:pointer;
  color:var(--na-mid);text-decoration:underline;}
.bklink--danger{color:var(--in-deep);}
/* Row actions stack rather than sprawl — there are four of them now. */
.bkacts{white-space:nowrap;}
.bkacts a,.bkacts form{display:block;margin-bottom:4px;font-size:.85rem;}
.bkacts a{color:var(--na-mid);}

@media(max-width:760px){
  .bkgrid{grid-template-columns:1fr;}
  .bkseg{grid-template-columns:1fr;gap:10px;text-align:center;}
  .bkline{margin:6px 0;}
  .bkhead__r{text-align:left;}
}

/* ── Change search ──────────────────────────────────────────────────────
   The search dock, always open, on the results page. Deliberately NOT a
   <details>: changing a date or swapping one gateway for another is the
   common case here, so it should not cost a click.
   The dock keeps its own card styling and is NOT wrapped in a second
   bordered panel — nested cards read as heavy and fight the dock's border. */
.srx{margin-top:20px;}
.srx__lab{margin:0 0 8px;font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-3);font-weight:700;}
.srx__box{margin:0;}
.srx__box .dock{margin:0;box-shadow:0 16px 34px -28px rgba(30,58,68,.55);}
.srx__alt{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px;}
.srx__altlab{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-3);font-weight:700;}
.srx__chip{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;border-radius:999px;
  border:1.5px solid var(--line);background:var(--card);font-size:.86rem;font-weight:600;
  color:var(--ink);text-decoration:none;}
.srx__chip i{font-style:normal;font-size:.72rem;color:var(--ink-3);letter-spacing:.05em;}
.srx__chip:hover{border-color:var(--in-mid);color:var(--in-deep);}
.srx__chip:focus-visible{outline:2px solid var(--in-deep);outline-offset:2px;}
.srx__althint{font-size:.78rem;color:var(--ink-3);}
@media(max-width:640px){.srx__althint{display:none;}}

.srbar{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding-bottom:14px;border-bottom:2px solid var(--line);margin-bottom:18px;font-size:.95rem;}
.srnote{background:var(--na-pale);border-left:4px solid var(--na-mid);border-radius:0 14px 14px 0;
  padding:15px 18px;font-size:.94rem;color:var(--ink-2);margin-bottom:18px;}
.srfail{background:var(--card);border:2px solid var(--line);border-radius:24px;padding:clamp(24px,4vw,40px);max-width:70ch;}
.srfail h2{margin-bottom:12px;}
.srfail p{color:var(--ink-2);margin:0;}

.srlist{display:flex;flex-direction:column;gap:14px;}
.sr{display:grid;grid-template-columns:1fr 220px;background:var(--card);border:2px solid var(--line);
  border-radius:20px;overflow:hidden;transition:border-color .16s,transform .16s;}
.sr:hover{border-color:var(--in-mid);transform:translateY(-2px);}
@media(max-width:760px){.sr{grid-template-columns:1fr;}}
.sr__main{padding:20px 22px;}
.sr__air{font-size:.86rem;font-weight:700;color:var(--ink-2);margin-bottom:12px;}
.sr__times{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;}
.sr__end{display:flex;flex-direction:column;}
.sr__end--r{text-align:right;}
.sr__t{font-family:"Fraunces",Georgia,serif;font-size:1.55rem;line-height:1.1;}
.sr__t sup{font-size:.6em;color:var(--in-deep);}
.sr__code{font-size:.78rem;font-weight:700;letter-spacing:.1em;color:var(--ink-3);}
.sr__mid{display:flex;flex-direction:column;align-items:center;gap:3px;}
.sr__dur{font-size:.8rem;font-weight:700;color:var(--ink-2);}
.sr__line{display:block;width:100%;height:2px;background:var(--line);position:relative;}
.sr__line i{position:absolute;left:50%;top:-3px;transform:translateX(-50%);width:8px;height:8px;
  border-radius:50%;background:var(--in-mid);}
.sr__stops{font-size:.78rem;color:var(--ink-3);text-align:center;}
.sr__tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px;}
.srtag{font-size:.75rem;font-weight:600;color:var(--ink-2);background:var(--na-pale);
  border-radius:40px;padding:5px 11px;}
.srtag--ok{background:var(--ok-soft);color:#15503B;}
.srtag--warn{background:var(--warn-soft);color:#7A2E14;}
.sr__det{margin-top:14px;}
.sr__det summary{font-size:.85rem;font-weight:700;color:var(--in-deep);cursor:pointer;}
.sr__legs{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:12px;}
.sr__legs li{display:flex;flex-direction:column;gap:2px;font-size:.88rem;color:var(--ink-2);
  border-left:3px solid var(--in-soft);padding-left:13px;}
.sr__legh{font-weight:700;color:var(--ink);}
.sr__buy{background:var(--na-pale);border-left:2px solid var(--line);padding:20px;
  display:flex;flex-direction:column;justify-content:center;text-align:center;}
@media(max-width:760px){.sr__buy{border-left:none;border-top:2px solid var(--line);}}
.sr__price{font-family:"Fraunces",Georgia,serif;font-size:1.9rem;line-height:1.05;color:var(--na-deep);}
.sr__per{font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin-top:3px;}
.sr__call{display:block;margin-top:9px;font-size:.78rem;color:var(--ink-2);text-decoration:none;}
.sr__call:hover{color:var(--in-deep);}


/* ── "call us, we can do better" banner ──────────── */
.srdeal{background:linear-gradient(120deg,var(--in-pale),var(--card));border:2px solid var(--in-soft);
  border-radius:22px;padding:clamp(20px,3vw,30px);margin-bottom:20px;}
.srdeal--slim{margin:24px 0 0;background:var(--na-pale);border-color:var(--na-soft);}
.srdeal h2{font-size:clamp(1.3rem,2.4vw,1.7rem);margin-bottom:8px;}
.srdeal p{color:var(--ink-2);margin:0 0 16px;max-width:62ch;font-size:.96rem;}
.srdeal__cta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.srdeal__note{display:block;margin-top:10px;font-size:.79rem;color:var(--ink-3);}
/* WhatsApp green everywhere, and it must lift and darken on hover exactly
   like the phone button — a call-to-action that doesn't react reads as dead. */
.btn--wa{background:var(--ok);color:#fff;border-color:var(--ok);}
.btn--wa:hover,.btn--wa:focus-visible{background:#1F6248;border-color:#1F6248;color:#fff;
  transform:translateY(-2px);box-shadow:0 10px 22px -12px rgba(44,122,91,.7);}
.btn--wa:active{transform:translateY(0);}
.btn--wa svg{flex:none;}

/* Inline WhatsApp text links — footer, form footers. */
.walink{font-weight:700;color:var(--ok);text-decoration:none;
  transition:color .15s,opacity .15s;}
.walink:hover{color:#1F6248;text-decoration:underline;}
.foot .walink{color:var(--ok);}
.foot .walink:hover{color:#1F6248;}

.srinline{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  background:var(--in-pale);border:1.5px dashed var(--in-mid);border-radius:16px;
  padding:15px 20px;font-size:.94rem;color:var(--ink-2);}
.srinline__cta{display:flex;gap:8px;flex-wrap:wrap;}

/* ── callback form ───────────────────────────────── */
.cbf{margin-top:18px;padding-top:18px;border-top:1.5px solid var(--in-soft);position:relative;}
.cbf__row{display:grid;grid-template-columns:1fr 1fr .8fr auto;gap:10px;align-items:end;}
@media(max-width:820px){.cbf__row{grid-template-columns:1fr 1fr;}.cbf__go{grid-column:1/-1;}.cbf__go .btn{width:100%;}}
@media(max-width:520px){.cbf__row{grid-template-columns:1fr;}}
.cbf__f{display:flex;flex-direction:column;}
.cbf label{font-size:.66rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-3);margin-bottom:5px;}
.cbf input,.cbf select{font:inherit;font-size:.95rem;color:var(--ink);background:var(--card);
  border:1.5px solid var(--line);border-radius:11px;padding:11px 13px;outline:none;width:100%;
  transition:border-color .15s;}
.cbf input:focus,.cbf select:focus{border-color:var(--in-mid);}
.cbf__note{margin:9px 0 0;font-size:.76rem;color:var(--ink-3);}
.cbf__ok{background:var(--ok-soft);color:#15503B;border-radius:12px;padding:12px 15px;
  font-size:.92rem;margin:0 0 14px;}
.cbf__err{background:var(--warn-soft);color:#7A2E14;border-radius:12px;padding:12px 15px;
  font-size:.92rem;margin:0 0 14px;}


/* ── Per-direction rows on a result ──────────────── */
.sr__dir + .sr__dir{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line);}
.sr__dirlab{display:flex;align-items:baseline;gap:9px;margin-bottom:6px;}
.sr__dirlab span:first-child{font-size:.7rem;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;color:var(--in-deep);}
.sr__dirdate{font-size:.78rem;color:var(--ink-3);}
.sr__dethead{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--in-deep);margin:14px 0 6px;}

/* ── Callback popup ──────────────────────────────── */
.cbm{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;
  padding:18px;}
.cbm[hidden]{display:none;}
.cbm__scrim{position:absolute;inset:0;background:rgba(28,26,23,.55);
  animation:cbmFade .25s ease-out;}
.cbm__box{position:relative;background:var(--card);border:2px solid var(--in-soft);
  border-radius:24px;padding:clamp(22px,3.4vw,34px);max-width:620px;width:100%;
  max-height:90vh;overflow-y:auto;box-shadow:0 40px 80px -30px rgba(28,26,23,.6);
  animation:cbmRise .28s cubic-bezier(.2,.8,.3,1);}
@keyframes cbmFade{from{opacity:0;}to{opacity:1;}}
@keyframes cbmRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
.cbm__x{position:absolute;top:12px;right:14px;width:36px;height:36px;border-radius:50%;
  border:none;background:var(--bone,#F3EEE5);color:var(--ink-2);font-size:1.5rem;line-height:1;
  cursor:pointer;transition:background .15s,color .15s;}
.cbm__x:hover{background:var(--in-soft);color:var(--in-deep);}
.cbm__box h2{font-size:clamp(1.35rem,2.6vw,1.8rem);margin-bottom:8px;}
.cbm__lead{color:var(--ink-2);font-size:.96rem;margin-bottom:4px;}
.cbm__alt{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px;
  padding-top:16px;border-top:1.5px solid var(--line);}
.cbm__no{background:none;border:none;font:inherit;font-size:.85rem;color:var(--ink-3);
  text-decoration:underline;cursor:pointer;padding:6px 0;}
.cbm__no:hover{color:var(--ink);}
.cbm .cbf{margin-top:14px;padding-top:14px;}
@media(prefers-reduced-motion:reduce){.cbm__scrim,.cbm__box{animation:none;}}


/* ── Result filters ──────────────────────────────── */
.flt{background:var(--card);border:2px solid var(--line);border-radius:18px;
  padding:14px 18px;margin-bottom:18px;}
.flt__row{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;}
.flt__g{display:flex;flex-direction:column;min-width:150px;}
.flt__g--wide{min-width:200px;}
.flt label{font-size:.64rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ink-3);margin-bottom:5px;}
.flt select{font:inherit;font-size:.9rem;color:var(--ink);background:var(--paper);
  border:1.5px solid var(--line);border-radius:10px;padding:9px 12px;outline:none;cursor:pointer;}
.flt select:focus{border-color:var(--in-mid);}
.flt__clear{font-size:.82rem;color:var(--in-deep);text-decoration:underline;padding-bottom:10px;}
.flt__air{position:relative;}
.flt__air summary{font:inherit;font-size:.9rem;background:var(--paper);border:1.5px solid var(--line);
  border-radius:10px;padding:9px 12px;cursor:pointer;list-style:none;}
.flt__air summary::-webkit-details-marker{display:none;}
.flt__air summary::after{content:"▾";float:right;color:var(--ink-3);}
.flt__air[open] summary{border-color:var(--in-mid);}
.flt__airbox{position:absolute;z-index:25;top:calc(100% + 5px);left:0;min-width:260px;
  background:var(--card);border:1.5px solid var(--in-mid);border-radius:14px;padding:10px;
  box-shadow:0 22px 44px -20px rgba(28,26,23,.45);max-height:280px;overflow-y:auto;}
.flt__chk{display:block;margin:0;}
.flt__chk input{position:absolute;opacity:0;}
.flt__chk span{display:flex;justify-content:space-between;gap:10px;align-items:center;
  font-size:.88rem;font-weight:500;color:var(--ink-2);text-transform:none;letter-spacing:0;
  padding:8px 10px;border-radius:9px;cursor:pointer;}
.flt__chk span i{font-style:normal;font-size:.75rem;color:var(--ink-3);}
.flt__chk span:hover{background:var(--in-pale);}
.flt__chk input:checked + span{background:var(--in-mid);color:#fff;font-weight:700;}
.flt__chk input:checked + span i{color:rgba(255,255,255,.75);}
@media(max-width:640px){.flt__g,.flt__g--wide{min-width:0;flex:1 1 45%;}}

/* ── Pagination ──────────────────────────────────── */
.pag{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  margin-top:22px;padding-top:18px;border-top:2px solid var(--line);}
.pag__b{font-weight:700;font-size:.92rem;text-decoration:none;color:var(--in-deep);
  border:1.5px solid var(--line);border-radius:40px;padding:10px 20px;transition:border-color .15s,background .15s;}
.pag__b:hover{border-color:var(--in-mid);background:var(--in-pale);}
.pag__b.is-off{color:var(--ink-3);border-color:var(--line);opacity:.5;cursor:not-allowed;}
.pag__n{font-size:.9rem;font-weight:600;color:var(--ink-2);}


/* ── Layovers, shown between the flights they sit between ── */
.sr__legs{counter-reset:none;}
.sr__leg{border-left:3px solid var(--in-soft);padding-left:13px;}
.sr__lay{display:flex;flex-direction:column;gap:2px;margin:2px 0 2px 0;padding:9px 13px;
  border-left:3px dashed var(--line);background:var(--na-pale);border-radius:0 10px 10px 0;}
.sr__layt{font-size:.84rem;font-weight:700;color:var(--ink-2);}
.sr__lay.is-tight{background:var(--warn-soft);border-left-color:var(--warn);}
.sr__lay.is-tight .sr__layt{color:#7A2E14;}
.sr__laywarn{font-size:.79rem;color:#7A2E14;}


/* ── Airline logos ───────────────────────────────── */
.sr__air{display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.sr__logo{height:22px;width:auto;max-width:52px;object-fit:contain;border-radius:3px;}
.sr__logofb{display:inline-flex;align-items:center;justify-content:center;height:22px;padding:0 8px;
  border-radius:5px;background:var(--in-soft);color:var(--in-deep);font-size:.72rem;font-weight:700;
  letter-spacing:.06em;}


/* ── Quote-this-flight modal ─────────────────────── */
.qm__pick{background:var(--na-pale);border:1.5px solid var(--na-soft);border-radius:16px;
  padding:15px 18px;margin:14px 0 16px;}
.qm__air{font-weight:700;font-size:.95rem;margin-bottom:5px;}
.qm__sum{font-size:.87rem;color:var(--ink-2);line-height:1.5;}
.qm__meta{display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  margin-top:10px;padding-top:10px;border-top:1px solid var(--na-soft);}
.qm__meta span{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);}
.qm__meta b{font-family:"Fraunces",Georgia,serif;font-size:1.35rem;color:var(--na-deep);}
.qmf__row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media(max-width:620px){.qmf__row{grid-template-columns:1fr;}}
.qmf__f{display:flex;flex-direction:column;}
.qmf__f--full{grid-column:1/-1;}
.qmf label{font-size:.64rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ink-3);margin-bottom:5px;}
.qmf input,.qmf textarea{font:inherit;font-size:.95rem;color:var(--ink);background:var(--paper);
  border:1.5px solid var(--line);border-radius:11px;padding:11px 13px;outline:none;width:100%;
  transition:border-color .15s;}
.qmf input:focus,.qmf textarea:focus{border-color:var(--in-mid);}
.qmf textarea{resize:vertical;}


/* ── Travellers & cabin picker ───────────────────── */
.dock__f{grid-template-columns:1.05fr 1.05fr .8fr .8fr 1fr auto;}
@media(max-width:1100px){.dock__f{grid-template-columns:1fr 1fr 1fr;}}
@media(max-width:820px){.dock__f{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.dock__f{grid-template-columns:1fr;}}
.dfld--pax{position:relative;}
.pax summary{list-style:none;cursor:pointer;font-weight:700;font-size:.96rem;color:var(--ink);
  padding:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pax summary::-webkit-details-marker{display:none;}
.pax summary::after{content:"▾";color:var(--ink-3);margin-left:6px;}
.pax__box{position:absolute;z-index:35;top:calc(100% + 10px);left:0;min-width:300px;
  background:var(--card);border:2px solid var(--na-deep);border-radius:18px;padding:16px;
  box-shadow:0 26px 50px -22px rgba(30,58,68,.5);}
@media(max-width:520px){.pax__box{left:auto;right:0;min-width:min(300px,86vw);}}
.pax__row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:9px 0;}
.pax__row + .pax__row{border-top:1px solid var(--line);}
.pax__row b{display:block;font-size:.94rem;}
.pax__row span{display:block;font-size:.76rem;color:var(--ink-3);text-transform:none;letter-spacing:0;font-weight:400;}
.pax__step{display:flex;align-items:center;gap:10px;flex:none;}
.pax__step button{width:32px;height:32px;border-radius:50%;border:1.5px solid var(--line);
  background:var(--card);color:var(--ink);font-size:1.05rem;line-height:1;cursor:pointer;
  transition:border-color .15s,background .15s;}
.pax__step button:hover:not(:disabled){border-color:var(--in-mid);background:var(--in-pale);}
.pax__step button:disabled{opacity:.32;cursor:not-allowed;}
.pax__step output{min-width:20px;text-align:center;font-weight:700;}
.pax__note{display:none;font-size:.76rem;color:var(--ink-2);background:var(--in-pale);
  border-radius:10px;padding:9px 11px;margin:10px 0 0;}
.pax__cabin{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);}
.pax__cabin label{display:block;font-size:.64rem;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink-3);margin-bottom:5px;}
.pax__cabin select{width:100%;font:inherit;font-size:.94rem;font-weight:700;color:var(--ink);
  background:var(--paper);border:1.5px solid var(--line);border-radius:10px;padding:9px 12px;
  outline:none;cursor:pointer;}
.pax__cabin select:focus{border-color:var(--in-mid);}
.pax__done{width:100%;margin-top:12px;}


/* ── Flash bar ───────────────────────────────────── */
.flash{position:sticky;top:0;z-index:55;color:#fff;transition:opacity .5s,transform .5s;}
.flash.is-going{opacity:0;transform:translateY(-8px);}
.flash--ok{background:var(--ok);}
.flash--err{background:var(--warn);}
.flash__in{display:flex;align-items:flex-start;gap:12px;padding-block:14px;}
.flash__i{width:24px;height:24px;flex:none;margin-top:1px;}
.flash__in b{display:block;font-size:1rem;}
.flash__in span{display:block;font-size:.9rem;opacity:.94;}
.flash__in a{color:#fff;font-weight:700;}
.flash__x{margin-left:auto;background:none;border:none;color:#fff;font-size:1.6rem;line-height:1;
  cursor:pointer;opacity:.75;padding:0 4px;}
.flash__x:hover{opacity:1;}


/* ── In-modal confirmation ───────────────────────── */
.cbm__done{text-align:center;padding:8px 4px 4px;}
.cbm__done h2{margin-bottom:10px;}
.cbm__done p{color:var(--ink-2);font-size:.96rem;max-width:44ch;margin:0 auto 20px;}
.cbm__done a{color:var(--in-deep);font-weight:700;}
.cbm__done .btn{min-width:200px;}


/* ── Interactive tick — draws itself, then dismisses ── */
.tickbtn{display:block;width:76px;height:76px;margin:6px auto 12px;padding:0;
  background:none;border:none;cursor:pointer;border-radius:50%;
  transition:transform .18s cubic-bezier(.2,.8,.3,1);}
.tickbtn svg{width:100%;height:100%;overflow:visible;}
.tickbtn__ring{fill:var(--ok-soft);stroke:var(--ok);stroke-width:2.5;
  transform-origin:center;transition:fill .18s;}
.tickbtn__mark{fill:none;stroke:var(--ok);stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:44;stroke-dashoffset:44;
  animation:tickDraw .5s .12s cubic-bezier(.65,0,.45,1) forwards;transition:stroke .18s;}
@keyframes tickDraw{to{stroke-dashoffset:0;}}
.tickbtn:hover{transform:scale(1.07);}
.tickbtn:active{transform:scale(.96);}
.tickbtn:hover .tickbtn__ring,.tickbtn:focus-visible .tickbtn__ring{fill:var(--ok);}
.tickbtn:hover .tickbtn__mark,.tickbtn:focus-visible .tickbtn__mark{stroke:#fff;}
.tickbtn:focus-visible{outline:3px solid var(--ok);outline-offset:4px;}
.tickbtn__hint{display:block;text-align:center;font-size:.8rem;color:var(--ink-3);}
@media(prefers-reduced-motion:reduce){
  .tickbtn__mark{animation:none;stroke-dashoffset:0;}
  .tickbtn{transition:none;}
}


/* A route with no captured fare says so plainly rather than showing a blank. */
.mapcard__p--none small{color:var(--ink-2);font-size:.86rem;letter-spacing:0;text-transform:none;font-weight:500;}
.mapcard__p small{display:block;font-size:.66rem;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-3);margin-top:3px;line-height:1.5;}


/* ── Gateway field (replaces the map silhouette) ─── */
.mapfield{background:linear-gradient(170deg,var(--na-pale),var(--in-pale));
  border-radius:26px;padding:10px;}
.mapguide{stroke:var(--in-mid);stroke-width:.6;opacity:.13;}
.mapcompass{font-family:"DM Sans",sans-serif;font-size:9px;font-weight:700;
  letter-spacing:.18em;fill:var(--ink-3);}


/* ── Long-form documents (privacy, about) ────────── */
.doc{max-width:74ch;}
.doc h2{font-size:clamp(1.4rem,2.6vw,1.85rem);margin:34px 0 12px;}
.doc h2:first-child{margin-top:0;}
.doc h3{font-size:1.08rem;margin:22px 0 8px;}
.doc p{color:var(--ink-2);}
.doc ul{color:var(--ink-2);padding-left:20px;margin:0 0 1em;}
.doc li{margin-bottom:7px;}
.doc a{color:var(--in-deep);font-weight:600;}
.doc b{color:var(--ink);}
.doc__note{background:var(--na-pale);border-left:4px solid var(--na-mid);border-radius:0 14px 14px 0;
  padding:18px 22px;margin-top:34px;font-size:.94rem;color:var(--ink-2);}
.doc__cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px;}

/* ── Contact cards ───────────────────────────────── */
.ccards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
@media(max-width:880px){.ccards{grid-template-columns:1fr;}}
.ccard{display:flex;flex-direction:column;background:var(--card);border:2px solid var(--line);
  border-radius:22px;padding:26px;text-decoration:none;color:inherit;
  transition:border-color .18s,transform .18s;}
.ccard:hover{border-color:var(--in-mid);transform:translateY(-3px);}
.ccard--wa:hover{border-color:var(--ok);}
.ccard__k{font-size:.68rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-3);}
.ccard__v{font-family:"Fraunces",Georgia,serif;font-size:1.5rem;color:var(--in-deep);margin:4px 0 10px;line-height:1.2;}
.ccard--wa .ccard__v{color:var(--ok);}
.ccard__s{font-size:.9rem;color:var(--ink-2);}
.offices{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:10px;}
@media(max-width:620px){.offices{grid-template-columns:1fr;}}
.office{background:var(--na-pale);border-radius:16px;padding:20px 22px;}
.office__k{display:block;font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-3);margin-bottom:8px;}
.office p{margin:0;color:var(--ink-2);font-size:.95rem;}


/* ── Multi-city rows ─────────────────────────────── */
.mc{padding:6px 8px 8px;}
.mc__rows{display:flex;flex-direction:column;gap:6px;}
.mc__row{display:grid;grid-template-columns:26px 1.1fr 1.1fr .9fr 34px;gap:6px;align-items:end;}
@media(max-width:820px){
  .mc__row{grid-template-columns:26px 1fr 1fr;}
  .mc__row .dfld:nth-of-type(3){grid-column:2/-1;}
  .mc__x{grid-row:1;grid-column:3;justify-self:end;}
}
@media(max-width:520px){
  .mc__row{grid-template-columns:26px 1fr;}
  .mc__row .dfld{grid-column:2;}
  .mc__x{grid-row:1;grid-column:2;justify-self:end;}
}
.mc__n{display:flex;align-items:center;justify-content:center;width:26px;height:38px;
  font-size:.8rem;font-weight:700;color:var(--ink-3);}
.mc__x{width:34px;height:38px;border:none;background:none;color:var(--ink-3);font-size:1.4rem;
  line-height:1;cursor:pointer;border-radius:10px;transition:background .15s,color .15s;}
.mc__x:hover{background:var(--in-pale);color:var(--in-deep);}
.mc__foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 4px 2px;}
.mc__add{font:inherit;font-size:.88rem;font-weight:700;color:var(--in-deep);background:none;
  border:1.5px dashed var(--in-mid);border-radius:40px;padding:9px 18px;cursor:pointer;
  transition:background .15s;}
.mc__add:hover{background:var(--in-pale);}
.mc__hint{font-size:.78rem;color:var(--ink-3);}
.mc__foot .dock__go{margin-left:auto;padding:0;}


/* ── Skip link ───────────────────────────────────── */
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--na-deep);color:#fff;
  font-weight:700;padding:14px 22px;border-radius:0 0 12px 0;text-decoration:none;}
.skip:focus{left:0;}

/* Visible label inside the multi-city rows (the real label is aria-label,
   because these rows get cloned and duplicate ids would break everything). */
.dfld__lab{display:block;font-size:.63rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-3);margin-bottom:2px;}

/* ── Touch targets ───────────────────────────────────
   On a finger, 32px controls are a miss-tap waiting to happen. Only applied
   to coarse pointers so the desktop layout stays tight. Most of this
   audience is on a phone. */
@media (pointer: coarse) {
  .btn{min-height:48px;}
  .btn--sm{min-height:44px;}
  .curr button{min-height:44px;padding-inline:16px;}
  .seg button,.dock__seg button,.qf__trip span,.prot__tab{min-height:46px;}
  .pax__step button{width:44px;height:44px;}
  .dfld input,.dfld select,.qf input,.qf select,.cbf input,.cbf select,
  .qmf input,.qmf textarea,.flt select,.bpanel__in input{min-height:46px;}
  .ac__opt{min-height:52px;}
  .mc__x{width:44px;height:44px;}
  .nav__links a{padding-block:14px;}
  .foot a,.maplist a{display:inline-block;padding-block:6px;}
  .cbm__x{width:44px;height:44px;}
  .sr__det summary,.flt__air summary{min-height:44px;display:flex;align-items:center;}
}

/* ── Focus visibility ────────────────────────────────
   A keyboard user must always be able to see where they are. */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{
  outline:3px solid var(--in-mid);outline-offset:2px;border-radius:4px;
}
.pin:focus-visible{outline:none;}
.pin:focus-visible .dot{stroke:var(--in-deep);stroke-width:3;}

/* Respect a user's motion preference across everything, not just avatars. */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;scroll-behavior:auto !important;}
}


/* ── Multi-city: hide the simple row properly ────────
   .dock__f is display:grid, which overrides the browser's [hidden] rule.
   Both are set so it stays hidden with or without JS class support. */
.dock__f[hidden],.dock__f.is-hidden{display:none !important;}

/* The travellers picker and Search button move into this row in multi-city. */
.mc__foot{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;}
.mc__foot .dfld--pax{min-width:210px;}
.mc__foot .dock__go{margin-left:auto;padding:0;}
@media(max-width:820px){
  .mc__foot{gap:10px;}
  .mc__foot .dfld--pax{flex:1 1 100%;min-width:0;}
  .mc__foot .mc__add{flex:1 1 auto;}
  .mc__foot .dock__go{flex:1 1 100%;margin-left:0;}
  .mc__foot .dock__go .btn{width:100%;}
  .mc__hint{flex:1 1 100%;order:99;}
}


/* ── Small screens: the nav must fit the phone ────────
   Logo + menu + three currency buttons + Call us is wider than 390px, which
   pushed the page sideways and clipped the logo and hero labels.
   The floating call button is always on screen, so the nav one is redundant
   here rather than shrunk to the point of being unreadable. */
@media (max-width: 620px) {
  .nav__cta .btn{display:none;}
  .nav__in{gap:10px;}
  .nav__cta{gap:6px;padding-left:0;}
  .curr button{padding:8px 11px;font-size:.72rem;}
}
@media (max-width: 380px) {
  .logo img{height:32px;}
  .curr button{padding:8px 9px;font-size:.68rem;}
}

/* Nothing should ever be able to push the page sideways. */
html{overflow-x:hidden;}
.wrap,.split__in,.dock,.sr,.flt,.cbm__box{max-width:100%;}
img,svg{max-width:100%;}


/* Live Trustpilot count sits between the caveat and the link. */
.tp__live{flex:1 1 220px;min-width:200px;display:flex;align-items:center;}
.tp__live .trustpilot-widget{width:100%;}
@media(max-width:640px){.tp__live{flex:1 1 100%;justify-content:center;}}


/* ── Social links in the footer ──────────────────── */
.social{display:flex;gap:10px;margin-top:16px;}
.social a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;
  border-radius:50%;border:1.5px solid var(--line);color:var(--ink-2);
  transition:border-color .15s,color .15s,background .15s,transform .15s;}
.social a:hover{border-color:var(--in-mid);color:var(--in-deep);background:var(--in-pale);
  transform:translateY(-2px);}
.social svg{width:19px;height:19px;}
@media (pointer: coarse){.social a{width:44px;height:44px;}}


/* WhatsApp keeps its own colour in the footer row — it is a contact channel
   rather than a social profile, and people scan for the green. */
.social a.social--wa{border-color:var(--ok);color:var(--ok);}
.social a.social--wa:hover{border-color:#1F6248;color:#fff;background:var(--ok);}


/* Each channel in its own brand colour: outlined at rest, filled on hover.
   Instagram is a gradient rather than a flat colour, so the hover uses its
   real one — purple through pink to orange. */
.social a.social--fb{border-color:#1877F2;color:#1877F2;}
.social a.social--fb:hover{border-color:#1877F2;background:#1877F2;color:#fff;}

.social a.social--ig{border-color:#D62976;color:#D62976;}
.social a.social--ig:hover{border-color:transparent;color:#fff;
  background:radial-gradient(circle at 30% 107%,#FDF497 0%,#FD5949 45%,#D6249F 60%,#285AEB 90%);}


/* ── Lowest Fare Guarantee, footer ───────────────── */
.foot__promise{background:var(--in-pale);border:1.5px solid var(--in-soft);border-radius:16px;
  padding:18px 22px;margin-top:34px;max-width:78ch;}
.foot__promise b{display:block;font-size:.7rem;font-weight:700;letter-spacing:.15em;
  text-transform:uppercase;color:var(--in-deep);margin-bottom:8px;}
.foot__promise p{margin:0 0 8px;font-size:.86rem;color:var(--ink-2);line-height:1.6;}
.foot__promise p:last-child{margin-bottom:0;}
.foot__promise p b{display:inline;font-size:inherit;letter-spacing:0;text-transform:none;
  color:var(--ink);margin:0;}
.foot__promise a{color:var(--in-deep);font-weight:700;}
.foot__promise-how{font-size:.8rem !important;color:var(--ink-3) !important;}
