/* IDMC World — site stylesheet
   Tokens, layout and components. Page-specific blocks are grouped at the end. */

/* ---------- shared: tokens, base, header, buttons, footer, home page ---------- */
:root{
  --red:#E3010F;          /* logo red — rules, numerals, large type only */
  --red-fill:#BD0309;     /* any red carrying text: 6.6:1 on white */
  --red-d:#9C0207;
  --red-ink:#8A0208;
  --red-wash:#FCECEE;
  --hero:url(../img/hero.jpg);
  --logo:url(../img/idmc-logo-white.svg);
  --ink:#181818;
  --ink-2:#232326;
  --ink-3:#4A4844;
  --bone:#F7F6F4;
  --card:#FFFFFF;
  --rule:#E5E2DD;
  --rule-2:#CDC9C2;
  --muted:#6B6862;
  --maxw:1180px;
  --display:"Archivo",-apple-system,"Segoe UI",sans-serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bone);color:var(--ink);font-family:var(--sans);
  font-size:16.5px;line-height:1.62;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
p{margin:0}
h1,h2,h3{margin:0;font-family:var(--display);font-weight:600;line-height:1.04;
  letter-spacing:-.025em;font-stretch:112%}
h1{font-size:clamp(2.6rem,7.4vw,4.9rem)}
h2{font-size:clamp(1.85rem,4.4vw,2.85rem)}
h3{font-size:1.0625rem;font-stretch:105%;letter-spacing:-.012em;line-height:1.25}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}
[id]{scroll-margin-top:96px}
.sec{padding:78px 0}
.sec + .sec{border-top:1px solid var(--rule)}
.lede{color:var(--muted);max-width:58ch;margin-top:18px;font-size:1.0625rem}
.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}

/* section eyebrow: a red hairline, not a caps label */
.rule-lead{display:block;width:44px;height:3px;background:var(--red);margin-bottom:26px}

