  :root{
    --ground:#ECE6D5;
    --surface:#F7F3E8;
    --surface-2:#E2DAC2;
    --ink:#211C13;
    --ink-soft:#5B5641;
    --gold:#A5751F;
    --gold-strong:#8A5F17;
    --gold-line:#B8862E;
    --line:rgba(33,28,19,0.16);
    --line-strong:rgba(33,28,19,0.30);
    --lift:0 20px 44px -26px rgba(33,28,19,0.55);
    --cover-ink:#15130E;
    --cover-text:#EFE9DA;
    --cover-text-soft:#C7BFA9;
    --cover-gold:#D9A83D;
    --cover-line:rgba(239,233,218,0.18);
    --logo:url("logo-badge.png");
    --nav-h:68px;
    --serif:"Newsreader","Iowan Old Style",Georgia,serif;
    --sans:"Source Sans 3",system-ui,-apple-system,"Segoe UI",sans-serif;
    --hand:"Caveat","Segoe Print","Bradley Hand",cursive;
    --ease:cubic-bezier(.22,.7,.2,1);
  }

  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --ground:#15130E;
      --surface:#1E1B13;
      --surface-2:#29241A;
      --ink:#EFE9DA;
      --ink-soft:#B9AF95;
      --gold:#D9A83D;
      --gold-strong:#F0C264;
      --gold-line:#D9A83D;
      --line:rgba(239,233,218,0.14);
      --line-strong:rgba(239,233,218,0.28);
      --lift:0 20px 44px -26px rgba(0,0,0,0.85);
    }
  }
  :root[data-theme="dark"]{
    --ground:#15130E;
    --surface:#1E1B13;
    --surface-2:#29241A;
    --ink:#EFE9DA;
    --ink-soft:#B9AF95;
    --gold:#D9A83D;
    --gold-strong:#F0C264;
    --gold-line:#D9A83D;
    --line:rgba(239,233,218,0.14);
    --line-strong:rgba(239,233,218,0.28);
    --lift:0 20px 44px -26px rgba(0,0,0,0.85);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
  body{
    margin:0;
    background:var(--ground);
    color:var(--ink);
    font-family:var(--sans);
    font-size:1.05rem;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  h1,h2,h3,h4{
    font-family:var(--serif);
    font-weight:500;
    text-wrap:balance;
    margin:0;
    color:var(--ink);
    letter-spacing:-0.005em;
  }
  p{margin:0;}
  a{color:inherit;}
  img{max-width:100%;display:block;height:auto;}
  ::selection{background:var(--gold-line);color:#15130E;}
  :focus-visible{outline:2px solid var(--gold-line);outline-offset:3px;}

  .skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--cover-gold);color:#15130E;padding:10px 16px;font-size:0.85rem;text-decoration:none;}
  .skip:focus{left:12px;top:12px;}

  .wrap{max-width:1180px;margin-inline:auto;padding-inline:24px;}
  @media (max-width:640px){.wrap{padding-inline:18px;}}

  .eyebrow{
    font-family:var(--sans);
    font-size:0.8rem;letter-spacing:0.12em;text-transform:uppercase;
    color:var(--gold-strong);font-weight:600;
  }
  .on-dark .eyebrow,.cover .eyebrow,.contact .eyebrow{color:var(--cover-gold);}
  .hand{font-family:var(--hand);font-weight:500;}

  /* ---------- NAV ---------- */
  header{
    position:fixed;top:0;left:0;right:0;z-index:60;
    background:transparent;border-bottom:1px solid transparent;
    transition:background .35s ease,border-color .35s ease,transform .45s var(--ease);
    padding-top:env(safe-area-inset-top, 0px);
  }
  header.scrolled{
    background:rgba(21,19,14,0.94);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    border-bottom-color:var(--cover-line);
  }
  header.tucked{transform:translateY(-100%);}
  .topline{
    font-size:0.8rem;color:var(--cover-text-soft);
    border-bottom:1px solid var(--cover-line);
    transition:margin .35s ease,opacity .35s ease;
  }
  .topline .wrap{display:flex;justify-content:space-between;gap:16px;padding-block:7px;}
  .topline a{text-decoration:none;}
  .topline a:hover{color:var(--cover-gold);}
  header.scrolled .topline{display:none;}
  @media (max-width:640px){.topline .hide-sm{display:none;}}

  .nav{
    display:flex;align-items:center;justify-content:space-between;
    min-height:var(--nav-h);padding-block:10px;
    color:var(--cover-text);position:relative;
  }
  .brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--cover-text);}
  .brand-mark{
    width:42px;height:42px;flex:none;
    background-image:var(--logo);background-size:contain;
    background-repeat:no-repeat;background-position:center;
    filter:drop-shadow(0 2px 8px rgba(0,0,0,0.5));
  }
  .brand-word{font-family:var(--serif);font-size:1.18rem;font-weight:500;line-height:1.1;}
  .brand-word small{
    display:block;font-family:var(--sans);font-size:0.66rem;
    letter-spacing:0.14em;color:var(--cover-text-soft);font-weight:500;
    text-transform:uppercase;margin-top:3px;
  }
  nav.links{display:flex;align-items:center;gap:26px;}
  nav.links a{
    text-decoration:none;font-size:0.95rem;color:var(--cover-text-soft);
    position:relative;padding-block:4px;
    transition:color .2s ease;
  }
  nav.links a:not(.cta-btn)::after{
    content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;
    background:var(--cover-gold);transform:scaleX(0);transform-origin:left;
    transition:transform .35s var(--ease);
  }
  nav.links a:hover,nav.links a.active{color:var(--cover-text);}
  nav.links a:hover::after,nav.links a.active::after{transform:scaleX(1);}
  .cta-btn{
    display:inline-block;font-family:var(--sans);font-size:0.95rem;font-weight:600;
    text-decoration:none;color:#15130E;background:var(--cover-gold);
    padding:11px 20px;border-radius:3px;white-space:nowrap;border:1px solid var(--cover-gold);
    cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
  }
  .cta-btn:hover{background:#E6B64D;transform:translateY(-1px);}
  nav.links a.cta-btn{color:#15130E;}
  .cta-btn.ghost{background:transparent;color:var(--cover-text);border-color:rgba(239,233,218,0.45);}
  .cta-btn.ghost:hover{border-color:var(--cover-gold);color:var(--cover-gold);}
  .cta-btn.line{background:transparent;color:var(--gold-strong);border-color:var(--gold-line);}
  .cta-btn.line:hover{background:var(--gold-line);color:#15130E;}
  @media (max-width:900px){
    .cta-btn{padding:14px 20px;}
    .social-row a{padding:11px 13px;}
    .channel-list a{padding:17px 0;}
  }

  #nav-toggle{position:absolute;opacity:0;width:1px;height:1px;}
  .burger{display:none;}

  @media (max-width:900px){
    nav.links{
      position:absolute;top:100%;left:-24px;right:-24px;
      flex-direction:column;align-items:stretch;gap:0;
      background:rgba(21,19,14,0.98);
      border-bottom:1px solid var(--cover-line);
      max-height:0;overflow:hidden;transition:max-height .35s var(--ease);
    }
    nav.links a{width:100%;padding:15px 24px;border-bottom:1px solid var(--cover-line);}
    nav.links a:not(.cta-btn)::after{display:none;}
    nav.links .cta-btn{margin:16px 24px 20px;width:auto;text-align:center;}
    #nav-toggle:checked ~ nav.links{max-height:620px;}
    .burger{display:flex;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px;}
    .burger span{width:22px;height:2px;background:var(--cover-text);display:block;transition:transform .25s ease,opacity .25s ease;}
    #nav-toggle:checked ~ .burger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
    #nav-toggle:checked ~ .burger span:nth-child(2){opacity:0;}
    #nav-toggle:checked ~ .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  }

  /* ---------- HERO ---------- */
  .cover{
    position:relative;color:var(--cover-text);
    min-height:min(100svh,900px);
    display:flex;flex-direction:column;justify-content:flex-end;
    padding-top:calc(var(--nav-h) + 110px);
    padding-bottom:0;
    overflow:hidden;isolation:isolate;
  }
  .hero-media{
    position:absolute;inset:-4% 0 0 0;z-index:-2;
    background-image:url("img/hero.jpg");
    background-size:cover;background-position:center 45%;
    will-change:transform;
  }
  .hero-scrim{
    position:absolute;inset:0;z-index:-1;
    background:
      linear-gradient(100deg, rgba(10,9,6,0.78) 0%, rgba(10,9,6,0.5) 38%, rgba(10,9,6,0.1) 66%, rgba(10,9,6,0.25) 100%),
      linear-gradient(180deg, rgba(10,9,6,0.6) 0%, rgba(10,9,6,0) 24%, rgba(10,9,6,0) 60%, rgba(10,9,6,0.55) 100%);
  }
  .cover-inner{width:100%;padding-bottom:clamp(90px,14vw,150px);}
  .cover-copy{max-width:min(720px,100%);}
  .cover .karibu{font-family:var(--hand);font-size:clamp(1.6rem,3vw,2rem);color:var(--cover-gold);line-height:1;display:block;}
  .cover h1{
    color:var(--cover-text);
    font-size:clamp(2.7rem,6.6vw,4.9rem);
    font-weight:500;
    line-height:1.02;margin-block:12px 22px;
    text-shadow:0 2px 30px rgba(0,0,0,0.45);
  }
  .cover h1 em{font-style:italic;color:var(--cover-gold);font-weight:400;}
  .cover h1 .ln{display:block;overflow:hidden;padding-bottom:0.08em;}
  .cover h1 .ln > span{display:inline-block;}
  .cover h1 .tw{position:relative;display:inline-block;white-space:nowrap;}
  .cover h1 .tw .caret{
    position:absolute;left:0;top:.12em;bottom:.22em;width:.34em;
    background:var(--cover-gold);opacity:0;pointer-events:none;
  }
  .cover-lead{max-width:50ch;color:var(--cover-text-soft);font-size:1.12rem;text-shadow:0 1px 14px rgba(0,0,0,0.7);}
  .cover-ctas{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap;align-items:center;}
  .cover-note{font-size:0.9rem;color:var(--cover-text-soft);margin-top:18px;}
  .cover-note a{color:var(--cover-text);text-decoration-color:var(--cover-gold);text-underline-offset:3px;}

  /* Horizon silhouette that carries the hero into the next section */
  .horizon{position:absolute;left:0;right:0;bottom:-1px;height:clamp(60px,9vw,120px);z-index:0;pointer-events:none;}
  .horizon svg{width:100%;height:100%;display:block;}
  .horizon path{fill:var(--ground);}
  .horizon .far{fill:var(--ground);opacity:.45;}

  .scroll-cue{
    position:absolute;left:50%;bottom:clamp(70px,10vw,120px);transform:translateX(-50%);
    width:22px;height:36px;border:1.5px solid rgba(239,233,218,.55);border-radius:12px;z-index:1;
  }
  .scroll-cue::after{content:"";position:absolute;left:50%;top:7px;width:3px;height:7px;margin-left:-1.5px;border-radius:2px;background:var(--cover-gold);}
  @media (max-width:760px){.scroll-cue{display:none;}}

  /* ---------- MOTION ---------- */
  @media (prefers-reduced-motion:no-preference){
    .js .reveal{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
    .js .reveal.in{opacity:1;transform:none;}
    /* clip the image, not the observed box: a clipped target never registers as intersecting */
    .js .reveal-img img{clip-path:inset(0 0 100% 0);transform:scale(1.12);transition:clip-path 1.2s var(--ease),transform 1.6s var(--ease);}
    .js .reveal-img.in img{clip-path:inset(0 0 0 0);transform:scale(1);}
    .js .stagger > *{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease);}
    .js .stagger.in > *{opacity:1;transform:none;}

    .js .cover h1 .ln > span{transform:translateY(105%);transition:transform 1.1s var(--ease);}
    .js .cover .fade{opacity:0;transform:translateY(12px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
    .js.ready .cover h1 .ln > span{transform:none;}
    .js.ready .cover .fade{opacity:1;transform:none;}
    .js.ready .cover h1 .ln:nth-child(2) > span{transition-delay:.12s;}
    .js.ready .cover .fade.d1{transition-delay:.35s;}
    .js.ready .cover .fade.d2{transition-delay:.5s;}
    .js.ready .cover .fade.d3{transition-delay:.65s;}

    .hero-media{animation:drift 30s ease-in-out infinite alternate;}
    @keyframes drift{from{background-position:center 45%;}to{background-position:52% 52%;}}
    .scroll-cue::after{animation:cue 2s ease-in-out infinite;}
    @keyframes cue{0%{opacity:0;transform:translateY(0);}30%{opacity:1;}100%{opacity:0;transform:translateY(12px);}}

    /* Hero line two types itself out once, led by a gold caret.
       The caret rides .tw, which shrink-wraps the sentence, so left:100%
       lands on the full stop rather than the far edge of the screen. */
    .js .cover h1 .tw .txt{clip-path:inset(0 100% 0 0);}
    .js.ready .cover h1 .tw .txt{animation:heroType 2.3s steps(20,end) 1.25s forwards;}
    .js.ready .cover h1 .tw .caret{
      animation:heroCaret 2.3s steps(20,end) 1.25s forwards,
                heroBlink .72s step-end 1.25s 8;
    }
    @keyframes heroType{to{clip-path:inset(0 0 0 0);}}
    @keyframes heroCaret{from{left:0;}to{left:100%;}}
    @keyframes heroBlink{0%,100%{opacity:1;}50%{opacity:0;}}
  }

  /* ---------- SECTION SCAFFOLD ---------- */
  section{padding-block:100px;position:relative;}
  section[id]{scroll-margin-top:var(--nav-h);}
  @media (max-width:640px){section{padding-block:64px;}}
  .section-head{max-width:640px;margin-bottom:46px;}
  .section-head h1,.section-head h2{font-size:clamp(2rem,3.8vw,2.7rem);line-height:1.1;margin-top:10px;}
  .section-head .lead{margin-top:14px;color:var(--ink-soft);font-size:1.08rem;}
  .section-head.split{max-width:none;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;}
  .section-head.split > div{max-width:640px;}

  /* soft wave edge between light sections */
  .edge{position:absolute;left:0;right:0;top:-1px;height:40px;pointer-events:none;}
  .edge svg{width:100%;height:100%;display:block;}

  /* ---------- WELCOME ---------- */
  #about{padding-top:40px;}
  .welcome{display:grid;grid-template-columns:1.05fr 0.95fr;gap:64px;align-items:center;}
  @media (max-width:900px){.welcome{grid-template-columns:1fr;gap:40px;}}
  .welcome-copy h2{font-size:clamp(2rem,3.8vw,2.7rem);line-height:1.1;margin-block:10px 22px;}
  .welcome-copy p{margin-bottom:16px;max-width:60ch;}
  .welcome-copy p.big{font-family:var(--serif);font-size:1.3rem;line-height:1.5;color:var(--ink);}
  .signoff{display:flex;align-items:center;gap:14px;margin-top:26px;}
  .signoff .hand{font-size:2rem;color:var(--gold-strong);line-height:1;}
  .signoff small{display:block;font-size:0.85rem;color:var(--ink-soft);}
  .welcome-media{position:relative;}
  .welcome-media .main{aspect-ratio:4/5;overflow:hidden;border-radius:2px;}
  .welcome-media .main img{width:100%;height:100%;object-fit:cover;}
  .welcome-media .inset{
    position:absolute;left:-40px;bottom:-40px;width:46%;aspect-ratio:1/1;overflow:hidden;
    border:6px solid var(--ground);box-shadow:var(--lift);border-radius:2px;
  }
  .welcome-media .inset img{width:100%;height:100%;object-fit:cover;}
  .welcome-media .tag{
    position:absolute;right:-8px;top:24px;background:var(--surface);color:var(--ink);
    padding:10px 14px;font-family:var(--hand);font-size:1.35rem;line-height:1.1;
    box-shadow:var(--lift);transform:rotate(3deg);
  }
  @media (max-width:900px){
    .welcome-media .main{aspect-ratio:4/3;}
    .welcome-media .inset{left:auto;right:12px;bottom:-28px;width:38%;}
    .welcome-media .tag{right:12px;}
  }
  .facts{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:28px;padding-top:22px;border-top:1px solid var(--line);font-size:0.95rem;color:var(--ink-soft);}
  .facts b{color:var(--ink);font-weight:600;}

  /* ---------- SERVICES ---------- */
  #services{background:var(--surface);}
  .svc-wrap{display:grid;grid-template-columns:0.8fr 1.2fr;gap:64px;align-items:start;}
  @media (max-width:900px){.svc-wrap{grid-template-columns:1fr;gap:10px;}}
  .svc-wrap .section-head{position:sticky;top:calc(var(--nav-h) + 30px);}
  @media (max-width:900px){.svc-wrap .section-head{position:static;margin-bottom:24px;}}
  .svc-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-strong);}
  .svc-list li{
    display:grid;grid-template-columns:44px 1fr;gap:18px;padding:22px 0;border-bottom:1px solid var(--line);
    transition:padding-left .35s var(--ease);
  }
  .svc-list li:hover{padding-left:8px;}
  .svc-list svg{width:28px;height:28px;stroke:var(--gold);fill:none;stroke-width:1.4;margin-top:3px;}
  .svc-list h3{font-size:1.28rem;margin-bottom:4px;}
  .svc-list p{color:var(--ink-soft);font-size:1rem;}

  /* ---------- WHY US ---------- */
  .why-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:64px;align-items:center;}
  @media (max-width:900px){.why-grid{grid-template-columns:1fr;gap:34px;}}
  .why-media{overflow:hidden;border-radius:2px;}
  .why-media img{width:100%;aspect-ratio:4/5;object-fit:cover;}
  @media (max-width:900px){.why-media img{aspect-ratio:16/10;}}
  .reasons{margin:0;padding:0;list-style:none;counter-reset:r;}
  .reasons li{padding:18px 0 18px 54px;border-bottom:1px solid var(--line);position:relative;counter-increment:r;}
  .reasons li:first-child{border-top:1px solid var(--line-strong);}
  .reasons li::before{
    content:counter(r);position:absolute;left:0;top:14px;
    font-family:var(--serif);font-style:italic;font-size:1.7rem;color:var(--gold);line-height:1.2;
  }
  .reasons h3{font-size:1.2rem;margin-bottom:3px;}
  .reasons p{color:var(--ink-soft);max-width:58ch;}

  /* ---------- DESTINATIONS ---------- */
  #destinations{background:var(--surface-2);}
  .dest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
  @media (max-width:980px){.dest-grid{grid-template-columns:1fr;}}
  .dest-card{background:var(--surface);position:relative;overflow:hidden;display:flex;flex-direction:column;border-radius:2px;transition:transform .45s var(--ease),box-shadow .45s ease;}
  .dest-card:hover{transform:translateY(-5px);box-shadow:var(--lift);}
  .dest-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--surface-2);}
  .dest-media img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease);}
  .dest-card:hover .dest-media img{transform:scale(1.05);}
  .dest-media .country{
    position:absolute;left:18px;bottom:14px;z-index:2;color:#fff;
    font-family:var(--serif);font-size:1.9rem;font-weight:500;text-shadow:0 2px 16px rgba(0,0,0,.6);
  }
  .dest-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(10,9,6,0.6) 100%);}
  .dest-body{padding:22px 24px 26px;display:flex;flex-direction:column;flex:1;}
  .dest-card .parks{font-size:0.9rem;color:var(--gold-strong);font-weight:600;margin-bottom:10px;}
  .dest-card p{color:var(--ink-soft);font-size:1rem;margin-bottom:20px;flex:1;}
  .months{display:flex;gap:3px;margin-bottom:8px;}
  .months span{flex:1;text-align:center;font-size:0.68rem;font-weight:600;padding:6px 0;background:var(--surface-2);color:var(--ink-soft);border-radius:1px;}
  .months span.on{background:var(--gold);color:#1B1508;}
  .months-label{font-size:0.88rem;color:var(--ink-soft);}

  /* ---------- PACKAGES ---------- */
  .tickets{display:grid;grid-template-columns:repeat(2,1fr);gap:28px 26px;align-items:start;}
  @media (max-width:860px){.tickets{grid-template-columns:1fr;}}
  .ticket{
    background:var(--surface);border:1px solid var(--line);border-radius:2px;
    position:relative;display:flex;flex-direction:column;
    transition:transform .45s var(--ease),box-shadow .45s ease;
  }
  .ticket:hover{transform:translateY(-4px);box-shadow:var(--lift);}
  .ticket-media{aspect-ratio:16/9;overflow:hidden;background:var(--surface-2);position:relative;}
  .ticket-media img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease);}
  .ticket:hover .ticket-media img{transform:scale(1.05);}
  .ticket-media .days-pill{
    position:absolute;left:14px;top:14px;background:rgba(21,19,14,.82);color:var(--cover-text);
    font-size:0.85rem;font-weight:600;padding:6px 11px;border-radius:2px;
  }
  .ticket-body{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1;}
  .ticket .route{font-size:0.9rem;color:var(--gold-strong);font-weight:600;}
  .ticket h2,.ticket h3{font-size:1.5rem;margin-block:4px 10px;}
  .ticket ul.hl{margin:0 0 14px;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px 18px;}
  .ticket ul.hl li{font-size:0.95rem;color:var(--ink-soft);padding-left:14px;position:relative;}
  .ticket ul.hl li::before{content:"";position:absolute;left:0;top:0.7em;width:6px;height:6px;border-radius:50%;background:var(--gold);}
  .ticket details{border-top:1px solid var(--line);margin-top:auto;}
  .ticket summary{
    list-style:none;cursor:pointer;padding:14px 0 4px;font-weight:600;font-size:0.95rem;color:var(--ink);
    display:flex;justify-content:space-between;align-items:center;
  }
  .ticket summary::-webkit-details-marker{display:none;}
  .ticket summary::after{content:"+";font-size:1.3rem;color:var(--gold-strong);transition:transform .3s var(--ease);}
  .ticket details[open] summary::after{transform:rotate(45deg);}
  .days-list{margin:8px 0 0;padding:0;list-style:none;}
  .days-list li{display:grid;grid-template-columns:62px 1fr;gap:10px;padding:7px 0;font-size:0.95rem;color:var(--ink-soft);border-bottom:1px dashed var(--line);}
  .days-list li:last-child{border-bottom:none;}
  .days-list b{color:var(--ink);font-weight:600;}
  .ticket-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;flex-wrap:wrap;}
  .ticket-foot .price{font-size:0.92rem;color:var(--ink-soft);}
  .ticket-foot .enq{font-weight:600;color:var(--gold-strong);text-decoration:none;border-bottom:1px solid var(--gold-line);padding-bottom:1px;}
  .ticket-foot .enq:hover{color:var(--ink);}
  .ticket.wide{grid-column:1 / -1;flex-direction:row;}
  .ticket.wide .ticket-media{aspect-ratio:auto;flex:1 1 55%;min-height:320px;}
  .ticket.wide .ticket-body{flex:1 1 45%;}
  @media (max-width:860px){.ticket.wide{flex-direction:column;}.ticket.wide .ticket-media{aspect-ratio:16/9;min-height:0;}}
  .pricing-note{margin-top:30px;font-size:0.98rem;color:var(--ink-soft);max-width:70ch;}
  .pricing-note .hand{font-size:1.45rem;color:var(--gold-strong);}
  .ticket .freq{margin:0 0 12px;font-size:0.92rem;font-weight:600;color:var(--ink-soft);}
  .ticket .freq::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gold);margin-right:9px;vertical-align:middle;}
  .ticket-foot .price b{color:var(--ink);font-weight:700;font-size:1.02rem;}
  .det-h{margin:18px 0 7px;font-family:var(--sans);font-size:0.78rem;letter-spacing:.15em;text-transform:uppercase;color:var(--gold-strong);font-weight:700;}
  .inc-list{margin:0 0 8px;padding:0;list-style:none;}
  .inc-list li{position:relative;padding:4px 0 4px 18px;font-size:0.93rem;color:var(--ink-soft);}
  .inc-list li::before{content:"";position:absolute;left:0;top:1em;width:8px;height:1px;background:var(--gold);}

  /* ---------- GALLERY ---------- */
  #gallery{background:var(--cover-ink);color:var(--cover-text);}
  #gallery .section-head h2{color:var(--cover-text);}
  #gallery .section-head .lead{color:var(--cover-text-soft);}
  .gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:250px;gap:10px;}
  .gallery .g{margin:0;position:relative;overflow:hidden;background:#221e15;padding:0;border:0;cursor:zoom-in;display:block;width:100%;height:100%;}
  .gallery .g.tall{grid-row:span 2;}
  .gallery .g.wide{grid-column:span 2;}
  .gallery img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease),filter .6s ease;filter:saturate(.92);}
  .gallery .g:hover img{transform:scale(1.05);filter:saturate(1.05);}
  .gallery .cap{
    position:absolute;left:0;right:0;bottom:0;text-align:left;
    background:linear-gradient(transparent,rgba(10,9,6,0.8));
    color:var(--cover-text);padding:30px 14px 11px;font-size:0.9rem;
    opacity:0;transform:translateY(6px);transition:opacity .35s ease,transform .35s ease;
  }
  .gallery .g:hover .cap,.gallery .g:focus-visible .cap{opacity:1;transform:none;}
  @media (hover:none){.gallery .cap{opacity:1;transform:none;}}
  @media (max-width:760px){
    .gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px;}
    .gallery .g.wide{grid-column:span 2;}
  }
  .gallery-note{margin-top:22px;font-size:0.95rem;color:var(--cover-text-soft);}
  .gallery-note a{color:var(--cover-gold);}

  .lightbox{border:0;padding:0;background:transparent;max-width:min(1100px,94vw);max-height:92vh;overflow:visible;}
  .lightbox::backdrop{background:rgba(10,9,6,.92);}
  .lightbox img{max-width:100%;max-height:82vh;margin:auto;}
  .lightbox p{color:var(--cover-text-soft);text-align:center;margin-top:12px;font-size:0.95rem;}
  .lb-btn{
    position:fixed;top:50%;transform:translateY(-50%);background:rgba(21,19,14,.7);color:var(--cover-text);
    border:1px solid var(--cover-line);width:46px;height:46px;border-radius:50%;cursor:pointer;font-size:1.3rem;
  }
  .lb-btn:hover{border-color:var(--cover-gold);color:var(--cover-gold);}
  .lb-prev{left:16px;}.lb-next{right:16px;}
  .lb-close{top:20px;right:16px;transform:none;}
  @media (prefers-reduced-motion:no-preference){
    .lightbox[open] img{animation:lbin .45s var(--ease);}
    @keyframes lbin{from{opacity:0;transform:scale(.97);}to{opacity:1;transform:none;}}
  }

  /* ---------- TESTIMONIALS ---------- */
  .cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  @media (max-width:900px){.cards-3{grid-template-columns:1fr;}}
  .postcard{background:var(--surface);border:1px solid var(--line);padding:28px;display:flex;flex-direction:column;gap:14px;border-radius:2px;}
  .postcard .stars{color:var(--gold);letter-spacing:2px;font-size:0.95rem;}
  .postcard p.quote{font-family:var(--serif);font-size:1.15rem;line-height:1.5;color:var(--ink);flex:1;}
  .postcard .who{display:flex;align-items:center;gap:12px;}
  .postcard .avatar{width:40px;height:40px;border-radius:50%;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-weight:600;color:var(--gold-strong);}
  .postcard .attr{font-size:0.92rem;color:var(--ink-soft);line-height:1.3;}
  .postcard .attr b{display:block;color:var(--ink);}

  /* ---------- FAQ ---------- */
  #faq{background:var(--surface);}
  .faq-grid{display:grid;grid-template-columns:0.8fr 1.2fr;gap:64px;}
  @media (max-width:900px){.faq-grid{grid-template-columns:1fr;gap:10px;}}
  .faq details{border-bottom:1px solid var(--line);}
  .faq details:first-child{border-top:1px solid var(--line-strong);}
  .faq summary{
    list-style:none;cursor:pointer;padding:20px 40px 20px 0;position:relative;
    font-family:var(--serif);font-size:1.22rem;color:var(--ink);
  }
  .faq summary::-webkit-details-marker{display:none;}
  .faq summary::after{content:"+";position:absolute;right:4px;top:16px;font-family:var(--sans);font-size:1.5rem;color:var(--gold-strong);transition:transform .3s var(--ease);}
  .faq details[open] summary::after{transform:rotate(45deg);}
  .faq .ans{padding:0 0 22px;color:var(--ink-soft);max-width:64ch;}
  .faq .ans p + p{margin-top:10px;}
  .faq .ans a{color:var(--gold-strong);}
  @media (prefers-reduced-motion:no-preference){
    .faq details[open] .ans,.ticket details[open] .days-list{animation:open .45s var(--ease);}
    @keyframes open{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:none;}}
  }

  /* ---------- CTA BAND ---------- */
  .band{
    position:relative;isolation:isolate;overflow:hidden;
    color:var(--cover-text);text-align:center;
    padding-block:150px;
  }
  @media (max-width:640px){.band{padding-block:96px;}}
  .band-media{
    position:absolute;inset:-18% 0;z-index:-2;
    background-image:url("img/cta.jpg");
    background-size:cover;background-position:center center;
    will-change:transform;
  }
  .band-scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(10,9,6,0.72),rgba(10,9,6,0.55) 50%,rgba(10,9,6,0.85));}
  .band .hand{font-size:clamp(1.6rem,3vw,2.1rem);color:var(--cover-gold);display:block;}
  .band h2{color:var(--cover-text);font-size:clamp(2.1rem,4.8vw,3.4rem);line-height:1.08;margin-block:8px 18px;}
  .band p{color:var(--cover-text-soft);max-width:54ch;margin-inline:auto;font-size:1.1rem;}
  .band .cover-ctas{justify-content:center;}

  /* ---------- CONTACT ---------- */
  .contact{background:var(--cover-ink);color:var(--cover-text);}
  .contact .section-head .lead{color:var(--cover-text-soft);}
  .contact .section-head h2{color:var(--cover-text);}
  .contact-grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:52px;align-items:start;}
  .contact-grid > *{min-width:0;}
  .form,.form .field,.form fieldset.fs{min-width:0;}
  .field input,.field select,.field textarea{max-width:100%;}
  .contact-side{position:sticky;top:96px;}
  @media (max-width:900px){.contact-side{position:static;}}
  @media (max-width:900px){.contact-grid{grid-template-columns:1fr;gap:40px;}}

  .form{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  @media (max-width:560px){.form{grid-template-columns:1fr;}}
  .field{display:flex;flex-direction:column;gap:7px;}
  .field.full{grid-column:1 / -1;}
  .field label{font-size:0.9rem;font-weight:600;color:var(--cover-text-soft);}
  .field label .req{color:var(--cover-gold);}
  .field input,.field select,.field textarea{
    font-family:inherit;font-size:1rem;color:var(--cover-text);
    background:rgba(239,233,218,0.06);
    border:1px solid var(--cover-line);border-radius:3px;
    padding:12px 13px;width:100%;
    transition:border-color .2s ease,background .2s ease;
  }
  .field textarea{resize:vertical;min-height:160px;}
  .field select{appearance:none;cursor:pointer;
    background-image:linear-gradient(45deg,transparent 50%,var(--cover-gold) 50%),linear-gradient(135deg,var(--cover-gold) 50%,transparent 50%);
    background-position:calc(100% - 18px) calc(50% + 2px),calc(100% - 13px) calc(50% + 2px);
    background-size:5px 5px,5px 5px;background-repeat:no-repeat;
    padding-right:36px;
  }
  .field select option{background:#1E1B13;color:var(--cover-text);}
  .field input::placeholder,.field textarea::placeholder{color:rgba(199,191,169,0.55);}
  .field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--cover-gold);background:rgba(239,233,218,0.1);}
  .form-actions{grid-column:1 / -1;display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:4px;}
  .form-note{font-size:0.92rem;color:var(--cover-text-soft);}
  .form-status{
    grid-column:1 / -1;font-size:0.95rem;padding:12px 14px;
    border:1px solid var(--cover-line);border-left:2px solid var(--cover-gold);
    background:rgba(239,233,218,0.05);color:var(--cover-text);
  }
  .form-status[hidden]{display:none !important;}

  /* Questionnaire enquiry form */
  .form fieldset.fs{
    grid-column:1 / -1;border:0;padding:0;margin:0;min-width:0;
    display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;
  }
  .form fieldset.fs + fieldset.fs{margin-top:26px;padding-top:28px;border-top:1px solid var(--cover-line);}
  .form fieldset.fs .field{grid-column:span 3;}
  .form fieldset.fs .field.full{grid-column:1 / -1;}
  .form fieldset.fs .field.third{grid-column:span 2;}
  @media (max-width:560px){
    .form fieldset.fs .field,.form fieldset.fs .field.third{grid-column:1 / -1;}
  }
  .form legend{
    grid-column:1 / -1;display:block;float:none;width:100%;padding:0;margin:0 0 2px;
    font-family:var(--serif);font-size:1.5rem;line-height:1.2;color:var(--cover-text);
  }
  .field label .hint{font-weight:400;color:rgba(199,191,169,0.7);}
  .field textarea.short{min-height:88px;}
  .field.q{gap:11px;}
  .qlabel{font-size:0.9rem;font-weight:600;color:var(--cover-text-soft);}
  .opts{display:flex;flex-wrap:wrap;gap:9px;}
  .opt{
    display:inline-flex;align-items:center;gap:9px;cursor:pointer;
    border:1px solid var(--cover-line);border-radius:2px;padding:9px 13px;
    font-size:0.93rem;color:var(--cover-text-soft);background:rgba(239,233,218,0.04);
    transition:border-color .25s var(--ease),background .25s var(--ease),color .25s var(--ease);
  }
  .opt:hover{border-color:var(--cover-gold);color:var(--cover-text);}
  .opt input{
    appearance:none;-webkit-appearance:none;width:15px;height:15px;margin:0;flex:none;
    border:1px solid var(--cover-line);background:transparent;cursor:pointer;position:relative;
  }
  .opt input[type="radio"]{border-radius:50%;}
  .opt input:checked{border-color:var(--cover-gold);background:var(--cover-gold);}
  .opt input:checked::after{content:"";position:absolute;inset:3px;background:#1E1B13;}
  .opt input[type="radio"]:checked::after{border-radius:50%;}
  .opt:has(input:checked){border-color:var(--cover-gold);background:rgba(217,168,61,0.15);color:var(--cover-text);}
  .opt input:focus-visible{outline:2px solid var(--cover-gold);outline-offset:3px;}
  .field input[type="date"]::-webkit-calendar-picker-indicator{filter:invert(1) opacity(.55);cursor:pointer;}

  .channel-list{display:flex;flex-direction:column;border-top:1px solid var(--cover-line);}
  .channel-list a{
    display:flex;justify-content:space-between;gap:12px;align-items:center;
    padding:15px 0;border-bottom:1px solid var(--cover-line);
    text-decoration:none;color:var(--cover-text);transition:padding-left .3s var(--ease);
  }
  .channel-list a:hover{padding-left:6px;}
  .channel-list .k{font-size:0.9rem;color:var(--cover-text-soft);}
  .channel-list .v{font-size:1rem;text-align:right;}
  .channel-list a:hover .v{color:var(--cover-gold);}
  .office-card{border:1px solid var(--cover-line);padding:26px;margin-top:28px;border-radius:2px;}
  .office-card h2,.office-card h3{color:var(--cover-text);font-size:1.4rem;margin-top:6px;}
  .office-card address{font-style:normal;color:var(--cover-text-soft);margin-top:8px;line-height:1.55;}
  .office-card p{color:var(--cover-text-soft);font-size:0.98rem;margin-top:12px;}
  .map-frame{margin-top:18px;border:1px solid var(--cover-line);aspect-ratio:16/10;width:100%;background:#221e15;}
  .map-frame iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(.25) contrast(1.02);}
  .map-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;}
  .map-actions .cta-btn{font-size:0.9rem;padding:10px 16px;}
  .social-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;}
  .social-row a{
    display:inline-flex;align-items:center;gap:7px;
    font-size:0.88rem;text-decoration:none;
    color:var(--cover-text-soft);border:1px solid var(--cover-line);padding:8px 12px;border-radius:2px;
    transition:color .2s ease,border-color .2s ease;
  }
  .social-row a svg{width:14px;height:14px;fill:currentColor;}
  .social-row a:hover{color:var(--cover-gold);border-color:var(--cover-gold);}

  /* ---------- FOOTER ---------- */
  footer{background:#100E09;border-top:1px solid var(--cover-line);color:var(--cover-text-soft);}
  .footer-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;padding-block:56px;}
  @media (max-width:820px){.footer-top{grid-template-columns:1fr;gap:28px;padding-block:40px;}}
  .footer-brand{display:flex;align-items:center;gap:12px;color:var(--cover-text);}
  .footer-brand .brand-mark{width:48px;height:48px;}
  .footer-tag{font-family:var(--serif);font-size:1.2rem;color:var(--cover-text);}
  .footer-tag small{display:block;font-family:var(--sans);font-size:0.7rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--cover-text-soft);margin-top:3px;}
  .footer-blurb{font-size:0.95rem;margin-top:16px;max-width:42ch;}
  .footer-col h4{font-family:var(--sans);font-size:0.78rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--cover-gold);margin-bottom:14px;font-weight:600;}
  .footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;}
  .footer-col a,.footer-col li{text-decoration:none;font-size:0.95rem;color:var(--cover-text-soft);transition:color .2s ease;}
  .footer-col a:hover{color:var(--cover-gold);}
  .footer-bar{border-top:1px solid var(--cover-line);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;font-size:0.85rem;padding-block:20px;}
  .footer-bar a{text-decoration:none;}
  .footer-bar a:hover{color:var(--cover-gold);}

  /* ---------- WHATSAPP FLOAT ---------- */
  .wa{
    position:fixed;right:18px;z-index:70;
    bottom:calc(18px + env(safe-area-inset-bottom, 0px));
    height:54px;border-radius:28px;padding:0 16px 0 14px;gap:8px;
    background:#1FAD52;color:#fff;font-weight:600;font-size:0.95rem;
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 10px 26px -8px rgba(0,0,0,0.6);
    text-decoration:none;
    transition:transform .25s ease,box-shadow .25s ease,opacity .4s ease;
  }
  .wa:hover{transform:translateY(-2px);box-shadow:0 14px 30px -8px rgba(0,0,0,0.7);}
  .wa svg{width:26px;height:26px;fill:currentColor;flex:none;}
  @media (max-width:640px){.wa span{display:none;}.wa{width:54px;padding:0;}}

  /* ---------- INNER PAGES (safaris, enquire) ---------- */
  body.subpage header{
    background:rgba(21,19,14,0.94);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    border-bottom-color:var(--cover-line);
  }
  body.subpage main{padding-top:88px;}
  @media (max-width:640px){body.subpage main{padding-top:64px;}}
  .crumbs{font-size:0.86rem;color:var(--ink-soft);margin-bottom:18px;}
  .crumbs a{color:var(--gold-strong);text-decoration:none;}
  .crumbs a:hover{text-decoration:underline;}
  .crumbs span{opacity:.6;margin-inline:7px;}
  .page-foot{border-top:1px solid var(--line);margin-top:48px;padding-top:34px;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;}
  .page-foot p{color:var(--ink-soft);max-width:52ch;margin:0;}

  /* ---------- LANDING-PAGE TEASERS ---------- */
  .tickets.three{grid-template-columns:repeat(3,1fr);}
  @media (max-width:980px){.tickets.three{grid-template-columns:repeat(2,1fr);}}
  @media (max-width:660px){.tickets.three{grid-template-columns:1fr;}}
  .tickets.three .ticket-foot{margin-top:18px;}
  .pricing-note a{color:var(--gold-strong);}

  .enquire-cta{
    border:1px solid var(--cover-line);border-radius:2px;
    padding:34px 32px;background:rgba(239,233,218,0.04);
  }
  .enquire-cta h3{font-size:1.9rem;line-height:1.2;color:var(--cover-text);margin:6px 0 16px;}
  .enquire-cta p{color:var(--cover-text-soft);line-height:1.62;}
  .enquire-cta p + p{margin-top:13px;}
  .enquire-cta .small{font-size:0.92rem;}
  .enquire-cta p a{color:var(--cover-gold);}
  .enquire-actions{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0 18px;}
  @media (max-width:560px){.enquire-cta{padding:26px 22px;}}
