/* ============================================================
   Oyster Holidays V2 — "The Oyster Journal"
   Handcrafted journeys from Bangalore. Warm editorial, mobile-first.
   Palette: ivory paper · saffron-gold · deep peacock-green · espresso
   ============================================================ */

:root{
  --paper:#fbf5ea;          /* warm ivory canvas */
  --paper-2:#f3e8d6;        /* deeper sand */
  --paper-3:#ece0cb;
  --ink:#231f1a;            /* espresso text */
  --ink-2:#5d5246;
  --ink-3:#897c6c;
  --teal:#0e463f;           /* deep peacock-green (dark bands) */
  --teal-2:#13605534;
  --teal-deep:#0a342f;
  --gold:#c2862a;           /* saffron-amber accent */
  --gold-deep:#a06c18;
  --gold-soft:#e3b65f;
  --wa:#1a7a50;
  --wa-deep:#135d3c;
  --line:#e3d6bf;           /* hairline on paper */
  --line-ink:#cdbfa6;
  --white:#fff;

  --display:'Playfair Display',Georgia,serif;
  --display-sc:'Playfair Display SC','Playfair Display',Georgia,serif;
  --sans:'Lato',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;

  /* type — calibrated (hero ~62px, body 16px @desktop) */
  --t-micro:clamp(.7rem,.68rem + .1vw,.76rem);
  --t-small:clamp(.8rem,.77rem + .15vw,.875rem);
  --t-body:clamp(.95rem,.92rem + .15vw,1rem);
  --t-lead:clamp(1.05rem,1rem + .25vw,1.18rem);
  --t-2:clamp(1.2rem,1.1rem + .5vw,1.45rem);
  --t-3:clamp(1.5rem,1.3rem + .9vw,1.95rem);
  --t-4:clamp(1.9rem,1.55rem + 1.6vw,2.7rem);
  --t-5:clamp(2rem,1.5rem + 2.3vw,3.4rem);   /* hero (.dhero h1) — ~54px cap, calmer on 13–14" laptops */

  --maxw:1280px;
  --gut:clamp(1.15rem,4.5vw,4rem);
  --r:12px; --r-lg:20px;
  --sh:0 24px 60px -30px rgba(35,31,26,.5);
  --sh-soft:0 14px 38px -26px rgba(35,31,26,.55);
  --ease:cubic-bezier(.22,.61,.36,1);
  --grade:saturate(1.06) contrast(1.02) brightness(.99);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--sans);font-size:var(--t-body);line-height:1.62;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
::selection{background:var(--gold);color:#fff}
h1,h2,h3,h4{font-family:var(--display);font-weight:400;line-height:1.05;letter-spacing:-.01em;color:var(--ink)}

.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}
.eyebrow{font-size:var(--t-small);font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep);display:inline-flex;align-items:center;gap:.6rem}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--gold)}
.idx{font-family:var(--display);font-style:italic;color:var(--gold);font-size:var(--t-3);line-height:1}

