@font-face{font-family:"Satoshi";src:url(/assets/satoshi-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Satoshi";src:url(/assets/satoshi-700.woff2) format("woff2");font-weight:700;font-display:swap}
:root{
  --red:#A92619; --blue:#194B8A; --ink:#16283F; --cloud:#EEF3F9; --warm:#F8F5F0; --white:#fff;
  --muted:#566477; --line:#D8E1EC;
  --font:"Satoshi",Arial,sans-serif;
  --r:20px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--white);color:var(--ink);font:400 17px/1.55 var(--font);-webkit-font-smoothing:antialiased}
a{color:inherit}
img{max-width:100%}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:1320px;margin:0 auto;padding:0 32px}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
h2{font-weight:700;font-size:clamp(30px,3.2vw,44px);line-height:1.1;letter-spacing:-.02em;margin:0 0 16px}
h3{font-weight:700;font-size:21px;line-height:1.25;margin:0 0 8px}
.kicker{display:flex;align-items:center;gap:12px;font-size:14px;font-weight:700;color:var(--blue);margin:0 0 16px}
.intro{font-size:19px;color:#33435a;max-width:58ch;margin:0}
.sec{padding:96px 0}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:44px}
.more{font-weight:700;color:var(--blue);text-decoration:none;white-space:nowrap;border-bottom:2px solid currentColor;padding-bottom:2px}
.more:hover{color:var(--ink)}

