/* ==========================================================================
   Alles Liebe Travel — Design System  v2
   Ivory & Gold · Editorial Luxury · RTL-first (Arabic) with full LTR support
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Tokens
   -------------------------------------------------------------------------- */
:root{
  /* grounds */
  --ivory:#FCFAF6;
  --white:#FFFFFF;
  --sand:#F5F0E7;
  --shell:#EDE6D9;

  /* gold family */
  --gold:#A87C33;          /* text-safe */
  --gold-2:#C39A57;        /* mid */
  --gold-3:#DBB57F;        /* brand gold — decoration */
  --gold-4:#F1E6D2;        /* pale wash */
  --gold-line:rgba(168,124,51,.28);

  /* ink */
  --ink:#1A1713;
  --ink-2:#4C453A;
  --muted:#8B8175;
  --line:#E7DFD1;
  --line-2:#F0EAE0;

  /* dark band */
  --espresso:#141210;
  --espresso-2:#1E1A15;

  --ok:#2F6B4F;

  /* effects */
  --shadow-xs:0 1px 2px rgba(26,23,19,.04);
  --shadow-sm:0 2px 4px rgba(26,23,19,.04), 0 8px 22px -14px rgba(26,23,19,.22);
  --shadow:0 3px 8px rgba(26,23,19,.05), 0 26px 60px -30px rgba(26,23,19,.35);
  --shadow-lg:0 40px 90px -40px rgba(26,23,19,.45);

  --radius:4px;
  --radius-lg:2px;
  --arch:50% 50% 0 0 / 17% 17% 0 0;

  /* rhythm */
  --gutter:clamp(20px, 5vw, 72px);
  --section:clamp(72px, 10vw, 150px);
  --maxw:1320px;
  --maxw-text:68ch;

  /* type */
  --f-display:"Amiri","Cormorant Garamond",Georgia,serif;
  --f-body:"IBM Plex Sans Arabic","Segoe UI",system-ui,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,monospace;

  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-lux:cubic-bezier(.65,0,.08,1);
}

html[lang="en"]{ --f-display:"Cormorant Garamond","Amiri",Georgia,serif; }
html[lang="en"] .display{ line-height:1.14; letter-spacing:-.015em; }

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ivory:#100E0C;
    --white:#181512;
    --sand:#1C1815;
    --shell:#26211B;
    --gold:#D6AC6A;
    --gold-2:#C79E60;
    --gold-3:#E0BE8B;
    --gold-4:#2C2418;
    --gold-line:rgba(214,172,106,.3);
    --ink:#F4EFE6;
    --ink-2:#D2C8B8;
    --muted:#9A9083;
    --line:#2B251E;
    --line-2:#221D18;
    --espresso:#0A0908;
    --espresso-2:#141210;
    --ok:#63C097;
    --shadow-xs:0 1px 2px rgba(0,0,0,.5);
    --shadow-sm:0 2px 6px rgba(0,0,0,.5), 0 10px 26px -14px rgba(0,0,0,.8);
    --shadow:0 3px 10px rgba(0,0,0,.55), 0 30px 70px -34px rgba(0,0,0,.9);
    --shadow-lg:0 46px 100px -44px rgba(0,0,0,.95);
  }
}
:root[data-theme="dark"]{
  --ivory:#100E0C;
  --white:#181512;
  --sand:#1C1815;
  --shell:#26211B;
  --gold:#D6AC6A;
  --gold-2:#C79E60;
  --gold-3:#E0BE8B;
  --gold-4:#2C2418;
  --gold-line:rgba(214,172,106,.3);
  --ink:#F4EFE6;
  --ink-2:#D2C8B8;
  --muted:#9A9083;
  --line:#2B251E;
  --line-2:#221D18;
  --espresso:#0A0908;
  --espresso-2:#141210;
  --ok:#63C097;
  --shadow-xs:0 1px 2px rgba(0,0,0,.5);
  --shadow-sm:0 2px 6px rgba(0,0,0,.5), 0 10px 26px -14px rgba(0,0,0,.8);
  --shadow:0 3px 10px rgba(0,0,0,.55), 0 30px 70px -34px rgba(0,0,0,.9);
  --shadow-lg:0 46px 100px -44px rgba(0,0,0,.95);
}

/* --------------------------------------------------------------------------
   2. Reset & base
   -------------------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--ivory);
  color:var(--ink);
  font-family:var(--f-body);
  font-size:16.5px;
  line-height:1.9;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
/* fine grain — barely there, but it lifts flat colour off the screen */
body::before{
  content:""; position:fixed; inset:0; z-index:1; pointer-events:none;
  opacity:.32; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) body::before{mix-blend-mode:screen; opacity:.14;}}
:root[data-theme="dark"] body::before{mix-blend-mode:screen; opacity:.14;}

img,picture,video{max-width:100%; height:auto; display:block;}
a{color:inherit; text-decoration:none;}
button,input,textarea,select{font:inherit; color:inherit;}
ul,ol{margin:0; padding:0; list-style:none;}
h1,h2,h3,h4{margin:0; line-height:1.4; text-wrap:balance; font-weight:600;}
p{margin:0;}
:focus-visible{outline:2px solid var(--gold); outline-offset:3px; border-radius:2px;}
::selection{background:var(--gold-4); color:var(--ink);}

/* --------------------------------------------------------------------------
   3. Layout primitives
   -------------------------------------------------------------------------- */
.container{width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); position:relative; z-index:2;}
.container-narrow{width:100%; max-width:900px; margin-inline:auto; padding-inline:var(--gutter); position:relative; z-index:2;}
.section{padding-block:var(--section); position:relative;}
.section--tight{padding-block:clamp(48px,7vw,96px);}
.stack{display:flex; flex-direction:column;}
.gap-xs{gap:8px} .gap-s{gap:18px} .gap-m{gap:30px} .gap-l{gap:52px} .gap-xl{gap:84px}
.grid{display:grid; gap:clamp(16px,2.2vw,28px);}
.g-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));}
.g-3{grid-template-columns:repeat(auto-fit,minmax(255px,1fr));}
.g-4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}
.g-dest{grid-template-columns:repeat(auto-fit,minmax(196px,1fr));}
.center{text-align:center;}
.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;}