/* header */
.site-head{position:sticky;top:0;z-index:60;background:var(--ink);color:#fff}
.site-head .wrap{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.brand{display:block;flex:none;padding:9px 0}
.brand-mark{display:block;width:124px;height:52px;background:var(--logo) left center/contain no-repeat}
.nav{order:3;flex-basis:100%;display:flex;gap:24px;font-size:.9375rem;
  border-top:1px solid rgba(255,255,255,.12);margin:0 -22px;padding:0 22px;
  overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.nav::-webkit-scrollbar{display:none}
.nav a{text-decoration:none;color:#B5B2AC;white-space:nowrap;padding:13px 0;
  border-bottom:2px solid transparent;transition:color .15s}
.nav a:hover{color:#fff}
.nav a[aria-current]{color:#fff;border-bottom-color:var(--red)}
.head-cta{margin-left:auto;padding:15px 0}
@media(min-width:960px){
  .site-head .wrap{flex-wrap:nowrap;gap:26px}
  .nav{order:0;flex-basis:auto;border-top:0;margin:0 0 0 auto;padding:0;overflow:visible}
  .nav a{padding:25px 0}
  .head-cta{margin-left:26px}
}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;
  font:500 .9375rem/1 var(--sans);padding:14px 22px;border-radius:2px;
  text-decoration:none;border:1px solid transparent;cursor:pointer;
  transition:background .16s,border-color .16s,color .16s}
.btn--red{background:var(--red-fill);color:#fff;border-color:var(--red-fill)}
.btn--red:hover{background:var(--red-d);border-color:var(--red-d)}
.btn--ghost{border-color:rgba(255,255,255,.34);color:#fff}
.btn--ghost:hover{border-color:#fff;background:rgba(255,255,255,.07)}
.btn--ink{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn--ink:hover{background:var(--ink-2)}
.btn--line{border-color:var(--rule-2);background:transparent;color:var(--ink)}
.btn--line:hover{border-color:var(--ink)}
.btn--sm{padding:10px 15px;font-size:.875rem}

/* hero */
.hero{background:var(--ink);color:#fff;padding:88px 0 0;position:relative;isolation:isolate;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(180deg, rgba(24,24,24,0) 0%, rgba(24,24,24,.16) 48%, rgba(24,24,24,.90) 84%, #181818 100%),
    linear-gradient(90deg, rgba(24,24,24,.76) 0%, rgba(24,24,24,.66) 36%, rgba(24,24,24,.34) 68%, rgba(24,24,24,.08) 100%),
    var(--hero) 62% top/cover no-repeat;}
@media(max-width:760px){
  .hero::before{background:
    linear-gradient(180deg, rgba(24,24,24,.42) 0%, rgba(24,24,24,.80) 40%, rgba(24,24,24,.96) 72%, #181818 100%),
    var(--hero) 58% center/cover no-repeat;}
}
.hero h1{color:#fff;max-width:15ch}
.hero h1 em{font-style:normal;color:var(--red)}
.hero p{color:#E6E4E0;max-width:50ch;margin-top:26px;font-size:1.125rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.hero-note{margin-top:20px;font-size:.875rem;color:#ADAAA5}

.board{margin-top:66px;border-top:1px solid rgba(255,255,255,.14)}
.board__head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:20px 0 18px}
.board__head span{font-size:.9375rem;color:#8A8782}
.board__head a{font-size:.9375rem;color:#fff;text-decoration:none;border-bottom:1px solid var(--red);padding-bottom:2px}
.board__scroll{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(212px,1fr);
  border-top:1px solid rgba(255,255,255,.14);
  overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.board__cell{padding:22px 22px 26px;scroll-snap-align:start;text-decoration:none;display:block;
  border-right:1px solid rgba(255,255,255,.14);transition:background .16s}

.board__date{font-family:var(--display);font-weight:600;font-stretch:112%;font-size:1.75rem;
  letter-spacing:-.03em;color:#fff}
.board__where{font-size:.9375rem;color:#A8A5A0;margin-top:4px}
.board__row{display:flex;justify-content:space-between;align-items:center;margin-top:20px;
  font-size:.8125rem;color:#8A8782}
.board__row b{font-weight:500;color:#fff}
@media(min-width:820px){.board__scroll{grid-auto-columns:minmax(0,1fr);overflow:visible}}


/* grids */
.grid{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:42px}
.g2,.g3,.g4{grid-template-columns:1fr}
@media(min-width:560px){.g4{grid-template-columns:1fr 1fr}}
@media(min-width:700px){.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}}
@media(min-width:920px){.g4{grid-template-columns:repeat(4,1fr)}}
.cell{background:var(--card);padding:28px 24px;display:block;text-decoration:none;color:inherit}
a.cell:hover{background:#FBFAF9}
.cell h3{margin-bottom:10px}
.cell p{color:var(--muted);font-size:.9375rem}

/* ground handling band */
.ground{display:grid;gap:16px;margin-top:42px;grid-template-columns:1fr}
@media(min-width:620px){.ground{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.ground{grid-template-columns:repeat(4,1fr)}}
.ground figure{margin:0}
.ground img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block;background:var(--ink)}
.ground figcaption{font-size:.8125rem;color:var(--muted);margin-top:10px;line-height:1.45}

/* roadshow proof band */
.proof{display:grid;gap:16px;margin-top:42px;grid-template-columns:1fr}
@media(min-width:720px){.proof{grid-template-columns:repeat(3,1fr)}}
.proof figure{margin:0}
.proof img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block;background:var(--ink)}
.proof figcaption{font-size:.8125rem;color:var(--muted);margin-top:10px;line-height:1.45}

/* destinations */
.dgrid{display:grid;gap:18px;grid-template-columns:1fr 1fr;margin-top:42px}
@media(min-width:820px){.dgrid{grid-template-columns:repeat(3,1fr)}}
.dest{text-decoration:none;display:block;position:relative}
.dest::after{content:"";position:absolute;top:0;left:0;width:34px;height:3px;background:var(--red);z-index:1}
.photo{background:var(--ink);color:#8A8782;aspect-ratio:3/4;display:flex;align-items:flex-end;
  padding:16px;font-size:.8125rem;line-height:1.4;position:relative}
img.photo{display:block;width:100%;height:auto;object-fit:cover;padding:0}

.dest__name{font-family:var(--display);font-weight:600;font-stretch:110%;letter-spacing:-.02em;
  font-size:1.1875rem;margin-top:14px}
.dest__meta{font-size:.8125rem;color:var(--muted);margin-top:3px}

/* beyond-India note */
.beyond{display:grid;gap:16px;margin-top:30px;align-items:center}
@media(min-width:720px){.beyond{grid-template-columns:auto 1fr;gap:26px}}
.beyond p{font-size:.9375rem;color:var(--muted);max-width:58ch}
.beyond b{font-weight:500;color:var(--ink)}

/* steps */
.steps{margin-top:42px;border-top:1px solid var(--rule)}
.step{display:grid;grid-template-columns:52px 1fr;gap:18px;padding:26px 0;border-bottom:1px solid var(--rule)}
.step__n{font-family:var(--display);font-weight:600;font-stretch:112%;font-size:1.5rem;
  color:var(--red);letter-spacing:-.02em}
.step p{color:var(--muted);font-size:.9375rem;margin-top:6px}

/* quotes */
.quote{background:var(--card);margin:0;padding:30px 26px;display:flex;flex-direction:column;justify-content:space-between}
.quote blockquote{margin:0;font-family:var(--display);font-weight:500;font-stretch:106%;
  font-size:1.1875rem;line-height:1.35;letter-spacing:-.016em}
.quote figcaption{margin-top:24px;padding-top:16px;border-top:1px solid var(--rule);
  font-size:.875rem;color:var(--muted)}
.quote figcaption b{display:block;color:var(--ink);font-weight:500}
.tally{display:flex;flex-wrap:wrap;gap:10px 40px;margin-top:32px;font-size:.9375rem;color:var(--muted)}
.tally b{font-family:var(--display);font-weight:600;font-stretch:112%;font-size:1.75rem;
  letter-spacing:-.03em;color:var(--ink);display:block;line-height:1.1}

/* collateral */
.collat{display:grid;gap:34px;margin-top:42px}
@media(min-width:900px){.collat{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:center}}
.flyer{margin:0}
.flyer img{width:100%;height:auto;display:block;background:var(--ink)}
.flyer figcaption{font-size:.8125rem;color:var(--muted);margin-top:11px;line-height:1.45}

/* posts */
.post{background:var(--card);text-decoration:none;display:block;transition:background .16s}
.post__body{padding:24px}
.post img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;display:block;background:var(--ink)}
.post:hover{background:#FBFAF9}
.post__cat{font-size:.8125rem;color:var(--red-ink);border-bottom:1.5px solid var(--red);padding-bottom:2px}
.post h3{margin-top:18px;font-size:1.125rem}
.post time{font-size:.8125rem;color:var(--muted);display:block;margin-top:14px}

/* register */
.register{background:var(--ink);color:#fff;border-top:0}
.register h2{color:#fff}
.register .lede{color:#A8A5A0}
.reg-grid{display:grid;gap:38px}
@media(min-width:900px){.reg-grid{grid-template-columns:1fr 420px;gap:64px;align-items:start}}
.form{background:var(--ink-2);border:1px solid rgba(255,255,255,.12);padding:28px}
.field{margin-bottom:15px}
.field label{display:block;font-size:.8125rem;color:#A8A5A0;margin-bottom:7px}
.field input{width:100%;padding:13px 14px;background:#fff;border:1px solid transparent;
  border-radius:1px;font:400 .9375rem var(--sans);color:var(--ink)}
.form .btn{width:100%;margin-top:8px}
.form__note{font-size:.8125rem;color:#75726D;margin-top:16px}

/* footer */
.foot{background:#111112;color:#8A8782;font-size:.875rem;padding:60px 0 30px}
.foot .brand{padding:0;margin-bottom:16px}
.foot a{color:#B5B2AC;text-decoration:none;display:block;padding:5px 0}
.foot a:hover{color:#fff}
.foot h4{font:500 .8125rem var(--sans);color:#fff;margin:0 0 10px}
.foot__cols{display:grid;gap:32px;grid-template-columns:1fr 1fr}
@media(min-width:880px){.foot__cols{grid-template-columns:2fr 1fr 1fr 1.5fr}}
.foot__legal{margin-top:44px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);
  display:flex;flex-wrap:wrap;gap:8px 26px;font-size:.8125rem}
.foot__legal a{display:inline}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto}}

/* ---------- fixed departures page ---------- */
:root{
  --red:#E3010F;--red-fill:#BD0309;--red-d:#9C0207;--red-ink:#8A0208;--red-wash:#FCECEE;
  --logo:url(../img/idmc-logo-white.svg);
  --ink:#181818;--ink-2:#232326;--bone:#F7F6F4;--card:#FFFFFF;
  --rule:#E5E2DD;--rule-2:#CDC9C2;--muted:#6B6862;--maxw:1180px;
  --display:"Archivo",-apple-system,"Segoe UI",sans-serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}
html{-webkit-text-size-adjust:100%}
h1,h2,h3{margin:0;font-family:var(--display);font-weight:600;line-height:1.05;
  letter-spacing:-.025em;font-stretch:112%}
h1{font-size:clamp(2.2rem,6vw,3.4rem)}
.site-head{position:sticky;top:0;z-index:60;background:var(--ink);color:#fff}
.nav a{text-decoration:none;color:#B5B2AC;white-space:nowrap;padding:13px 0;
  border-bottom:2px solid transparent}
.btn{display:inline-flex;align-items:center;justify-content:center;
  font:500 .9375rem/1 var(--sans);padding:14px 22px;border-radius:2px;text-decoration:none;
  border:1px solid transparent;cursor:pointer;transition:background .16s,border-color .16s}
.btn--line{border-color:var(--rule-2);background:var(--card);color:var(--ink)}
.page-head{background:var(--ink);color:#fff;padding:56px 0 46px}
.page-head h1{color:#fff}
.page-head p{color:#A8A5A0;max-width:56ch;margin-top:18px}
.rule-lead{display:block;width:44px;height:3px;background:var(--red);margin-bottom:24px}
.viewbar{background:var(--red-wash);border-bottom:1px solid #F4D6D4}
.viewbar .wrap{display:flex;flex-wrap:wrap;gap:14px;align-items:center;
  padding-top:13px;padding-bottom:13px;font-size:.875rem;color:var(--red-ink)}
.seg{display:inline-flex;border:1px solid #E7B9B7;background:#fff;border-radius:2px;overflow:hidden}
.seg button{border:0;background:#fff;padding:8px 15px;font:500 .8125rem var(--sans);
  color:var(--red-ink);cursor:pointer}
.seg button[aria-pressed=true]{background:var(--ink);color:#fff}
.layout{display:grid;gap:28px;padding:36px 0 84px}
@media(min-width:940px){.layout{grid-template-columns:224px 1fr;gap:44px}}
.filters{align-self:start}
@media(min-width:940px){.filters{position:sticky;top:94px}}
.filters h2{font-family:var(--sans);font-size:.8125rem;font-weight:500;color:var(--muted);
  letter-spacing:0;font-stretch:100%;margin-bottom:14px}
.fgroup{border-top:1px solid var(--rule);padding:16px 0}
.fgroup:first-of-type{border-top:0;padding-top:0}
.fgroup h3{font-family:var(--sans);font-size:.875rem;font-weight:500;font-stretch:100%;
  letter-spacing:0;margin-bottom:10px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{border:1px solid var(--rule-2);background:var(--card);border-radius:2px;padding:7px 12px;
  font:400 .8125rem var(--sans);color:var(--ink);cursor:pointer;font-variant-numeric:tabular-nums}
.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}
.fgroup label{display:flex;gap:10px;align-items:center;font-size:.875rem;padding:4px 0;cursor:pointer}
.fgroup input[type=checkbox]{accent-color:var(--red)}
.results-head{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;
  align-items:center;margin-bottom:18px}
.results-head p{font-size:.9375rem;color:var(--muted)}
.results-head select{padding:10px 12px;border:1px solid var(--rule-2);border-radius:2px;
  background:#fff;font:400 .875rem var(--sans);color:var(--ink)}
.list{display:flex;flex-direction:column;gap:16px}
.dep{background:var(--card);border:1px solid var(--rule);border-left:3px solid var(--rule-2);
  padding:24px}
.dep[data-status=guaranteed]{border-left-color:var(--ink)}
.dep[data-status=filling]{border-left-color:var(--red)}
.dep[data-status=waitlist]{background:#FBFAF9}
.dep--closed{background:#FBFAF9;border-left-color:var(--rule-2)}
.dep--closed .dep__name,.dep--closed .dep__meta dd{color:var(--muted)}
.dep--closed .dep__actions,.dep--closed .rates,.dep--closed .locked{display:none}
.closednote{font-size:.875rem;color:var(--muted);border-left:3px solid var(--rule-2);
  padding:9px 14px;margin:14px 0 0}
.dep__top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.dep__name{font-family:var(--display);font-weight:600;font-stretch:110%;letter-spacing:-.024em;
  font-size:1.4375rem;line-height:1.1}
.dep__code{font-size:.8125rem;color:var(--muted);margin-top:6px;letter-spacing:.02em}
.tag{font-size:.75rem;font-weight:500;padding:6px 11px;border-radius:2px;white-space:nowrap}
.tag--guaranteed{background:var(--ink);color:#fff}
.tag--filling{background:var(--red-fill);color:#fff}
.tag--waitlist{background:transparent;border:1px solid var(--rule-2);color:var(--muted)}
.dep__meta{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;margin:20px 0 0}
@media(min-width:580px){.dep__meta{grid-template-columns:repeat(4,1fr)}}
.dep__meta dt{font-size:.75rem;color:var(--muted)}
.dep__meta dd{margin:4px 0 0;font-size:.9375rem;font-weight:500;font-variant-numeric:tabular-nums}
.rates{margin-top:20px;padding-top:18px;border-top:1px solid var(--rule);
  display:grid;grid-template-columns:1fr 1fr;gap:16px 20px}
@media(min-width:580px){.rates{grid-template-columns:repeat(3,1fr)}}
.rates dt{font-size:.75rem;color:var(--muted)}
.rates dd{margin:3px 0 0;font-family:var(--display);font-weight:600;font-stretch:110%;
  letter-spacing:-.028em;font-size:1.5rem;font-variant-numeric:tabular-nums;line-height:1.1}
.rates dd small{font-family:var(--sans);font-stretch:100%;font-size:.8125rem;font-weight:400;
  color:var(--muted);letter-spacing:0}
.locked{margin-top:20px;padding:16px 18px;border-top:1px solid var(--rule);
  display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;justify-content:space-between;
  background:var(--red-wash)}
.locked p{font-size:.875rem;color:var(--red-ink)}
.dep__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.hint{font-size:.8125rem;color:var(--muted);margin-top:14px;line-height:1.55}
.foot{background:#111112;color:#8A8782;font-size:.875rem;padding:46px 0}
.foot a{color:#B5B2AC}
.is-hidden{display:none !important}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* ---------- shared components introduced with the full page set ---------- */

/* long-form body copy: trade desk articles, legal pages, about */
.prose{max-width:68ch}
.prose p{font-size:1rem;line-height:1.68;margin:0 0 18px}
.prose h2{font-size:1.4375rem;margin:38px 0 12px}
.prose h3{font-size:1.125rem;margin:28px 0 9px}
.prose ul,.prose ol{margin:0 0 18px;padding-left:21px}
.prose li{font-size:1rem;line-height:1.62;padding:4px 0}
.prose a{color:var(--red-ink)}
.prose > :first-child{margin-top:0}
.prose .standfirst{font-size:1.125rem;line-height:1.6;color:var(--muted);margin-bottom:26px}
.prose blockquote{margin:24px 0;padding:0 0 0 20px;border-left:3px solid var(--red);
  font-size:1.0625rem;line-height:1.6}
.prose table{width:100%;border-collapse:collapse;font-size:.9375rem;margin:0 0 20px;
  border:1px solid var(--rule)}
.prose th,.prose td{padding:11px 13px;border-bottom:1px solid var(--rule);text-align:left}
.prose thead th{font-size:.75rem;font-weight:500;color:var(--muted);background:var(--bone)}
.prose tbody tr:last-child td{border-bottom:0}

/* callout used for operational warnings inside prose */
.callout{border-left:3px solid var(--red);background:var(--card);border:1px solid var(--rule);
  border-left:3px solid var(--red);padding:16px 19px;margin:0 0 20px}
.callout p{margin:0;font-size:.9375rem;line-height:1.58}
.callout p + p{margin-top:9px}
.callout b{font-weight:500}
.callout--grey{border-left-color:var(--rule-2)}
.callout--grey p{color:var(--muted)}

/* two-column page with a sticky side rail */
.split{display:grid;gap:30px;padding:36px 0 84px;grid-template-columns:minmax(0,1fr)}
@media(min-width:980px){.split{grid-template-columns:minmax(0,1fr) 300px;gap:48px}}
.split--rail-left{grid-template-columns:minmax(0,1fr)}
@media(min-width:980px){.split--rail-left{grid-template-columns:230px minmax(0,1fr)}}
.rail2{align-self:start}
@media(min-width:980px){.rail2{position:sticky;top:94px}}
.railbox{background:var(--card);border:1px solid var(--rule);padding:20px 22px}
.railbox h3{font-family:var(--sans);font-stretch:100%;letter-spacing:0;
  font-size:.8125rem;font-weight:500;color:var(--muted);margin-bottom:11px}
.railbox p{font-size:.875rem;line-height:1.55;margin:0 0 10px}
.railbox .btn{width:100%;margin-top:4px}

/* in-page contents list */
.toc{list-style:none;margin:0;padding:0;border-left:1px solid var(--rule)}
.toc li{margin:0}
.toc a{display:block;font-size:.875rem;color:var(--muted);text-decoration:none;
  padding:7px 0 7px 15px;margin-left:-1px;border-left:2px solid transparent;line-height:1.4}
.toc a:hover{color:var(--ink)}
.toc a[aria-current]{color:var(--ink);border-left-color:var(--red);font-weight:500}

/* product-type cards (products hub) */
.pcard{background:var(--card);padding:26px 26px 28px;display:flex;flex-direction:column}
.pcard__k{font-size:.75rem;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
.pcard h3{font-size:1.3125rem;margin-top:9px}
.pcard > p{font-size:.9375rem;color:var(--muted);margin-top:10px;line-height:1.58;max-width:46ch}
.pcard dl{margin:18px 0 0;padding-top:16px;border-top:1px solid var(--rule);display:grid;gap:11px}
.pcard dt{font-size:.75rem;color:var(--muted)}
.pcard dd{margin:3px 0 0;font-size:.9375rem;line-height:1.45}
.pcard__go{margin-top:auto;padding-top:20px}

/* trade desk index */
.postlist{border-top:1px solid var(--rule);margin-top:26px}
.plink{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;padding:22px 0;
  border-bottom:1px solid var(--rule);text-decoration:none;color:inherit}
@media(min-width:760px){.plink{grid-template-columns:148px minmax(0,1fr);gap:26px;align-items:baseline}}
.plink:hover h3{color:var(--red-ink)}
.plink__m{font-size:.8125rem;color:var(--muted);font-variant-numeric:tabular-nums}
.plink h3{font-size:1.1875rem;line-height:1.25}
.plink p{font-size:.9375rem;color:var(--muted);margin-top:7px;line-height:1.55;max-width:62ch}
.plink__tag{display:inline-block;font-size:.6875rem;color:var(--muted);
  border:1px solid var(--rule-2);padding:2px 7px;margin-top:9px}

/* forms */
.formgrid{display:grid;gap:18px;grid-template-columns:minmax(0,1fr)}
@media(min-width:620px){.formgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.field{display:flex;flex-direction:column}
.field--full{grid-column:1/-1}
.field label{font-size:.8125rem;font-weight:500;margin-bottom:7px}
.field .help{font-size:.75rem;color:var(--muted);margin-top:6px;line-height:1.45}
.field input,.field select,.field textarea{font:400 .9375rem var(--sans);padding:12px 13px;
  border:1px solid var(--rule-2);border-radius:2px;background:var(--card);color:var(--ink);width:100%}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--red-fill);
  outline-offset:-1px;border-color:var(--red-fill)}
.field textarea{min-height:104px;resize:vertical}
.req{color:var(--red-ink)}
.checkrow{grid-column:1/-1;display:flex;gap:11px;align-items:flex-start;font-size:.875rem;line-height:1.55}
.checkrow input{margin-top:3px;flex-shrink:0}

/* simple definition rows (contact, about) */
.rows{border-top:1px solid var(--rule)}
.rows > div{display:grid;grid-template-columns:minmax(0,1fr);gap:3px;padding:15px 0;
  border-bottom:1px solid var(--rule)}
@media(min-width:620px){.rows > div{grid-template-columns:210px minmax(0,1fr);gap:24px}}
.rows dt{font-size:.875rem;color:var(--muted)}
.rows dd{margin:0;font-size:.9375rem;line-height:1.55}

/* footer sitemap */
@media(min-width:760px){.foot__cols{grid-template-columns:1.4fr 1fr 1fr 1.1fr}}

/* Image slots. .media is a photograph across the top of a card; .ph is the
   same frame before the photograph exists, so nothing moves when it arrives.
   Each .ph names the file it is waiting for in data-photo. */
[hidden]{display:none !important}
.media{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;background:var(--ink)}
.ph{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:4px;
  aspect-ratio:16/9;padding:14px 16px;background:var(--bone);border:1px dashed var(--rule-2);
  color:var(--muted);font-size:.8125rem;line-height:1.4}
.ph::before{content:"";position:absolute;top:14px;left:16px;width:22px;height:16px;
  border:1.5px solid var(--rule-2);border-radius:3px}
.ph::after{content:"";position:absolute;top:18px;left:23px;width:8px;height:8px;
  border:1.5px solid var(--rule-2);border-radius:50%}
.ph__k{font-size:.6875rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}
.ph--wide,.media--wide{aspect-ratio:21/9}
.ph--43{aspect-ratio:4/3}
.sec2 > .media,.sec2 > .ph{margin:-20px -22px 16px;width:calc(100% + 44px);max-width:none}
.pcard > .media,.pcard > .ph{margin:-26px -26px 20px;width:calc(100% + 52px);max-width:none}
.pk > .media,.pk > .ph{margin:-22px -24px 18px;width:calc(100% + 48px);max-width:none}
.pk > .media,.pk > .ph{aspect-ratio:3/1}
@media(max-width:700px){.pk > .media,.pk > .ph{aspect-ratio:16/9}}

/* Fixed departures: a portrait photo on the left, the details on the right.
   Phones keep a small portrait beside the title, with the details full width below. */
.dep{display:grid;grid-template-columns:96px minmax(0,1fr);column-gap:16px;align-items:start}
.dep > *{grid-column:1 / -1}
.dep > .media,.dep > .ph{grid-column:1;grid-row:1;width:100%;max-width:none;margin:0;aspect-ratio:3/4}
.dep > .dep__top{grid-column:2;grid-row:1;flex-wrap:wrap}
.dep > .ph{font-size:0;padding:0}
.dep > .ph .ph__k{display:none}
@media(min-width:760px){
  .dep{grid-template-columns:200px minmax(0,1fr);column-gap:28px}
  .dep > *{grid-column:2}
  .dep > .media,.dep > .ph{grid-row:1 / span 8}
  .dep > .dep__top{flex-wrap:nowrap}
  .dep > .ph{font-size:.8125rem;padding:14px 16px}
  .dep > .ph .ph__k{display:block}
  .dep__meta{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(min-width:1280px){.dep__meta{grid-template-columns:repeat(4,auto);justify-content:space-between}}

/* A trade-desk post that is not written yet is not a link. */
div.plink:hover h3{color:inherit}
.post__soon{font-size:.8125rem;color:var(--muted);display:block;margin-top:14px}

/* What a form shows instead of pretending to send. */
.sendbox{flex:1 1 100%;margin-top:16px}
.sendbox p{color:var(--ink)}
.sendbox__go{display:flex;flex-wrap:wrap;gap:8px}
.sendbox__go .btn{width:auto;margin-top:0}

/* ---------- corrections, second pass ----------
   The fixed-departures block above re-declares .btn after the modifiers, which
   stripped the ghost-button outlines and made every .btn--sm full size. The
   modifiers are re-asserted here, after it. */
.btn{transition:background .16s,border-color .16s,color .16s,transform .16s ease-out;text-align:center}
.btn:active{transform:scale(.97)}
.btn--red{border-color:var(--red-fill)}
.btn--red:hover{border-color:var(--red-d)}
.btn--ghost{border-color:rgba(255,255,255,.34)}
.btn--ghost:hover{border-color:#fff}
.btn--ink{border-color:var(--ink)}
.btn--sm{padding:10px 15px;font-size:.875rem}
@media(pointer:coarse){.btn{min-height:44px}}

/* A .wrap that is also a page container lost its side gutter to a padding shorthand. */
.wrap.split,.wrap.layout,.wrap.layout2,.wrap.closing,.wrap.howto,.wrap.ahead{padding-left:22px;padding-right:22px}

/* Form labels: the dark home form's grey had leaked onto every light form. */
.field label{color:var(--ink)}
.form .field label,.form__note{color:#A8A5A0}

/* Tags: one height for all, and the dark tag stays visible on a dark header. */
.tag--guaranteed,.tag--filling{border:1px solid transparent}
.dep-head .tag--guaranteed{border-color:rgba(255,255,255,.34)}

/* Footer: copyright on its own line, the three policy links together below it. */
.foot__legal > span{flex:1 1 100%}

/* No one-word last lines; long lines capped for reading. */
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
.split p,.layout2 p,.hint,.callout p{max-width:72ch}

/* Placeholder ratios for the home tiles and the trade-desk lead. */
.ph--34{aspect-ratio:3/4}
.lead-post > .ph{aspect-ratio:16/10}

/* ---------- audit fixes, 27 Oct 2026 ---------- */
/* Footer column titles are h2 now (they skipped from h2 to h4); same look as before. */
.foot h2{font:500 .8125rem var(--sans);letter-spacing:0;color:#fff;margin:0 0 10px}
/* Very narrow phones: price and hotel tables stay inside the screen. */
@media(max-width:380px){table.tbl{font-size:.8125rem}table.tbl th,table.tbl td{padding:9px 6px}}
/* Visually hidden, still read by screen readers (keeps heading levels in order). */
.vh{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* Awards & Recognition (home). Same card as the trade-desk posts; photos
   cropped to one shape, faces kept in frame. */
.award{margin:0}
.award img,.award > .ph{aspect-ratio:4/3;object-position:center 30%}
.award h3{margin-top:14px}
.award p{font-size:.9375rem;color:var(--muted);margin-top:10px;line-height:1.55}
.award p.award__who{color:var(--ink);font-weight:500;font-size:.875rem}
.award .tally{margin-top:16px;gap:10px 28px}
.grid.recog{margin-top:18px}
/* Register band (home): what registration unlocks, same lines as register.html */
.reg-list__h{margin-top:40px;font-size:.8125rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:#A8A5A0}
.reg-list{list-style:none;margin:14px 0 0;padding:0;max-width:560px;border-top:1px solid rgba(255,255,255,.14)}
.reg-list li{display:grid;grid-template-columns:44px 1fr;gap:14px;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.14);font-size:1rem;line-height:1.5;color:#fff}
.reg-list .num{font-family:var(--display);font-weight:600;font-stretch:112%;color:var(--red);letter-spacing:-.02em}

/* ---------- fixed departures: search, counts, what is selected ----------
   Built by departures.js from the departures on the page. On phones the
   filter groups sit behind a Filters button so the list comes first. */
.fsearch{margin-bottom:18px}
.fsearch input{width:100%;padding:10px 12px;border:1px solid var(--rule-2);border-radius:2px;background:#fff;
  font:400 .875rem var(--sans);color:var(--ink)}
.fsearch input:focus{outline:2px solid var(--ink);outline-offset:1px}
.fcount{margin-left:auto;font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}
.chip .fcount{margin-left:4px}
.chip[aria-pressed=true] .fcount{color:rgba(255,255,255,.7)}
.ftoggle{display:none;width:100%;padding:10px 12px;border:1px solid var(--rule-2);border-radius:2px;background:#fff;
  font:500 .875rem var(--sans);color:var(--ink);cursor:pointer;text-align:left}
.ftoggle::after{content:"+";float:right}
.ftoggle[aria-expanded=true]::after{content:"–"}
@media(max-width:939px){
  .ftoggle{display:block}
  .filters .fgroups{display:none;margin-top:14px}
  .filters.is-open .fgroups{display:block}
}
.factive{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:-4px 0 18px;font-size:.875rem;color:var(--muted)}
.fpick{border:1px solid var(--ink);background:var(--ink);color:#fff;border-radius:2px;padding:5px 10px;
  font:500 .8125rem var(--sans);cursor:pointer}
.fpick span{opacity:.75}
.fclear{border:0;background:none;padding:5px 2px;font:500 .8125rem var(--sans);color:var(--red-ink);
  text-decoration:underline;cursor:pointer}

/* ---------- leadership ----------
   Leadership page: director cards, five to a row on wide screens.
   Home: one director at a time, portrait beside their words, cycled by
   site.js (arrows, dots, auto-advance that pauses on hover or focus).
   Without the script the slides are a swipeable row. */
.leaders{display:grid;gap:30px 22px;margin-top:40px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:760px){.leaders{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1120px){.leaders{grid-template-columns:repeat(5,minmax(0,1fr))}}
/* A portrait, the name, three lines of what they do. On hover the card
   lifts onto white and the photo leans in; the body stays opaque so the
   enlarged photo never runs over the name. */
.leaders .leader{margin:0;display:flex;flex-direction:column;overflow:hidden;scroll-margin-top:110px;text-align:center;
  background:transparent;box-shadow:0 0 0 rgba(0,0,0,0);
  transition:transform .35s var(--ease-out,ease),box-shadow .35s ease,background-color .35s ease}
.leader__img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:center top;background:#d9d9d9;
  transition:transform .6s var(--ease-out,ease)}
.leader__body{position:relative;z-index:1;padding:16px 14px 20px;background:inherit}
.leader .post__cat{display:none}
.leader h3{font-size:1rem;margin:0}
.leader p{margin-top:8px;font-size:.8125rem;line-height:1.55;color:var(--muted);
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .leaders .leader:hover{transform:translateY(-6px);background:var(--card);box-shadow:0 14px 34px rgba(24,24,24,.12)}
  .leaders .leader:hover .leader__img{transform:scale(1.06)}
}
#founders h2,#destination-directors h2{display:flex;align-items:center;justify-content:center;gap:18px;text-align:center;
  font-family:var(--sans);font-size:1rem;font-weight:600;font-stretch:100%;letter-spacing:.04em;text-transform:uppercase}
#founders h2::before,#founders h2::after,#destination-directors h2::before,#destination-directors h2::after{
  content:"";flex:0 1 72px;height:1px;background:var(--rule-2)}
#founders .rule-lead,#destination-directors .rule-lead{display:none}
.leader:target{outline:2px solid var(--red);outline-offset:3px}
@media(prefers-reduced-motion:no-preference){.leaders .leader.rv.in{transition:opacity .7s var(--ease-out),transform .35s var(--ease-out),box-shadow .35s ease,background-color .35s ease}}

.lcar{margin-top:38px}
.lcar__track{display:grid;grid-auto-flow:column;grid-auto-columns:100%;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory}
.lcar__slide{margin:0;scroll-snap-align:start;display:grid;background:var(--card);border:1px solid var(--rule)}
@media(min-width:860px){.lcar__slide{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}
.lcar__img{display:block;width:100%;height:100%;min-height:320px;max-height:560px;aspect-ratio:4/5;object-fit:cover;object-position:center top;background:#d9d9d9}
@media(min-width:860px){.lcar__img{aspect-ratio:auto}}
.lcar__body{padding:30px 26px 32px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
@media(min-width:860px){.lcar__body{padding:48px 52px}}
.lcar blockquote{margin:18px 0 0;font-family:var(--display);font-weight:500;font-stretch:106%;
  font-size:clamp(1.125rem,1.9vw,1.5rem);line-height:1.35;letter-spacing:-.012em;color:var(--ink)}
.lcar__name{margin:22px 0 18px;font-weight:600;font-size:1rem}
.lcar.is-js .lcar__track{display:grid;grid-auto-flow:row;overflow:visible}
.lcar.is-js .lcar__slide{grid-area:1/1;opacity:0;visibility:hidden;transition:opacity .5s ease,visibility 0s linear .5s}
.lcar.is-js .lcar__slide.is-on{opacity:1;visibility:visible;transition:opacity .5s ease}
.lcar__nav{display:flex;align-items:center;gap:16px;margin-top:16px;flex-wrap:wrap}
.lcar__arrow{width:42px;height:42px;border:1px solid var(--rule-2);background:var(--card);border-radius:2px;cursor:pointer;
  font:500 1.125rem/1 var(--sans);color:var(--ink)}
.lcar__arrow:hover{border-color:var(--ink)}
.lcar__dots{display:flex;gap:6px;flex-wrap:wrap}
.lcar__dot{width:26px;height:4px;border:0;padding:0;background:var(--rule-2);cursor:pointer}
.lcar__dot[aria-current=true]{background:var(--red)}
.lcar__count{font-size:.8125rem;color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto}

/* ---------- header menus: Destinations by region, Offices ----------
   Same type and colours as the header. Wide screens open on hover or focus;
   on smaller screens the menu row scrolls sideways, so a menu opens on tap
   as a panel under the header (site.js). */
.site-head .wrap{position:relative}
.navdd{display:flex}
.navdd__top::after{content:"";display:inline-block;width:6px;height:6px;margin:0 0 3px 7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg)}
.navdd__menu{display:none;position:absolute;top:100%;left:0;right:0;z-index:70;gap:22px 26px;padding:24px 26px 26px;background:var(--ink);
  border-top:1px solid rgba(255,255,255,.14);box-shadow:0 18px 34px rgba(0,0,0,.28);grid-template-columns:repeat(auto-fit,minmax(128px,1fr))}
.navdd.is-open .navdd__menu{display:grid}
.navdd__h{white-space:nowrap}
.nav .navdd__menu a{display:block;padding:5px 0;border:0;font-size:.875rem;line-height:1.35;white-space:normal}
.navdd--narrow{position:relative}
.navdd--narrow .navdd__menu{right:auto;width:400px;grid-template-columns:1fr 1fr}
/* Keyboard users only: on a phone, focus arrives mid-tap, and showing the menu
   then moves the link from under the finger, so the tap is lost. */
@media(hover:hover) and (pointer:fine) and (min-width:960px){.navdd:focus-within .navdd__menu{display:grid}}
/* A strip above the panel keeps the pointer "inside" while it crosses the gap. */
.navdd__menu::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:28px}
.nav .navdd__menu a.navdd__h{display:block;margin:0 0 8px;padding:0;font-size:.75rem;font-weight:500;color:#8F8C86}
.nav .navdd__menu a.navdd__h:hover{color:#fff}

/* ---------- destinations by region ----------
   site.js turns the office layout into region cards (East, North, West,
   South, Outbound, Flights) with a search; choosing one lists its
   destinations with the same sector cards. Without the script the office
   layout stays. */
.dregion{padding:40px 0 10px}
.dregion .fsearch{max-width:520px;margin:0 0 26px}
.dregion .dgrid{margin-top:0}
@media(min-width:1000px){.dregion .dgrid{grid-template-columns:repeat(6,1fr)}}
.dregion__card{cursor:pointer}
.dregion__card[aria-pressed=true]{outline:2px solid var(--red);outline-offset:4px}
.dregion__panel[hidden]{display:none}
.dregion__empty{color:var(--muted);padding:6px 0 30px}
.dregion-on .jump,.dregion-on .wrap > .office{display:none}
/* Eight menu items need tighter spacing until the header has room. */
@media(min-width:960px) and (max-width:1120px){.site-head .wrap{gap:14px}.nav{gap:13px;font-size:.8125rem}.head-cta{margin-left:12px}.head-cta .btn{padding-left:10px;padding-right:10px}}
.dgrid--5{gap:22px 18px}
@media(min-width:1120px){.dgrid--5{grid-template-columns:repeat(5,1fr)}}
.sec2,.office{scroll-margin-top:110px}
.sec2.is-hit{outline:2px solid var(--red);outline-offset:3px}

/* ---------- motion ----------
   Layout, type and colour are untouched; this only decides how things arrive.
   Above the fold: the hero and page heads rise in on load (CSS, so it stays
   smooth while the page is still loading). Below the fold: site.js marks
   blocks .rv and adds .in as they scroll into view, 70ms apart within a row
   of cards. Nothing is hidden unless site.js has marked it, so a page with
   no script shows everything. Reduced motion: no movement at all.
   Entrances fill backwards only, so a finished one leaves no transform
   behind and the text renders exactly as it did before. */
:root{--ease-out:cubic-bezier(.23,1,.32,1)}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes draw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes settle{from{transform:scale(1.06)}to{transform:scale(1)}}
@media(prefers-reduced-motion:no-preference){
  .hero::before{animation:settle 1.8s var(--ease-out) backwards}
  .hero h1,.hero .wrap > p,.hero-actions,.hero .board,
  .page-head h1,.page-head .wrap > p,.page-head .wrap > :not(.rule-lead):not(h1):not(p){animation:rise .8s var(--ease-out) backwards}
  .hero .wrap > p,.page-head .wrap > p{animation-delay:.08s}
  .hero-actions,.page-head .wrap > :not(.rule-lead):not(h1):not(p){animation-delay:.16s}
  .hero .board{animation-delay:.26s}
  .rule-lead{transform-origin:left center}
  .page-head .rule-lead{animation:draw .7s var(--ease-out) backwards}

  .rv{opacity:0;transform:translateY(22px)}
  .rv.in{opacity:1;transform:none;transition:opacity .7s var(--ease-out),transform .8s var(--ease-out);transition-delay:var(--rv-d,0s)}
  .rule-lead.rv{opacity:1;transform:scaleX(0)}
  .rule-lead.rv.in{transform:scaleX(1);transition:transform .7s var(--ease-out)}

  .site-head{transition:box-shadow .2s ease}
  .site-head.is-scrolled{box-shadow:0 6px 22px rgba(0,0,0,.22)}
}
/* Photos lean in a little under the pointer; touch screens get no false hover. */
.dest,a.post,.award,.pk,.dep,.pcard,.sec2,.lead-post{overflow:hidden}
.dest img,a.post img,.award img,.pk img,.dep img,.pcard img,.sec2 img,.lead-post img{transition:transform .6s var(--ease-out)}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .dest:hover img,a.post:hover img,.award:hover img,.pk:hover img,.dep:hover img,.pcard:hover img,.sec2:hover img,.lead-post:hover img{transform:scale(1.045)}
}

/* ---------- destinations in three levels ----------
   /destinations (regions side by side), a page per region and /flights,
   and a page per destination. Same tokens, type and components as the rest
   of the site; the destination head, hero, package card and hub head move
   here from the pages' own style blocks so every one of these pages shares
   them. Line icons (.ico) are drawn by site.js from data-ico. */
.dhead{background:var(--ink);color:#fff;padding:40px 0 36px}
.dhead h1{color:#fff;font-size:clamp(2rem,5vw,3rem)}
.dhead .circuit{color:#C9C6C1;margin-top:14px;font-size:1.0625rem;line-height:1.6;max-width:58ch}
.dhead .crumb{font-size:.875rem;margin-bottom:18px}
.dhead .crumb a{color:#B5B2AC;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:2px}
.dhead .crumb a:hover{color:#fff}
.dhero{width:100%;height:auto;aspect-ratio:21/9;object-fit:cover;display:block;background:var(--ink)}
@media(max-width:700px){.dhero{aspect-ratio:3/2}}
.pk{background:var(--card);border:1px solid var(--rule);border-left:3px solid var(--ink);padding:22px 24px;margin-bottom:16px}
.pk__top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.pk__code{font-size:.8125rem;color:var(--muted);font-variant-numeric:tabular-nums}
.pk h3{font-size:1.1875rem}
.pk__route{font-size:.875rem;color:var(--muted);margin-top:8px;line-height:1.5}
.pk__meta{display:flex;flex-wrap:wrap;gap:0 26px;margin:14px 0 0;padding-top:13px;border-top:1px solid var(--rule)}
.pk__meta div{padding:3px 0}
.pk__meta dt{font-size:.75rem;color:var(--muted)}
.pk__meta dd{margin:2px 0 0;font-size:.9375rem;font-variant-numeric:tabular-nums}
.pk__actions{margin-top:16px;display:flex;flex-wrap:wrap;gap:8px}
.pk--dep[data-status=filling]{border-left-color:var(--red)}
.hub-head{background:var(--ink);color:#fff;padding:46px 0 40px}
.hub-head h1{color:#fff;font-size:clamp(2rem,5vw,3.1rem);max-width:16ch}
.hub-head .lede{color:#C9C6C1;margin-top:16px;font-size:1.0625rem;line-height:1.62;max-width:64ch}
.hub-head .counts{display:flex;flex-wrap:wrap;margin:30px 0 0;border-top:1px solid rgba(255,255,255,.14)}
.hub-head .counts div{padding:18px 30px 0 0;margin-right:30px}
.hub-head .counts dt{font-size:.75rem;color:#8A8782}
.hub-head .counts dd{margin:5px 0 0;font-family:var(--display);font-weight:600;font-stretch:110%;
  letter-spacing:-.03em;font-size:1.75rem;color:#fff;line-height:1}
.jump{position:sticky;top:64px;z-index:20;background:var(--bone);border-bottom:1px solid var(--rule)}
.jump .wrap{display:flex;gap:20px;overflow-x:auto;scrollbar-width:none;padding:13px 22px}
.jump .wrap::-webkit-scrollbar{display:none}
.jump a{font-size:.8125rem;color:var(--muted);text-decoration:none;white-space:nowrap;padding-bottom:2px;
  border-bottom:1px solid transparent;transition:color .15s,border-color .15s}
.jump a:hover,.jump a.is-on{color:var(--ink);border-bottom-color:var(--red)}
@media(min-width:960px){.jump{top:72px}}
.closing{padding-top:52px;padding-bottom:86px}
.closing h2{font-size:1.5rem}
.closing__card{display:grid;gap:24px;grid-template-columns:minmax(0,1fr);align-items:center;background:var(--card);
  border:1px solid var(--rule);padding:28px 26px}
.closing__card .lede{margin-top:12px}
.closing__card .rule-lead{margin-bottom:18px}
.closing__go{display:flex;flex-wrap:wrap;gap:8px}
@media(min-width:860px){.closing__card{grid-template-columns:minmax(0,1fr) auto;gap:48px;padding:34px 38px}}
@media(max-width:560px){.closing__go .btn,.dzone__go{width:100%}}

/* line icons */
.ico{display:inline-flex;width:30px;height:30px;color:var(--red);flex-shrink:0}
.ico svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.ico--lg{width:42px;height:42px}
.ico--xl{width:84px;height:84px}
@media(prefers-reduced-motion:no-preference){
  .ico.is-draw svg *{stroke-dasharray:var(--len,120);stroke-dashoffset:var(--len,120)}
  .ico.is-draw.is-drawn svg *{stroke-dashoffset:0;transition:stroke-dashoffset 1.3s var(--ease-out) var(--ico-d,0s)}
}

/* destination page sections */
.dsec{margin-bottom:46px}
.dsec__h{font-size:1.5rem}
.dsec__lede{color:var(--muted);font-size:.9375rem;margin:7px 0 20px;max-width:62ch}
.dsec .prose{margin-top:6px}
.dhl{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule);grid-template-columns:minmax(0,1fr)}
@media(min-width:620px){.dhl{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1100px){.dhl{grid-template-columns:repeat(3,minmax(0,1fr))}}
.dhl__cell{background:var(--card);padding:20px 22px;transition:background .2s}
.dhl__cell h3{font-size:1rem;margin-top:12px}
.dhl__cell p{font-size:.875rem;color:var(--muted);margin-top:6px;line-height:1.55}
.dhl__cell:hover{background:#FDFCFB}
.dplan{margin-top:16px}
.dconnect{background:var(--card);border:1px solid var(--rule);border-top:3px solid var(--red);padding:26px 26px 28px}
.dconnect .dsec__h{margin-top:12px}
.dconnect__p{color:var(--muted);font-size:.9375rem;margin-top:10px;max-width:60ch;line-height:1.6}
.dconnect__go{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.dalso__list{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:7px}
.dalso__list a,.dalso__all{color:var(--red-ink);text-decoration:underline;text-underline-offset:3px;font-size:.875rem}
.dalso__all{font-weight:500;text-decoration:none}
.dalso__all::after{content:" \203A"}

/* live departures and catalogues (src/autoprod.js) */
.autoprod__h{font-size:1rem;margin:4px 0 14px;display:flex;align-items:center;gap:10px}
.autoprod__h .num{font:500 .75rem var(--sans);background:var(--ink);color:#fff;padding:2px 8px;border-radius:2px}
/* A region page is wide enough for two departures side by side. */
@media(min-width:900px){.sec .autoprod__deps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.sec .autoprod__deps .pk{margin-bottom:0}}
.autoprod__deps + .autoprod__h,.autoprod__pks + .autoprod__h,.autoprod__deps + .callout{margin-top:26px}
.autoprod__pks{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.autoprod__pks a{display:inline-flex;gap:8px;align-items:baseline;background:var(--card);border:1px solid var(--rule);
  padding:10px 14px;text-decoration:none;font-size:.9375rem;transition:border-color .15s}
.autoprod__pks a:hover{border-color:var(--ink)}
.autoprod__pks b{color:var(--red)}
.autoprod__cats{margin-top:0;grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:720px){.autoprod__cats{grid-template-columns:repeat(4,minmax(0,1fr))}}
.autoprod__none{margin-top:18px}
.autoprod__none a{color:var(--red-ink)}

/* region and flights pages */
.dintro__grid{display:grid;gap:34px;grid-template-columns:minmax(0,1fr)}
@media(min-width:960px){.dintro__grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:60px;align-items:start}}
.dpoints{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule)}
.dpoint{background:var(--card);padding:18px 20px;display:grid;grid-template-columns:30px minmax(0,1fr);column-gap:16px}
.dpoint .ico{grid-row:1 / span 2}
.dpoint h3{font-size:1rem}
.dpoint p{font-size:.875rem;color:var(--muted);margin-top:4px;line-height:1.55}
.dlead{display:grid;grid-template-columns:110px minmax(0,1fr);gap:18px;align-items:center;background:var(--card);
  border:1px solid var(--rule);padding:16px;text-decoration:none;color:inherit;overflow:hidden}
.dlead img{width:110px;aspect-ratio:3/4;object-fit:cover;transition:transform .6s var(--ease-out)}
.dlead__body{display:grid;gap:6px;justify-items:start}
.dlead__body b{font-family:var(--display);font-weight:600;font-stretch:110%;font-size:1.25rem;letter-spacing:-.02em}
.dlead__body span:last-child{font-size:.875rem;color:var(--muted);line-height:1.5}
.drows .lede{margin-bottom:34px}
.drow{display:grid;grid-template-columns:minmax(0,1fr);background:var(--card);border:1px solid var(--rule);margin-bottom:22px;overflow:hidden}
.drow__img{display:block;overflow:hidden;background:var(--ink);min-height:220px}
.drow__img img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/10;transition:transform .7s var(--ease-out)}
.drow__body{padding:24px 24px 26px;display:flex;flex-direction:column;align-items:flex-start}
.drow__n{font-family:var(--display);font-weight:600;font-stretch:110%;font-size:.9375rem;color:var(--red);font-variant-numeric:tabular-nums}
.drow__name{font-size:clamp(1.4rem,2.6vw,1.85rem);margin-top:8px}
.drow__name a{text-decoration:none}
.drow__circuit{font-size:.875rem;color:var(--muted);margin-top:8px}
.drow__text{font-size:.9688rem;line-height:1.65;margin-top:14px;max-width:58ch}
.drow__prose{margin-top:12px}
.drow__prose p{font-size:.9688rem}
.drow__tags{list-style:none;padding:0;margin:16px 0 0;display:flex;flex-wrap:wrap;gap:6px}
.drow__tags li{font-size:.75rem;border:1px solid var(--rule-2);padding:4px 10px;border-radius:2px;color:#4A4844}
.drow__go{margin-top:20px}
.drow__go::after{content:"\203A";margin-left:8px;transition:transform .2s var(--ease-out)}
.drow:hover .drow__go::after{transform:translateX(3px)}
.drow__art{display:flex;align-items:center;justify-content:center;background:var(--ink);min-height:200px}
.drow__art .ico{color:#fff}
@media(min-width:860px){
  .drow{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
  .drow:nth-of-type(even) .drow__img{order:2}
  .drow__img img{aspect-ratio:auto;min-height:100%}
  .drow__body{padding:34px 38px;justify-content:center}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .drow:hover .drow__img img,.dzone__art:hover img,.dlead:hover img{transform:scale(1.045)}
}
.dband{background:var(--ink);color:#fff;padding:56px 0}
.dband h2{color:#fff;font-size:clamp(1.6rem,3.6vw,2.2rem);max-width:22ch}
.dband p{color:#C9C6C1;margin-top:14px;max-width:62ch}
.dband .dband__go{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}

/* the destinations hub: regions side by side */
.dsearch{margin:28px 0 0;max-width:560px}
.dsearch input{padding:13px 14px;font-size:.9375rem}
.dsearch__out{padding-top:30px;padding-bottom:10px}
.dsearch__count{font-size:.875rem;color:var(--muted)}
.dsearch__none{margin:0}
.dsearch__none a{color:var(--red-ink)}
.dsearch__results{display:grid;gap:12px;margin-top:14px;grid-template-columns:minmax(0,1fr)}
@media(min-width:720px){.dsearch__results{grid-template-columns:repeat(2,minmax(0,1fr))}}
.dsearch__results .dchip{grid-template-columns:104px minmax(0,1fr);grid-template-rows:auto 1fr;column-gap:14px;row-gap:4px;padding:12px}
.dsearch__results .dchip__img{display:block;grid-row:1 / span 2;width:104px;aspect-ratio:4/3;object-fit:cover;background:var(--ink)}
.dsearch__results .dchip__name{font-size:1.0625rem;align-self:end}
.dsearch__results .dchip__circuit{font-size:.8125rem}
/* A region section: one image column and one content column. The image
   column is the same width whichever side it is on, and on wide screens the
   photo fills the full height of the content beside it. */
.dzone{padding:64px 0;border-bottom:1px solid var(--rule)}
.dzone__grid{display:grid;gap:28px;grid-template-columns:minmax(0,1fr);align-items:start}
@media(min-width:960px){
  .dzone__grid{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:32px}
  .dzone:nth-of-type(even) .dzone__grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
  .dzone:nth-of-type(even) .dzone__art{order:2}
  .dzone__grid{align-items:stretch}
}
@media(min-width:1100px){.dzone__grid{gap:56px}}
.dzone__art{display:block;width:100%;overflow:hidden;background:var(--ink);aspect-ratio:4/3}
.dzone__art img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-out)}
@media(min-width:600px) and (max-width:959px){.dzone__art{aspect-ratio:16/9}}
@media(min-width:960px){
  .dzone__art{position:relative;aspect-ratio:auto;height:100%}
  .dzone__art img{position:absolute;inset:0}
}
.dzone__id{display:flex;align-items:center;gap:14px}
.dzone__n{font-family:var(--display);font-weight:600;font-stretch:110%;font-size:1rem;color:var(--red);font-variant-numeric:tabular-nums}
.dzone h2{margin-top:14px}
.dzone__lede{font-size:1.0625rem;color:var(--ink);margin-top:14px;max-width:56ch;font-weight:500}
.dzone__text{color:var(--muted);margin-top:12px;max-width:60ch;font-size:.9688rem;line-height:1.65}
.dzone__list{display:grid;gap:10px;margin-top:24px;grid-template-columns:minmax(0,1fr)}
@media(min-width:480px){.dzone__list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.dchip{background:var(--card);border:1px solid var(--rule);padding:14px 16px;text-decoration:none;display:grid;gap:4px;align-content:start;overflow-wrap:anywhere;transition:background .15s,border-color .15s}
.dchip__img{display:none}
.dchip__name{font-family:var(--display);font-weight:600;font-stretch:108%;letter-spacing:-.015em;font-size:.9688rem}
.dchip__name::after{content:" \203A";color:var(--red);opacity:0;transition:opacity .15s}
.dchip__circuit{font-size:.75rem;color:var(--muted);line-height:1.45}
.dchip:hover{background:#FDFCFB;border-color:var(--rule-2)}
.dchip:hover .dchip__name::after{opacity:1}
.dzone__go{margin-top:24px}
.dzone--dark{background:var(--ink);color:#fff;border-bottom:0}
.dzone--dark h2,.dzone--dark .dzone__lede{color:#fff}
.dzone--dark .dzone__text{color:#C9C6C1}
.dzone--dark .dchip{background:var(--ink-2);color:#fff;border-color:rgba(255,255,255,.12)}
.dzone--dark .dchip:hover{border-color:rgba(255,255,255,.28)}
.dzone--dark .dchip:hover{background:#2C2C30}
.dzone--dark .dchip__circuit{color:#A8A5A0}

/* ---------- guest photographs ----------
   Postcards on the destination pages and along the winding road of
   /guest-gallery. The road is drawn once by site.js; while scrolling only the
   marker moves, by transform, so the page stays smooth. */
.pc{background:var(--card);padding:10px 10px 0;box-shadow:0 1px 2px rgba(24,24,24,.1),0 10px 26px rgba(24,24,24,.12)}
.pc img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--ink)}
.pc__cap{font-size:.8125rem;color:var(--muted);line-height:1.4;padding:10px 4px 12px}
.dguests__grid{display:grid;gap:18px;grid-template-columns:minmax(0,1fr);margin-bottom:18px}
@media(min-width:520px){.dguests__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.dguests__grid .pc:only-child{grid-column:1 / -1;max-width:520px}
.dguests .dalso__all{display:inline-block}

.gj{position:relative;padding:70px 0 90px;overflow:hidden}
.gj__road{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none}
.gj__road .edge{fill:none;stroke:var(--rule);stroke-width:18;stroke-linecap:round}
.gj__road .dash{fill:none;stroke:#fff;stroke-width:2;stroke-dasharray:10 12}
.gj__marker{position:absolute;left:0;top:0;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;background:var(--red);
  border:3px solid #fff;box-shadow:0 1px 5px rgba(24,24,24,.35);will-change:transform;opacity:0;z-index:2}
.gj.is-js .gj__marker{opacity:1}
.gj.is-js{padding-bottom:210px}
.gj__end{position:absolute;left:50%;bottom:44px;width:116px;height:116px;margin-left:-58px;border-radius:50%;z-index:3;
  background:var(--ink) var(--logo) center/72% no-repeat;border:5px solid var(--rule);box-shadow:0 8px 22px rgba(24,24,24,.2)}
@media(max-width:600px){.gj.is-js{padding-bottom:170px}.gj__end{width:96px;height:96px;margin-left:-48px;bottom:36px}}
.gj__stops{position:relative;z-index:1;display:grid;gap:170px}
.gj__stop{position:relative;display:grid;gap:26px;grid-template-columns:minmax(0,1fr);padding-left:34px;scroll-margin-top:130px}
.gj__stack{display:grid;padding:0 26px 22px 0}
.gj__stack .pc{grid-area:1 / 1;rotate:3deg;translate:20px 16px;z-index:1;
  transition:rotate .45s var(--ease-out),translate .45s var(--ease-out),box-shadow .3s ease}
.gj__stack .pc:nth-child(3){rotate:-4deg;translate:-8px 20px;z-index:0}
.gj__stack:not(.is-js) .pc:first-child,.gj__stack .pc.is-front{rotate:-1.2deg;translate:0 0;z-index:3}
.gj__stack.is-js .pc:not(.is-front){cursor:pointer}
.gj__stack .pc:only-child{translate:0 0}
.gj__n{position:absolute;left:-11px;top:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;
  background:var(--ink);color:#fff;font:600 .75rem var(--sans);font-variant-numeric:tabular-nums;z-index:2}
.gj__id{display:flex;align-items:center;gap:12px}
.gj__text h2{margin-top:14px}
.gj__p{color:var(--muted);margin-top:14px;max-width:52ch;font-size:1rem;line-height:1.65}
.gj__text .pk__meta{max-width:52ch}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .gj__stack .pc.is-front:hover,.gj__stack:not(.is-js) .pc:first-child:hover{rotate:0deg;translate:0 -5px}
}
@media(prefers-reduced-motion:reduce){.gj__stack .pc{transition:none}.gj__marker{display:none}}
@media(min-width:960px){
  .gj__stops{gap:190px}
  .gj__stop{grid-template-columns:minmax(0,1fr) 150px minmax(0,1fr);gap:0;padding-left:0;align-items:center}
  .gj__stack{grid-column:1;grid-row:1}
  .gj__text{grid-column:3;grid-row:1}
  .gj__n{left:50%;top:50%;margin:-15px 0 0 -15px}
  .gj__stop:nth-child(even) .gj__stack{grid-column:3}
  .gj__stop:nth-child(even) .gj__text{grid-column:1}
}

/* ---------- visual audit, 31 Oct 2026 ---------- */
/* Trade Desk: the photographs were shallow strips beside tall text. */
#journal .post img{aspect-ratio:4/3}
/* Award cards in a row keep their names on one line. */
.post.award{display:flex;flex-direction:column}
.post.award > .post__body{flex:1;display:flex;flex-direction:column;align-items:flex-start}
.post.award .award__who{margin-top:auto;padding-top:12px}
/* Catalogue cards: a two-line name no longer pushes its link out of the row. */
.dgrid--5 .dest{display:flex;flex-direction:column}
.dgrid--5 .dest__name{margin-bottom:3px}
.dgrid--5 .dest__meta{margin-top:auto}
/* Wide photographs in tall frames: keep the subject in the crop. */
img[src*="catalogue-rajasthan"]{object-position:28% center}
img[src*="pkg-hy-sk-02"]{object-position:78% center}
img[src*="article-srinagar-airport"]{object-position:50% 40%}

/* One tone for every photograph, whoever took it (owner, 31 Oct 2026).
   Portraits, logos and the flyer keep their own colour. */
.dest img,.post img,.ground img,.proof img,.pc img,.gal img,.pk img,.dep img,.pcard img,.drow__img img,.dzone__art img,.dchip__img,.dhero,img.media,img.photo{
  filter:saturate(1.24) contrast(1.05) sepia(.04)}
/* In a wide banner, keep the people in the crop. */
.dhero[src*="guest-kerala-munnar-1"]{object-position:50% 80%}
.dhero[src*="dep-northeast-signature"]{object-position:50% 90%}

/* Contact: WhatsApp and calling first, social links in one row. */
.ccard--main{border-top:3px solid var(--red)}
.ccard__p2{margin-top:6px}
/* The numbers open WhatsApp or the dialler, so they look like links. */
.ccard--main a.big{color:var(--red-ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.ccard--main a.big:hover{color:var(--red-fill)}
.ccard--social{grid-column:1 / -1}
.csoc{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.csoc__a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 14px;border:1px solid var(--rule-2);border-radius:2px;
  background:var(--card);color:var(--ink);text-decoration:none;font-size:.875rem;transition:border-color .15s,color .15s}
.csoc__a svg{width:20px;height:20px;fill:currentColor;flex-shrink:0}
.csoc__a:hover{border-color:var(--red);color:var(--red-ink)}
.cgrid > .ccard:nth-child(3){grid-column:1 / -1}
/* The last card fills its row, so an odd count leaves no grey gap beside it. */
.cgrid > .ccard:last-child{grid-column:1 / -1}
/* Home page Flights section: same layout as the destinations page. */
#flights .dzone__body .rule-lead{margin-bottom:18px}

/* ---------- experience map ----------
   Replaces the banner on a destination that has one (src/expmap.js). All
   vector. Without the script every experience is listed and the pins do
   nothing. Only opacity and transform animate. */
.dmap{background:var(--ink);color:#fff;padding:10px 0 56px}
.dmap__head h2{color:#fff;font-size:clamp(1.5rem,3vw,2rem)}
.dmap__head p{color:#A8A5A0;margin-top:8px;font-size:1rem}
.dmap__chips{display:flex;flex-wrap:wrap;gap:4px 24px;margin-top:22px;border-bottom:1px solid rgba(255,255,255,.12)}
.dmap__tab{background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;padding:10px 0;min-height:44px;
  font:500 .875rem var(--sans);color:#A8A5A0;cursor:pointer;transition:color .15s,border-color .15s}
.dmap__tab:hover{color:#fff}
.dmap__tab[aria-pressed=true]{color:#fff;border-bottom-color:var(--red)}
.dmap__grid{display:grid;gap:28px;margin-top:26px;grid-template-columns:minmax(0,1fr)}
@media(min-width:960px){.dmap__grid{grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);gap:48px;align-items:center}}
.dmap__board{position:relative;aspect-ratio:1000/720}
.dmap__svg{position:absolute;inset:0;width:100%;height:100%;display:block;overflow:visible}
.dmap__land{fill:url(#dmap-fill)}
.dmap__edge{fill:none;stroke:rgba(255,255,255,.62);stroke-width:1.25;stroke-linejoin:round}
.dmap__contours path{fill:none;stroke:rgba(255,255,255,.11);stroke-width:1;stroke-linejoin:round}
.dmap__lake{fill:rgba(255,255,255,.07);stroke:rgba(255,255,255,.4);stroke-width:1}
.dmap__river{fill:none;stroke:rgba(255,255,255,.17);stroke-width:1.5;stroke-linecap:round}
.dmap__road{fill:none;stroke:rgba(255,255,255,.34);stroke-width:1.25;stroke-dasharray:1 7;stroke-linecap:round}
.dmap__leaders path{fill:none;stroke:rgba(255,255,255,.4);stroke-width:1}
.dmap__leaders circle{fill:rgba(255,255,255,.7)}
.dmap__dot{fill:#fff}
.dmap__place{fill:rgba(255,255,255,.88);font:500 16px var(--sans);text-anchor:middle}
.dmap__rname{fill:rgba(255,255,255,.34);font:400 12px var(--sans);letter-spacing:.2em;text-transform:uppercase;text-anchor:middle}
.dmap__pin{position:absolute;width:36px;height:36px;margin:-18px 0 0 -18px;padding:9px;border:1px solid rgba(255,255,255,.55);border-radius:50%;
  background:var(--ink);color:#fff;cursor:pointer;z-index:2;transition:transform .25s var(--ease-out),opacity .25s,background .2s,border-color .2s}
.dmap__pin .ico{display:block;width:100%;height:100%;color:inherit}
.dmap .ico.is-draw svg *{stroke-dasharray:none;stroke-dashoffset:0}
.dmap__pin:hover,.dmap__pin:focus-visible{transform:scale(1.12);border-color:#fff;z-index:4}
.dmap__pin[aria-pressed=true]{background:var(--red-fill);border-color:var(--red-fill);transform:scale(1.14);z-index:3}
.dmap__pin.is-dim{opacity:.18}
.dmap__tip{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);padding:5px 9px;background:#fff;color:var(--ink);
  font:500 .75rem var(--sans);white-space:nowrap;border-radius:2px;opacity:0;pointer-events:none;transition:opacity .15s}
.dmap__pin:hover .dmap__tip,.dmap__pin:focus-visible .dmap__tip{opacity:1}
.dmap__link{position:absolute;transform:translate(-50%,-50%);color:rgba(255,255,255,.88);font:500 .8125rem var(--sans);white-space:nowrap;
  text-decoration:none;border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:2px;z-index:2;transition:border-color .15s,color .15s}
.dmap__link:hover{color:#fff;border-bottom-color:var(--red)}
.dmap__panel{display:flex;flex-direction:column;min-height:400px;border-top:2px solid var(--red);padding-top:22px}
.dmap__where{font-size:.8125rem;color:#A8A5A0}
.dmap__exp h3{color:#fff;font-size:clamp(1.5rem,2.4vw,1.875rem);line-height:1.12;margin-top:8px}
.dmap__text{color:#C9C6C1;font-size:.9688rem;line-height:1.65;margin-top:14px}
.dmap__facts{margin:18px 0 0;border-top:1px solid rgba(255,255,255,.12)}
.dmap__facts div{display:grid;grid-template-columns:56px minmax(0,1fr);gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.dmap__facts dt{font-size:.8125rem;color:#8A8782}
.dmap__facts dd{margin:0;font-size:.875rem;line-height:1.5;color:#fff}
.dmap__exp .btn{margin-top:20px}
.dmap.is-js .dmap__exp:not(.is-on){display:none}
.dmap:not(.is-js) .dmap__exp + .dmap__exp{margin-top:32px}
.dmap:not(.is-js) .dmap__nav,.dmap:not(.is-js) .dmap__chips{display:none}
.dmap__nav{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:22px}
.dmap__arrow{width:44px;height:44px;background:transparent;border:1px solid rgba(255,255,255,.28);border-radius:2px;color:#fff;
  font:400 1.25rem/1 var(--sans);cursor:pointer;transition:border-color .15s}
.dmap__arrow:hover{border-color:#fff}
.dmap__count{margin-left:auto;font-size:.8125rem;color:#A8A5A0}
.dmap__note{font-size:.75rem;color:#8A8782;margin-top:18px}
@keyframes dmap-edge{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes dmap-fade{from{opacity:0}to{opacity:1}}
@keyframes dmap-card{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes dmap-ring{0%{transform:scale(1);opacity:.6}100%{transform:scale(1.7);opacity:0}}
@media(prefers-reduced-motion:no-preference){
  .dmap__edge{stroke-dasharray:1;animation:dmap-edge 1.8s var(--ease-out) backwards}
  .dmap__contours,.dmap__place,.dmap__rname{animation:dmap-fade 1.2s ease .5s backwards}
  .dmap__pin{animation:dmap-fade .5s ease backwards;animation-delay:calc(.7s + var(--d,0ms))}
  .dmap__exp.is-on{animation:dmap-card .35s var(--ease-out)}
  .dmap__pin[aria-pressed=true]::after{content:"";position:absolute;inset:-1px;border:1px solid var(--red);border-radius:50%;animation:dmap-ring 2.4s ease-out infinite}
}
@media(max-width:600px){
  .dmap__pin{width:27px;height:27px;margin:-13.5px 0 0 -13.5px;padding:6px}
  .dmap__place{font-size:24px}
  .dmap__rname,.dmap__tip{display:none}
  .dmap__link{font-size:.6875rem}
  .dmap__panel{min-height:0}
}

/* ---------- phones and tablets ----------
   Found by testing on Android Chrome and iPhone Safari engines. */
a,button,summary,label,select{touch-action:manipulation}
.jump{top:var(--head,72px)}
/* The menu on a phone or tablet: a sheet under the header, outside the
   scrolling menu row so nothing can clip it (site.js). */
.navsheet{display:none;position:absolute;top:100%;left:0;right:0;z-index:70;gap:14px 20px;padding:10px 22px 26px;background:var(--ink);
  border-top:1px solid rgba(255,255,255,.14);box-shadow:0 18px 34px rgba(0,0,0,.28);grid-template-columns:1fr 1fr;align-content:start;
  overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.navsheet.is-open{display:grid}
@media(min-width:640px){.navsheet{grid-template-columns:repeat(auto-fit,minmax(128px,1fr))}}
.navsheet a{display:block;padding:9px 0;color:#B5B2AC;font-size:.9375rem;line-height:1.35;text-decoration:none}
.navsheet a:hover{color:#fff}
.navsheet a.navdd__h{margin:0 0 2px;padding:8px 0;font-size:.8125rem;font-weight:500;color:#8F8C86}
.navsheet a.navsheet__all{grid-column:1 / -1;padding:12px 0;margin-bottom:-6px;border-bottom:1px solid rgba(255,255,255,.14);color:#fff;font-weight:500}
.navsheet a.navsheet__all::after{content:" \203A";color:var(--red)}
.navdd.is-sheet .navdd__top{color:#fff}
.navdd.is-sheet .navdd__top::after{margin-bottom:-1px;transform:rotate(-135deg)}
/* iOS Safari zooms the page when a field under 16px is focused. */
@media(hover:none),(max-width:959px){
  input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px !important}
  input[type=checkbox],input[type=radio]{width:20px;height:20px}
  /* No hover on a phone, so nothing may wait for one. */
  .leader p{display:block;overflow:visible;-webkit-line-clamp:none;line-clamp:none}
}
@media(max-width:959px){
  /* A smaller header: it stays on screen, and took a fifth of a small phone. */
  .site-head .wrap{row-gap:0}
  .site-head .brand{padding:5px 0}
  .site-head .brand-mark{width:96px;height:40px}
  .site-head .head-cta{padding:5px 0}
  .site-head .head-cta .btn{padding:9px 12px;min-height:38px}
  .nav{gap:20px;font-size:.875rem;
    -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
  .nav a{padding:11px 0}
  /* The row scrolls sideways here, so Contact moves up to where it is seen
     without scrolling. */
  .nav > *{order:2}
  .nav > a:first-child,.nav > .navdd:nth-child(2){order:0}
  .nav > a[href="contact"]{order:1}
  [id],.sec2,.office,.gj__stop,.leaders .leader{scroll-margin-top:calc(var(--head,96px) + 56px)}
  .jump a{padding:10px 0}
  .jump .wrap{padding-top:3px;padding-bottom:3px}
  .lcar__dot{height:24px;padding:10px 0;background-clip:content-box}
  .dmap__pin::before{content:"";position:absolute;inset:-2px}
}
/* The smallest phones: pins sized so that neighbours never block each other. */
@media(max-width:360px){
  .dmap__pin{width:21px;height:21px;margin:-10.5px 0 0 -10.5px;padding:4px}
  .dmap__pin::before{display:none}
  .dmap__pin[aria-pressed=true]{transform:none}
}

/* ---------- next fixed departures on the home page ----------
   Filled from the Fixed Departures page as the page is served (autoprod.js). */
.hdeps__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:10px 24px;margin-bottom:26px}
.hdeps__all{font-size:.9375rem}
.hdeps__grid{display:grid;gap:28px;grid-template-columns:minmax(0,1fr)}
@media(min-width:960px){.hdeps__grid{grid-template-columns:minmax(0,11fr) minmax(0,10fr);gap:44px}}
.hdep{background:var(--card);border:1px solid var(--rule)}
.hdep__img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.hdep__body{padding:22px}
.hdep__k{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 14px;margin-bottom:12px;font-size:.8125rem;color:var(--muted)}
.hdep h3{font-size:1.375rem;line-height:1.25}
.hdep__route{margin-top:8px;color:var(--muted);font-size:.9375rem}
.hdep__meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:14px 20px;margin:18px 0 20px}
.hdep__meta dt{font-size:.75rem;color:var(--muted);margin-bottom:3px}
.hdep__meta dd{margin:0;font-size:.9375rem;font-weight:500}
.hdep__actions{display:flex;flex-wrap:wrap;gap:10px}
.hdeps__list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.hdeps__list a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;padding:17px 0;border-bottom:1px solid var(--rule);color:inherit;text-decoration:none}
.hdeps__list a:hover .hdeps__name{color:var(--red-fill)}
.hdeps__name{font-weight:500;line-height:1.3;transition:color .15s}
.hdeps__dates{grid-column:1;grid-row:2;font-size:.875rem;color:var(--muted)}
.hdeps__price{grid-column:2;grid-row:1 / span 2;align-self:center;text-align:right;font-size:.875rem;font-weight:500;white-space:nowrap}
.hdeps__price small{display:block;font-size:.75rem;font-weight:400;color:var(--muted)}

/* ---------- a departure with its own page: the name and photo open it ---------- */
.dep > .dep__photo{grid-column:1;grid-row:1;display:block}
.dep > .dep__photo .media{display:block;width:100%;max-width:none;margin:0;aspect-ratio:3/4;object-fit:cover}
/* Beside the details on a wide screen, like the photo of a card without a page. */
@media(min-width:760px){.dep > .dep__photo{grid-row:1 / span 8}}
.dep__name a{color:inherit;text-decoration:none}
.dep__name a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.pk__top h3 a{color:inherit;text-decoration:none}
.pk__top h3 a:hover{text-decoration:underline;text-underline-offset:3px}

/* ---------- ready packages on the Products page (autoprod.js) ---------- */
.rpk-grid{display:grid;gap:16px;grid-template-columns:minmax(0,1fr);align-items:start;margin-top:34px}
@media(min-width:760px){.rpk-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1100px){.rpk-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.rpk-grid .pk{margin:0}
/* a product photo is often the flyer itself: show it whole, never a cropped strip */
.rpk-grid .pk > .media,.tgrid .pk > .media{aspect-ratio:auto;height:auto;max-height:520px;object-fit:contain}