/* Header */
.top{position:relative;z-index:5;background:var(--white)}
.top .wrap{display:flex;align-items:center;gap:28px;height:104px}
.logo{display:block;width:300px;flex:none}
.logo img{display:block;width:100%;height:auto}
.nav{display:flex;gap:22px;margin-left:auto;font-size:15px;white-space:nowrap}
.nav a{text-decoration:none;color:var(--ink);padding:6px 0}
.nav a:hover{color:var(--blue)}
.callbtn{display:inline-flex;align-items:center;gap:10px;height:48px;padding:0 20px;border-radius:999px;background:var(--blue);color:#fff;text-decoration:none;font-weight:700;font-size:15px;white-space:nowrap}
.callbtn svg{width:18px;height:18px;flex:none}
.callbtn:hover{background:#123a6d}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:56px;padding:0 26px;border:0;border-radius:999px;font:700 16px var(--font);text-decoration:none;cursor:pointer}
.btn svg{width:20px;height:20px;flex:none}
.btn-primary{background:var(--blue);color:#fff}
.btn-primary:hover{background:#123a6d}
.btn-soft{background:var(--cloud);color:var(--blue)}
.btn-soft:hover{background:#e1e9f3}
.btn-white{background:#fff;color:var(--ink)}
.btn-white:hover{background:var(--cloud)}

/* Hero */
.hero{padding:8px 0 72px}
.hero .wrap{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:56px;align-items:center}
h1{font-weight:700;font-size:clamp(38px,4.3vw,60px);line-height:1.04;letter-spacing:-.025em;margin:0 0 20px}
.lead{font-size:19px;line-height:1.55;color:#33435a;max-width:36ch;margin:0 0 28px}
.quote{background:var(--white);border-radius:18px;padding:20px;box-shadow:0 0 0 1px var(--line),0 18px 40px rgba(22,40,63,.08);margin-bottom:24px}
.qgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.quote label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;color:var(--ink)}
.quote input,.quote select{height:48px;border:0;border-radius:12px;background:var(--cloud);padding:0 14px;font:400 16px var(--font);color:var(--ink);width:100%;appearance:none}
.quote select{background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 20px) 21px,calc(100% - 15px) 21px;background-size:5px 5px;background-repeat:no-repeat;padding-right:36px}
.quote input::placeholder{color:#7d8a9c}
.quote input:focus,.quote select:focus{outline:2px solid var(--blue);outline-offset:0}
.qact{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px}
.qact .btn{flex:1 1 auto}
.qact small{font-size:14px;color:var(--muted)}
.qact small a{color:var(--blue);font-weight:700;text-decoration:none}
.trust{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 26px;font-size:15px}
.trust li{display:flex;align-items:center;gap:8px}
.star{color:var(--red)}

/* Stage */
.visual{position:relative}
.stage{position:relative;aspect-ratio:16/11.6;border-radius:var(--r);overflow:hidden;background:radial-gradient(120% 90% at 50% 40%,#fbfcfe 0%,var(--cloud) 70%,#e6edf6 100%);isolation:isolate}
.stage svg.map{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0}
.stage.is-ready svg.map{opacity:1;animation:mapIn .8s ease-out}
@keyframes mapIn{from{opacity:0}}
.land{fill:#dbe4ef}
.dots{fill:none;stroke:var(--blue);stroke-linecap:round;opacity:.26}
.home{fill:var(--blue);opacity:.16}
.ctry{fill:var(--blue);opacity:0}
.ctry.seen{opacity:.12;transition:opacity .8s}
.ov{position:absolute;left:0;top:0;will-change:transform;pointer-events:none}
.pin{width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:#fff;box-shadow:0 0 0 2.5px var(--blue)}
.pin.seen{background:var(--blue)}
.adl{width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--red);box-shadow:0 0 0 4px #fff}
.adl::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--red);animation:ping 2.4s ease-out infinite}
.adl span{position:absolute;left:20px;top:-6px;font-size:13px;font-weight:700;white-space:nowrap;background:#fff;padding:2px 9px;border-radius:999px;box-shadow:0 2px 10px rgba(22,40,63,.08)}
@keyframes ping{0%{transform:scale(1);opacity:.7}100%{transform:scale(3.2);opacity:0}}
.plane,.shadow{width:var(--pw);height:auto;transform-origin:50% 50%;opacity:0}
.plane{z-index:4}.shadow{z-index:3}
.mon{z-index:2;transform-origin:50% 100%}
.mon img{display:block;width:100%;height:auto;opacity:0;transform:translateY(18%) scale(.55);transform-origin:50% 100%}
.mon .ground{position:absolute;left:8%;right:8%;bottom:-5%;height:12%;border-radius:50%;background:radial-gradient(closest-side,rgba(22,40,63,.32),rgba(22,40,63,0));opacity:0;transform:scale(.4)}
.mon.is-on img{animation:rise .95s cubic-bezier(.16,1.18,.32,1) forwards}
.mon.is-on .ground{animation:groundIn .9s ease-out forwards}
.mon.is-off img{animation:sink .5s cubic-bezier(.5,0,.75,0) forwards}
.mon.is-off .ground{animation:groundOut .45s ease-in forwards}
.mon.is-static img,.mon.is-static .ground,.review .mon.is-on img,.review .mon.is-on .ground{animation:none;opacity:1;transform:none}
@keyframes rise{0%{opacity:0;transform:translateY(22%) scale(.5)}35%{opacity:1}100%{opacity:1;transform:none}}
@keyframes sink{0%{opacity:1;transform:none}100%{opacity:0;transform:translateY(10%) scale(.82)}}
@keyframes groundIn{to{opacity:1;transform:none}}
@keyframes groundOut{from{opacity:1;transform:none}to{opacity:0;transform:scale(.5)}}
.cap{z-index:5}
.cap div{background:#fff;border-radius:14px;padding:9px 16px 10px;box-shadow:0 8px 28px rgba(22,40,63,.14);white-space:nowrap;text-align:center;opacity:0;translate:0 8px;transition:opacity .45s,translate .55s cubic-bezier(.2,1,.3,1)}
.cap.is-on div{opacity:1;translate:0 0}
.review .cap div{transition:none}
.cap b{display:block;font-size:16px;line-height:1.2}
.cap small{display:block;font-size:13px;line-height:1.3;color:var(--muted)}
.ctrl{position:absolute;right:14px;top:14px;z-index:6;display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px 0 12px;border:0;border-radius:999px;background:rgba(255,255,255,.92);color:var(--ink);font:700 13px var(--font);cursor:pointer;box-shadow:0 2px 12px rgba(22,40,63,.1)}
.ctrl svg{width:14px;height:14px}
.ctrl[hidden]{display:none}

/* Split-flap board: Ink board, white tiles, Ink type (brand palette) */
.board{position:relative;z-index:3;margin:-36px 0 0;background:var(--ink);border-radius:14px;padding:18px 22px 16px;color:#fff;box-shadow:0 24px 60px rgba(22,40,63,.3);container-type:inline-size}
.bhead{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-bottom:10px;margin-bottom:12px;border-bottom:1px solid rgba(255,255,255,.85)}
.bhead .t{font-size:22px;font-weight:700;letter-spacing:-.01em;margin:0}
.bhead .clk{font-size:14px;color:rgba(255,255,255,.78)}
.cols,.row{display:grid;gap:0 var(--gap,14px);align-items:center}
.cols{font-size:14px;margin:0 0 8px 12px}
#rows{padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.85)}
/* Reserved row height = tile height + padding, so swapping the static rows for tiles never shifts layout. */
.row{position:relative;padding:4px 0 4px 12px;height:calc(var(--chh,calc(1.42 * (100cqw - 186px) / 32)) + 8px)}
.row::before{content:"";position:absolute;left:0;top:7px;bottom:7px;width:3px;border-radius:2px;background:transparent;transition:background .3s}
.row.is-active::before{background:var(--red)}
.board:not(.is-live) .cols{grid-template-columns:9fr 3fr 5fr 7fr 8fr}
.board:not(.is-live) .row{grid-template-columns:9fr 3fr 5fr 7fr 8fr;font-weight:700;letter-spacing:.12em}
.board:not(.is-live) .row:nth-child(n+5){display:none}
.bnote{margin:10px 0 0;font-size:12.5px;color:rgba(255,255,255,.7)}
.field{display:flex;gap:var(--cg)}
.c{position:relative;width:var(--cw);height:var(--chh);perspective:240px;font-weight:700;font-size:var(--fs);color:var(--ink);text-transform:uppercase;font-variant-numeric:tabular-nums}
.c .h{position:absolute;left:0;right:0;height:50%;overflow:hidden;backface-visibility:hidden}
.c .h>i{display:block;height:200%;line-height:var(--chh);text-align:center;font-style:normal}
.c .tp{top:0;border-radius:2px 2px 0 0;transform-origin:50% 100%;background:linear-gradient(#fff,#f0f3f7)}
.c .bt{bottom:0;border-radius:0 0 2px 2px;transform-origin:50% 0;background:linear-gradient(#e8edf3,#dde4ec)}
.c .bt>i{transform:translateY(-50%)}
.c::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;margin-top:-.5px;background:rgba(22,40,63,.5);z-index:3}
.c .fl{z-index:2;visibility:hidden}
.st .c{transition:color .3s}
.st.departed .c,.st.landed .c{color:#fff}
.st.departed .c .tp{background:linear-gradient(#22579a,#1d4e8d)}
.st.departed .c .bt{background:linear-gradient(#1a4a86,#17437a)}
.st.landed .c .tp{background:linear-gradient(#b52c1e,#aa271a)}
.st.landed .c .bt{background:linear-gradient(#a02417,#931f13)}
@container (max-width:520px){
  .row{height:calc(var(--chh,calc(1.42 * (100cqw - 75px) / 17)) + 8px);padding-left:9px}
  .cols{font-size:12px;margin-left:9px}
}

/* Reviews */
.reviews{background:var(--cloud);padding:72px 0}
.rv-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;margin-bottom:32px}
.rating{display:flex;align-items:center;gap:18px}
.rating .big{font-size:56px;font-weight:700;line-height:1;letter-spacing:-.03em}
.rating .stars{color:var(--red);font-size:20px;letter-spacing:3px}
.rating p{margin:2px 0 0;font-size:15px;color:var(--muted)}
.rv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.rv{background:#fff;border-radius:16px;padding:24px;display:flex;flex-direction:column;gap:14px;margin:0}
.rv blockquote{margin:0;font-size:16.5px;line-height:1.5}
.rv figcaption{margin-top:auto;font-size:14px;color:var(--muted)}
.rv figcaption b{color:var(--ink)}
.rv .stars{color:var(--red);letter-spacing:2px;font-size:14px}

/* Where we fly */
.regions{display:grid;grid-template-columns:1.25fr 1fr 1fr;grid-auto-rows:minmax(232px,auto);gap:20px}
.reg{position:relative;display:flex;flex-direction:column;justify-content:flex-start;border-radius:20px;background:var(--cloud);padding:26px 26px 0;text-decoration:none;overflow:hidden;transition:transform .3s cubic-bezier(.2,1,.3,1),box-shadow .3s}
.reg:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(22,40,63,.12)}
.reg p{margin:0;font-size:15px;color:var(--muted);max-width:24ch}
.reg img{display:block;margin:auto auto 0;height:150px;width:auto;object-fit:contain;transition:transform .5s cubic-bezier(.2,1,.3,1)}
.reg:hover img{transform:translateY(-6px) scale(1.03)}
.reg.india{grid-row:span 3;background:var(--blue);color:#fff;padding:34px 34px 0}
.reg.india h3{font-size:34px;letter-spacing:-.02em}
.reg.india p{color:rgba(255,255,255,.85);font-size:17px;max-width:32ch}
.reg.india .tag{align-self:flex-start;background:#fff;color:var(--red);font-size:13px;font-weight:700;border-radius:999px;padding:5px 12px;margin-bottom:16px}
.reg.india img{height:min(420px,46vw);margin-top:24px}
.reg.india .cta{display:inline-flex;margin-top:18px;font-weight:700;border-bottom:2px solid #fff;align-self:flex-start;padding-bottom:2px}

/* India */
.india-sec{background:var(--warm)}
.india-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:start}
.routes{list-style:none;padding:0;margin:28px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.routes a{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#fff;border-radius:14px;padding:16px 18px;text-decoration:none;font-weight:700;transition:background .2s}
.routes a span{font-weight:400;font-size:14px;color:var(--muted)}
.routes a:hover{background:var(--cloud)}
.parents{margin-top:20px;background:var(--ink);color:#fff;border-radius:20px;padding:30px;display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center}
.parents p{margin:0;color:rgba(255,255,255,.82);font-size:16px}
.parents h3{font-size:24px}
.fest{background:#fff;border-radius:20px;padding:30px;position:relative;overflow:hidden}
.fest h3{font-size:24px}
.fest ol{list-style:none;margin:18px 0 0;padding:0}
.fest li{display:grid;grid-template-columns:76px 1fr;gap:16px;padding:16px 0;border-top:1px solid var(--line)}
.fest time{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--cloud);border-radius:12px;height:68px;font-weight:700;line-height:1.1}
.fest time b{font-size:24px}
.fest time small{font-size:12px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}
.fest li strong{display:block;font-size:17px}
.fest li span{font-size:15px;color:var(--muted)}
.fest .alert{margin:18px 0 0;padding:14px 16px;border-radius:12px;background:#fbeceb;color:#7d1c12;font-size:15px}
.india-art{display:flex;justify-content:center;gap:6%;margin-top:28px}
.india-art img{height:190px;width:auto}

/* How we quote */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;counter-reset:s}
.step{background:var(--cloud);border-radius:20px;padding:30px}
.step::before{counter-increment:s;content:counter(s);display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--blue);color:#fff;font-weight:700;margin-bottom:22px}
.step p{margin:0;color:#33435a}
.btf{margin-top:20px;display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center;background:var(--red);color:#fff;border-radius:20px;padding:34px 38px}
.btf h3{font-size:28px;letter-spacing:-.01em}
.btf p{margin:0;font-size:17px;color:rgba(255,255,255,.9);max-width:60ch}
.btf .btn-white{color:var(--red)}

/* From your city */
.cities{background:var(--cloud)}
.city-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px}
.city{background:#fff;border-radius:18px;padding:24px}
.city h3{font-size:19px;margin-bottom:12px}
.city ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:15.5px}
.city a{text-decoration:none;color:var(--ink)}
.city a:hover{color:var(--blue);text-decoration:underline}
.interstate{margin:28px 0 0;font-size:17px}
.interstate a{font-weight:700;color:var(--blue);text-decoration:none}

/* Office */
.office-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start}
.office-grid>*,.india-grid>*,.hero .wrap>*{min-width:0}
.facts{display:grid;gap:26px;margin-top:28px}
.facts h3{font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.facts p{margin:0}
.hours{border-collapse:collapse;width:100%;max-width:380px;font-size:16px}
.hours th{text-align:left;font-weight:400;padding:6px 0}
.hours td{text-align:right;font-weight:700;padding:6px 0}
.hours tr+tr{border-top:1px solid var(--line)}
.phones{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.phones a{font-weight:700;color:var(--blue);text-decoration:none}
.office-media{display:grid;grid-template-rows:auto auto;gap:20px}
.ph{display:grid;place-items:center;text-align:center;border-radius:20px;background:repeating-linear-gradient(135deg,var(--cloud) 0 14px,#e7edf5 14px 28px);color:var(--muted);font-size:15px;padding:24px}
.ph b{display:block;color:var(--ink);font-size:17px}
.ph.photo{aspect-ratio:16/9}
.ph.map{aspect-ratio:16/7}

/* Footer */
.foot{background:var(--ink);color:rgba(255,255,255,.82);padding:72px 0 40px;font-size:15px}
.foot-grid{display:grid;grid-template-columns:1.3fr 2fr 1fr;gap:40px}
.foot ul.two{display:block;columns:2;column-gap:40px}
.foot ul.two li{margin-bottom:8px;break-inside:avoid}
.foot img{width:240px;height:auto;display:block;margin-bottom:20px}
.foot h2{font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:#fff;margin:0 0 14px}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.foot a{color:#fff;text-decoration:none}
.foot a:hover{text-decoration:underline}
.foot p{margin:0 0 10px}
.legal{margin-top:48px;padding-top:24px;border-top:1px solid rgba(255,255,255,.18);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:13.5px;color:rgba(255,255,255,.65)}

.mbar{display:none}

@media (max-width:1480px){ .logo{width:260px} .nav{gap:18px;font-size:14px} }
@media (max-width:1180px){
  .nav{display:none}
  .rv-grid{grid-template-columns:repeat(2,1fr)}
  .city-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:1080px){
  .hero .wrap,.india-grid,.office-grid{grid-template-columns:1fr;gap:40px}
  .lead{max-width:46ch}
  .regions{grid-template-columns:1fr 1fr}
  .reg.india{grid-column:1/-1;grid-row:auto}
  .reg.india img{height:300px}
  .steps{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  body{font-size:16px;padding-bottom:76px}
  .wrap{padding:0 16px}
  .sec{padding:64px 0}
  .sec-head{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:28px}
  .top .wrap{height:76px;gap:12px}
  .logo{width:208px}
  .callbtn{height:44px;padding:0 14px;margin-left:auto}
  .callbtn .lbl{display:none}
  .hero{padding:4px 0 40px}
  .hero .wrap{gap:28px}
  h1{font-size:36px;margin-bottom:14px}
  .lead{font-size:17px;margin-bottom:20px}
  .qgrid{grid-template-columns:1fr 1fr}
  .qact .btn{width:100%}
  .trust{gap:8px 18px;font-size:14px}
  .visual{margin:0 -16px}
  .stage{aspect-ratio:1/1.02;border-radius:0}
  .board{margin:-40px 12px 0;padding:14px 12px 14px;border-radius:14px}
  .bhead .t{font-size:18px}.bhead .clk{font-size:12px}
  .cap b{font-size:14px}.cap small{font-size:12px}
  .reviews{padding:56px 0}
  .rv-grid{grid-template-columns:1fr}
  .regions{grid-template-columns:1fr;grid-auto-rows:auto}
  .reg{min-height:220px}
  .reg img{height:130px}
  .routes{grid-template-columns:1fr}
  .parents,.btf{grid-template-columns:1fr;padding:26px}
  .india-art img{height:140px}
  .city-grid{grid-template-columns:1fr 1fr}
  .foot-grid{grid-template-columns:1fr}
  .mbar{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:20;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -6px 24px rgba(22,40,63,.1)}
  .mbar a{display:flex;align-items:center;justify-content:center;gap:6px;height:48px;border-radius:12px;font-weight:700;font-size:14px;text-decoration:none;background:var(--cloud);color:var(--blue)}
  .mbar a.p{background:var(--blue);color:#fff}
  .mbar svg{width:18px;height:18px}
}
@media (prefers-reduced-motion:reduce){
  .adl::after{animation:none;opacity:0}
  .reg,.reg img{transition:none}
}

/* ---------- Live price, fare board, route pages, guides (concatenated after site.css) ---------- */
.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#1f9d55;box-shadow:0 0 6px 1px rgba(31,157,85,.7);animation:live 1.2s ease-in-out infinite;flex:none;margin-right:2px}
@keyframes live{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.15;transform:scale(.8);box-shadow:none}}
.trust .live-dot{margin-right:0}
.q-title{display:flex;align-items:center;gap:8px;margin:0 0 14px;font-weight:700;font-size:16px}
.rv-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.rv-actions .btn{height:46px;padding:0 20px;font-size:15px}
.rv-src{margin:18px 0 0;font-size:13px;color:var(--muted)}
.rv figcaption a{color:inherit}

/* Live fare board */
.fareboard{background:var(--white)}
.fb{position:relative}
.fb-in{position:absolute;opacity:0;pointer-events:none}
.fb-tabs{display:flex;flex-wrap:wrap;gap:8px}
.fb-tab{display:inline-flex;align-items:center;height:44px;padding:0 18px;border-radius:999px;background:var(--cloud);color:var(--ink);font-weight:700;font-size:15px;cursor:pointer;margin-bottom:16px}
.fb-in:focus-visible+.fb-tab{outline:3px solid var(--blue);outline-offset:2px}
.fb-in:checked+.fb-tab{background:var(--ink);color:#fff}
.fb-boards{flex:1 0 100%;background:var(--ink);border-radius:18px;padding:22px 26px 14px;box-shadow:0 24px 60px rgba(22,40,63,.22);container-type:inline-size}
.fb-board{display:none}
#fb-adelaide:checked~.fb-boards [data-o=adelaide],#fb-melbourne:checked~.fb-boards [data-o=melbourne],#fb-sydney:checked~.fb-boards [data-o=sydney],#fb-brisbane:checked~.fb-boards [data-o=brisbane]{display:block}
.fb-row{display:grid;grid-template-columns:minmax(0,9.6fr) 3.4fr 4.5fr minmax(0,5.5fr) auto;gap:16px;align-items:center;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.12);--t:clamp(15px,2.1cqw,26px)}
.fb-row:last-child{border-bottom:0}
.fb-cols{color:#fff;font-size:14px;padding:0 0 10px;border-bottom:1px solid rgba(255,255,255,.85)}
.fb-cols span:last-child{text-align:center;min-width:150px}
.tl{display:inline-flex;gap:2.5px}
.tl i{position:relative;display:inline-grid;place-items:center;width:var(--t);height:calc(var(--t) * 1.42);font:700 calc(var(--t) * .88)/1 var(--font);font-style:normal;color:var(--ink);background:linear-gradient(#fff 0 50%,#e5eaf1 50% 100%);border-radius:2px;font-variant-numeric:tabular-nums}
.tl i::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(22,40,63,.5)}
.fb-dest{text-decoration:none;border-radius:4px}
.fb-dest:hover .tl i{background:linear-gradient(#fff 0 50%,#d8e3f0 50% 100%)}
.fb-air{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.fb-air .al{height:20px;width:auto;background:#fff;border-radius:4px;padding:3px 5px;box-sizing:content-box}
.fb-price{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:150px;height:44px;padding:0 16px;border-radius:8px;background:var(--red);color:#fff;font-weight:700;font-size:15px;text-decoration:none;letter-spacing:.02em;text-transform:uppercase}
.fb-price:hover{background:#8f1f14}
.fb-price .live-dot{background:#7dffb0;box-shadow:0 0 8px 2px rgba(125,255,176,.85)}
.fb-note{margin:14px 0 0;font-size:13px;color:var(--muted)}
@media (prefers-reduced-motion:no-preference){
  .fb-board .tl i{animation:flipIn .5s cubic-bezier(.3,1.3,.5,1) backwards;animation-delay:calc(var(--i) * 18ms)}
}
@keyframes flipIn{from{transform:perspective(200px) rotateX(-90deg);filter:brightness(.6)}}
@media (prefers-reduced-motion:reduce){.live-dot{animation:none}}

/* Breadcrumbs */
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:8px auto 0;padding:0;font-size:14px;color:var(--muted)}
.crumbs li+li::before{content:"/";margin-right:6px;color:#9aa6b6}
.crumbs a{color:var(--blue);text-decoration:none}

/* Route pages */
.r-hero{padding:24px 0 64px}
.r-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:56px;align-items:start}
.r-hero h1{font-size:clamp(36px,4vw,56px)}
.answer{font-size:19px;line-height:1.6;color:#33435a;margin:0 0 28px;max-width:60ch}
.facts-strip{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.facts-strip li{background:var(--cloud);border-radius:14px;padding:14px 16px}
.facts-strip span{display:block;font-size:13px;color:var(--muted)}
.facts-strip b{font-size:18px}
.r-sec{padding:72px 0}
.r-alt{background:var(--cloud)}
.ways{margin-top:28px;border-radius:18px;overflow:hidden;box-shadow:0 0 0 1px var(--line)}
.w-row{display:grid;grid-template-columns:1.1fr 1.6fr .8fr .8fr 2fr;gap:18px;padding:18px 22px;align-items:center;background:#fff}
.w-row+.w-row{border-top:1px solid var(--line)}
.w-head{background:var(--ink);color:#fff;font-size:14px;padding:14px 22px}
.w-al{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.w-al small{flex-basis:100%;font-size:13px;color:var(--muted)}
.al{height:22px;width:auto;display:inline-block;vertical-align:middle}
.al-txt{font-size:13px;font-weight:700;background:var(--cloud);border-radius:6px;padding:3px 8px}
.w-note{font-size:15px;color:#33435a}
.checked{font-size:13.5px;color:var(--muted);margin:14px 0 0}
.cta-band{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:28px;background:var(--blue);color:#fff;border-radius:18px;padding:22px 26px}
.cta-band .btn-primary{background:#fff;color:var(--blue)}
.months{list-style:none;display:grid;grid-template-columns:repeat(12,1fr);gap:6px;padding:0;margin:24px 0 20px}
.months li{border-radius:10px;padding:12px 6px;text-align:center;background:#fff}
.months b{display:block;font-size:15px}
.months span{font-size:12px;color:var(--muted)}
.months .m-P{background:var(--red);color:#fff}.months .m-P span{color:rgba(255,255,255,.85)}
.months .m-B{background:#f6d9d5}
.bags{list-style:none;padding:0;margin:24px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.bags li{display:grid;grid-template-columns:120px 1fr;gap:16px;align-items:start;background:var(--cloud);border-radius:16px;padding:18px}
.bags p{margin:4px 0 0;font-size:15px;color:#33435a}
.bags a{color:var(--blue);font-weight:700}
.tips{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.tips h2{font-size:26px}
.tips li{margin-bottom:8px}
.small{font-size:14px;color:var(--muted)}
.faq-wrap{max-width:900px}
.faq details{border-bottom:1px solid var(--line);padding:4px 0}
.faq summary{cursor:pointer;list-style:none;font-weight:700;font-size:18px;padding:16px 36px 16px 0;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:12px;font-size:26px;color:var(--blue);font-weight:400}
.faq details[open] summary::after{content:"–"}
.faq p{margin:0 0 18px;color:#33435a}
.rel{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.rel h2{font-size:22px}
.rel ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.rel a{color:var(--blue);text-decoration:none;font-weight:700}

/* Guides */
.guide{max-width:820px;padding-top:16px;padding-bottom:80px}
.g-meta{font-size:14px;color:var(--muted)}
.g-body h2{font-size:30px;margin-top:44px}
.g-body h3{margin-top:28px}
.g-body p,.g-body li{font-size:18px;line-height:1.65;color:#2a3a52}
.g-body a,.g-src a{color:var(--blue)}
.g-body table{width:100%;border-collapse:collapse;margin:20px 0;font-size:15.5px}
.g-body th,.g-body td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.g-body thead th{background:var(--ink);color:#fff}
.g-faq{margin-top:48px}
.g-src{margin-top:40px;font-size:14px}
.verify{background:#fff3c4;padding:0 4px;border-radius:3px;font-size:.85em}
.g-list{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:32px}
.g-card{display:flex;flex-direction:column;gap:8px;background:var(--cloud);border-radius:18px;padding:26px;text-decoration:none}
.g-card h2{font-size:22px;margin:0}
.g-card p{margin:0;color:#33435a;font-size:15.5px}
.g-card .more{align-self:flex-start;margin-top:auto}

/* Footer routes */
.foot-routes{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;padding-bottom:48px;margin-bottom:48px;border-bottom:1px solid rgba(255,255,255,.18)}
.foot-grid{grid-template-columns:1.3fr 1fr 1fr 1fr}

@media (max-width:1080px){
  .r-hero-grid,.tips{grid-template-columns:1fr;gap:32px}
  .facts-strip{grid-template-columns:1fr 1fr}
  .w-row{grid-template-columns:1fr 1fr;gap:8px 18px}
  .w-head{display:none}
  .w-opt,.w-note{grid-column:1/-1}
  .months{grid-template-columns:repeat(6,1fr)}
  .rel,.g-list{grid-template-columns:1fr 1fr}
  .foot-routes{grid-template-columns:1fr 1fr}
  .fb-row{grid-template-columns:minmax(0,1fr) auto auto;gap:8px 12px}
  .fb-air{grid-column:1/-1;order:5}
  .fb-cols{display:none}
  .fb-price{grid-column:1/-1;order:6;min-width:0;width:100%}
}
@media (max-width:640px){
  .r-hero{padding:8px 0 40px}
  .answer{font-size:17px}
  .r-sec{padding:52px 0}
  .bags,.rel,.g-list,.foot-routes{grid-template-columns:1fr}
  .bags li{grid-template-columns:1fr}
  .cta-band{flex-direction:column;align-items:stretch}
  .months{grid-template-columns:repeat(4,1fr)}
  .fb-boards{padding:14px 14px 6px;border-radius:14px}
  .fb-row{--t:clamp(13px,5.2cqw,20px)}
  .fb-via,.fb-time{display:none}
  .fb-tab{height:40px;padding:0 14px;font-size:14px}
}

/* Airline logo carousel */
.al-strip{margin-top:44px;padding-top:32px;border-top:1px solid var(--line)}
.al-title{margin:0 0 18px;text-align:center;font-size:15px;color:var(--muted)}
.al-viewport{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.al-track{list-style:none;margin:0;padding:0;display:flex;gap:18px;width:max-content;animation:alScroll 45s linear infinite}
.al-track li{display:grid;place-items:center;height:72px;padding:0 26px;background:#fff;border-radius:14px}
.al-track .al{height:34px;width:auto}
.al-viewport:hover .al-track,.al-viewport:focus-within .al-track{animation-play-state:paused}
@keyframes alScroll{to{transform:translateX(calc(-50% - 9px))}}
@media (prefers-reduced-motion:reduce){.al-track{animation:none;flex-wrap:wrap;justify-content:center;width:auto}.al-track li:nth-child(n+13){display:none}.al-viewport{-webkit-mask-image:none;mask-image:none}}
@media (max-width:640px){.al-track li{height:60px;padding:0 18px}.al-track .al{height:26px}}

/* SALE tags on the airline carousel (driven by ON_SALE in data/site.mjs) */
.al-track li{position:relative}
.al-track li.on-sale{box-shadow:0 0 0 2px var(--red)}
.al-track li.on-sale a{display:grid;place-items:center;height:100%}
.sale-tag{position:absolute;top:-9px;right:-6px;background:var(--red);color:#fff;font:700 11px/1 var(--font);letter-spacing:.08em;text-transform:uppercase;padding:5px 8px;border-radius:999px;box-shadow:0 0 0 2px #fff;animation:salePulse 1.4s ease-in-out infinite}
@keyframes salePulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.12);opacity:.55}}
.al-viewport{padding-top:12px}
@media (prefers-reduced-motion:reduce){.sale-tag{animation:none}.live-dot{animation:none}}

/* Enquiry forms */
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.qact .btn{flex:1 1 200px}
.btn-wa{gap:8px}
.f-status{margin:10px 0 0;font-size:14px;color:var(--red);min-height:0}
.f-status:empty{display:none}
.f-note{margin:12px 0 0;font-size:13px;color:var(--muted)}
.f-note a{color:var(--muted)}
.al-dark{background:#16283F;border-radius:4px;padding:3px 6px;box-sizing:content-box}
.form-card{background:#fff;border-radius:20px;padding:28px;box-shadow:0 0 0 1px var(--line),0 18px 40px rgba(22,40,63,.08)}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fgrid .full{grid-column:1/-1}
.form-card label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700}
.form-card input,.form-card select,.form-card textarea{border:0;border-radius:12px;background:var(--cloud);padding:12px 14px;font:400 16px var(--font);color:var(--ink);width:100%}
.form-card input,.form-card select{height:48px;padding-top:0;padding-bottom:0}
.form-card textarea{min-height:110px;resize:vertical}
.form-card .chk{flex-direction:row;align-items:center;gap:10px;font-weight:400;font-size:15px}
.form-card .chk input{width:20px;height:20px}
.form-card .qact{margin-top:18px}
.form-card input[type=file]{padding:12px 14px;height:auto}
@media (max-width:640px){.fgrid{grid-template-columns:1fr}.form-card{padding:20px}}

/* ---------- Hub and standard pages ---------- */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.data{width:100%;border-collapse:collapse;font-size:15.5px;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 0 0 1px var(--line)}
.data th,.data td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.data thead th{background:var(--ink);color:#fff;font-size:14px}
.data tbody tr:last-child td,.data tbody tr:last-child th{border-bottom:0}
.data a{color:var(--blue);font-weight:700;text-decoration:none}
.data .logos{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.data .logos .al{height:18px}
.matrix-wrap{overflow-x:auto;margin-top:24px;border-radius:16px;box-shadow:0 0 0 1px var(--line)}
.matrix{width:100%;border-collapse:collapse;min-width:820px;font-size:15px;background:#fff}
.matrix th,.matrix td{padding:12px 10px;text-align:center;border-bottom:1px solid var(--line)}
.matrix thead th{background:var(--ink);color:#fff;font-size:13.5px}
.matrix tbody th{text-align:left;background:var(--cloud);white-space:nowrap}
.matrix td a{display:block;color:var(--blue);font-weight:700;text-decoration:none;border-radius:8px;padding:4px}
.matrix td a:hover{background:var(--cloud)}
.matrix .ns{display:block;font-size:11px;font-weight:700;color:var(--red);text-transform:uppercase;letter-spacing:.04em}
.matrix .na{color:#b6c0cc}
.dest-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:24px}
.dest{background:var(--cloud);border-radius:16px;padding:22px}
.dest h3{display:flex;justify-content:space-between;align-items:baseline}
.dest h3 span{font-size:13px;color:var(--muted)}
.dest p{margin:4px 0 8px;font-size:14.5px;color:#33435a}
.dest ul{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-wrap:wrap;gap:6px}
.dest a{display:inline-block;background:#fff;border-radius:999px;padding:5px 12px;font-size:13.5px;font-weight:700;color:var(--blue);text-decoration:none}
.region-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:24px}
.region-cols ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.region-cols li{display:flex;flex-direction:column;background:#fff;border-radius:12px;padding:12px 14px}
.region-cols a{font-weight:700;color:var(--blue);text-decoration:none}
.region-cols span{font-size:13.5px;color:var(--muted)}
.link-list{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:10px}
.link-list a{color:var(--blue);font-weight:700;text-decoration:none}
.link-list a:hover{text-decoration:underline}
.facts-card{background:var(--cloud);border-radius:20px;padding:28px}
.facts-card dl{display:grid;grid-template-columns:auto 1fr;gap:12px 20px;margin:0}
.facts-card dt{color:var(--muted);font-size:14px}
.facts-card dd{margin:0;font-weight:700}
.facts-card a{color:var(--blue)}
.thanks{max-width:760px;padding-top:40px;padding-bottom:60px}
.thanks .btn{margin:6px 8px 0 0}
.note-test{background:#fff3c4;border-radius:12px;padding:14px 16px;font-size:15px}
.rv-all{grid-template-columns:repeat(3,1fr)}
.world-h{margin:40px 0 14px;font-size:22px}
.world-links{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.world-links a{display:flex;justify-content:space-between;gap:8px;background:#fff;border-radius:12px;padding:12px 14px;color:var(--ink);font-weight:700;text-decoration:none;font-size:15px}
.world-links a span{font-weight:400;color:var(--muted);font-size:13px}
.world-links a:hover{color:var(--blue)}
.legal-text .g-body h2{font-size:24px}
.foot-routes{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
@media (max-width:1080px){
  .two-col{grid-template-columns:1fr;gap:32px}
  .dest-grid,.world-links{grid-template-columns:1fr 1fr}
  .region-cols,.rv-all{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .dest-grid,.region-cols,.rv-all,.world-links{grid-template-columns:1fr}
  .data{font-size:14.5px}
  .data.wide thead{display:none}
  .data.wide tr{display:grid;grid-template-columns:1fr 1fr;padding:10px 0;border-bottom:1px solid var(--line)}
  .data.wide td{border:0;padding:4px 14px}
  .data.wide td:first-child{grid-column:1/-1}
}

/* Fact-check flags: hidden for visitors, shown with ?review=1 */
.verify{display:none}
.review-mode .verify{display:inline}

/* Wide tables scroll inside their own box on small screens */
@media (max-width:760px){.g-body table,.data:not(.wide){display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.g-body table{white-space:normal}.g-body th,.g-body td{min-width:120px}}
img,table{max-width:100%}

/* Footer columns must collapse on small screens (re-stated after the desktop rule above) */
@media (max-width:1080px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.foot-grid,.foot-routes{grid-template-columns:1fr}}
main p,main li,main td,main th,main dd,main small{overflow-wrap:anywhere}
.tips>div,.two-col>div,.r-hero-grid>div{min-width:0}

/* ---------- Content pages (hubs, airlines, stopovers) and India→Australia routes ---------- */
.cp-body{padding:0;max-width:820px}
.cp-logo{margin:0 0 14px}
.cp-logo img{height:34px;width:auto}
.g-card .cp-logo{margin:0}.g-card .cp-logo img{height:26px}
.dest .more{display:inline-block;margin-top:12px;background:none;padding:0;font-size:14.5px}
.link-list.cols3{grid-template-columns:repeat(3,1fr)}
.facts-dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 40px;margin:20px 0 0}
.facts-dl div{border-top:1px solid var(--line);padding-top:14px}
.facts-dl dt{font-weight:700;margin-bottom:4px}
.facts-dl dd{margin:0;color:#33435a;font-size:16px}
.ways a{color:var(--blue);font-weight:700}
.bags b a{color:inherit}
@media (max-width:820px){.facts-dl,.link-list.cols3{grid-template-columns:1fr}}
.g-body th{white-space:nowrap}
.g-body td:first-child{white-space:nowrap}
.g-body td:first-child a{white-space:nowrap}
.sec.cp-sec{padding-top:24px}
@media (max-width:640px){.g-body td:first-child{white-space:normal}}

/* Contact: office card + click-to-load map */
.office-map{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:40px;align-items:stretch}
.office-card h2{margin-top:0}
.open-now{display:flex;align-items:center;gap:8px;font-weight:700;margin:0 0 12px}
.open-now.is-closed{color:var(--muted)}.open-now.is-closed .live-dot{background:#9aa7b8;animation:none;box-shadow:none}
.map-embed{position:relative;min-height:360px;border-radius:var(--r);overflow:hidden;background:linear-gradient(135deg,#dfe8f3,#eef3f9)}
.map-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map-load{position:absolute;inset:0;width:100%;border:0;background:transparent;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font:400 15px var(--font);color:var(--muted)}
.map-load b{font-size:18px;color:var(--blue)}
.map-load:hover b{text-decoration:underline}
@media (max-width:820px){.office-map{grid-template-columns:1fr}}
.foot p a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(255,255,255,.45)}

/* Festivals card: what each festival is, a travel tip, guide + WhatsApp */
.fest .intro{font-size:16px;margin:0}
.fest li{align-items:start}
.fest .f-when{display:block;font-size:14.5px;color:var(--muted);margin-top:2px}
.fest li p{margin:8px 0 0;font-size:15px;line-height:1.55;color:#33435a}
.fest li .f-tip{background:var(--cloud);border-radius:10px;padding:9px 12px;font-size:14.5px}
.fest li .f-tip b{color:var(--ink)}
.fest .f-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-top:10px}
.fest .f-links a{font-weight:700;font-size:14.5px;color:var(--blue);text-decoration:none}
.fest .f-links a:hover{text-decoration:underline}
.fest .f-wa{display:inline-flex;align-items:center;gap:6px}
.fest .f-wa svg{width:16px;height:16px;color:#1faa53}
@media (max-width:640px){.fest{padding:22px 18px}.fest li{grid-template-columns:58px 1fr;gap:12px}.fest time{height:58px}.fest time b{font-size:20px}}

/* Radio tabs (home "From your city" + footer routes) */
.rt{display:flex;flex-wrap:wrap;gap:8px}
.rt-in{position:absolute;opacity:0;pointer-events:none}
.rt-tab{display:inline-flex;align-items:center;height:44px;padding:0 18px;border-radius:999px;background:#fff;color:var(--ink);font-weight:700;font-size:15px;cursor:pointer;margin-bottom:14px;transition:background .2s,color .2s}
.rt-tab:hover{background:#dfe8f3}
.rt-in:focus-visible+.rt-tab{outline:3px solid var(--blue);outline-offset:2px}
.rt-in:checked+.rt-tab{background:var(--ink);color:#fff}
.rt-panels{flex:1 0 100%}
.rt-panel{display:none}
#cr-adelaide:checked~.rt-panels [data-t=cr-adelaide],#cr-brisbane:checked~.rt-panels [data-t=cr-brisbane],#cr-melbourne:checked~.rt-panels [data-t=cr-melbourne],#cr-sydney:checked~.rt-panels [data-t=cr-sydney],#cr-perth:checked~.rt-panels [data-t=cr-perth],#cr-world:checked~.rt-panels [data-t=cr-world],#ft-adelaide:checked~.rt-panels [data-t=ft-adelaide],#ft-brisbane:checked~.rt-panels [data-t=ft-brisbane],#ft-melbourne:checked~.rt-panels [data-t=ft-melbourne],#ft-sydney:checked~.rt-panels [data-t=ft-sydney],#ft-perth:checked~.rt-panels [data-t=ft-perth],#ft-world:checked~.rt-panels [data-t=ft-world]{display:block;animation:rtIn .35s ease-out}
@keyframes rtIn{from{opacity:0;transform:translateY(6px)}}
@media (prefers-reduced-motion:reduce){.rt-panel{animation:none!important}}
.route-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.route-cards a{display:flex;flex-direction:column;gap:4px;height:100%;background:#fff;border-radius:14px;padding:16px 18px;text-decoration:none;color:var(--ink);box-shadow:0 0 0 1px transparent;transition:box-shadow .2s,transform .2s}
.route-cards a:hover{box-shadow:0 0 0 2px var(--blue);transform:translateY(-1px)}
.route-cards b{font-size:16.5px}
.route-cards span{font-size:14px;color:var(--muted)}
.route-cards em{font-style:normal;font-weight:700;color:#1d7a46}
.rt-more{margin:16px 0 0}.rt-more a{font-weight:700;color:var(--blue);text-decoration:none}.rt-more a:hover{text-decoration:underline}
/* footer variant */
.foot-routes{display:block}
.ft-h{font-size:13px;letter-spacing:.08em;text-transform:uppercase;margin:0 0 16px}
.rt-dark .rt-tab{background:rgba(255,255,255,.08);color:#fff;height:40px;font-size:14px}
.rt-dark .rt-tab:hover{background:rgba(255,255,255,.16)}
.rt-dark .rt-in:checked+.rt-tab{background:#fff;color:var(--ink)}
.rt-dark ul{list-style:none;margin:6px 0 0;padding:0;columns:4;column-gap:32px}
.rt-dark li{break-inside:avoid;margin-bottom:10px}
@media (max-width:1080px){.route-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.rt-dark ul{columns:2}}
@media (max-width:640px){
  .rt{gap:6px}
  .rt-tab{height:38px;padding:0 13px;font-size:14px;margin-bottom:6px}
  .rt-panels{margin-top:8px}
  .route-cards{grid-template-columns:1fr}
  .rt-dark ul{columns:1}
}
.cities .rt{margin-top:28px}
.foot .rt-dark ul{display:block;columns:4;column-gap:32px}
.foot .rt-dark li{margin:0 0 10px}
@media (max-width:1080px){.foot .rt-dark ul{columns:2}}
@media (max-width:640px){.foot .rt-dark ul{columns:1}.cities .rt{margin-top:20px}}
@media (max-width:640px){.route-cards{grid-template-columns:1fr 1fr;gap:8px}.route-cards a{padding:12px 12px;border-radius:12px}.route-cards b{font-size:14.5px;line-height:1.3}.route-cards span{font-size:12.5px}}

/* Airline awards (text only) */
.trust .award-li{flex-basis:100%;font-weight:700}
.trust .award-li a{color:inherit;text-decoration:none;border-bottom:1px solid currentColor}
.trust .award-li a:hover{border-bottom-color:transparent}
.trust .cup{width:18px;height:18px;color:#e2b84b;flex:none}
.foot-awards{margin:0 0 18px;font-size:14px}
.foot-awards a{color:rgba(255,255,255,.88)!important;text-decoration:none!important}
.foot-awards a:hover{text-decoration:underline!important}
.award-note{display:block;margin-top:6px;font-weight:700;color:#8a6d1a;text-decoration:none;font-size:13.5px}
.award-note::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:#e2b84b;margin-right:7px;vertical-align:1px}
.award-note:hover{text-decoration:underline}
.award-line{margin:14px 0 0;font-weight:700}.award-line a{color:#8a6d1a;text-decoration:none}.award-line a:hover{text-decoration:underline}
.award-block{margin:18px 0 0;padding:14px 16px;border-radius:12px;background:#fbf5e3;border:1px solid #efdfae}
.award-block b{display:block;margin-bottom:6px}
.award-block ul{margin:0 0 8px;padding-left:18px;font-size:15px}
.award-block a{font-weight:700;color:var(--blue);text-decoration:none;font-size:14.5px}
.award-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.award-list li{display:grid;grid-template-columns:96px 1fr;gap:14px;align-items:baseline;padding:12px 0;border-top:1px solid var(--line)}
.award-list .aw-year{font-weight:700;color:#8a6d1a}
.award-list small{display:block;color:var(--muted);font-size:14px}
.aw-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:48px;align-items:center}
.aw-grid h2{font-size:clamp(24px,2.4vw,32px)}
.aw-plaque{aspect-ratio:4/3;border-radius:18px;padding:28px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:6px;background:linear-gradient(145deg,#1d3557,#16283f 60%,#0f1d30);color:#fff;box-shadow:inset 0 0 0 1px rgba(226,184,75,.5),inset 0 0 0 8px #16283f,inset 0 0 0 9px rgba(226,184,75,.35),0 20px 40px rgba(22,40,63,.18)}
.aw-air{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#e2b84b;font-weight:700}
.aw-name{font-size:22px;font-weight:700;line-height:1.2}
.aw-yr{font-size:30px;font-weight:700;color:#e2b84b}
.aw-to{font-size:13px;color:rgba(255,255,255,.7)}
.aw-photo{margin:0}.aw-photo img{width:100%;height:auto;border-radius:18px}
@media (max-width:820px){.aw-grid{grid-template-columns:1fr;gap:24px}.aw-plaque{aspect-ratio:auto;padding:32px 20px}}
.hero .trust .award-li a{color:#fff}

.aw-press{font-size:15px;color:var(--muted)}.aw-press a{font-weight:700;color:var(--blue)}

/* Hero awards rotator: items stacked in one grid cell, so the line is always as wide/tall as the longest award (no shift). */
.trust .award-li{align-items:flex-start}
.trust .award-li .cup{margin-top:2px}
.aw-rot-wrap{min-width:0;flex:1}
.aw-rot{list-style:none;margin:0;padding:0;display:grid;perspective:400px}
.aw-rot>li{grid-area:1/1;margin:0}
.aw-rot>li:not(.is-on){opacity:0;pointer-events:none}
.aw-rot.is-rotating>li{transition:opacity .35s ease,transform .45s cubic-bezier(.3,1.3,.5,1);transform-origin:50% 50%;backface-visibility:hidden}
.aw-rot.is-rotating>li:not(.is-on){transform:rotateX(-80deg)}
.aw-rot.is-rotating>li.is-off{transform:rotateX(80deg);transition:opacity .3s ease,transform .35s ease-in}
.aw-rot>li a:focus-visible{outline:2px solid #9cc2ff;outline-offset:2px}
.aw-more{display:none;font-weight:400;font-size:14px;margin-top:2px}
@media (prefers-reduced-motion:reduce){.aw-more{display:inline-block}}
.hero .trust .aw-more{color:rgba(255,255,255,.8)}

/* ===== /flights-to-india/ motion layer ===== */
/* Hero: poster first (LCP), video fades in over it once playing; copy + form stay real HTML on the dark sky */
.ih{position:relative;background:#0b1626;color:#fff;overflow:hidden;isolation:isolate}
.ih-pic,.ih-poster,.ih-video{position:absolute;inset:0;width:100%;height:100%}
.ih-poster,.ih-video{object-fit:cover;object-position:62% 50%}
.ih-video{opacity:0;transition:opacity 1s}
.ih.is-playing .ih-video{opacity:1}
.ih-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,22,38,.94) 0%,rgba(11,22,38,.82) 30%,rgba(11,22,38,.35) 48%,rgba(11,22,38,0) 62%)}
.ih-in{position:relative;z-index:2;padding-top:56px;padding-bottom:64px}
.ih-copy{max-width:580px}
.ih .kicker{color:#F5C46B}
.ih h1{color:#fff;font-size:clamp(40px,4.6vw,64px);max-width:12ch}
.ih .answer{color:rgba(255,255,255,.88)}
.ih .facts-strip li{background:rgba(255,255,255,.1);color:#fff}
.ih .facts-strip span{color:rgba(255,255,255,.72)}
.ih .quote{color:var(--ink);margin-top:24px;max-width:540px;box-shadow:0 24px 60px rgba(0,0,0,.35)}
@media (max-width:1080px){
  .ih-pic,.ih-poster,.ih-video{bottom:auto;height:56vw;max-height:520px}
  .ih-poster,.ih-video{object-position:70% 50%}
  .ih-shade{bottom:auto;height:56vw;max-height:520px;background:linear-gradient(180deg,rgba(11,22,38,0) 45%,#0b1626 100%)}
  .ih-in{padding-top:calc(min(56vw,520px) - 40px)}
  .ih-copy{max-width:640px}
}
/* Journey board (aria-hidden visual of the table below) */
.jb-sec{background:#0b1626;color:#fff}
.jb-sec .kicker{color:#F5C46B}.jb-sec h2{color:#fff}.jb-sec .intro{color:#b9c7d9}
.jb-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0 18px}
.jb-tabs button{font:700 15px var(--font);height:44px;padding:0 18px;border-radius:999px;border:1.5px solid rgba(255,255,255,.25);background:transparent;color:#fff;cursor:pointer}
.jb-tabs button[aria-pressed=true]{background:#fff;color:var(--ink);border-color:#fff}
.jb-tabs button:focus-visible{outline:3px solid #F5C46B;outline-offset:2px}
.jb{background:#13243b;border-radius:18px;padding:20px 22px 12px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
.jb-row{display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:center;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.07)}
.jb-row:last-child{border-bottom:0}
.jb-head{font:700 12px var(--font);letter-spacing:.12em;color:#7f93ad;text-transform:uppercase;padding-top:0}
.jb-head span:last-child{text-align:right}
.jb-f{display:flex;gap:3px}
.jb-flap{position:relative;width:24px;height:34px;border-radius:3px;background:linear-gradient(#fff 0 50%,#e5eaf1 50% 100%);color:var(--ink);font:700 19px/34px var(--font);text-align:center;overflow:hidden}
.jb-flap::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(22,40,63,.4)}
.jb-flap.go{animation:jbFlip .09s linear}
@keyframes jbFlip{50%{transform:scaleY(.05)}}
.jb-flap.ns{background:linear-gradient(#F5C46B 0 50%,#e9b553 50% 100%)}
@media (max-width:720px){.jb{padding:14px}.jb-row{grid-template-columns:auto auto;justify-content:space-between;row-gap:6px;gap:10px}.jb-row>.jb-f:nth-child(2){grid-column:1/-1;grid-row:2}.jb-head{display:none}.jb-flap{width:17px;height:26px;font-size:14px;line-height:26px}}
@media (max-width:390px){.jb-flap{width:15px;height:24px;font-size:13px;line-height:24px}.jb-f{gap:2px}}
/* City cards: landmark art + mini split-flap */
.ic-card{position:relative;overflow:hidden;transition:transform .3s}
.ic-art{height:180px;display:flex;align-items:flex-end;justify-content:center;margin:-6px 0 6px}
.ic-art img{max-height:170px;width:auto;max-width:100%;height:auto}
.ih-anim .ic-card .ic-art img{opacity:0;transform:translateY(34px) scale(.92);transition:opacity .8s ease,transform .9s cubic-bezier(.2,.8,.2,1)}
.ih-anim .ic-card.in .ic-art img{opacity:1;transform:none;animation:icFloat 6s ease-in-out 1.2s infinite}
@keyframes icFloat{50%{transform:translateY(-6px)}}
.ic-mini{display:flex;align-items:center;gap:2px;margin:0 0 8px;height:24px}
.ic-mini span{width:15px;height:22px;border-radius:3px;background:var(--ink);color:#fff;font:700 12px/22px var(--font);text-align:center}
.ic-mini .ic-h{background:none;color:var(--muted);width:auto;padding-left:3px}
/* Boarding passes */
.bp-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:28px 0 14px}
.bp{display:grid;grid-template-columns:minmax(0,1fr) 72px;background:#fff;border-radius:18px;box-shadow:0 14px 40px rgba(22,40,63,.12);overflow:hidden;text-decoration:none;color:var(--ink);transition:box-shadow .2s}
.bp:hover{box-shadow:0 0 0 2px var(--blue),0 14px 40px rgba(22,40,63,.12)}
.ih-anim .bp{opacity:0;transform:translateX(-40px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1)}
.ih-anim .bp.in{opacity:1;transform:none}
.bp-main{padding:20px 22px;min-width:0}
.bp-route{display:flex;align-items:baseline;gap:10px;font:700 34px var(--font);letter-spacing:.02em}
.bp-route small{font-size:13px;color:var(--muted);letter-spacing:0}
.bp-names{display:block;font-size:14px;color:var(--muted);margin-top:2px}
.bp-meta{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:12px;font-size:14px}
.bp-meta b{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.bp-stub{background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;font:700 13px var(--font);letter-spacing:.2em;border-left:2px dashed rgba(255,255,255,.35)}
@media (max-width:900px){.bp-list{grid-template-columns:1fr}}
/* Hub strip */
.hb-list{list-style:none;padding:0;margin:28px 0 28px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.hb{min-width:0}
.hb>a,.hb{color:var(--ink);text-decoration:none}
.hb>a,.hb:not(:has(a)){display:block;text-align:center;background:var(--warm);border-radius:20px;padding:14px 10px 16px;height:100%}
.hb>a:hover{box-shadow:0 0 0 2px var(--blue)}
.hb img{height:110px;width:auto;max-width:100%;object-fit:contain;display:block;margin:0 auto 6px}
.hb b{display:block;font-size:17px}.hb span{font-size:12.5px;color:var(--muted)}
.ih-anim .hb{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.ih-anim .hb.in{opacity:1;transform:none}
.hb-table{max-width:820px}
@media (max-width:960px){.hb-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.hb-list{grid-template-columns:repeat(2,minmax(0,1fr))}.hb img{height:92px}}
/* Seasons strip */
.ss-list{list-style:none;padding:0;margin:28px 0 0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.ss{display:flex;flex-direction:column;height:100%;border-radius:20px;padding:20px;background:#fff;text-decoration:none;color:var(--ink)}
.ss:hover{box-shadow:0 0 0 2px var(--blue)}
.ss-ico{width:44px;height:44px;margin-bottom:14px}
.ss b{font-size:19px}.ss-d{font-size:14px;color:var(--muted)}
.ss-bk{margin-top:10px;font-size:13.5px;font-weight:700;color:var(--red)}
.ss-flame{transform-box:fill-box;transform-origin:50% 100%;animation:ssFlick 1.2s ease-in-out infinite alternate}
@keyframes ssFlick{to{transform:scale(.88,1.12) translateY(-1px)}}
.ss-puff circle{transform-box:fill-box;transform-origin:center;animation:ssPuff 3s ease-in-out infinite}
.ss-puff circle:nth-child(2){animation-delay:.6s}.ss-puff circle:nth-child(3){animation-delay:1.2s}
@keyframes ssPuff{0%,100%{transform:scale(.8);opacity:.7}50%{transform:scale(1.08);opacity:1}}
.ss-spark{animation:ssSpark 2.4s ease-in-out infinite}
@keyframes ssSpark{50%{opacity:.4}}
@media (max-width:960px){.ss-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.ss-list{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){
  .ih-video{display:none}
  .ic-art img,.bp,.hb{opacity:1!important;transform:none!important;transition:none!important;animation:none!important}
  .ss-flame,.ss-puff circle,.ss-spark,.jb-flap.go{animation:none!important}
}
.jb-row.is-empty .jb-flap{visibility:hidden}

/* India board v2: six columns proportional to their tile counts (3/9/3/6/6/8 = 35 tiles), sized to fill the board */
.jb{container-type:inline-size;padding:20px 22px 12px}
.jb-row{grid-template-columns:3fr 9fr 3fr 6fr 6fr 8fr;gap:14px;justify-items:start}
.jb-head span{text-align:left!important}
.jb-f{gap:3px;position:relative}
.jb-flap{width:clamp(14px,calc((100cqw - 157px) / 35),30px);height:calc(clamp(14px,calc((100cqw - 157px) / 35),30px) * 1.42);font-size:calc(clamp(14px,calc((100cqw - 157px) / 35),30px) * .78);line-height:calc(clamp(14px,calc((100cqw - 157px) / 35),30px) * 1.42)}
.jb-row.is-ns .jb-st .jb-flap,.jb-flap.ns{background:linear-gradient(#F5C46B 0 50%,#e9b553 50% 100%)}
.jb-row.is-sale .jb-st .jb-flap{background:linear-gradient(#b52c1e 0 50%,#a02417 50% 100%);color:#fff}
.jb-aw{position:absolute;right:-17px;top:50%;width:14px;height:14px;margin-top:-7px;color:#e2b84b}
.jb-aw[hidden]{display:none}
.jb-aw svg{width:14px;height:14px;display:block}
.jb-note{margin:12px 0 0;font-size:13px;color:#8fa2bb}
.jb-aw-key::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:#e2b84b;margin:0 6px 0 4px;vertical-align:1px}
@media (max-width:720px){
  .jb{padding:14px}
  .jb-head{display:none}
  .jb-row{grid-template-columns:auto auto 1fr;grid-template-areas:"to via st" "dest time jrn";gap:6px 10px;justify-items:start;padding:10px 0}
  .jb-f.jb-to{grid-area:to}.jb-f.jb-via{grid-area:via}.jb-f.jb-st{grid-area:st;justify-self:end}
  .jb-f.jb-dest{grid-area:dest}.jb-f.jb-time{grid-area:time}.jb-f.jb-jrn{grid-area:jrn;justify-self:end}
  .jb-f{gap:2px}
  .jb-flap{width:13px;height:19px;font-size:11px;line-height:19px}
  .jb-aw{right:-15px}
}
@media (max-width:479px){
  .jb-row{grid-template-columns:auto auto 1fr;grid-template-areas:"to via st" "dest dest jrn"}
  .jb-f.jb-time{display:none}
  .jb-flap{width:14px;height:20px;font-size:12px;line-height:20px}
}
/* Award logos (official files, unaltered; white chip for contrast) */
.aw-logo{height:16px;width:auto;background:#fff;border-radius:3px;padding:2px 4px;margin-right:8px;vertical-align:-4px;box-sizing:content-box}
.trust .award-li a{border-bottom:0}
.trust .award-li a:hover{text-decoration:underline}
.aw-plaque .aw-logo{height:30px;padding:5px 8px;margin:0 0 8px;border-radius:6px}
.award-list .aw-logo{height:18px;vertical-align:-4px}
.ih-trust{margin-top:18px;color:rgba(255,255,255,.88)}
.ih-trust .award-li a{color:#fff}
.hb-aw{display:flex;align-items:flex-start;gap:6px;margin-top:8px;font-size:12px;line-height:1.35;font-weight:700;color:#8a6d1a;text-decoration:none;text-align:left}
.hb-aw:hover{text-decoration:underline}
.hb-aw .aw-logo{height:14px;margin:0;flex:none;box-shadow:0 0 0 1px var(--line)}
.hb{display:flex;flex-direction:column}
.hb>a:first-child{flex:1}
/* Board v2 fixes: VIA column has room for the trophy (4 units), tiles sized over 36 units */
.jb-row{grid-template-columns:3fr 9fr 4fr 6fr 6fr 8fr}
.jb-flap{width:clamp(14px,calc((100cqw - 160px) / 36),30px);height:calc(clamp(14px,calc((100cqw - 160px) / 36),30px) * 1.42);font-size:calc(clamp(14px,calc((100cqw - 160px) / 36),30px) * .78);line-height:calc(clamp(14px,calc((100cqw - 160px) / 36),30px) * 1.42)}
.jb-f.jb-via{align-items:center}
.jb-aw{position:static;margin:0 0 0 5px}
@media (max-width:720px){.jb-row{grid-template-columns:auto auto 1fr}.jb-flap{width:13px;height:19px;font-size:11px;line-height:19px}}
@media (max-width:479px){.jb-flap{width:14px;height:20px;font-size:12px;line-height:20px}}
/* Hub cards: the li is the card; stopover link on top, award badge inside the same card */
.hb{display:flex;flex-direction:column;align-items:stretch;background:var(--warm);border-radius:20px;padding:14px 10px 16px;text-align:center}
.hb>a:first-child,.hb>a:first-child:hover{display:block;background:none;padding:0;border-radius:0;box-shadow:none;height:auto;flex:1}
.hb:hover{box-shadow:0 0 0 2px var(--blue)}
.hb:not(:has(a)){padding:14px 10px 16px}
.hb-aw{margin:10px 2px 0;padding-top:10px;border-top:1px solid #eadfca;justify-content:center;text-align:center;flex-direction:column;align-items:center}
.hb-aw .aw-logo{margin:0 0 4px}
.hb>a.hb-aw{border-radius:0;background:none;box-shadow:none;height:auto;padding:10px 0 0;display:flex}

/* ---- Live fares board on phones/tablets: compact two-line rows (destination + price; airlines under) ---- */
@media (max-width:1080px){
  .fb-row{grid-template-columns:minmax(0,1fr) auto auto auto;grid-template-areas:"dest via time price" "air air air price";gap:8px 12px;align-items:center}
  .fb-dest{grid-area:dest}.fb-via{grid-area:via}.fb-time{grid-area:time}.fb-air{grid-area:air;order:0}
  .fb-price{grid-area:price;order:0;width:auto;min-width:0;height:42px;padding:0 16px;font-size:13.5px;align-self:center}
}
@media (max-width:640px){
  .fb-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"dest price" "air price";gap:8px 10px;padding:12px 0;--t:clamp(12px,4.4cqw,18px)}
  .fb-air{gap:6px}
  .fb-air .al{height:15px;padding:2px 4px}
  .fb-price{height:38px;padding:0 12px;font-size:12.5px;gap:6px;letter-spacing:.01em}
}
/* India board: empty lines read as blank board rows (real boards show unused lines too) */
.jb-row.is-empty .jb-flap{visibility:visible;opacity:.18}
.jb-row.is-empty .jb-aw{display:none}

/* Office photos */
.of-photo{margin:0;border-radius:20px;overflow:hidden;background:var(--cloud);position:relative}
.of-photo img{display:block;width:100%;height:100%;object-fit:cover}
.of-photo figcaption{position:absolute;left:12px;bottom:12px;background:rgba(22,40,63,.82);color:#fff;font-size:13px;font-weight:700;padding:6px 12px;border-radius:999px}
.office-media .of-photo{aspect-ratio:4/3}
.office-media .of-photo.of-wide{aspect-ratio:16/9}
.office-card .of-photo{aspect-ratio:4/3;margin:16px 0 18px;max-width:460px}
.of-trio{display:grid;grid-template-columns:1fr 1.15fr 1.15fr;gap:16px;margin-top:24px}
.of-trio .of-photo{aspect-ratio:4/3}
.aw-shelf{margin-top:28px;max-width:900px}
.aw-shelf .of-photo{aspect-ratio:16/9}
@media (max-width:820px){.of-trio{grid-template-columns:1fr}}
.of-trio{grid-template-columns:repeat(3,minmax(0,1fr))}
.of-trio .of-photo img{object-position:50% 35%}
.aw-shelf{max-width:620px}
.aw-shelf .of-photo{aspect-ratio:800/470}
.aw-shelf .of-photo{aspect-ratio:800/253}

/* ---------- 3D globe hero (overrides the earlier flat-map styles) ---------- */
.stage{background:radial-gradient(90% 80% at 50% 45%,#ffffff 0%,#eef3f9 55%,#dfe8f3 100%)}
.stage .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .7s}
.stage.is-ready .poster{opacity:0}
#globe{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity .9s}
.stage.is-ready #globe{opacity:1}
.pin{transition:opacity .3s}
.pin.is-active{box-shadow:0 0 0 2.5px #fff;background:var(--red)}
.adl span{box-shadow:0 2px 12px rgba(22,40,63,.18)}

/* Landmark grows out of the ground: revealed from its base while rising, with a light flash and contact shadow. */
.mon{z-index:2;transform-origin:50% 100%}
.mon .rise{position:absolute;inset:-4% -4% 0;clip-path:inset(100% 0 0 0)}
.mon .rise img{position:absolute;left:4%;right:4%;bottom:0;width:92%;height:auto;opacity:1;transform:translateY(38%);filter:drop-shadow(0 10px 18px rgba(22,40,63,.22))}
.mon .ground{left:12%;right:12%;bottom:-3%;height:10%}
.mon .glow{position:absolute;left:-10%;right:-10%;bottom:-12%;height:28%;border-radius:50%;background:radial-gradient(closest-side,rgba(255,255,255,.95),rgba(255,214,200,.55) 45%,rgba(169,38,25,0) 75%);opacity:0;transform:scale(.2)}
.mon.is-on .rise{animation:riseClip 1.25s cubic-bezier(.2,.85,.25,1) forwards}
.mon.is-on .rise img{animation:riseUp 1.25s cubic-bezier(.2,.85,.25,1) forwards}
.mon.is-on .glow{animation:flash 1.6s ease-out forwards}
.mon.is-off .rise{animation:sinkClip .7s cubic-bezier(.55,0,.8,.2) forwards}
.mon.is-off .rise img{animation:sinkDown .7s cubic-bezier(.55,0,.8,.2) forwards}
.mon.is-static .rise,.review .mon.is-on .rise{animation:none;clip-path:none}
.mon.is-static .rise img,.review .mon.is-on .rise img{animation:none;transform:none}
.mon.is-static .ground,.review .mon.is-on .ground{animation:none;opacity:1;transform:none}
@keyframes riseClip{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(-20% 0 0 0)}}
@keyframes riseUp{from{transform:translateY(38%)}70%{transform:translateY(-2%)}to{transform:none}}
@keyframes sinkClip{from{clip-path:inset(-20% 0 0 0)}to{clip-path:inset(100% 0 0 0)}}
@keyframes sinkDown{from{transform:none}to{transform:translateY(38%)}}
@keyframes flash{0%{opacity:0;transform:scale(.2)}25%{opacity:1;transform:scale(1)}100%{opacity:.35;transform:scale(1.15)}}
.plane{filter:drop-shadow(0 2px 3px rgba(22,40,63,.25))}
@media (prefers-reduced-motion:reduce){.mon .rise{clip-path:none}.mon .rise img{transform:none}}

/* Globe looks (concept options) */
.stage.style-night{background:radial-gradient(90% 85% at 50% 42%,#1d3557 0%,#0f1d33 55%,#0a1424 100%)}
.stage.style-real{background:radial-gradient(90% 85% at 50% 42%,#ffffff 0%,#eef3f9 60%,#dde6f1 100%)}
.stage.style-night .pin{box-shadow:0 0 0 2px rgba(255,255,255,.85);background:transparent}
.stage.style-night .pin.is-active,.stage.style-night .pin.seen{background:var(--red)}
.cap.cap-sm div{padding:6px 11px 7px;border-radius:10px}
.cap.cap-sm b{font-size:13.5px}.cap.cap-sm small{font-size:11.5px}

/* Real Earth production look */
.stage.style-real .mon .rise img{filter:drop-shadow(0 6px 10px rgba(10,20,40,.35))}
.stage.style-real .cap div{box-shadow:0 6px 20px rgba(10,20,40,.22)}
.ping{width:0;height:0;z-index:1}
.ping::before,.ping::after{content:"";position:absolute;left:-40px;top:-14px;width:80px;height:28px;border-radius:50%;border:2px solid rgba(255,255,255,.95);opacity:0}
.ping.go::before{animation:ripple 1.6s ease-out forwards}
.ping.go::after{animation:ripple 1.6s .35s ease-out forwards}
@keyframes ripple{0%{opacity:.95;transform:scale(.15)}100%{opacity:0;transform:scale(1.6)}}
.stage.style-real .pin{width:8px;height:8px;margin:-4px 0 0 -4px;box-shadow:0 0 0 2px rgba(255,255,255,.9);background:rgba(25,75,138,.85)}
.stage.style-real .pin.is-active{background:var(--red)}
@media (prefers-reduced-motion:reduce){.ping{display:none}}

/* ---------- Full-bleed globe hero with departure boards along the bottom (approved 20 Oct 2026) ---------- */
.hero{position:relative;padding:0;background:#060d19;color:#fff;overflow:hidden;isolation:isolate;--sh:100%}
.hero>.wrap{display:block;position:relative;z-index:2}
.hero .stage,.hero .stage.style-real{position:absolute;left:0;top:0;width:100%;height:var(--sh);aspect-ratio:auto;border-radius:0;z-index:0;background:radial-gradient(60% 75% at 70% 38%,#173055 0%,#0b1830 55%,#060d19 100%)}
.hero .poster{object-position:70% 40%}
.hero .shade{position:absolute;left:0;top:0;width:100%;height:var(--sh);z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(6,13,25,.95) 0%,rgba(6,13,25,.86) 27%,rgba(6,13,25,.4) 45%,rgba(6,13,25,0) 60%),linear-gradient(0deg,rgba(6,13,25,.9) 0%,rgba(6,13,25,.45) 22%,rgba(6,13,25,0) 40%)}
.hero .ctrl{background:rgba(255,255,255,.14);color:#fff;box-shadow:none;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);top:18px;right:18px}
.hero .ctrl:hover{background:rgba(255,255,255,.24)}
.hero-top{pointer-events:none;padding-top:56px;padding-bottom:40px}
.hero .copy{max-width:560px;pointer-events:auto}
.hero .kicker{color:#9cc2ff}
.hero h1{color:#fff;font-size:clamp(40px,4.4vw,62px)}
.hero .lead{color:rgba(255,255,255,.86);max-width:44ch}
.hero .lead strong{color:#fff}
.hero .quote{color:var(--ink);box-shadow:0 24px 60px rgba(0,0,0,.35);max-width:520px}
.hero .trust{color:rgba(255,255,255,.88)}
.hero-boards{padding-bottom:26px}
.boards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.hero .board{margin:0;padding:14px 16px 12px;border-radius:14px;background:rgba(22,40,63,.9);border:1px solid rgba(255,255,255,.12);box-shadow:0 18px 40px rgba(0,0,0,.35);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.hero .bhead{padding-bottom:8px;margin-bottom:10px}
.hero .bhead .t{font-size:16px}
.hero .bhead .clk{font-size:12.5px;font-variant-numeric:tabular-nums}
.hero .board .cols{font-size:11.5px;color:rgba(255,255,255,.75);margin:0 0 6px 12px}
.hero .board .rows{padding-bottom:0;border-bottom:0}
.hero .board .row{height:calc(var(--chh,calc(1.42 * (100cqw - 80px) / 22)) + 8px)}
.hero .board:not(.is-live) .cols,.hero .board:not(.is-live) .row{grid-template-columns:9fr 5fr 8fr}
.hero .board:not(.is-live) .row{font-size:13px}
.hero .bnote{margin:10px 0 0;font-size:12.5px;color:rgba(255,255,255,.62)}
@media (max-width:1080px){
  .hero{--sh:clamp(380px,72vw,560px)}
  .hero .stage,.hero .stage.style-real{background:radial-gradient(70% 80% at 50% 45%,#173055 0%,#0b1830 60%,#060d19 100%)}
  .hero .poster{object-position:50% 50%}
  .hero .shade{background:linear-gradient(180deg,rgba(6,13,25,0) 50%,rgba(6,13,25,.75) 80%,#060d19 100%)}
  .hero-top{padding-top:calc(var(--sh) - 110px);padding-bottom:32px}
  .hero .copy,.hero .quote{max-width:640px}
  .boards{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin:0 -32px;padding:0 32px 6px;scroll-padding:0 32px;scrollbar-width:none}
  .boards::-webkit-scrollbar{display:none}
  .hero .board{flex:0 0 min(440px,calc(100% - 28px));scroll-snap-align:start}
}
@media (max-width:640px){
  .hero-top{padding-top:calc(var(--sh) - 96px)}
  .hero h1{font-size:36px}
  .hero .ctrl{top:12px;right:12px}
  .boards{margin:0 -16px;padding:0 16px 6px;scroll-padding:0 16px}
  .hero .board{padding:12px 12px 10px}
  .hero-boards{padding-bottom:32px}
}
.hero .cap{color:var(--ink)}
.hero h1{font-size:clamp(40px,4vw,56px)}
.hero .lead{max-width:50ch}
.hero .adl,.hero .ov{color:var(--ink)}

/* Four departure boards (Adelaide, Melbourne, Sydney, Perth). On desktop each board shows Destination + Status;
   narrower layouts (tablet strip, phones) have room for Departs too. Static rows match so nothing shifts. */
.boards{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.hero .board{padding:12px 14px 10px}
/* 1081-1303px: Destination + Status. From 1304px: Departs fits too (same rule hero.js uses), so nothing shifts. */
@media (min-width:1081px) and (max-width:1303px){
  .hero .board:not(.is-live) .cols span:nth-child(2),.hero .board:not(.is-live) .row span:nth-child(2){display:none}
  .hero .board:not(.is-live) .cols,.hero .board:not(.is-live) .row{grid-template-columns:9fr 8fr}
  .hero .board .row{height:calc(var(--chh,calc(1.42 * (100cqw - 47.5px) / 17)) + 8px)}
}
@media (min-width:1304px){
  .hero .board .row{height:calc(var(--chh,calc(1.42 * (100cqw - 60.5px) / 22)) + 8px)}
}
.hero .bhead{flex-wrap:nowrap}
.hero .bhead .t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.hero .bhead .clk{white-space:nowrap;flex:none}

/* Live departures: green live dot in each board header */
.hero .board .clk .live-dot{margin-right:6px;vertical-align:1px}

/* ---- Mobile/tablet hero boards: one board per screen, fully inside the side margins, snap + city pager ---- */
.bd-pager{display:none}
@media (max-width:1080px){
  .boards{gap:16px;scroll-snap-type:x mandatory;overscroll-behavior-x:contain}
  .hero .board{scroll-snap-align:center;scroll-snap-stop:always}
  .bd-pager{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin:12px 0 0}
  .bd-pager button{font:700 13px var(--font);height:32px;padding:0 12px;border-radius:999px;border:1px solid rgba(255,255,255,.22);background:transparent;color:rgba(255,255,255,.8);cursor:pointer}
  .bd-pager button[aria-pressed=true]{background:#fff;color:var(--ink);border-color:#fff}
  .bd-pager button:focus-visible{outline:2px solid #9cc2ff;outline-offset:2px}
}
@media (max-width:640px){
  .boards{margin:0 -16px;padding:0 16px 4px;scroll-padding:0 16px}
  .hero .board{flex:0 0 100%;scroll-snap-align:start}
  .hero .bhead .t{font-size:15px}
}
@media (max-width:1080px){.hero .board{scroll-snap-align:start}}