/* --------------------------------------------------------------------------
   4. Typography
   -------------------------------------------------------------------------- */
.display{
  font-family:var(--f-display);
  font-weight:700;
  line-height:1.34;
  letter-spacing:-.005em;
  color:var(--ink);
}
.d-1{font-size:clamp(2.7rem,7vw,5.6rem);}
.d-2{font-size:clamp(2.05rem,4.6vw,3.6rem);}
.d-3{font-size:clamp(1.6rem,3vw,2.4rem);}
.display em{font-style:normal; color:var(--gold);}

.eyebrow{
  font-family:var(--f-body);
  font-size:.7rem;
  font-weight:600;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--gold);
  display:inline-flex;
  align-items:center;
  gap:12px;
}
.eyebrow::before{content:""; width:30px; height:1px; background:currentColor; flex:none; opacity:.6;}
.eyebrow--center{justify-content:center;}
.eyebrow--center::after{content:""; width:30px; height:1px; background:currentColor; flex:none; opacity:.6;}

.lead{font-size:clamp(1.04rem,1.5vw,1.2rem); color:var(--ink-2); max-width:var(--maxw-text); line-height:1.95;}
.body{color:var(--ink-2); max-width:var(--maxw-text);}
.small{font-size:.89rem; color:var(--muted);}
.ltr{direction:ltr; unicode-bidi:isolate;}
.mono{font-family:var(--f-mono); font-size:.85em;}

/* --------------------------------------------------------------------------
   5. Buttons
   -------------------------------------------------------------------------- */
.btn{
  --btn-bg:var(--gold);
  --btn-fg:#fff;
  position:relative; overflow:hidden; isolation:isolate;
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:15px 30px;
  background:var(--btn-bg); color:var(--btn-fg);
  border:1px solid var(--btn-bg);
  border-radius:100px;
  font-size:.93rem; font-weight:600; letter-spacing:.02em;
  cursor:pointer; text-align:center;
  transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out),
             background .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease);
}
.btn::after{                       /* gold shine sweep */
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,.42) 48%, transparent 66%);
  transform:translateX(-130%);
}
.btn:hover{transform:translateY(-3px); box-shadow:var(--shadow);}
.btn:hover::after{animation:shine .85s var(--ease-out) forwards;}
.btn:active{transform:translateY(-1px);}
.btn svg{width:17px; height:17px; flex:none;}
@keyframes shine{to{transform:translateX(130%);}}

.btn--dark{--btn-bg:var(--ink); --btn-fg:var(--ivory);}
.btn--ghost{--btn-bg:transparent; --btn-fg:var(--ink); border-color:var(--gold-line);}
.btn--ghost:hover{border-color:var(--gold); color:var(--gold);}
.btn--light{--btn-bg:var(--ivory); --btn-fg:var(--ink);}
.btn--outline-light{--btn-bg:transparent; --btn-fg:#fff; border-color:rgba(255,255,255,.35);}
.btn--outline-light:hover{border-color:var(--gold-3); color:var(--gold-3);}
.btn--wa{--btn-bg:#1FA855; --btn-fg:#fff;}
.btn--sm{padding:10px 20px; font-size:.85rem;}
.btn--lg{padding:18px 40px; font-size:1rem;}
.btn--block{display:flex; width:100%;}

.link{
  display:inline-flex; align-items:center; gap:8px;
  color:var(--gold); font-weight:600; font-size:.92rem;
  letter-spacing:.02em; white-space:nowrap;
  position:relative; padding-block:3px;
}
.link::after{
  content:""; position:absolute; inset-inline-start:0; bottom:0;
  width:100%; height:1px; background:currentColor;
  transform:scaleX(0); transform-origin:inline-end;
  transition:transform .55s var(--ease-out);
}
.link:hover::after{transform:scaleX(1); transform-origin:inline-start;}
.link .chev{transition:transform .4s var(--ease);}
.link:hover .chev{transform:translateX(-5px);}
html[dir="ltr"] .link:hover .chev{transform:translateX(5px);}

/* --------------------------------------------------------------------------
   6. Scroll progress + header
   -------------------------------------------------------------------------- */
.progress{
  position:fixed; top:0; inset-inline-start:0; z-index:120;
  height:2px; width:100%;
  background:linear-gradient(to var(--prog-dir,left), var(--gold-3), var(--gold));
  transform:scaleX(0); transform-origin:inline-start;
  pointer-events:none;
}

.topbar{
  background:var(--espresso);
  color:rgba(244,239,230,.82);
  font-size:.79rem;
  letter-spacing:.02em;
}
.topbar .container{display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:40px; flex-wrap:wrap;}
.topbar a{display:inline-flex; align-items:center; gap:8px; transition:color .3s;}
.topbar a:hover{color:var(--gold-3);}
.topbar svg{width:14px; height:14px; color:var(--gold-3);}
.topbar-group{display:flex; align-items:center; gap:24px; flex-wrap:wrap;}

.site-header{
  position:sticky; top:0; z-index:100;
  background:color-mix(in srgb, var(--ivory) 86%, transparent);
  backdrop-filter:saturate(180%) blur(16px);
  -webkit-backdrop-filter:saturate(180%) blur(16px);
  border-bottom:1px solid transparent;
  transition:transform .55s var(--ease-lux), border-color .4s var(--ease),
             box-shadow .4s var(--ease), background .4s var(--ease);
}
.site-header.is-stuck{border-bottom-color:var(--line); box-shadow:0 10px 40px -30px rgba(26,23,19,.7);}
.site-header.is-hidden{transform:translateY(-104%);}
.site-header .container{display:flex; align-items:center; gap:clamp(14px,2.6vw,40px); min-height:92px; transition:min-height .45s var(--ease);}
.site-header.is-stuck .container{min-height:70px;}

.brand{display:flex; align-items:center; flex:none; margin-inline-end:auto;}
.brand img{height:60px; width:auto; transition:height .45s var(--ease);}
.site-header.is-stuck .brand img{height:46px;}

.nav{display:flex; align-items:center; gap:clamp(10px,1.6vw,30px);}
.nav > li{position:relative;}
.nav a{
  display:inline-flex; align-items:center; gap:6px;
  font-size:.94rem; font-weight:500; color:var(--ink);
  padding:10px 2px; position:relative;
  transition:color .3s;
}
.nav a::after{
  content:""; position:absolute; inset-inline-start:0; bottom:4px;
  width:100%; height:1px; background:var(--gold);
  transform:scaleX(0); transform-origin:inline-end;
  transition:transform .5s var(--ease-out);
}
.nav a:hover{color:var(--gold);}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1); transform-origin:inline-start;}
.nav .caret{width:11px; height:11px; transition:transform .35s var(--ease); opacity:.6;}
.nav li:hover > a .caret{transform:rotate(180deg);}