/* seal */
.seal{width:84px;height:84px;flex:none}
.seal text{font-family:var(--sans);font-size:7.2px;font-weight:600;letter-spacing:1.5px;fill:currentColor;text-transform:uppercase}
.seal .pearl{fill:currentColor}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--sans);font-weight:600;font-size:var(--t-small);letter-spacing:.01em;padding:.9rem 1.4rem;border-radius:999px;cursor:pointer;border:1px solid transparent;transition:transform .4s var(--ease),box-shadow .4s,background .3s,color .3s}
.btn svg{width:17px;height:17px}
.btn--wa{background:var(--wa);color:#fff;box-shadow:0 12px 26px -12px rgba(26,122,80,.7)}
.btn--wa:hover{transform:translateY(-3px);box-shadow:0 18px 34px -14px rgba(26,122,80,.8)}
.btn--gold{background:var(--gold);color:#fff;box-shadow:0 12px 26px -14px rgba(160,108,24,.75)}
.btn--gold:hover{transform:translateY(-3px);background:var(--gold-deep)}
.btn--ghost{background:transparent;border-color:var(--line-ink);color:var(--ink)}
.btn--ghost:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.btn--light{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.5);backdrop-filter:blur(4px)}
.btn--light:hover{background:rgba(255,255,255,.2)}
/* On dark bands (hero/closer/plan), the primary CTA uses brand gold, not green — cleaner against teal */
.dhero .btn--wa,.closer .btn--wa,.plan__card .btn--wa{background:var(--gold);box-shadow:0 14px 30px -14px rgba(160,108,24,.7)}
.dhero .btn--wa:hover,.closer .btn--wa:hover,.plan__card .btn--wa:hover{background:var(--gold-deep)}

/* ---------- NAV ---------- */
.topbar{position:fixed;top:0;left:0;right:0;z-index:61;background:#161616;color:rgba(255,255,255,.72);display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.4rem var(--gut);font-size:var(--t-micro);letter-spacing:.04em}
.topbar a{color:rgba(255,255,255,.85)}
.topbar a:hover{color:#fff}
.topbar__r{display:flex;align-items:center;gap:1.4rem}
.topbar__r span{display:inline-flex;align-items:center;gap:.4rem}
@media(max-width:679px){.topbar .topbar__l,.topbar__r .topbar__email,.topbar__r .topbar__hours{display:none}.topbar{justify-content:flex-end}}
.nav{position:fixed;top:31px;left:0;right:0;z-index:60;display:flex;align-items:center;justify-content:space-between;padding:.65rem var(--gut);background:#fff;border-bottom:1px solid var(--line);transition:box-shadow .45s,padding .45s}
.nav.scrolled{box-shadow:0 6px 24px -18px rgba(35,31,26,.5);border-color:var(--line);padding-block:.6rem}
.logo{display:flex;align-items:center;gap:.65rem;color:var(--ink)}
.logo__img{height:50px;width:auto;flex:none;transition:height .45s var(--ease)}
.nav.scrolled .logo__img{height:44px}
.logo__txt{font-family:var(--display);font-size:clamp(1.05rem,.9rem + .5vw,1.35rem);font-weight:500;color:var(--ink);letter-spacing:.01em;line-height:1;white-space:nowrap}
@media(max-width:420px){.logo__txt{display:none}}
.logo__txt b{font-family:var(--display);font-size:1.15rem;letter-spacing:-.01em;display:block;line-height:.95}
.logo__txt small{font-family:var(--sans);font-size:.58rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-deep)}
.nav.atop .logo__txt small{color:var(--gold-soft)}
.nav-links{display:none;gap:1.7rem;margin-left:auto;margin-right:1.7rem}
.nav-links a{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.15em;color:var(--ink);position:relative;padding:.2rem 0}
.nav-links a::after{content:"";position:absolute;left:0;bottom:-3px;width:0;height:1.5px;background:var(--gold);transition:width .35s var(--ease)}
.nav-links a:hover::after{width:100%}
/* ---------- mega menu ---------- */
.nav-item{position:relative;display:flex;align-items:center}
.subnav{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(10px);min-width:184px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 22px 40px -22px rgba(35,31,26,.5);padding:.45rem;opacity:0;visibility:hidden;transition:opacity .25s var(--ease),transform .25s var(--ease),visibility .25s;z-index:58}
.nav-item:hover .subnav,.subnav:hover{opacity:1;visibility:visible;transform:translateX(-50%) translateY(5px)}
.subnav a{display:block;text-transform:none;letter-spacing:0;font-weight:500;font-size:var(--t-small);color:var(--ink-2);padding:.55rem .75rem;border-radius:8px}
.subnav a::after{display:none!important}
.subnav a:hover{background:var(--paper-2);color:var(--gold-deep)}
.mega{position:fixed;left:0;right:0;top:102px;z-index:58;background:#fff;border-top:1px solid var(--line);box-shadow:0 28px 46px -28px rgba(35,31,26,.5);opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s}
.nav-item:hover .mega,.mega:hover{opacity:1;visibility:visible;transform:none}
.mega__in{max-width:var(--maxw);margin-inline:auto;padding:clamp(1.7rem,3vw,2.8rem) var(--gut)}
.mega h4{font-family:var(--display);font-weight:500;font-size:1.25rem;color:var(--ink);margin-bottom:1rem}
.mega a{text-transform:none;letter-spacing:0;font-weight:400;color:var(--ink-2);font-size:var(--t-small)}
.mega a::after{display:none!important}
.mega ul{list-style:none}
.mega ul li a{display:block;padding:.42rem 0}
.mega ul li a:hover{color:var(--gold-deep)}
.mega__more{display:inline-block;margin-top:1.1rem;color:var(--gold-deep)!important;font-weight:600!important}
.mega--dest .mega__in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem)}
.mega-cols2{display:grid;grid-template-columns:1fr 1fr;gap:0 2rem}
.mega-cards{display:grid;gap:1rem 1.25rem}
.mega--services .mega-cards{grid-template-columns:repeat(2,1fr)}
.mcardm{display:flex;gap:.9rem;align-items:center;padding:.65rem;border-radius:12px;transition:background .25s}
.mcardm:hover{background:var(--paper-2)}
.mcardm img{width:70px;height:56px;border-radius:8px;object-fit:cover;flex:none;filter:var(--grade)}
.mcardm .ic{width:48px;height:48px;border-radius:50%;background:var(--paper-2);display:grid;place-items:center;color:var(--gold-deep);flex:none}
.mcardm .ic svg{width:22px;height:22px}
.mcardm b{font-family:var(--display);font-weight:500;font-size:1.05rem;color:var(--ink);display:block;line-height:1.15}
.mcardm span{font-size:var(--t-small);color:var(--ink-2)}
.mega--stories .mega__in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:stretch}
.mega-stories-list li a{display:block;padding:.55rem 0;font-family:var(--display);font-size:1.1rem;color:var(--ink)}
.mega-stories-list li a:hover{color:var(--gold-deep)}
.mega-feat{position:relative;border-radius:14px;overflow:hidden;min-height:240px;isolation:isolate}
.mega-feat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:var(--grade);z-index:-2}
.mega-feat::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(rgba(0,0,0,0) 45%,rgba(8,22,20,.7))}
.mega-feat b{position:absolute;left:1.1rem;bottom:1.1rem;right:1.1rem;color:#fff;font-family:var(--display);font-weight:500;font-size:1.15rem}
.nav-actions{display:flex;align-items:center;gap:.6rem}
.nav-icon{display:grid;place-items:center;width:34px;height:40px;border:0;background:transparent;color:var(--ink);cursor:pointer;transition:color .3s}
.nav-icon:hover{color:var(--gold-deep)}
.searchbar{position:fixed;top:102px;left:0;right:0;z-index:59;background:#fff;border-bottom:1px solid var(--line);box-shadow:var(--sh-soft);transform:translateY(-14px);opacity:0;visibility:hidden;transition:.35s var(--ease)}
.searchbar.open{transform:none;opacity:1;visibility:visible}
.searchbar__in{max-width:var(--maxw);margin-inline:auto;display:flex;align-items:center;gap:.8rem;padding:1rem var(--gut)}
.searchbar__in>svg{color:var(--ink-3);flex:none}
.searchbar__in input{flex:1;border:0;background:transparent;font-family:var(--sans);font-size:var(--t-2);color:var(--ink);padding:.3rem 0}
.searchbar__in input:focus{outline:none}
.searchbar__close{border:0;background:transparent;font-size:1.6rem;color:var(--ink-3);cursor:pointer;line-height:1}
.searchbar__close:hover{color:var(--ink)}
.nav-toggle{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;border:0;background:var(--paper-2);color:var(--ink);cursor:pointer}
.mobile-menu{position:fixed;inset:0;z-index:65;background:var(--teal-deep);color:#fff;transform:translateY(-100%);transition:transform .45s var(--ease);overflow-y:auto;padding:4.5rem var(--gut) 2.5rem}
.mobile-menu.open{transform:none}
.mobile-menu .close{position:absolute;top:1rem;right:var(--gut);background:none;border:0;color:#fff;font-size:2.2rem;line-height:1;cursor:pointer}
.mm-item{border-bottom:1px solid rgba(255,255,255,.12)}
.mm-top{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;background:none;border:0;color:#fff;font-family:var(--display);font-size:1.15rem;padding:.85rem 0;cursor:pointer;text-align:left}
.mm-top svg{width:18px;height:18px;flex:none;transition:transform .3s}
.mm-item.open .mm-top svg{transform:rotate(180deg)}
.mm-sub{max-height:0;overflow:hidden;transition:max-height .45s var(--ease)}
.mm-item.open .mm-sub{max-height:640px}
.mm-sub a{display:block;color:rgba(255,255,255,.82);font-size:1rem;padding:.45rem 0;font-family:var(--sans)}
.mm-sub a:active{color:#fff}
.mm-h{display:block;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft);margin:.9rem 0 .25rem}
.mm-link{display:block;border-bottom:1px solid rgba(255,255,255,.12);font-family:var(--display);font-size:1.15rem;color:#fff;padding:.85rem 0}
.mm-foot{margin-top:2rem;display:flex;flex-direction:column;gap:1.1rem;align-items:flex-start}
.mm-foot a[href^="tel"]{color:rgba(255,255,255,.8);font-size:var(--t-small)}
.mm-foot .btn--wa svg{width:18px;height:18px;fill:#fff}

/* ---------- HERO (asymmetric editorial) ---------- */
.hero{position:relative;background:var(--teal-deep);padding-top:clamp(90px,12vh,104px)}
.stars{color:var(--gold);letter-spacing:1px}
.panels{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;height:calc(100svh - clamp(90px,12vh,104px));scrollbar-width:none}
.panels::-webkit-scrollbar{display:none}
.panel{position:relative;isolation:isolate;flex:0 0 84vw;scroll-snap-align:center;overflow:hidden;color:#fff;display:flex;align-items:flex-end;cursor:pointer;text-decoration:none}
.panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:var(--grade);z-index:-2;transition:transform 1.2s var(--ease)}
.panel::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(rgba(10,25,22,.05) 28%,rgba(8,22,20,.85))}
.panel:hover img{transform:scale(1.05)}
.panel__b{padding:clamp(1.4rem,3vw,2.5rem);width:100%}
.panel__name{display:block;font-family:var(--display-sc);font-size:clamp(1.3rem,1.05rem + .7vw,1.6rem);color:#fff;line-height:1.1;white-space:nowrap;letter-spacing:.02em}
.panel__name i{font-style:normal;color:var(--gold-soft);font-size:.82em}
.panel__desc{display:block;font-size:var(--t-small);color:rgba(255,255,255,.82);margin-top:.4rem;max-width:30ch}
.heroarrow{position:absolute;top:50%;transform:translateY(-50%);z-index:6;width:46px;height:46px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:var(--ink);box-shadow:var(--sh-soft);cursor:pointer;display:grid;place-items:center;font-size:1.4rem;line-height:1;transition:transform .3s,background .3s}
.heroarrow:hover{transform:translateY(-50%) scale(1.08);background:#fff}
.heroarrow.prev{left:1rem}.heroarrow.next{right:1rem}

/* ---------- TRUST RIBBON ---------- */
.ribbon{background:var(--teal);color:#fff}
.ribbon__in{display:grid;grid-template-columns:repeat(5,1fr);gap:1.3rem 1rem;padding-block:1.7rem}
.ribbon__i{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;gap:.25rem;font-size:var(--t-small);color:rgba(255,255,255,.74);line-height:1.35;position:relative}
.ribbon__i:not(:last-child)::after{content:"";position:absolute;right:-.5rem;top:10%;bottom:10%;width:1px;background:rgba(255,255,255,.14)}
.ribbon__i b{font-family:var(--display);font-size:var(--t-2);color:#fff;line-height:1.05;letter-spacing:.01em}
.ribbon__i .g{color:var(--gold-soft)}
@media(max-width:860px){.ribbon__in{grid-template-columns:repeat(3,1fr);gap:1.5rem 1rem}.ribbon__i::after{display:none}}
@media(max-width:480px){.ribbon__in{grid-template-columns:repeat(2,1fr)}}
/* 4-stat ribbon variant (home) — the base grid is 5 columns for the 5-stat ribbons on the
   corporate/group pages; home has only 4 stats, so override to 4 columns to keep them evenly
   spread. Placed after the base breakpoints so source order wins at every width. */
.ribbon__in--4{grid-template-columns:repeat(4,1fr)}
@media(max-width:860px){.ribbon__in--4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.ribbon__in--4{grid-template-columns:repeat(2,1fr)}}

/* ---------- SECTION shell ---------- */
.section{padding-block:clamp(3rem,7vw,5rem)}
.section--paper2{background:var(--paper-2)}
.sec-head{margin-bottom:2.2rem;max-width:60ch}
.sec-head h2{font-size:var(--t-4);margin:.8rem 0 .6rem}
.sec-head p{color:var(--ink-2);max-width:46ch}
.flink{display:inline-flex;align-items:center;gap:.45rem;font-weight:600;color:var(--gold-deep);font-size:var(--t-small)}
.flink::after{content:"→";transition:transform .3s var(--ease)}
.flink:hover::after{transform:translateX(4px)}

/* more strip */
.more{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem;margin-top:clamp(2rem,4vw,3rem)}
/* curated destinations (We-choose-for-you style) */
.curated-head{text-align:center;max-width:640px;margin:0 auto clamp(2rem,4vw,3rem)}
.curated-head h2{font-family:var(--display-sc);font-weight:400;font-size:clamp(1.55rem,1.2rem + 1.5vw,2.4rem);color:var(--ink);letter-spacing:.01em}
.curated-head .rule{display:block;width:54px;height:2px;background:var(--gold);margin:1.1rem auto}
.curated-head p{color:var(--ink-2);font-size:var(--t-lead)}
.dgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.6rem,3vw,2.6rem)}
.dcard2{display:block;color:var(--ink)}
.dcard2__img{aspect-ratio:4/3;border-radius:6px;overflow:hidden;margin-bottom:1.1rem}
.dcard2__img img{width:100%;height:100%;object-fit:cover;filter:var(--grade);transition:transform 1s var(--ease)}
.dcard2:hover .dcard2__img img{transform:scale(1.06)}
.dcard2__t{font-family:var(--display-sc);font-weight:400;font-size:1.3rem;color:var(--ink);margin-bottom:.5rem;letter-spacing:.01em}
.dcard2__t i{font-style:normal;color:var(--gold-deep);font-size:.92em}
.dcard2__d{color:var(--ink-2);font-size:var(--t-small);margin-bottom:1rem;line-height:1.5}
.dcard2__meta{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:.85rem;font-size:var(--t-small);color:var(--ink-3)}
.dcard2__meta .plan{color:var(--gold-deep);font-weight:600}
.curated-more{text-align:center;margin-top:clamp(2rem,4vw,3rem);margin-bottom:clamp(2.5rem,5vw,4rem)}
@media(max-width:880px){.dgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:540px){.dgrid{grid-template-columns:1fr}}
/* ---------- individual destination page ---------- */
.dh2{font-family:var(--display-sc);font-weight:400;font-size:var(--t-4);color:var(--ink);margin:.5rem 0 1.1rem;letter-spacing:.01em}
.dhero{position:relative;isolation:isolate;min-height:62vh;display:flex;align-items:flex-end;color:#fff;padding:clamp(120px,18vh,170px) 0 clamp(2.5rem,5vw,4rem)}
.dhero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:var(--grade);z-index:-2}
.dhero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(rgba(8,22,20,.4),rgba(8,22,20,.2) 38%,rgba(8,22,20,.78))}
.dhero__in{max-width:var(--maxw);margin-inline:auto;width:100%;padding-inline:var(--gut)}
.dhero__crumb{font-size:var(--t-small);color:rgba(255,255,255,.82);margin-bottom:.5rem}
.dhero__crumb a{color:rgba(255,255,255,.82)}.dhero__crumb a:hover{color:#fff}
.dhero h1{font-family:var(--display);font-size:var(--t-5);color:#fff;margin:.1rem 0 .6rem}
.dhero p{font-size:var(--t-lead);color:rgba(255,255,255,.92);max-width:46ch;margin-bottom:1.4rem}
.dfacts{background:var(--teal);color:#fff}
.dfacts__in{max-width:var(--maxw);margin-inline:auto;padding:1.5rem var(--gut);display:grid;grid-template-columns:repeat(var(--dfact-n,5),1fr);gap:1.2rem;text-align:center;align-items:start}
.dfact .k{font-size:var(--t-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-soft)}
.dfact .v{font-family:var(--display);font-size:clamp(1.02rem,.92rem + .4vw,1.18rem);color:#fff;display:block;margin-top:.25rem;line-height:1.25}
.doverview{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.doverview__img{border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/3;box-shadow:var(--sh-soft)}
.doverview__img img{width:100%;height:100%;object-fit:cover;filter:var(--grade)}
.doverview p{color:var(--ink-2);margin-bottom:1rem}
.dhl{display:grid;grid-template-columns:1fr 1fr;gap:0 2.5rem;list-style:none}
.dhl li{display:flex;gap:.6rem;padding:.6rem 0;border-bottom:1px solid var(--line);color:var(--ink-2);font-size:var(--t-small)}
.dhl li::before{content:"›";color:var(--gold);font-weight:700}
.ditin-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.ditin{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.4rem,3vw,2rem);box-shadow:var(--sh-soft)}
.ditin h3{font-family:var(--display);font-size:var(--t-2);color:var(--ink);margin-bottom:.3rem}
.ditin .sub{font-size:var(--t-small);color:var(--gold-deep);margin-bottom:.8rem}
.dday{display:flex;gap:1rem;padding:.7rem 0;border-top:1px solid var(--line);font-size:var(--t-small)}
.dday b{font-family:var(--display);color:var(--gold-deep);flex:none;width:4rem}
.dday span{color:var(--ink-2)}
.note{color:var(--ink-3);font-size:var(--t-small);margin-top:1.2rem;font-style:italic}
.dgood{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.dgood__card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.4rem,3vw,2rem)}
.dgood__card h3{font-family:var(--display);font-size:var(--t-2);color:var(--ink);margin-bottom:.5rem}
.dgood__card p{color:var(--ink-2);font-size:var(--t-small)}
.dfaq details{border-bottom:1px solid var(--line);padding:1.1rem 0}
.dfaq summary{font-family:var(--display);font-size:var(--t-2);color:var(--ink);cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.dfaq summary::-webkit-details-marker{display:none}
.dfaq summary::after{content:"+";color:var(--gold-deep)}
.dfaq details[open] summary::after{content:"−"}
.dfaq details p{margin-top:.8rem;color:var(--ink-2);font-size:var(--t-small);max-width:70ch}
@media(max-width:860px){.doverview,.ditin-grid,.dgood{grid-template-columns:1fr}.doverview__img{order:-1}}
@media(max-width:700px){.dfacts__in{grid-template-columns:repeat(2,1fr);text-align:left;gap:1rem 1.4rem}.dhl{grid-template-columns:1fr}}
/* ---------- services pages ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem;max-width:var(--maxw);margin:0 auto;padding:0 var(--gut) clamp(3rem,6vw,5rem)}
.svc-card{display:flex;gap:1.1rem;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.7rem;box-shadow:var(--sh-soft);transition:transform .4s var(--ease);color:var(--ink)}
.svc-card:hover{transform:translateY(-4px)}
.svc-card .ic{width:52px;height:52px;border-radius:50%;background:var(--paper-2);display:grid;place-items:center;color:var(--gold-deep);flex:none}
.svc-card .ic svg{width:24px;height:24px}
.svc-card h3{font-family:var(--display);font-size:var(--t-2);color:var(--ink);margin-bottom:.3rem}
.svc-card p{color:var(--ink-2);font-size:var(--t-small);margin-bottom:.6rem}
.svc-table{width:100%;border-collapse:collapse;font-size:var(--t-small)}
.svc-table th,.svc-table td{text-align:left;padding:.9rem 1rem;border-bottom:1px solid var(--line);vertical-align:top}
.svc-table th{font-family:var(--sans);font-size:var(--t-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-weight:600}
.svc-table td:first-child{font-family:var(--display);font-size:1.05rem;color:var(--ink)}
.svc-table tr:hover td{background:var(--paper)}
@media(max-width:760px){.svc-grid{grid-template-columns:1fr}}



/* ---------- REVIEWS (editorial) ---------- */
.reviews{background:var(--paper-2)}
.rev-feat{border-left:3px solid var(--gold);padding-left:clamp(1rem,3vw,2rem);margin-bottom:2.4rem}
.rev-feat .stars{font-size:1.1rem}
.rev-feat blockquote{font-family:var(--display);font-size:var(--t-2);line-height:1.4;color:var(--ink);margin:.6rem 0 1rem}
.rev-feat cite{font-style:normal;color:var(--ink-2);font-size:var(--t-small)}
.rev-feat cite b{color:var(--ink)}
.rev-row{display:grid;gap:1rem}
.rev-mini{position:relative;background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.7rem;box-shadow:var(--sh-soft);transition:opacity .6s var(--ease),transform .4s var(--ease);overflow:hidden}
.rev-mini:hover{transform:translateY(-4px)}
.rev-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.3rem}
.rev-date{font-size:var(--t-micro);color:var(--ink-3);letter-spacing:.02em;white-space:nowrap}
.rev-mini .stars{font-size:.95rem;color:var(--gold);letter-spacing:1px}
.rev-text{font-size:var(--t-small);color:var(--ink-2);line-height:1.6;margin:.7rem 0 1.3rem;min-height:5.8em}
.rev-by{display:flex;align-items:center;gap:.75rem}
.rev-av{width:42px;height:42px;border-radius:50%;background:var(--gold);color:#fff;display:grid;place-items:center;font-family:var(--display);font-size:1.1rem;flex:none}
.rev-who b{display:block;font-size:.95rem;color:var(--ink)}
.rev-who span{font-size:var(--t-micro);color:var(--ink-3)}
.rev-row.fading .rev-mini{opacity:0}
.rev-feat{transition:opacity .6s var(--ease)}
.rev-feat.fading{opacity:0}

/* ---------- REVIEWS / TESTIMONIALS PAGE ---------- */
.reviews-page .sec-head{max-width:46rem;margin-bottom:2.4rem}
.reviews-page__lead{color:var(--ink-2);font-size:var(--t-small);line-height:1.7;margin-top:.6rem}
.dhero__crumb a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.45)}
.dhero__crumb a:hover{border-color:#fff}
.rev-feat--page{max-width:52rem;margin:0 auto 3rem;text-align:center;border-left:0;padding-left:0}
.rev-feat--page .stars{color:var(--gold);font-size:1.2rem;letter-spacing:2px}
.rev-feat--page blockquote{font-family:var(--display);font-size:var(--t-2);line-height:1.35;color:var(--ink);margin:.8rem 0 1rem}
.rev-feat--page figcaption cite{font-style:normal;color:var(--ink-2);font-size:var(--t-small)}
.rev-feat--page figcaption cite b{color:var(--ink)}
.rev-masonry{columns:3 300px;column-gap:1.3rem;list-style:none;margin:0;padding:0}
.rev-card{break-inside:avoid;margin:0 0 1.3rem;background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.5rem 1.6rem;box-shadow:var(--sh-soft)}
.rev-card__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}
.rev-card__head .stars{color:var(--gold);font-size:.95rem;letter-spacing:1px}
.rev-card__body{font-size:var(--t-small);color:var(--ink-2);line-height:1.65;margin:.3rem 0 1.1rem}
.rev-card__foot{display:flex;align-items:center;gap:.75rem}
.rev-who .rev-src{font-size:var(--t-micro);color:var(--ink-3)}
.rev-src{color:var(--ink-3)}
.reviews-page__more{text-align:center;margin-top:2rem}

/* reCAPTCHA v3: hide the floating badge (it overlaps the WhatsApp button) — allowed by Google as long
   as the attribution line is shown (we put it centered in the footer). Scoring/execute() are unaffected. */
.grecaptcha-badge{visibility:hidden!important}

/* ---------- PLAN MY TRIP ---------- */
.plan__card{background:var(--teal-deep);color:#fff;border-radius:var(--r-lg);padding:clamp(1.6rem,4vw,2.8rem);display:grid;gap:1.6rem;position:relative;overflow:hidden}
.plan__card .eyebrow{color:var(--gold-soft)}
.plan__card h2{color:#fff;font-size:var(--t-3);margin:.7rem 0}
.plan__card>p{color:rgba(255,255,255,.78);max-width:42ch}
.pform{display:grid;gap:.9rem}
.pf label{font-size:var(--t-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--gold-soft);font-weight:600;display:block;margin-bottom:.35rem}
.pf select,.pf input{width:100%;font-family:var(--sans);font-size:var(--t-body);padding:.8rem .9rem;border:1px solid rgba(255,255,255,.2);border-radius:10px;background:rgba(255,255,255,.06);color:#fff;appearance:none}
.pf input::placeholder{color:rgba(255,255,255,.5)}
.pf select:focus,.pf input:focus{outline:none;border-color:var(--gold-soft)}
.pf select option{color:var(--ink)}
.pf-row{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}

/* ---------- STORIES ---------- */
.stories{display:grid;gap:1.2rem}
.scard{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:transform .5s var(--ease)}
.scard:hover{transform:translateY(-5px)}
.scard__img{aspect-ratio:16/10;overflow:hidden}
.scard__img img{width:100%;height:100%;object-fit:cover;filter:var(--grade);transition:transform 1s var(--ease)}
.scard:hover .scard__img img{transform:scale(1.06)}
.scard__b{padding:1.2rem}
.scard__t{font-size:var(--t-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);font-weight:600}
.scard h3{font-size:var(--t-2);margin:.4rem 0 .4rem}
.scard p{font-size:var(--t-small);color:var(--ink-2)}

/* ---------- CLOSER ---------- */
.closer{position:relative;isolation:isolate;color:#fff;text-align:center;overflow:hidden}
.closer img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:var(--grade);z-index:-2}
.closer::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(rgba(10,40,36,.82),rgba(8,30,27,.9))}
.closer__in{padding-block:clamp(4rem,10vw,7rem)}
.closer .seal{margin:0 auto 1rem;color:var(--gold-soft)}
.closer h2{color:#fff;font-size:var(--t-4);max-width:18ch;margin:.5rem auto 1rem}
.closer p{color:rgba(255,255,255,.85);max-width:46ch;margin:0 auto 1.8rem}
.closer__cta{display:flex;gap:.7rem;justify-content:center;flex-wrap:wrap}

/* ---------- FOOTER ---------- */
.footer{background:var(--teal-deep);color:rgba(255,255,255,.72);padding-block:clamp(2.5rem,5vw,4rem) 1.6rem}
.footer__top{display:grid;gap:2rem 1.4rem;grid-template-columns:1fr 1fr}
.footer__brand{grid-column:1 / -1}
.footer .logo__txt b{color:#fff;font-size:1.5rem}
.footer h2{font-family:var(--sans);font-size:var(--t-micro);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:.9rem;font-weight:600}
.footer a{display:block;padding:.25rem 0;color:rgba(255,255,255,.72);font-size:var(--t-small)}
.footer a:hover{color:#fff}
.footer__tag{font-size:var(--t-small);color:rgba(255,255,255,.6);max-width:42ch;margin:.7rem 0 1rem;line-height:1.55}
.footer__nap{font-style:normal;display:grid;gap:.05rem}
.footer__nap a,.footer__nap span{padding:.1rem 0;color:rgba(255,255,255,.7);font-size:var(--t-small)}
.footer__social{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.1rem}
.footer__social a{display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid rgba(255,255,255,.2);border-radius:50%;color:rgba(255,255,255,.82);cursor:pointer;transition:border-color .15s,color .15s,background .15s}
.footer__social a:hover{color:#fff;border-color:var(--gold-soft);background:rgba(255,255,255,.06)}
.footer__social svg{width:18px;height:18px}
/* Bottom bar: a true left / centre / right 3-column layout (space-between left the middle item
   off-centre because the three spans have different widths). Stacks and centres on small screens. */
.footer__bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:2.4rem;padding-top:1.4rem;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.5rem 1.5rem;font-size:var(--t-micro);color:rgba(255,255,255,.5)}
.footer__bottom>:first-child{justify-self:start;text-align:left}
.footer__bottom>:nth-child(2){justify-self:center;text-align:center}
.footer__bottom>:last-child{justify-self:end;text-align:right}
/* The legal links share one line with their "·" separator — override the column nav's
   `.footer a{display:block}`, which was stacking them on top of each other. */
.footer__legal a{display:inline;padding:0}
/* reCAPTCHA attribution: one independent centered line (links inline within the sentence). Defined
   after `.footer a{display:block}` so the inline override wins the cascade. */
.footer__recaptcha{margin:1.2rem 0 0;text-align:center;font-size:var(--t-micro);color:rgba(255,255,255,.45);line-height:1.5}
.footer__recaptcha a{display:inline;padding:0;color:rgba(255,255,255,.6);text-decoration:underline}
.footer__recaptcha a:hover{color:var(--gold-soft)}
@media(max-width:600px){.footer__bottom{grid-template-columns:1fr}.footer__bottom>*{justify-self:center;text-align:center}}


/* ---------- floating WA ---------- */
.wa-float{position:fixed;right:1.1rem;bottom:1.1rem;z-index:70;width:54px;height:54px;border-radius:50%;background:var(--wa);display:grid;place-items:center;box-shadow:0 14px 30px -10px rgba(26,122,80,.8);transition:transform .4s var(--ease)}
.wa-float:hover{transform:scale(1.08)}
.wa-float svg{width:27px;height:27px;fill:#fff}

/* ---------- reveal ---------- */
html.js .r{opacity:0;transform:translateY(30px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
html.js .r.in{opacity:1;transform:none}
html.js .r.d1{transition-delay:.1s}html.js .r.d2{transition-delay:.2s}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html.js .r{opacity:1;transform:none}}

/* ============================================================
   RESPONSIVE — mobile-first; enhance upward
   ============================================================ */
@media(min-width:680px){
  .more{grid-template-columns:repeat(3,1fr)}
  .rev-row{grid-template-columns:repeat(3,1fr)}
  .stories{grid-template-columns:repeat(3,1fr)}
  .footer__top{grid-template-columns:repeat(4,1fr)}
  .pf-row{grid-template-columns:1fr 1fr}
}
@media(min-width:900px){
  .nav-links{display:flex}
  .nav-toggle{display:none}
  /* desktop: 4 equal panels by default; only the hovered one expands */
  .panels{overflow:hidden;scroll-snap-type:none}
  .panel{flex:1 1 0;min-width:0;display:none;transition:flex .55s var(--ease),opacity .4s var(--ease)}
  .panel.show{display:flex}
  .panels.swapping .panel{opacity:0}
  .panel.show:hover{flex:2.6 1 0}
  .panel__desc{height:2.8em;overflow:hidden;opacity:0;transition:opacity .4s}
  .panel.show:hover .panel__desc{opacity:1}
  /* price hidden by default; shown only on the hovered (expanded) panel */
  .panel__name i{display:none}
  .panel.show:hover .panel__name i{display:inline}
  .panel__name{font-size:clamp(1.15rem,.9rem + .7vw,1.55rem)}
  .plan__card{grid-template-columns:1fr 1fr;align-items:center;gap:clamp(2rem,4vw,4rem)}
  .rev-row{grid-template-columns:repeat(3,1fr)}
  .footer__top{grid-template-columns:1.7fr repeat(4,1fr);gap:2rem}
  .footer__brand{grid-column:auto}
}
@media(min-width:1024px){
  .heroarrow{width:50px;height:50px}
}

/* Unified enquiry form additions */
.pf-reply{display:flex;gap:18px;align-items:center;padding-top:4px}
.pf-reply label{display:flex;gap:6px;align-items:center;font-size:14px;color:var(--ink);cursor:pointer}
.pf-msg{min-height:1.2em;margin:6px 0 0;font-size:14px;color:var(--teal-deep)}
.pf-msg--error{color:#b4453a}

/* ── Reusable enquiry band (destination + story pages) ───────────────────── */
.enquiry-band{background:var(--paper-3);padding:clamp(2.6rem,6vw,4.5rem) 0}
.enquiry-band__title{font-family:var(--display);font-size:var(--t-4);color:var(--teal-deep);text-align:center;margin:0 0 .5rem}
.enquiry-band__lead{max-width:54ch;margin:0 auto 2rem;text-align:center;color:var(--ink-2);font-size:var(--t-lead);line-height:1.55}
.enquiry{max-width:760px;margin-inline:auto;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-soft);padding:clamp(1.4rem,4vw,2.4rem);display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.enquiry label{display:flex;flex-direction:column;gap:.4rem;font-size:var(--t-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-weight:600}
.enquiry label input{font-family:var(--sans);font-size:var(--t-body);letter-spacing:0;text-transform:none;font-weight:400;color:var(--ink);padding:.75rem .85rem;border:1px solid var(--line-ink);border-radius:10px;background:var(--paper);width:100%}
.enquiry label input:focus{outline:none;border-color:var(--gold);background:var(--white)}
/* Honeypot — global + !important so a field-styling rule can never accidentally reveal it. */
.hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.enquiry__channel{grid-column:1/-1;border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem}
.enquiry__channel legend{float:left;margin-right:1rem;font-size:var(--t-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-weight:600}
.enquiry__channel label{flex-direction:row;align-items:center;gap:.45rem;text-transform:none;letter-spacing:0;font-size:var(--t-small);color:var(--ink)}
.enquiry .btn--gold{grid-column:1/-1;justify-self:start;border:0}
.enquiry .btn--gold:disabled{opacity:.5;cursor:not-allowed}
/* DPDP consent — a distinct "agreement" zone above the CTA. Selectors are scoped tightly so they
   beat the base `.enquiry label` / `.enquiry label input` field styling (higher specificity). */
.enquiry__consent{grid-column:1/-1;display:flex;flex-direction:column;gap:.7rem;margin-top:.4rem;padding-top:1.35rem;border-top:1px solid var(--line)}
.enquiry__consent label.enquiry__check{display:flex;flex-direction:row;align-items:flex-start;gap:.6rem;margin:0;text-transform:none;letter-spacing:0;font-weight:400;font-size:var(--t-small);line-height:1.55;color:var(--ink-2);cursor:pointer}
.enquiry__consent label.enquiry__check input[type=checkbox]{flex:0 0 auto;width:1.05rem;height:1.05rem;margin:.15rem 0 0;padding:0;border:0;border-radius:0;background:none;accent-color:var(--teal-deep);cursor:pointer}
.enquiry__consent label.enquiry__check input[type=checkbox]:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.enquiry__consent a{color:var(--teal-deep);text-decoration:underline;text-underline-offset:2px;font-weight:600}
.enquiry__consent a:hover{color:var(--gold-deep)}
/* Same consent block reused inside the deep-green "Plan my trip" card → light-on-dark variant. */
.plan__card .enquiry__consent{border-top-color:rgba(255,255,255,.18)}
.plan__card .enquiry__consent label.enquiry__check{color:rgba(255,255,255,.82)}
.plan__card .enquiry__consent label.enquiry__check input[type=checkbox]{accent-color:var(--gold)}
.plan__card .enquiry__consent a{color:#fff}
.plan__card .enquiry__consent a:hover{color:var(--gold-soft)}
.enquiry__status{grid-column:1/-1;margin:0;min-height:1.2em;font-size:var(--t-small);color:var(--teal-deep)}
@media(max-width:600px){.enquiry{grid-template-columns:1fr}}

/* ── Story (blog post) page ──────────────────────────────────────────────── */
.dhero--story{min-height:52vh}
/* Scoped to .dhero so it beats `.dhero p` (which was forcing 19px + a narrow 46ch measure on the
   hero lead, leaving it big and bunched to the left). Smaller, with a wider measure that uses the
   space and wraps long leads (e.g. the corporate hero) to fewer lines. */
.dhero .story-meta{color:rgba(255,255,255,.88);font-size:var(--t-body);max-width:42rem;line-height:1.55;margin:.35rem 0 0}
.section--top{padding-top:clamp(2.4rem,5vw,3.6rem)}
.story-tldr{max-width:720px;margin-inline:auto;background:var(--paper-2);border-left:3px solid var(--gold);border-radius:0 12px 12px 0;padding:1.2rem 1.4rem}
.story-tldr p{margin:.4rem 0 0;color:var(--ink);font-size:var(--t-lead);line-height:1.5}
.story-body{max-width:720px;margin-inline:auto}
.story-body h2{font-family:var(--display);font-size:var(--t-3);color:var(--teal-deep);margin:2rem 0 .7rem}
.story-body p{color:var(--ink-2);font-size:var(--t-lead);line-height:1.75;margin:0 0 1.1rem}
.story-byline{margin-top:1.6rem;padding-top:1.1rem;border-top:1px solid var(--line);color:var(--ink-3);font-size:var(--t-small)}
.story-body .flink{margin-top:1.2rem}

/* Blog post: article + sticky sidebar. The prose drops its centered 720px cap inside the grid so
   the article fills the main column and the freed right-hand space carries a CTA + a destinations
   list for curious readers. */
.story-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:clamp(2rem,4vw,3.6rem);align-items:start}
.story-layout .story-body,.story-layout .story-tldr{max-width:none;margin-inline:0}
.story-layout .story-tldr{margin-bottom:1.7rem}
.story-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.story-tags span{font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.32);padding:.3rem .72rem;border-radius:999px}
.story-aside{position:sticky;top:96px;display:flex;flex-direction:column;gap:1.2rem}
.aside-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.5rem}
.aside-cta{background:var(--paper-2)}
.aside-card__t{font-family:var(--display);font-weight:400;font-size:var(--t-2);margin:.55rem 0 .55rem;line-height:1.12}
.aside-card>p{font-size:var(--t-small);color:var(--ink-2);line-height:1.6;margin:0 0 1.1rem}
.aside-card .btn{display:flex;width:100%;justify-content:center}
.aside-call{display:block;text-align:center;margin-top:.75rem;font-size:var(--t-small);color:var(--ink-2)}
.aside-call:hover{color:var(--gold-deep)}
.aside-dlist{list-style:none;margin:.95rem 0 1rem;padding:0;display:flex;flex-direction:column;gap:.15rem}
.aside-dlist a{display:flex;align-items:center;gap:.85rem;padding:.5rem;border-radius:10px;color:var(--ink);transition:background .25s var(--ease)}
.aside-dlist a:hover{background:var(--paper-2)}
.aside-dlist img{width:64px;height:48px;object-fit:cover;border-radius:8px;flex:none}
.aside-dlist__b{display:flex;flex-direction:column;line-height:1.25}
.aside-dlist__b b{font-family:var(--display);font-weight:500;font-size:1.02rem}
.aside-dlist__b small{font-size:.78rem;color:var(--ink-3)}
@media(max-width:900px){.story-layout{grid-template-columns:1fr}.story-aside{position:static}}

/* Hero CTA reassurance microcopy (conversion: removes cost/effort/risk anxiety under the button) */
.dhero .cta-note{margin:.85rem 0 0;font-size:var(--t-small);color:rgba(255,255,255,.82)}

/* ── Animated destination hero: 3-image crossfade + Ken Burns (reduced-motion safe) ─────── */
.dhero__bg{position:absolute;inset:0;z-index:-2;overflow:hidden}
.dhero__bg .dhero__slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:var(--grade);opacity:0;transition:opacity 1.5s var(--ease);will-change:opacity,transform}
.dhero__bg .dhero__slide.is-active{opacity:1}
@media(prefers-reduced-motion:no-preference){
  .dhero--slides .dhero__slide.is-active{animation:kenburns 12s var(--ease) forwards}
}
@keyframes kenburns{from{transform:scale(1.02)}to{transform:scale(1.13)}}

/* ── Visa service teaser (international destination pages → links to the full visa page) ──── */
.visa-teaser{background:var(--teal);color:#fff;padding:clamp(2.4rem,6vw,4rem) 0}
.visa-teaser__in{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(1.6rem,4vw,3rem);align-items:center}
.visa-teaser .eyebrow{color:var(--gold-soft)}
.visa-teaser h2{font-family:var(--display);font-size:var(--t-3);color:#fff;margin:.6rem 0 .8rem}
.visa-teaser p{color:rgba(255,255,255,.85);max-width:54ch;line-height:1.65;margin-bottom:1.4rem}
.visa-teaser__facts{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.visa-teaser__facts li{display:flex;justify-content:space-between;gap:1rem;border:1px solid rgba(255,255,255,.18);border-radius:10px;padding:.7rem 1rem;background:rgba(255,255,255,.05)}
.visa-teaser__facts span{color:var(--gold-soft);font-size:var(--t-small)}
.visa-teaser__facts strong{font-weight:600;text-align:right}
@media(max-width:760px){.visa-teaser__in{grid-template-columns:1fr}}

/* Per-country visa page: documents checklist + official-link cards */
.visa-docs{list-style:none;margin:1.7rem 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.85rem 1.8rem}
.visa-docs li{display:flex;gap:.7rem;align-items:flex-start;color:var(--ink-2);font-size:var(--t-small);line-height:1.55}
.visa-docs__ic{flex:none;display:grid;place-items:center;width:1.45rem;height:1.45rem;margin-top:.05rem;border-radius:50%;background:var(--teal);color:#fff}
.visa-docs__ic svg{width:.85rem;height:.85rem}
.visa-docs strong{color:var(--ink);font-weight:600}
@media(max-width:680px){.visa-docs{grid-template-columns:1fr}}
.visa-links{list-style:none;margin:1.7rem 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.visa-links a{display:flex;align-items:center;gap:.7rem;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:1rem 1.2rem;text-decoration:none;color:var(--ink);transition:border-color .15s,box-shadow .15s}
.visa-links a:hover{border-color:var(--teal);box-shadow:0 6px 22px rgba(0,0,0,.06)}
.visa-links__label{font-family:var(--display);font-size:1.02rem;line-height:1.25;flex:1 1 auto;min-width:0}
.visa-links__kind{flex:none;font-size:var(--t-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--teal-deep);background:var(--teal-tint,#eef5f3);border-radius:999px;padding:.18rem .6rem}
.visa-links__ext{flex:none;width:1.05rem;height:1.05rem;color:var(--ink-3,var(--ink-2))}
@media(max-width:680px){.visa-links{grid-template-columns:1fr}}

/* Centered related grid — keeps 1–3 cards balanced (no lonely left-aligned card) */
.dgrid--center{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(1.6rem,3vw,2.6rem)}
.dgrid--center>*{flex:0 1 320px;max-width:360px}
@media(max-width:540px){.dgrid--center>*{flex-basis:100%;max-width:none}}

/* Overview "why" image — auto-rotates through a different set of library photos than the hero */
.doverview__img{position:relative}
.img-rotator{position:absolute;inset:0}
.img-rotator__slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:var(--grade);opacity:0;transition:opacity 1.5s var(--ease);will-change:opacity,transform}
.img-rotator__slide.is-active{opacity:1}
@media(prefers-reduced-motion:no-preference){.img-rotator__slide.is-active{animation:kenburns 12s var(--ease) forwards}}

/* ── Highlights → editorial "experience" cards (numbered accent + title + context blurb) ── */
.exp-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2.4vw,1.5rem);margin-top:1.9rem}
.exp{display:flex;gap:1.1rem;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:1.2rem 1.35rem;transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s}
.exp:hover{transform:translateY(-3px);box-shadow:var(--sh-soft);border-color:var(--line-ink)}
.exp__n{font-family:var(--display);font-style:italic;color:var(--gold);font-size:1.55rem;line-height:1;flex:none;padding-top:.1rem}
.exp__b h3{font-family:var(--display);font-weight:500;font-size:1.18rem;color:var(--ink);margin-bottom:.32rem;line-height:1.15}
.exp__b p{color:var(--ink-2);font-size:var(--t-small);line-height:1.55;margin:0}
@media(max-width:680px){.exp-grid{grid-template-columns:1fr}}

/* ── Services: index card grid + the visa/forex country table ─────────────────────────── */
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1rem,2.4vw,1.5rem);margin-top:1.9rem}
.svc-card{display:block;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:1.4rem 1.5rem;transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s}
.svc-card:hover{transform:translateY(-3px);box-shadow:var(--sh-soft);border-color:var(--line-ink)}
.svc-card h3{font-family:var(--display);font-weight:500;font-size:1.35rem;color:var(--ink);margin-bottom:.4rem}
.svc-card p{color:var(--ink-2);font-size:var(--t-small);line-height:1.55;margin:0 0 .9rem}
@media(max-width:620px){.svc-grid{grid-template-columns:1fr}}
.svc-table-wrap{margin-top:1.6rem;overflow-x:auto;border:1px solid var(--line);border-radius:14px}
.svc-table{width:100%;border-collapse:collapse;font-size:var(--t-small);min-width:520px}
.svc-table th,.svc-table td{text-align:left;padding:.85rem 1.1rem;border-bottom:1px solid var(--line)}
.svc-table thead th{background:var(--paper-2);font-weight:600;color:var(--ink);letter-spacing:.02em}
.svc-table tbody tr:last-child td{border-bottom:0}
.svc-table tbody tr:hover{background:var(--paper)}
.svc-table td a{color:var(--gold-deep);font-weight:600}

.faq-block{margin-bottom:2.2rem}
.faq-block .eyebrow{margin-bottom:.8rem}

/* ── About: trust ribbon ─────────────────────────────────────────────────────────────── */
.about-ribbon{background:var(--teal);color:#fff;padding:clamp(1.8rem,4vw,2.6rem) 0}
.about-ribbon__in{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut);display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;text-align:center}
.about-stat b{display:block;font-family:var(--display);font-size:var(--t-4);color:#fff;line-height:1}
.about-stat span{font-size:var(--t-small);color:var(--gold-soft);letter-spacing:.04em}
@media(max-width:600px){.about-ribbon__in{grid-template-columns:repeat(2,1fr);gap:1.4rem}}

/* ── Contact: method cards + office/map ──────────────────────────────────────────────── */
.contact-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2.4vw,1.5rem)}
.contact-card{display:flex;flex-direction:column;gap:.3rem;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:1.4rem 1.5rem;color:var(--ink);transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s}
.contact-card:hover{transform:translateY(-3px);box-shadow:var(--sh-soft);border-color:var(--line-ink)}
.contact-card__k{font-size:var(--t-micro);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep);font-weight:600}
.contact-card strong{font-family:var(--display);font-weight:500;font-size:1.2rem;color:var(--ink);word-break:break-word}
.contact-card__v{font-size:var(--t-small);color:var(--ink-2)}
@media(max-width:680px){.contact-cards{grid-template-columns:1fr}}
.contact-office{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(1.4rem,3vw,2.6rem);align-items:center}
.contact-office__hours{color:var(--ink-3);font-size:var(--t-small);margin:.3rem 0 1.2rem}
.contact-office__map{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-soft);aspect-ratio:16/10}
.contact-office__map iframe{width:100%;height:100%;border:0;display:block}
@media(max-width:760px){.contact-office{grid-template-columns:1fr}}

/* Search results dropdown (client-side destination/holiday quick search) */
.searchbar__results{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut) .7rem;list-style:none;display:grid;gap:2px}
.searchbar__results li a{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem .7rem;border-radius:10px;color:var(--ink);text-decoration:none}
.searchbar__results li a:hover,.searchbar__results li a:focus{background:var(--paper-2);outline:none}
.searchbar__results .sr-k{font-size:var(--t-small);color:var(--ink-3);flex:none}
.searchbar__results .sr-empty{padding:.6rem .7rem;color:var(--ink-3);font-size:var(--t-small)}

/* Floating WhatsApp button — first-contact CTA, present on every public page */
.wa-float{position:fixed;right:18px;bottom:18px;z-index:90;width:54px;height:54px;border-radius:50%;background:var(--wa);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 22px -6px rgba(26,122,80,.55);transition:transform .25s var(--ease)}
.wa-float:hover{transform:translateY(-3px) scale(1.04)}
@media(max-width:600px){.wa-float{right:14px;bottom:14px;width:50px;height:50px}}

/* Error pages (404/500/…): destination-style hero → search → popular blocks + enquiry form */
.errhero{position:relative;display:grid;place-items:center;text-align:center;color:#fff;background:var(--teal-deep);isolation:isolate;padding:clamp(3.6rem,9vh,6rem) 1.4rem}
.errhero::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--errhero,none) center/cover no-repeat;opacity:.4}
.errhero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(10,52,47,.55),rgba(10,52,47,.85))}
.errhero__in{max-width:60ch}
.errhero__code{display:block;font-family:var(--display);font-weight:500;font-size:clamp(4.5rem,15vw,8rem);line-height:1.32;color:var(--gold-soft);letter-spacing:.01em;text-shadow:0 14px 40px rgba(0,0,0,.25)}
.errhero__h{font-family:var(--display);font-size:var(--t-3);margin:.3rem 0 .6rem;color:#fff}
.errhero__p{color:rgba(255,255,255,.85);font-size:var(--t-lead);line-height:1.6;margin:0 auto 1.6rem;max-width:46ch}
.errhero__cta{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}
.errsearch .wrap{margin-top:-30px;position:relative;z-index:2}
.errsearch__box{width:100%;max-width:640px;margin-inline:auto;display:flex;align-items:center;gap:.7rem;padding:1.05rem 1.4rem;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--sh-soft);color:var(--ink-3);font-size:1rem;cursor:pointer;text-align:left}
.errsearch__box:hover{border-color:var(--gold);color:var(--ink-2)}
.errsearch__box svg{color:var(--teal-deep);flex:0 0 auto}
.errgrid{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(1.8rem,4vw,3.2rem);align-items:start}
.dgrid--sm{grid-template-columns:repeat(3,1fr);gap:1rem}
.dgrid--sm .dcard2__img{aspect-ratio:4/3}
.dgrid--sm .dcard2__t{font-size:1.02rem;padding:.65rem .2rem 0}
.errtalk{margin:1.6rem 0 0;color:var(--ink-3);font-size:var(--t-small)}
.errtalk a{color:var(--teal-deep);font-weight:600;text-decoration:underline;text-underline-offset:2px}
/* the shared enquiry form, embedded in the error page's right column → one clean form panel */
.errform .enquiry-band{padding:0;background:transparent}
.errform .enquiry-band .wrap{padding:0;max-width:none}
.errform .enquiry-band__title{font-size:1.4rem;text-align:left;margin-bottom:.3rem}
.errform .enquiry-band__lead{text-align:left;margin:0 0 1.1rem;font-size:var(--t-small)}
.errform .enquiry{grid-template-columns:1fr;max-width:none;margin:0}
@media(max-width:880px){.errgrid{grid-template-columns:1fr}.dgrid--sm{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.dgrid--sm{grid-template-columns:1fr 1fr}}

/* ── Search results page ──────────────────────────────────────────── */
.searchpage__form{display:flex;gap:.5rem;margin-top:1.25rem;max-width:520px}
.searchpage__form input[type=search]{flex:1;padding:.65rem 1rem;border:1.5px solid var(--gold);border-radius:6px;background:rgba(255,255,255,.15);color:#fff;font-family:inherit;font-size:1rem}
.searchpage__form input[type=search]::placeholder{color:rgba(255,255,255,.7)}
.searchpage__form input[type=search]:focus{outline:none;background:rgba(255,255,255,.25)}
.search-summary{font-size:.95rem;color:var(--ink-3);margin-bottom:2rem}
.search-group{margin-bottom:2.5rem}
.search-group__list{list-style:none;padding:0;margin:0 0 1rem}
.search-group__item{border-bottom:1px solid var(--border)}
.search-group__link{display:block;padding:.75rem .25rem;text-decoration:none;color:var(--ink)}
.search-group__link:hover{color:var(--teal-deep)}
.search-group__title{display:block;font-weight:500;font-size:1rem}
.search-group__meta{display:block;font-size:.875rem;color:var(--ink-3);margin-top:.2rem}
.search-noresults{font-size:1rem;color:var(--ink-3);margin-bottom:1.5rem}
.search-noresults__cta{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:2rem}
.search-empty{margin-top:1rem}
.search-empty__prompt{font-size:1rem;color:var(--ink-3);margin-bottom:2rem}
/* "See all results" trailing link in the live overlay */
.sr-all a{display:block;padding:.55rem 1rem;font-size:.85rem;color:var(--teal-deep);font-style:italic;text-decoration:none;border-top:1px solid var(--border)}
.sr-all a:hover{text-decoration:underline}

/* Screen-reader-only utility (visually hidden, available to assistive tech / JAWS).
   Used by the hidden home <h1> and the /search input label. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Corporate Travel Management page */
.corp-checks{display:grid;grid-template-columns:1fr 1fr;gap:1rem 2.2rem;margin-top:1.8rem;list-style:none;padding:0}
.corp-checks li{display:flex;gap:.75rem;align-items:flex-start;color:var(--ink-2);font-size:var(--t-small);line-height:1.55}
.corp-checks li strong{display:block;color:var(--ink);font-weight:600;margin-bottom:.15rem}
.corp-checks svg{flex:none;width:22px;height:22px;color:var(--gold-deep);margin-top:.05rem}
.corp-quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:1.8rem}
.corp-quote{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.6rem;box-shadow:var(--sh-soft)}
.corp-quote blockquote{font-style:italic;color:var(--ink-2);line-height:1.6;margin:0 0 1rem;font-size:var(--t-small)}
.corp-quote cite{font-style:normal;font-weight:600;color:var(--ink);font-size:var(--t-small)}
.corp-quote cite span{display:block;font-weight:400;color:var(--ink-3);font-size:.85em;margin-top:.2rem}
@media(max-width:900px){.corp-quotes{grid-template-columns:1fr}}
@media(max-width:720px){.corp-checks{grid-template-columns:1fr}}

/* Corporate intro: executive-summary content + a fixed-width action box (download + proposal form) */
.corp-intro{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(1.6rem,4vw,3rem);align-items:start}
.corp-intro .dh2{margin-bottom:.9rem}
.corp-intro__text p{color:var(--ink-2);margin-bottom:1rem;line-height:1.7}
.corp-aside{background:var(--paper-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.4rem,2.2vw,1.7rem);box-shadow:var(--sh-soft)}
.corp-aside__profile{display:flex;gap:.7rem;align-items:center;margin-bottom:1rem}
.corp-aside__doc{flex:none;width:34px;height:34px;color:var(--gold-deep)}
.corp-aside__profile strong{display:block;font-family:var(--display);font-size:var(--t-2);color:var(--ink);line-height:1.1}
.corp-aside__profile span{display:block;font-size:.82rem;color:var(--ink-3);margin-top:.15rem}
.corp-aside>.btn{display:flex;width:100%}
.corp-aside__sep{display:flex;align-items:center;gap:.7rem;margin:1.5rem 0 1.1rem;color:var(--ink-3);font-size:var(--t-micro);letter-spacing:.12em;text-transform:uppercase;font-weight:600}
.corp-aside__sep::before,.corp-aside__sep::after{content:"";height:1px;background:var(--line);flex:1}
.corp-form{display:flex;flex-direction:column;gap:1.15rem}
/* Tight label→input pairing, with the wider .corp-form gap between fields, so each label
   unambiguously belongs to the input directly beneath it. */
.corp-form label{display:flex;flex-direction:column;gap:.28rem;font-size:var(--t-micro);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:600}
.corp-form input,.corp-form textarea{font-family:var(--sans);font-size:var(--t-small);letter-spacing:0;text-transform:none;font-weight:400;color:var(--ink);padding:.55rem .7rem;border:1px solid var(--line-ink);border-radius:8px;background:var(--white);width:100%}
.corp-form input:focus,.corp-form textarea:focus{outline:none;border-color:var(--gold)}
.corp-form textarea{resize:vertical;min-height:56px}
.corp-form .enquiry__consent{margin-top:.1rem;padding-top:.9rem}
.corp-form .enquiry__check{font-size:.78rem;line-height:1.4}
.corp-form .btn{width:100%;margin-top:.3rem}
.corp-form__status{margin:.2rem 0 0}
.enquiry__status--error{color:#b23b3b}
@media(max-width:860px){.corp-intro{grid-template-columns:1fr}}

/* Textarea support for the shared .enquiry form (used by the corporate proposal form) */
.enquiry label textarea{font-family:var(--sans);font-size:var(--t-body);letter-spacing:0;text-transform:none;font-weight:400;color:var(--ink);padding:.75rem .85rem;border:1px solid var(--line-ink);border-radius:10px;background:var(--paper);width:100%;resize:vertical;min-height:84px}
.enquiry label textarea:focus{outline:none;border-color:var(--gold);background:var(--white)}
.enquiry--full{grid-column:1 / -1}

/* Corporate service highlight (icon grid in the executive-summary column) */
.corp-services__eyebrow{display:block;margin-top:2.3rem}
.corp-services{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:1.3rem}
.corp-service{display:flex;flex-direction:column;gap:.45rem}
.corp-service__ic{width:30px;height:30px;color:var(--gold-deep)}
.corp-service strong{font-family:var(--display);font-size:1.08rem;color:var(--ink);line-height:1.2}
.corp-service p{color:var(--ink-2);font-size:var(--t-small);line-height:1.5;margin:0}
.corp-service a{color:var(--teal-deep);text-decoration:underline;text-underline-offset:2px}
@media(max-width:680px){.corp-services{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.corp-services{grid-template-columns:1fr}}

/* ── Bespoke service pages: Flights / Hotels / Forex ──────────────────────────────────── */
.fl-intro,.ht-intro,.fx-intro{color:var(--ink-2);font-size:var(--t-small);max-width:62ch;margin:.2rem 0 0}
/* Section intro — two-column editorial split (heading left, prose right) that fills the full
   content width; never a narrow centered column wasting the side margins. */
.svc-intro{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(1.6rem,5vw,4.5rem);align-items:start}
.svc-intro__hd .dh2{margin:.4rem 0 0}
.svc-intro__body p{color:var(--ink-2);font-size:var(--t-lead);line-height:1.65;margin:0}
.svc-intro__body p+p{margin-top:1rem}
@media(max-width:820px){.svc-intro{grid-template-columns:1fr;gap:1rem}}

/* Flights — international (left) vs domestic (right) */
.fl-cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.4rem,3vw,2.6rem);align-items:start;margin-top:1.8rem}
.fl-colh{display:flex;align-items:center;gap:.6rem;font-family:var(--display);font-weight:500;font-size:var(--t-3);color:var(--ink);margin-bottom:1rem;padding-bottom:.7rem;border-bottom:2px solid var(--line)}
.fl-colh__ic{width:34px;height:34px;border-radius:50%;background:var(--paper-2);display:grid;place-items:center;color:var(--gold-deep);flex:none}
.fl-colh__ic svg{width:18px;height:18px}
.fl-air{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:1.15rem 1.3rem;margin-bottom:1rem;transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s}
.fl-air:hover{transform:translateY(-3px);box-shadow:var(--sh-soft);border-color:var(--line-ink)}
.fl-air__head{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;flex-wrap:wrap}
.fl-air__head h4{font-family:var(--display);font-weight:500;font-size:1.2rem;color:var(--ink);line-height:1.15}
.fl-air__hub{font-size:var(--t-micro);color:var(--gold-deep);letter-spacing:.02em;text-align:right}
.fl-air__routes{list-style:none;margin:.7rem 0 .9rem;padding:0;display:flex;flex-direction:column;gap:.3rem}
.fl-air__routes li{position:relative;padding-left:1.1rem;font-size:var(--t-small);color:var(--ink-2);line-height:1.4}
.fl-air__routes li::before{content:"";position:absolute;left:0;top:.5em;width:5px;height:5px;border-radius:50%;background:var(--gold)}
.fl-air__meta{display:flex;flex-direction:column;gap:.45rem;border-top:1px solid var(--line);padding-top:.8rem}
.fl-air__meta>div{display:grid;grid-template-columns:5.5rem 1fr;gap:.6rem;align-items:baseline}
.fl-air__meta dt{font-size:var(--t-micro);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3);font-weight:600}
.fl-air__meta dd{font-size:var(--t-small);color:var(--ink-2);line-height:1.4}
.fl-air__meta dd a{color:var(--gold-deep);font-weight:600}
@media(max-width:820px){.fl-cols{grid-template-columns:1fr}}

/* Hotels — informative brand cards (why / locations / signature / contact / website) */
.ht-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;margin-top:1.8rem;align-items:start}
.ht-card{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:1.4rem 1.5rem;display:flex;flex-direction:column;transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s}
.ht-card:hover{transform:translateY(-3px);box-shadow:var(--sh-soft);border-color:var(--line-ink)}
.ht-card__top{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;flex-wrap:wrap}
.ht-card__top h3{font-family:var(--display);font-weight:500;font-size:1.35rem;color:var(--ink);line-height:1.15}
.ht-tier{flex:none;font-size:var(--t-micro);font-weight:600;letter-spacing:.02em;color:var(--gold-deep);background:var(--paper-2);border-radius:999px;padding:.2rem .65rem;white-space:nowrap}
.ht-group{font-size:var(--t-micro);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);margin-top:.2rem}
.ht-why{font-size:var(--t-small);color:var(--ink-2);line-height:1.55;margin:.7rem 0 .9rem}
.ht-meta{display:flex;flex-direction:column;gap:.5rem;border-top:1px solid var(--line);padding-top:.85rem;margin-top:auto}
.ht-meta>div{display:grid;grid-template-columns:6.5rem 1fr;gap:.6rem;align-items:baseline}
.ht-meta dt{font-size:var(--t-micro);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3);font-weight:600}
.ht-meta dd{font-size:var(--t-small);color:var(--ink-2);line-height:1.45}
.ht-meta dd a{color:var(--gold-deep);font-weight:600}
.ht-meta dd b{color:var(--ink);font-weight:600}
@media(max-width:760px){.ht-grid{grid-template-columns:1fr}}

/* Forex — option cards (pros/cons) + rules grid */
.fx-opts{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin-top:1.8rem}
.fx-opt{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:1.4rem 1.5rem}
.fx-opt__head{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;flex-wrap:wrap}
.fx-opt__head h3{font-family:var(--display);font-weight:500;font-size:1.35rem;color:var(--ink)}
.fx-opt__tag{font-size:var(--t-micro);font-weight:600;letter-spacing:.02em;color:var(--gold-deep);background:var(--paper-2);border-radius:999px;padding:.2rem .65rem;white-space:nowrap}
.fx-opt__best{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem;font-size:var(--t-small);color:var(--ink);margin:.7rem 0 1rem;padding-bottom:.9rem;border-bottom:1px solid var(--line)}
.fx-opt__best span{font-size:var(--t-micro);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3);font-weight:600}
.fx-pros,.fx-cons{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}
.fx-cons{margin-top:.55rem}
.fx-pros li,.fx-cons li{position:relative;padding-left:1.5rem;font-size:var(--t-small);color:var(--ink-2);line-height:1.45}
.fx-pros li::before{content:"✓";position:absolute;left:0;top:0;color:var(--wa);font-weight:700}
.fx-cons li::before{content:"✕";position:absolute;left:0;top:0;color:#b4622f;font-weight:700}
@media(max-width:760px){.fx-opts{grid-template-columns:1fr}}

.fx-rules{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.8rem}
.fx-rule{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:1.2rem 1.3rem}
.fx-rule h3{font-family:var(--display);font-weight:500;font-size:1.12rem;color:var(--ink);margin-bottom:.4rem;line-height:1.2}
.fx-rule p{font-size:var(--t-small);color:var(--ink-2);line-height:1.55;margin:0}
.fx-rule b{color:var(--ink);font-weight:700}
@media(max-width:860px){.fx-rules{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.fx-rules{grid-template-columns:1fr}}
.fx-docs{margin-top:1.5rem;font-size:var(--t-small);color:var(--ink-2);background:var(--paper-2);border-radius:12px;padding:1rem 1.2rem}

.fx-docs b{color:var(--ink)}

/* ── Shared: editorial rich-text (service/promo bodies) ─────────────────────────────────── */
.page-editorial{color:var(--ink-2);line-height:1.7;margin:1.4rem 0}
.page-editorial h2,.page-editorial h3{font-family:var(--display-sc);color:var(--ink)}
.page-editorial ul,.page-editorial ol{padding-left:1.5rem}

/* ── Promotions: share buttons (reused by the in-page promo block — built next session) ──── */
.promo-share{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.promo-share__label{font-size:var(--t-micro);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-right:.2rem}
.promo-share__btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;border:1px solid var(--line-ink);color:var(--ink);background:#fff;cursor:pointer;text-decoration:none;transition:background .2s,color .2s,border-color .2s,transform .2s}
.promo-share__btn svg{width:18px;height:18px}
.promo-share__btn:hover{background:var(--ink);color:#fff;border-color:var(--ink);transform:translateY(-1px)}
.promo-share__btn[data-share="whatsapp"]:hover{background:var(--wa);border-color:var(--wa)}
.promo-share__btn.is-copied{background:var(--wa);border-color:var(--wa);color:#fff}
.promo-share__btn.is-copied::after{content:"Copied";position:absolute;bottom:calc(100% + 7px);left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;font-size:var(--t-micro);font-weight:600;letter-spacing:0;text-transform:none;padding:.25rem .55rem;border-radius:6px;white-space:nowrap;z-index:3}
@keyframes pmoFlash{0%{box-shadow:0 26px 64px -30px rgba(35,31,26,.6),0 0 0 0 rgba(194,134,42,0)}22%{box-shadow:0 26px 64px -30px rgba(35,31,26,.6),0 0 0 5px rgba(194,134,42,.55)}100%{box-shadow:0 26px 64px -30px rgba(35,31,26,.6),0 0 0 0 rgba(194,134,42,0)}}
.pmo--flash{animation:pmoFlash 2.3s var(--ease)}

/* ===================== Group Tours page + Promotion in-page block ===================== */
.dhero__cta{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.5rem}
.sec-lead{color:var(--ink-2);font-size:var(--t-lead);line-height:1.6;margin:.2rem 0 0}
.dh3{font-family:var(--display-sc);font-weight:400;font-size:var(--t-3);color:var(--ink);margin:.2rem 0 .5rem}

.gt-feats{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.2rem,2.6vw,1.8rem);margin-top:1.9rem}
.gt-feat{display:flex;flex-direction:column;gap:.5rem}
.gt-feat__ic{width:30px;height:30px;color:var(--gold-deep)}
.gt-feat strong{font-family:var(--display);font-size:1.08rem;color:var(--ink);line-height:1.2}
.gt-feat p{color:var(--ink-2);font-size:var(--t-small);line-height:1.55;margin:0}

.gt-founder{display:grid;grid-template-columns:300px minmax(0,1fr);gap:clamp(1.6rem,4vw,3rem);align-items:center}
.gt-founder__img img{width:100%;height:auto;border-radius:var(--r-lg);box-shadow:var(--sh-soft);object-fit:cover}
.gt-founder__text p{color:var(--ink-2);line-height:1.7;margin:.6rem 0 1rem}


.pmos{display:grid;gap:1.6rem;margin-top:1.7rem;align-items:start}
.pmos--1{grid-template-columns:1fr}
.pmos--2{grid-template-columns:1fr 1fr}
.pmo{position:relative;display:flex;flex-direction:column;background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(255,255,255,.8));backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);border:1px solid rgba(255,255,255,.7);border-radius:var(--r-lg);overflow:hidden;box-shadow:0 26px 64px -30px rgba(35,31,26,.6),0 2px 6px -2px rgba(35,31,26,.12),inset 0 1px 0 rgba(255,255,255,.95);scroll-margin-top:90px;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.pmo:hover{transform:translateY(-3px);box-shadow:0 34px 74px -28px rgba(35,31,26,.62),0 3px 8px -2px rgba(35,31,26,.14),inset 0 1px 0 rgba(255,255,255,.95)}
.pmo__hd{position:relative;overflow:hidden;padding:clamp(1.3rem,2.6vw,1.9rem) clamp(1.4rem,3vw,2.1rem);background:linear-gradient(135deg,var(--teal),var(--teal-deep));box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}
.pmo__hd::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(125deg,rgba(255,255,255,.26),rgba(255,255,255,.07) 26%,transparent 50%);pointer-events:none}
.pmo__hd::before{content:"";position:absolute;top:-60%;right:-10%;width:55%;height:200%;z-index:0;background:radial-gradient(ellipse at center,rgba(255,255,255,.16),transparent 60%);transform:rotate(18deg);pointer-events:none}
.pmo__hd>*{position:relative;z-index:1}
.pmo__kicker{display:inline-block;font-family:var(--sans);font-size:var(--t-micro);font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:.4rem}
.pmo__t{font-family:var(--display-sc);font-weight:400;font-size:clamp(1.55rem,1.1rem + 1.7vw,2.3rem);color:#fff;line-height:1.12}
.pmo__sub{color:rgba(255,255,255,.82);font-size:var(--t-body);line-height:1.5;margin:.5rem 0 0}
.pmo__badge{position:absolute;top:clamp(1.1rem,2.4vw,1.5rem);right:clamp(1.2rem,3vw,2rem);background:var(--gold);color:#fff;font-size:var(--t-micro);font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.35rem .85rem;border-radius:999px;box-shadow:0 8px 20px -10px rgba(0,0,0,.6)}
.pmo__body{display:flex;flex-direction:column;flex:1;padding:0 clamp(1.4rem,3vw,2.1rem) clamp(1.4rem,3vw,2.1rem)}
.pmo__facts{display:flex;flex-wrap:wrap;gap:.8rem 2.2rem;margin:clamp(1.3rem,3vw,1.8rem) 0 0;padding:1rem 1.2rem;background:var(--paper);border-radius:var(--r);border:1px solid var(--line)}
.pmo__fact{display:flex;flex-direction:column;gap:.15rem;font-size:var(--t-body);color:var(--ink)}
.pmo__fact b{font-family:var(--sans);font-size:var(--t-micro);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.pmo__fact--price span:last-child{font-family:var(--display);color:var(--gold-deep);font-size:var(--t-2)}
.pmo__plan{margin:1.3rem 0}
.pmo__plan-label{display:block;font-family:var(--sans);font-size:var(--t-micro);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.5rem}
.pmo__day{padding:.8rem 0;border-top:1px solid var(--line)}
.pmo__day:first-of-type{border-top:0;padding-top:.2rem}
.pmo__day-h{display:flex;align-items:center;gap:.6rem}
.pmo__day-ic{width:18px;height:18px;color:var(--gold-deep);flex:none}
.pmo__day-h b{font-family:var(--display);font-weight:600;color:var(--ink);font-size:var(--t-body)}
.pmo__day-d{color:var(--ink-2);font-size:var(--t-small);line-height:1.55;margin:.3rem 0 0 1.2rem}
.pmo__pts{list-style:none;margin:.5rem 0 0 1.2rem;padding:0;display:flex;flex-direction:column;gap:.3rem}
.pmo__pts li{position:relative;padding-left:1.1rem;font-size:var(--t-small);color:var(--ink-2);line-height:1.45}
.pmo__pts li::before{content:"";position:absolute;left:0;top:.5em;width:6px;height:6px;border-radius:50%;background:var(--gold)}
.pmo__inc{margin:1.3rem 0}
.pmo__inc-label{display:block;font-family:var(--sans);font-size:var(--t-micro);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.55rem}
.pmo__pills{display:flex;flex-wrap:wrap;gap:.5rem}
.pmo__pill{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--t-small);color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:.4rem .85rem}
.pmo__pill svg{width:15px;height:15px;color:var(--gold-deep);flex:none}
.pmo__exc{font-size:var(--t-small);color:var(--ink-3);margin:.5rem 0 0}
.pmo__exc b{color:var(--ink-2)}
.pmo__actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-top:auto;padding-top:1.3rem;border-top:1px solid var(--line)}
.pmo-enquire{margin-top:2rem;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.4rem,3vw,2.2rem);box-shadow:var(--sh-soft)}
.pmo-enquire .sec-lead{margin-bottom:1.2rem}
.promo-form__for{font-size:var(--t-small);color:var(--ink-2);margin:0 0 .2rem}
.promo-form__for b{color:var(--gold-deep)}
@media(max-width:820px){.pmos--2{grid-template-columns:1fr}}

@media(max-width:980px){.gt-feats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:860px){.gt-founder{grid-template-columns:1fr}.gt-founder__img{max-width:320px}}
@media(max-width:560px){.gt-feats{grid-template-columns:1fr}.pmo__actions{flex-direction:column;align-items:stretch}.pmo__actions .btn{text-align:center}}

/* Group-tours photo gallery */
.gt-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem;margin-top:1.8rem}
.gt-gallery figure{position:relative;margin:0;overflow:hidden;border-radius:var(--r);box-shadow:var(--sh-soft);background:var(--paper-2)}
.gt-gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .55s var(--ease)}
.gt-gallery figure:hover img{transform:scale(1.06)}
.gt-gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:1.1rem .85rem .55rem;font-family:var(--sans);font-size:var(--t-small);font-weight:600;color:#fff;letter-spacing:.02em;background:linear-gradient(to top,rgba(20,15,10,.74),rgba(20,15,10,0));pointer-events:none}
@media(max-width:900px){.gt-gallery{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.gt-gallery{grid-template-columns:repeat(2,1fr);gap:.55rem}}

/* ===== Left promo side-tab (decorative, links to Group Packages) ===== */
.promo-tab{position:fixed;left:0;top:50%;transform:translateY(-50%);z-index:60;display:flex;flex-direction:column;align-items:center;gap:.55rem;padding:.95rem .5rem 1.05rem;border-radius:0 14px 14px 0;border:1px solid rgba(255,255,255,.16);border-left:0;background:linear-gradient(160deg,var(--teal),var(--teal-deep));color:#fff;text-decoration:none;box-shadow:0 16px 34px -12px rgba(0,0,0,.5);overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.promo-tab:hover{transform:translateY(-50%) translateX(4px);box-shadow:0 22px 44px -12px rgba(0,0,0,.58)}
.promo-tab__ic{display:flex;width:22px;height:22px;color:var(--gold-soft)}
.promo-tab__ic svg{width:100%;height:100%}
.promo-tab__text{writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--sans);font-weight:700;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;color:#fff}
.promo-tab__shine{position:absolute;top:-45%;left:-30%;width:160%;height:38%;background:linear-gradient(180deg,transparent,rgba(255,255,255,.6),transparent);filter:blur(2px);pointer-events:none;will-change:transform;transform:rotate(7deg) translateY(0);animation:promoTabShine 5s var(--ease) infinite}
/* Animate transform only (compositor) — NOT `top` — so the shine sweep never triggers layout
   shifts (a layout-property animation here was generating continuous CLS). translateY(440%) of the
   element's own 38%-tall box ≈ the old -45% → 122% top travel. */
@keyframes promoTabShine{0%,62%{transform:rotate(7deg) translateY(0)}90%,100%{transform:rotate(7deg) translateY(440%)}}
@media(max-width:640px){.promo-tab{display:none}}
@media(prefers-reduced-motion:reduce){.promo-tab__shine{display:none}}

/* ===== Home: Group Packages feature ===== */
.gp-home{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(1.8rem,4vw,3.5rem);align-items:center}
.gp-home__text .sec-lead{margin:.4rem 0 1.5rem}
.gp-home__thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}
.gp-home__thumbs img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:var(--r);box-shadow:var(--sh-soft);transition:transform .45s var(--ease)}
.gp-home__thumbs:hover img{transform:translateY(-3px)}
@media(max-width:780px){.gp-home{grid-template-columns:1fr}}

/* ===== Destinations: tighter, contained, centred dropdown (fits any screen >=900px) ===== */
.mega--dest{left:50%;right:auto;width:min(92vw,660px);transform:translateX(-50%) translateY(-10px);border:1px solid var(--line);border-radius:14px;box-shadow:0 26px 50px -24px rgba(35,31,26,.55);overflow:hidden;max-height:calc(100vh - 130px);overflow-y:auto}
.nav-item:hover .mega--dest,.mega--dest:hover{transform:translateX(-50%) translateY(0)}
.mega--dest .mega__in{max-width:none;margin:0;padding:clamp(1.7rem,2.5vw,2.2rem) clamp(2rem,3.2vw,2.8rem);grid-template-columns:1fr 1fr;gap:clamp(2.2rem,4vw,3.6rem)}
.mega--dest .mega-group{width:100%}
.mega--dest h4{font-size:1.05rem;margin-bottom:1rem;text-align:left}
.mega--dest .mega-cols2{grid-template-columns:1fr 1fr;gap:0 1.4rem}
.mega--dest ul li a{padding:.46rem 0;text-align:left}

/* ===== Stories mega (original layout kept): small one-line excerpt under each title + subtle separator ===== */
.mega-stories-list li:not(.mega-stories-more){border-bottom:1px solid var(--line)}
.mega-stories-list li a{display:block;padding:.62rem 0}
.mega-stories-list li a b{display:block;font-family:var(--display);font-weight:500;font-size:1.1rem;color:var(--ink);line-height:1.25}
.mega-stories-list li a span{display:block;font-size:var(--t-micro);color:var(--ink-3);line-height:1.4;margin-top:.12rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mega-stories-list li a:hover b{color:var(--gold-deep)}
.mega-stories-more a{padding-top:.7rem!important}

/* Keep the desktop nav on one line from the 900px breakpoint up (no label wrapping) */
.nav-links a{white-space:nowrap}
@media(min-width:900px) and (max-width:1090px){.nav-links{gap:1rem;margin-right:1rem}.nav-links a{font-size:12px;letter-spacing:.1em}}

/* ===== Services: tighter contained dropdown, items stacked one below another ===== */
.mega--services{left:50%;right:auto;width:min(92vw,346px);transform:translateX(-50%) translateY(-10px);border:1px solid var(--line);border-radius:14px;box-shadow:0 26px 50px -24px rgba(35,31,26,.55);overflow:hidden}
.nav-item:hover .mega--services,.mega--services:hover{transform:translateX(-50%) translateY(0)}
.mega--services .mega__in{max-width:none;margin:0;padding:.7rem .75rem}
.mega--services .mega-cards{grid-template-columns:1fr;gap:.1rem}
.mega--services .mcardm{gap:.85rem;padding:.6rem .55rem}
.mega--services .mcardm .ic{width:42px;height:42px}
.mega--services .mcardm .ic svg{width:20px;height:20px}

/* Uniform dropdown secondary text — Services descriptions match Stories excerpts */
.mega--services .mcardm span{font-size:var(--t-small);color:var(--ink-3)}