.submenu{
  position:absolute; top:calc(100% + 12px); inset-inline-start:50%;
  transform:translateX(50%) translateY(10px);
  min-width:230px; padding:12px;
  background:var(--white); border:1px solid var(--line);
  box-shadow:var(--shadow);
  opacity:0; visibility:hidden;
  transition:opacity .35s var(--ease), transform .35s var(--ease-out), visibility .35s;
}
html[dir="ltr"] .submenu{transform:translateX(-50%) translateY(10px);}
.nav li:hover > .submenu,.nav li:focus-within > .submenu{opacity:1; visibility:visible; transform:translateX(50%) translateY(0);}
html[dir="ltr"] .nav li:hover > .submenu,
html[dir="ltr"] .nav li:focus-within > .submenu{transform:translateX(-50%) translateY(0);}
.submenu a{display:block; padding:9px 14px; font-size:.9rem; width:100%;
  transition:background .3s, color .3s, padding-inline-start .3s;}
.submenu a::after{display:none;}
.submenu a:hover{background:var(--sand); color:var(--gold); padding-inline-start:22px;}

.header-actions{display:flex; align-items:center; gap:12px; flex:none;}

.lang-toggle{display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:100px; overflow:hidden; background:var(--white);}
.lang-toggle button{border:0; background:transparent; cursor:pointer; padding:7px 14px; font-size:.77rem; font-weight:600; color:var(--muted); transition:background .35s, color .35s;}
.lang-toggle button[aria-pressed="true"]{background:var(--gold); color:#fff;}

.burger{
  display:none; width:48px; height:48px; border:1px solid var(--line);
  background:var(--white); border-radius:100px; cursor:pointer;
  align-items:center; justify-content:center; flex-direction:column; gap:5px;
}
.burger span{display:block; width:18px; height:1.5px; background:var(--ink); transition:transform .4s var(--ease), opacity .3s;}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

/* --------------------------------------------------------------------------
   7. Mobile drawer — large targets, staggered entrance
   -------------------------------------------------------------------------- */
.drawer{
  position:fixed; inset:0; z-index:130;
  background:var(--ivory);
  padding:26px var(--gutter) 130px;
  overflow-y:auto; -webkit-overflow-scrolling:touch;
  clip-path:inset(0 0 100% 0);
  visibility:hidden; pointer-events:none;
  transition:clip-path .7s var(--ease-lux), visibility .7s;
}
.drawer.is-open{clip-path:inset(0 0 0 0); visibility:visible; pointer-events:auto;}
.drawer-top{display:flex; align-items:center; justify-content:space-between; margin-bottom:28px;}
.drawer-top img{height:52px; width:auto;}
.drawer nav > ul{display:flex; flex-direction:column;}
.drawer nav > ul > li{
  border-bottom:1px solid var(--line-2);
  opacity:0; transform:translateY(14px);
}
.drawer.is-open nav > ul > li{opacity:1; transform:none; transition:opacity .5s var(--ease-out), transform .5s var(--ease-out);}
.drawer.is-open nav > ul > li:nth-child(1){transition-delay:.16s}
.drawer.is-open nav > ul > li:nth-child(2){transition-delay:.21s}
.drawer.is-open nav > ul > li:nth-child(3){transition-delay:.26s}
.drawer.is-open nav > ul > li:nth-child(4){transition-delay:.31s}
.drawer.is-open nav > ul > li:nth-child(5){transition-delay:.36s}
.drawer.is-open nav > ul > li:nth-child(6){transition-delay:.41s}
.drawer.is-open nav > ul > li:nth-child(7){transition-delay:.46s}
.drawer.is-open nav > ul > li:nth-child(8){transition-delay:.51s}
.drawer a{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:17px 0; font-size:1.24rem; font-weight:500;
  font-family:var(--f-display);
}
.drawer a .idx{font-family:var(--f-mono); font-size:.68rem; color:var(--gold); opacity:.75;}
.drawer .sub{padding-bottom:12px;}
.drawer .sub a{padding:9px 0 9px 16px; font-size:.98rem; color:var(--muted); font-family:var(--f-body); font-weight:400;}
.drawer-close{
  width:48px; height:48px; border-radius:100px;
  border:1px solid var(--line); background:var(--white); cursor:pointer;
  display:flex; align-items:center; justify-content:center; color:var(--ink);
}
.drawer-close svg{width:18px;height:18px;}
.drawer-foot{margin-top:34px; display:flex; flex-direction:column; gap:12px;}

/* mobile quick bar — always-there navigation on phones */
.mobar{
  display:none;
  position:fixed; inset-inline:0; bottom:0; z-index:110;
  background:color-mix(in srgb, var(--white) 92%, transparent);
  backdrop-filter:saturate(180%) blur(18px);
  -webkit-backdrop-filter:saturate(180%) blur(18px);
  border-top:1px solid var(--line);
  padding:8px max(10px, env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-right));
}
.mobar-inner{display:grid; grid-template-columns:repeat(4,1fr); gap:4px;}
.mobar a,.mobar button{
  display:flex; flex-direction:column; align-items:center; gap:4px;
  padding:7px 2px; border:0; background:transparent; cursor:pointer;
  font-size:.66rem; font-weight:600; color:var(--muted); letter-spacing:.01em;
  transition:color .3s;
}
.mobar svg{width:21px; height:21px;}
.mobar a[aria-current="page"]{color:var(--gold);}
.mobar .wa{color:#1FA855;}
.mobar a:active,.mobar button:active{color:var(--gold);}

/* --------------------------------------------------------------------------
   8. Hero
   -------------------------------------------------------------------------- */
.hero{
  position:relative;
  min-height:min(94vh, 900px);
  display:flex; align-items:center;
  overflow:hidden; isolation:isolate;
  background:var(--ivory);
}
.hero-media{position:absolute; inset:-8% 0; z-index:-3;}
.hero-media img{
  width:100%; height:100%; object-fit:cover; object-position:center;
  animation:kenburns 26s var(--ease) infinite alternate;
}
@keyframes kenburns{
  from{transform:scale(1.02) translate3d(0,0,0);}
  to{transform:scale(1.13) translate3d(1.5%,-1.5%,0);}
}
.hero::after{
  content:""; position:absolute; inset:0; z-index:-2;
  background:linear-gradient(to left, var(--ivory) 0%, color-mix(in srgb, var(--ivory) 80%, transparent) 38%, color-mix(in srgb, var(--ivory) 6%, transparent) 76%);
}
html[dir="ltr"] .hero::after{
  background:linear-gradient(to right, var(--ivory) 0%, color-mix(in srgb, var(--ivory) 80%, transparent) 38%, color-mix(in srgb, var(--ivory) 6%, transparent) 76%);
}
/* gold hairline frame */
.hero-frame{
  position:absolute; inset:22px; z-index:-1; pointer-events:none;
  border:1px solid var(--gold-line);
}
.hero-frame::before,.hero-frame::after{
  content:""; position:absolute; width:12px; height:12px; border:1px solid var(--gold-3);
}
.hero-frame::before{top:-6px; inset-inline-start:-6px; border-width:1px 0 0 1px;}
.hero-frame::after{bottom:-6px; inset-inline-end:-6px; border-width:0 1px 1px 0;}

.hero-inner{position:relative; padding-block:clamp(80px,11vw,150px); max-width:720px;}
.hero-inner .d-1{margin-block:22px 18px;}
.hero-cta{display:flex; flex-wrap:wrap; gap:14px; margin-top:38px;}

.scroll-cue{
  position:absolute; bottom:34px; inset-inline-start:var(--gutter); z-index:2;
  display:flex; align-items:center; gap:12px;
  font-size:.68rem; letter-spacing:.24em; text-transform:uppercase; color:var(--muted);
}
.scroll-cue i{display:block; width:1px; height:46px; background:linear-gradient(var(--gold-3), transparent); animation:cue 2.6s var(--ease) infinite; transform-origin:top;}
@keyframes cue{0%,100%{transform:scaleY(.3); opacity:.35} 50%{transform:scaleY(1); opacity:1}}

/* inner-page header */
.pagehead{
  position:relative; overflow:hidden; isolation:isolate;
  background:var(--espresso); color:#fff;
  padding-block:clamp(72px,9vw,132px);
}
.pagehead .hero-media{inset:-10% 0; opacity:.5; z-index:-3;}
.pagehead .hero-media img{animation:kenburns 30s var(--ease) infinite alternate;}
.pagehead::after{
  content:""; position:absolute; inset:0; z-index:-2;
  background:linear-gradient(to top, rgba(20,18,16,.96) 8%, rgba(20,18,16,.62) 60%, rgba(20,18,16,.5));
}
.pagehead .display,.pagehead h1{color:#fff;}
.pagehead .lead{color:rgba(255,255,255,.8);}
.pagehead .eyebrow{color:var(--gold-3);}

.crumbs{display:flex; flex-wrap:wrap; align-items:center; gap:9px; font-size:.8rem; color:rgba(255,255,255,.6); margin-bottom:20px;}
.crumbs a{transition:color .3s;}
.crumbs a:hover{color:var(--gold-3);}
.crumbs span{opacity:.4;}

/* --------------------------------------------------------------------------
   9. Cards
   -------------------------------------------------------------------------- */
.card{
  position:relative;
  background:var(--white);
  border:1px solid var(--line);
  overflow:hidden;
  display:flex; flex-direction:column;
  transition:transform .7s var(--ease-out), box-shadow .7s var(--ease-out), border-color .5s var(--ease);
}
.card::before{      /* gold hairline that draws in on hover */
  content:""; position:absolute; inset-inline:0; top:0; height:2px;
  background:linear-gradient(to var(--prog-dir,left), var(--gold-3), var(--gold));
  transform:scaleX(0); transform-origin:inline-start;
  transition:transform .7s var(--ease-out);
  z-index:3;
}
.card:hover{transform:translateY(-7px); box-shadow:var(--shadow); border-color:var(--gold-line);}
.card:hover::before{transform:scaleX(1);}
.card-body{padding:26px 28px 30px; display:flex; flex-direction:column; gap:12px; flex:1;}
.card h3{font-size:1.14rem;}
.card p{font-size:.94rem; color:var(--ink-2);}
.card-foot{margin-top:auto; padding-top:8px;}

/* destination card — arch top, echoing the logo */
.dest{
  position:relative; display:block; overflow:hidden;
  aspect-ratio:3/4; background:var(--sand);
  border-radius:var(--arch);
  box-shadow:var(--shadow-sm);
}
.dest img{
  width:100%; height:100%; object-fit:cover; object-position:center 40%;
  transition:transform 1.4s var(--ease-out);
}
.dest:hover img{transform:scale(1.08);}
.dest::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(16,14,12,.9) 0%, rgba(16,14,12,.3) 44%, rgba(16,14,12,0) 70%);
}
.dest-info{position:absolute; inset-inline:0; bottom:0; z-index:2; padding:24px 22px 26px; color:#fff;}
.dest-info h3{font-family:var(--f-display); font-size:1.62rem; font-weight:700; color:#fff; line-height:1.3;}
.dest-info .meta{font-size:.8rem; color:rgba(255,255,255,.78); margin-top:3px;}
.dest-info .bar{height:1px; background:var(--gold-3); width:30px; margin-top:14px; transition:width .8s var(--ease-out);}
.dest:hover .dest-info .bar{width:92px;}

/* trip row */
.trip{
  display:grid; grid-template-columns:minmax(0,290px) 1fr;
  background:var(--white); border:1px solid var(--line);
  overflow:hidden; position:relative;
  transition:transform .7s var(--ease-out), box-shadow .7s var(--ease-out), border-color .5s var(--ease);
}
.trip:hover{transform:translateY(-5px); box-shadow:var(--shadow); border-color:var(--gold-line);}
.trip-media{position:relative; overflow:hidden; min-height:230px; background:var(--sand);}
.trip-media img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.3s var(--ease-out);}
.trip:hover .trip-media img{transform:scale(1.07);}
.trip-body{padding:28px 30px; display:flex; flex-direction:column; gap:13px;}
.trip-body h3{font-size:1.3rem; font-family:var(--f-display); font-weight:700;}
.trip-route{font-size:.93rem; color:var(--ink-2); line-height:1.8;}

.chips{display:flex; flex-wrap:wrap; gap:8px;}
.chip{
  display:inline-flex; align-items:center; gap:7px;
  padding:5px 13px; border-radius:100px;
  background:var(--sand); border:1px solid var(--line-2);
  font-size:.77rem; color:var(--ink-2); font-weight:500;
}
.chip svg{width:13px; height:13px; color:var(--gold); opacity:.85;}
.chip--gold{background:var(--gold-4); border-color:transparent; color:var(--gold);}
.chip--soon{background:var(--gold-4); color:var(--gold); border-color:transparent;}

/* service card */
.svc{text-align:center;}
.svc .card-body{align-items:center;}
.svc .ico{
  position:relative;
  width:92px; height:92px;
  display:grid; place-items:center; margin-inline:auto;
  background:var(--gold-4);
  border-radius:100px;
  transition:transform .7s var(--ease-out), background .5s var(--ease);
}
.svc .ico::after{
  content:""; position:absolute; inset:-8px; border:1px solid var(--gold-line);
  border-radius:100px;
  transition:inset .6s var(--ease-out), opacity .5s;
  opacity:0;
}
.svc .ico img{width:42px; height:42px; object-fit:contain;}
.card:hover .svc .ico,.svc:hover .ico{transform:translateY(-5px);}
.card:hover .svc .ico::after{opacity:1; inset:-11px;}

/* --------------------------------------------------------------------------
   10. Bands & feature blocks
   -------------------------------------------------------------------------- */
.band-dark{background:var(--espresso); color:rgba(255,255,255,.82); position:relative; overflow:hidden;}
.band-dark .display,.band-dark h2,.band-dark h3,.band-dark h4{color:#fff;}
.band-dark .lead,.band-dark p{color:rgba(255,255,255,.78);}
.band-dark .eyebrow{color:var(--gold-3);}
.band-dark .small{color:rgba(255,255,255,.55);}
.band-soft{background:var(--sand);}

/* oversized watermark word — adds depth without noise */
.section:has(> .watermark){overflow:hidden;}
.watermark{
  position:absolute; inset-inline-end:0; top:8%;
  font-family:var(--f-display); font-weight:700;
  font-size:clamp(7rem,22vw,20rem); line-height:1;
  color:var(--gold); opacity:.05; pointer-events:none; user-select:none;
  z-index:0; white-space:nowrap;
}

.facts{display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:1px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.12);}
.fact{background:var(--espresso); padding:34px 22px; text-align:center;}
.fact b{display:block; font-family:var(--f-display); font-size:3.1rem; line-height:1.05; color:var(--gold-3); font-weight:700;}
.fact span{display:block; font-size:.84rem; color:rgba(255,255,255,.7); margin-top:8px; letter-spacing:.02em;}

.split{display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:clamp(32px,5.5vw,84px); align-items:center;}
.split-media{position:relative; overflow:hidden; box-shadow:var(--shadow);}
.split-media img{width:100%; aspect-ratio:4/5; object-fit:cover;}
.split-media--wide img{aspect-ratio:16/11;}
.split-media--arch{border-radius:var(--arch); box-shadow:var(--shadow-lg);}
.split-media .badge{
  position:absolute; inset-inline-end:20px; bottom:20px;
  background:var(--white); color:var(--ink);
  padding:12px 18px; font-size:.83rem; font-weight:600;
  box-shadow:var(--shadow-sm);
}

/* numbered steps */
.steps{counter-reset:s; display:grid;}
.steps li{
  counter-increment:s;
  display:grid; grid-template-columns:64px 1fr; gap:20px;
  padding:26px 0; border-bottom:1px solid var(--line-2);
  position:relative;
}
.steps li::before{
  content:counter(s,decimal-leading-zero);
  font-family:var(--f-display); font-size:1.7rem; color:var(--gold); font-weight:700;
  line-height:1; padding-top:5px; opacity:.85;
}
.steps h3{font-size:1.08rem; margin-bottom:5px;}
.steps p{font-size:.94rem; color:var(--ink-2);}

/* marquee */
.marquee{
  background:var(--espresso); color:var(--gold-3);
  overflow:hidden; padding-block:16px;
  border-block:1px solid rgba(255,255,255,.08);
  --dur:42s;
}
.marquee-track{display:flex; width:max-content; will-change:transform; animation:slide var(--dur) linear infinite;}
.marquee:hover .marquee-track{animation-play-state:paused;}
.marquee-track > span{
  display:inline-flex; align-items:center; gap:30px;
  padding-inline-end:30px;
  font-family:var(--f-display); font-size:1.06rem; font-weight:700; white-space:nowrap;
}
.marquee-track i{width:5px; height:5px; background:currentColor; transform:rotate(45deg); opacity:.55; flex:none;}
@keyframes slide{from{transform:translateX(0)} to{transform:translateX(50%)}}
html[dir="ltr"] .marquee-track{animation-name:slide-ltr;}
@keyframes slide-ltr{from{transform:translateX(0)} to{transform:translateX(-50%)}}

/* --------------------------------------------------------------------------
   11. Month picker
   -------------------------------------------------------------------------- */
.months{display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px;}
.month{
  position:relative; overflow:hidden;
  border:1px solid var(--line); background:var(--white);
  padding:20px 10px; text-align:center; cursor:pointer;
  transition:border-color .4s var(--ease), transform .5s var(--ease-out), color .4s;
}
.month::before{
  content:""; position:absolute; inset:0; background:var(--gold-4);
  transform:scaleY(0); transform-origin:bottom;
  transition:transform .5s var(--ease-out); z-index:0;
}
.month > *{position:relative; z-index:1;}
.month:hover:not(:disabled){border-color:var(--gold-line); transform:translateY(-3px);}
.month:hover:not(:disabled)::before{transform:scaleY(1);}
.month b{display:block; font-size:1rem; font-weight:600; font-family:var(--f-display);}
.month span{display:block; font-size:.73rem; color:var(--muted); margin-top:3px;}
.month[aria-pressed="true"]{background:var(--gold); border-color:var(--gold); color:#fff;}
.month[aria-pressed="true"] span{color:rgba(255,255,255,.8);}
.month:disabled{opacity:.42; cursor:not-allowed;}
@media (max-width:900px){.months{grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px;}}
@media (max-width:540px){.months{grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px;}
  .month{padding:15px 6px;} .month b{font-size:.92rem;} .month span{font-size:.66rem;}}

/* --------------------------------------------------------------------------
   12. Accordion
   -------------------------------------------------------------------------- */
.acc{border:1px solid var(--line); overflow:hidden; background:var(--white);}
.acc-item + .acc-item{border-top:1px solid var(--line-2);}
.acc-head{
  width:100%; display:flex; align-items:flex-start; gap:16px;
  padding:20px 24px; background:transparent; border:0; cursor:pointer;
  text-align:start; font-size:1rem; font-weight:600; color:var(--ink);
  transition:background .35s;
}
.acc-head:hover{background:var(--sand);}
.acc-head .num{font-family:var(--f-mono); font-size:.74rem; color:var(--gold); flex:none; padding-top:5px; min-width:28px;}
.acc-head .ttl{flex:1;}
.acc-head .plus{flex:none; width:22px; height:22px; position:relative; margin-top:4px;}
.acc-head .plus::before,.acc-head .plus::after{content:""; position:absolute; inset:50% 0 auto 0; height:1.5px; background:var(--gold); transition:transform .45s var(--ease);}
.acc-head .plus::after{transform:rotate(90deg);}
.acc-head[aria-expanded="true"] .plus::after{transform:rotate(0);}
.acc-panel{display:grid; grid-template-rows:0fr; transition:grid-template-rows .5s var(--ease-out);}
.acc-panel > div{overflow:hidden;}
.acc-item.is-open .acc-panel{grid-template-rows:1fr;}
.acc-body{padding:0 24px 24px; color:var(--ink-2); font-size:.95rem;}
.acc-body ul{display:grid; gap:7px;}
.acc-body li{padding-inline-start:18px; position:relative;}
.acc-body li::before{content:""; position:absolute; inset-inline-start:0; top:.8em; width:5px; height:5px; background:var(--gold-3); transform:rotate(45deg);}

/* --------------------------------------------------------------------------
   13. Include / exclude
   -------------------------------------------------------------------------- */
.incex{display:grid; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); gap:clamp(18px,3vw,32px);}
.incex-col{background:var(--white); border:1px solid var(--line); padding:28px;}
.incex-col h3{font-size:1.06rem; margin-bottom:18px; display:flex; align-items:center; gap:10px;}
.incex-col ul{display:grid; gap:11px;}
.incex-col li{display:grid; grid-template-columns:20px 1fr; gap:11px; font-size:.94rem; color:var(--ink-2); line-height:1.7;}
.incex-col li svg{width:17px; height:17px; margin-top:6px;}
.inc h3 svg,.inc li svg{color:var(--ok);} .exc h3 svg,.exc li svg{color:#B4483C;}

/* --------------------------------------------------------------------------
   14. Forms
   -------------------------------------------------------------------------- */
.form{display:grid; gap:15px;}
.form-row{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:15px;}
.field{display:grid; gap:7px;}
.field label{font-size:.84rem; font-weight:600; color:var(--ink-2);}
.field label .req{color:#B4483C;}
.field .hint{font-size:.77rem; color:var(--muted); font-weight:400;}
.field input,.field select,.field textarea{
  width:100%; padding:14px 16px;
  background:var(--white); color:var(--ink);
  border:1px solid var(--line); border-radius:var(--radius);
  transition:border-color .3s, box-shadow .3s;
  font-size:.95rem;
}
.field textarea{min-height:120px; resize:vertical;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--gold-2); box-shadow:0 0 0 3px var(--gold-4);}
.consent{display:flex; align-items:flex-start; gap:11px; font-size:.85rem; color:var(--ink-2); line-height:1.7;}
.consent input{width:18px; height:18px; margin-top:5px; accent-color:var(--gold); flex:none;}
.consent a{color:var(--gold); text-decoration:underline; text-underline-offset:3px;}
.hp{position:absolute; inset-inline-start:-9999px; width:1px; height:1px; overflow:hidden;}
.form-note{font-size:.83rem; color:var(--muted); display:flex; gap:9px; align-items:flex-start; line-height:1.7;}
.form-note svg{width:15px; height:15px; margin-top:5px; flex:none; color:var(--gold);}

.booking{background:var(--white); border:1px solid var(--line); padding:30px; box-shadow:var(--shadow-sm); position:relative;}
.booking::before{content:""; position:absolute; inset-inline:0; top:0; height:2px; background:linear-gradient(to var(--prog-dir,left), var(--gold-3), var(--gold));}
.booking h3{font-size:1.2rem; margin-bottom:5px; font-family:var(--f-display); font-weight:700;}
.booking .sub{font-size:.87rem; color:var(--muted); margin-bottom:20px;}
@media (min-width:1000px){.booking-sticky{position:sticky; top:110px;}}

/* --------------------------------------------------------------------------
   15. Footer
   -------------------------------------------------------------------------- */
.site-footer{background:var(--espresso); color:rgba(255,255,255,.75); padding-block:clamp(60px,8vw,110px) 0; position:relative; overflow:hidden;}
.site-footer h4{color:#fff; font-size:.8rem; margin-bottom:20px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-3); font-weight:600;}
.footer-grid{display:grid; grid-template-columns:minmax(250px,1.6fr) repeat(auto-fit,minmax(140px,1fr)); gap:clamp(30px,4vw,60px);}
.site-footer img.logo{height:76px; width:auto; filter:brightness(0) invert(1); opacity:.95;}
.site-footer p{font-size:.92rem; line-height:1.9;}
.site-footer ul{display:grid; gap:11px;}
.site-footer a{font-size:.92rem; transition:color .3s, padding-inline-start .3s;}
.site-footer a:hover{color:var(--gold-3); padding-inline-start:6px;}
.footer-contact a{display:flex; align-items:center; gap:10px; color:#fff; font-weight:500;}
.footer-contact svg{width:16px; height:16px; color:var(--gold-3); flex:none;}
.social{display:flex; gap:11px; margin-top:22px;}
.social a{width:44px; height:44px; border-radius:100px; border:1px solid rgba(255,255,255,.18); display:grid; place-items:center; transition:background .4s var(--ease), border-color .4s, transform .5s var(--ease-out), color .4s;}
.social a:hover{background:var(--gold); border-color:var(--gold); color:#fff; transform:translateY(-4px); padding:0;}
.social svg{width:17px; height:17px;}
.footer-bottom{margin-top:clamp(40px,5vw,64px); padding-block:24px; border-top:1px solid rgba(255,255,255,.12); display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; font-size:.84rem; color:rgba(255,255,255,.6);}
.footer-bottom a:hover{color:var(--gold-3);}

/* --------------------------------------------------------------------------
   16. Floating WhatsApp
   -------------------------------------------------------------------------- */
.wa-float{
  position:fixed; z-index:105;
  inset-inline-end:24px; bottom:24px;
  display:inline-flex; align-items:center; gap:11px;
  padding:15px 24px; border-radius:100px;
  background:#1FA855; color:#fff; font-weight:600; font-size:.92rem;
  box-shadow:0 14px 34px -12px rgba(31,168,85,.65);
  transition:transform .5s var(--ease-out), box-shadow .5s var(--ease);
}
.wa-float:hover{transform:translateY(-4px); box-shadow:0 22px 46px -14px rgba(31,168,85,.75);}
.wa-float svg{width:22px; height:22px;}

/* --------------------------------------------------------------------------
   17. Editorial article
   -------------------------------------------------------------------------- */
.prose{max-width:70ch; margin-inline:auto;}
.prose > * + *{margin-top:1.15em;}
.prose h2{font-family:var(--f-display); font-size:clamp(1.6rem,2.8vw,2.15rem); margin-top:1.9em; color:var(--ink);}
.prose h3{font-size:1.18rem; margin-top:1.6em;}
.prose p,.prose li{color:var(--ink-2);}
.prose ul,.prose ol{display:grid; gap:9px; padding-inline-start:4px;}
.prose ul li{position:relative; padding-inline-start:22px;}
.prose ul li::before{content:""; position:absolute; inset-inline-start:0; top:.82em; width:6px; height:6px; background:var(--gold-3); transform:rotate(45deg);}
.prose ol{counter-reset:o;}
.prose ol li{counter-increment:o; position:relative; padding-inline-start:32px;}
.prose ol li::before{content:counter(o) "."; position:absolute; inset-inline-start:0; color:var(--gold); font-weight:600; font-family:var(--f-mono); font-size:.85em;}
.prose blockquote{border-inline-start:2px solid var(--gold-3); padding-inline-start:22px; color:var(--ink); font-family:var(--f-display); font-size:1.28rem; line-height:1.75;}
.prose table{width:100%; border-collapse:collapse; font-size:.92rem;}
.prose th,.prose td{padding:12px 14px; border:1px solid var(--line); text-align:start;}
.prose th{background:var(--sand); font-weight:600;}
.table-wrap{overflow-x:auto; border:1px solid var(--line);}

.post-card .media{aspect-ratio:16/10; overflow:hidden; background:var(--sand);}
.post-card .media img{width:100%; height:100%; object-fit:cover; transition:transform 1.3s var(--ease-out);}
.post-card:hover .media img{transform:scale(1.06);}

.notice{display:flex; gap:14px; align-items:flex-start; background:var(--gold-4); padding:20px 22px; font-size:.92rem; color:var(--ink-2); line-height:1.8;}
.notice svg{width:18px; height:18px; flex:none; margin-top:6px; color:var(--gold);}
.notice strong,.notice b{color:var(--ink);}

/* gallery */
.gallery{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px;}
.gallery img{width:100%; aspect-ratio:4/5; object-fit:cover;}
.gallery > *:first-child{border-start-start-radius:var(--radius);}
@media (max-width:820px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr));} .gallery img{aspect-ratio:1/1;}}

/* --------------------------------------------------------------------------
   18. Motion
   -------------------------------------------------------------------------- */
/* headings rise out of a mask */
.js .reveal-mask{
  clip-path:inset(0 0 105% 0);
  transform:translateY(22px);
}
.js .reveal-mask.is-in{
  clip-path:inset(-25% -10% -10% -10%);
  transform:none;
  transition:clip-path 1.15s var(--ease-lux), transform 1.15s var(--ease-lux);
}
.js .reveal{opacity:0; transform:translateY(26px);}
.js .reveal.is-in{opacity:1; transform:none; transition:opacity .95s var(--ease-out), transform .95s var(--ease-out);}
.js .reveal-stagger > *{opacity:0; transform:translateY(30px);}
.js .reveal-stagger.is-in > *{opacity:1; transform:none; transition:opacity .9s var(--ease-out), transform .9s var(--ease-out);}
.js .reveal-stagger.is-in > *:nth-child(1){transition-delay:.04s}
.js .reveal-stagger.is-in > *:nth-child(2){transition-delay:.13s}
.js .reveal-stagger.is-in > *:nth-child(3){transition-delay:.22s}
.js .reveal-stagger.is-in > *:nth-child(4){transition-delay:.31s}
.js .reveal-stagger.is-in > *:nth-child(5){transition-delay:.40s}
.js .reveal-stagger.is-in > *:nth-child(6){transition-delay:.49s}

/* gold curtain wipes off images */
.js .split-media,.js .dest,.js .trip-media,.js .post-card .media,.js .gallery img{position:relative;}
.js .wipe{position:relative; overflow:hidden;}
.js .wipe::after{
  content:""; position:absolute; inset:0; z-index:4;
  background:var(--gold-3);
  transform-origin:top;
  transition:transform 1.1s var(--ease-lux);
}
.js .wipe.is-in::after{transform:scaleY(0);}

/* page entrance */
.js .hero-inner > *{opacity:0; transform:translateY(30px);}
.js.is-ready .hero-inner > *{opacity:1; transform:none; transition:opacity 1s var(--ease-out), transform 1.1s var(--ease-lux);}
.js.is-ready .hero-inner > *:nth-child(1){transition-delay:.15s}
.js.is-ready .hero-inner > *:nth-child(2){transition-delay:.28s}
.js.is-ready .hero-inner > *:nth-child(3){transition-delay:.42s}
.js.is-ready .hero-inner > *:nth-child(4){transition-delay:.56s}
.js .hero-frame{opacity:0; transform:scale(1.04);}
.js.is-ready .hero-frame{opacity:1; transform:none; transition:opacity 1.4s var(--ease-out) .3s, transform 1.6s var(--ease-lux) .3s;}

/* cursor spotlight (desktop, hero only) */
.spotlight{
  position:absolute; z-index:-1; pointer-events:none;
  width:520px; height:520px; border-radius:50%;
  background:radial-gradient(circle, rgba(219,181,127,.24), transparent 65%);
  transform:translate(-50%,-50%);
  opacity:0; transition:opacity .6s var(--ease);
  mix-blend-mode:multiply;
}
.hero:hover .spotlight{opacity:1;}
@media (hover:none){.spotlight{display:none;}}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
  .js .reveal,.js .reveal-stagger > *,.js .hero-inner > *,.js .hero-frame{opacity:1 !important; transform:none !important;}
  .js .reveal-mask{clip-path:none !important; transform:none !important;}
  .js .wipe::after{display:none;}
  .hero-media img{animation:none !important;}
}

/* --------------------------------------------------------------------------
   19. Responsive
   -------------------------------------------------------------------------- */
@media (max-width:1040px){
  .nav,.header-actions .btn{display:none;}
  .burger{display:inline-flex;}
  .trip{grid-template-columns:1fr;}
  .trip-media{min-height:0; aspect-ratio:16/9;}
  .watermark{display:none;}
}

@media (max-width:760px){
  .g-dest{grid-template-columns:repeat(2,minmax(0,1fr));}
  .dest{aspect-ratio:4/5;}
  .split-media img{aspect-ratio:4/3;}
  .split-media--wide img{aspect-ratio:4/3;}
}

@media (max-width:640px){
  body{font-size:16px; padding-bottom:74px;}   /* room for the mobile bar */
  .mobar{display:block;}
  .wa-float{display:none;}
  .topbar{font-size:.75rem;}
  .topbar .container{justify-content:center; min-height:36px; gap:16px;}
  .topbar-group:last-child{display:none;}
  .topbar-group a:nth-child(2){display:none;}
  .site-header .container{min-height:72px;}
  .brand img{height:48px;}
  .site-header.is-stuck .brand img{height:40px;}
  .hero{min-height:auto;}
  .hero-inner{padding-block:64px 96px; max-width:none;}
  .hero-frame{inset:12px;}
  .hero::after{background:linear-gradient(to top, var(--ivory) 26%, color-mix(in srgb, var(--ivory) 72%, transparent) 62%, color-mix(in srgb, var(--ivory) 25%, transparent));}
  html[dir="ltr"] .hero::after{background:linear-gradient(to top, var(--ivory) 26%, color-mix(in srgb, var(--ivory) 72%, transparent) 62%, color-mix(in srgb, var(--ivory) 25%, transparent));}
  .hero-media{inset:-4% 0 auto; height:64vh;}
  .scroll-cue{display:none;}
  .hero-cta{gap:10px;}
  .hero-cta .btn{flex:1 1 100%;}
  .card-body{padding:22px 20px 24px;}
  .trip-body{padding:22px 20px;}
  .booking{padding:22px 20px;}
  .incex-col{padding:22px 20px;}
  .fact{padding:26px 16px;}
  .fact b{font-size:2.5rem;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .site-footer .about-col{grid-column:1 / -1;}
  .steps li{grid-template-columns:44px 1fr; gap:14px; padding:20px 0;}
  .steps li::before{font-size:1.3rem;}
  .marquee-track > span{font-size:.95rem; gap:22px; padding-inline-end:22px;}
  .acc-head{padding:17px 18px; gap:12px; font-size:.96rem;}
  .acc-body{padding:0 18px 20px;}
  .prose h2{font-size:1.45rem;}
}

@media (max-width:400px){
  .footer-grid{grid-template-columns:1fr;}
  .mobar a,.mobar button{font-size:.62rem;}
}

@media print{
  .site-header,.topbar,.wa-float,.drawer,.marquee,.site-footer,.mobar,.progress{display:none !important;}
  body{background:#fff; padding-bottom:0;}
  body::before{display:none;}
  .js .reveal,.js .reveal-stagger > *,.js .hero-inner > *{opacity:1 !important; transform:none !important;}
  .js .reveal-mask{clip-path:none !important;}
  .js .wipe::after{display:none;}
}
