/* =====================================================================
   ZAMBIA LUXURY LODGE COLLECTION — Master Brand Stylesheet
   The single source of truth. Derived from the ZLLC Brand Guide.
   Cinzel (titles) · Montserrat (body/UI) · Allura (script accents)
   Antique gold accent · warm paper neutrals · slow, sensory voice.
   ===================================================================== */

:root{
  /* — Antique gold: the one accent — */
  --gold-300:#CDB079; --gold-400:#BE9F62; --gold:#AE8E50;
  --gold-600:#8C7140; --gold-700:#6E5832; --gold-soft:#CDB079;
  --gold-hover:#8C7140;

  /* — Warm neutrals — */
  --paper:#FBF8F3; --sand:#E1DAC8; --stone:#BDB3A2; --taupe:#968979;
  --espresso:#463B2B; --ink:#2A2520; --ink-soft:#6E685E; --ink-faint:#9C9488;

  /* — Nature secondaries (sparingly) — */
  --sage:#B4BEB5; --eucalyptus:#91A29E; --olive:#4F5A38;
  --petrol:#1C424F; --terracotta:#7B4D35;

  /* — Type — */
  --font-display:'Cinzel',serif;
  --font-body:'Montserrat',sans-serif;
  --font-script:'Allura',cursive;

  /* — System — */
  --line:rgba(42,37,32,.12);
  --line-strong:rgba(42,37,32,.22);
  --radius:6px;
  --radius-sm:3px;
  --shadow:0 8px 24px rgba(42,37,32,.09);
  --shadow-lg:0 18px 48px rgba(42,37,32,.16);
  --scrim:linear-gradient(to top,rgba(26,22,18,.78),rgba(26,22,18,0) 72%);
  --scrim-full:linear-gradient(to top,rgba(26,22,18,.72),rgba(26,22,18,.28) 50%,rgba(26,22,18,.46));
  --ease:cubic-bezier(.4,0,.2,1);
  --maxw:1240px;
  --measure:680px;
}

/* ----------  Reset  ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--font-body);font-weight:400;font-size:16px;line-height:1.65;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
::selection{background:var(--gold-300);color:var(--ink)}

/* ----------  Type primitives  ---------- */
.eyebrow{
  font-family:var(--font-body);font-weight:600;font-size:11px;
  text-transform:uppercase;letter-spacing:.28em;color:var(--gold);
  margin:0 0 18px;
}
.eyebrow--light{color:var(--gold-300)}
.script{
  font-family:var(--font-script);color:var(--gold);
  font-size:clamp(34px,4.4vw,52px);line-height:1;font-weight:400;
}
h1,h2,h3,.h{
  font-family:var(--font-display);font-weight:600;color:var(--ink);
  text-transform:uppercase;margin:0;
}
h1,.h1{font-size:clamp(40px,6.6vw,80px);letter-spacing:.11em;line-height:1.05;font-weight:600}
h2,.h2{font-size:clamp(28px,3.7vw,38px);letter-spacing:.08em;line-height:1.15}
h3,.h3{font-size:clamp(19px,2vw,23px);letter-spacing:.06em;line-height:1.25}
.lead{font-size:19px;line-height:1.7;color:var(--ink-soft)}
p{margin:0 0 1.1em;color:var(--ink-soft)}
.measure{max-width:var(--measure)}

/* ----------  Layout  ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.section{padding:clamp(64px,9vw,128px) 0}
.section--tight{padding:clamp(48px,6vw,80px) 0}
.section--paper{background:var(--paper)}
.section--sand{background:var(--sand)}
.section--ink{background:var(--ink);color:var(--paper)}
.section--ink h1,.section--ink h2,.section--ink h3{color:var(--paper)}
.section--ink p{color:rgba(251,248,243,.74)}
.section--olive{background:var(--olive);color:var(--paper)}
.section--olive h1,.section--olive h2,.section--olive h3{color:var(--paper)}
.section--olive p{color:rgba(251,248,243,.8)}
.center{text-align:center}
.center .eyebrow{margin-left:auto;margin-right:auto}

/* chapter breaks */
.rule{height:1px;background:var(--line);border:0;margin:0}
.goldbar{width:56px;height:2px;background:var(--gold);border:0;margin:24px 0}
.center .goldbar{margin-left:auto;margin-right:auto}
.diamond{display:flex;align-items:center;justify-content:center;gap:18px;color:var(--gold)}
.diamond::before,.diamond::after{content:"";height:1px;width:70px;background:var(--line-strong)}
.diamond span{width:7px;height:7px;background:var(--gold);transform:rotate(45deg)}

/* ----------  Section heading block  ---------- */
.sechead{margin-bottom:54px}
.sechead .script{display:block;margin:0 0 6px}
.sechead h2{margin:0 0 18px}
.sechead p{max-width:var(--measure)}
.center.sechead p{margin-left:auto;margin-right:auto}

/* ----------  Buttons  ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.7em;
  font-family:var(--font-body);font-weight:600;font-size:12px;
  text-transform:uppercase;letter-spacing:.24em;
  padding:15px 32px;border-radius:var(--radius-sm);border:1px solid transparent;
  transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease);
}
.btn--primary{background:var(--gold);color:var(--paper)}
.btn--primary:hover{background:var(--gold-hover)}
.btn--outline{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.btn--outline:hover{border-color:var(--gold);color:var(--gold)}
.btn--ghost{background:transparent;color:var(--gold);padding-left:0;padding-right:0;letter-spacing:.22em}
.btn--ghost:hover{color:var(--gold-hover)}
.btn--ghost .arrow{transition:transform .3s var(--ease)}
.btn--ghost:hover .arrow{transform:translateX(5px)}
.on-dark.btn--outline{color:var(--paper);border-color:rgba(251,248,243,.4)}
.on-dark.btn--outline:hover{border-color:var(--gold-300);color:var(--gold-300)}

/* ----------  Tags / pills  ---------- */
.tag{
  display:inline-flex;align-items:center;font-family:var(--font-body);
  font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.18em;
  padding:7px 14px;border-radius:100px;border:1px solid var(--line-strong);
  color:var(--taupe);background:transparent;
}
.tag--sand{background:var(--sand);border-color:transparent;color:var(--espresso)}
.tag--gold{background:var(--gold);border-color:transparent;color:var(--paper)}

/* ----------  Fact list  ---------- */
.facts{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.facts li{
  display:flex;align-items:baseline;gap:16px;
  padding:16px 0;border-bottom:1px solid var(--line);
}
.facts .v{font-family:var(--font-display);font-weight:600;font-size:22px;color:var(--gold);min-width:84px}
.facts .l{font-size:13px;text-transform:uppercase;letter-spacing:.16em;color:var(--ink-soft)}

/* ----------  Cards  ---------- */
.card{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);overflow:hidden;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease);
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.card .ph{overflow:hidden}
.card .ph img,.card .ph .imgfill{transition:transform .7s var(--ease)}
.card:hover .ph img,.card:hover .ph .imgfill{transform:scale(1.05)}

/* image fill (gradient placeholder until real photography is dropped in) */
.imgfill{width:100%;height:100%;background-size:cover;background-position:center;position:relative}
.ph{position:relative}
.ph .scrim{position:absolute;inset:0;background:var(--scrim);pointer-events:none}

/* ----------  Lodge card  ---------- */
.lodgecard .ph{aspect-ratio:4/5}
.lodgecard .body{padding:26px 26px 30px}
.lodgecard .loc{font-size:11px;text-transform:uppercase;letter-spacing:.24em;color:var(--gold);margin:0 0 10px}
.lodgecard h3{margin:0 0 4px}
.lodgecard .tagline{font-family:var(--font-script);font-size:26px;color:var(--taupe);line-height:1;margin:0 0 16px}
.lodgecard .factline{font-size:12.5px;color:var(--ink-soft);letter-spacing:.02em;border-top:1px solid var(--line);padding-top:14px}

/* ----------  Fields  ---------- */
.field{margin-bottom:26px}
.field label{
  display:block;font-size:11px;text-transform:uppercase;letter-spacing:.2em;
  color:var(--ink-soft);margin-bottom:9px;font-weight:600;
}
.field input,.field textarea,.field select{
  width:100%;background:transparent;border:0;border-bottom:1px solid var(--line-strong);
  padding:10px 2px;font-family:var(--font-body);font-size:15px;color:var(--ink);
  transition:border-color .3s var(--ease);
}
.field textarea{resize:vertical;min-height:120px}
.field input:focus,.field textarea:focus,.field select:focus{outline:0;border-bottom-color:var(--gold)}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-faint)}
.on-dark .field label{color:rgba(251,248,243,.66)}
.on-dark .field input,.on-dark .field textarea,.on-dark .field select{
  color:var(--paper);border-bottom-color:rgba(251,248,243,.28);
}
.on-dark .field input:focus,.on-dark .field textarea:focus{border-bottom-color:var(--gold-300)}
.on-dark .field input::placeholder,.on-dark .field textarea::placeholder{color:rgba(251,248,243,.4)}

/* ----------  Grids  ---------- */
.grid{display:grid;gap:28px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,80px);align-items:center}

/* ----------  Quote  ---------- */
.quote{max-width:860px;margin:0 auto;text-align:center}
.quote .script{display:block;margin-bottom:14px}
.quote .statement{font-family:var(--font-display);font-weight:500;text-transform:uppercase;
  letter-spacing:.06em;font-size:clamp(22px,3vw,32px);line-height:1.4;color:var(--ink)}
.section--ink .quote .statement,.section--olive .quote .statement{color:var(--paper)}
.quote .attr{margin-top:22px;font-size:11px;text-transform:uppercase;letter-spacing:.24em;color:var(--gold)}

/* ----------  Reveal animation  ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}
.reveal.d3{transition-delay:.24s}.reveal.d4{transition-delay:.32s}

/* ----------  Logo (real brand mark, PNG)  ---------- */
.brandlogo{height:auto;width:auto;display:block}
.brandlogo--row{height:46px}                 /* header lockup */
.brandlogo--light{}                            /* white variant */
.site-foot .brandlogo{height:86px;margin-bottom:18px}
.adside .brandlogo{height:70px;margin:0 auto}
.adlogin .brandlogo{height:88px;margin:0 auto}

/* legacy drawn logo (kept for fallback) */
.logo{display:inline-flex;flex-direction:column;align-items:center;gap:9px;line-height:1}
.logo .mono{width:46px;height:auto}
.logo .word{font-family:var(--font-display);font-weight:600;font-size:23px;letter-spacing:.16em;color:var(--ink)}
.logo .sub{font-family:var(--font-body);font-weight:500;font-size:8.5px;letter-spacing:.34em;color:var(--taupe);text-transform:uppercase}
.logo--light .word{color:var(--paper)}
.logo--light .sub{color:rgba(251,248,243,.7)}
.logo--row{flex-direction:row;align-items:center;gap:13px}
.logo--row .mono{width:34px}
.logo--row .stack{display:flex;flex-direction:column;gap:3px;align-items:flex-start}
.logo--row .word{font-size:18px;letter-spacing:.14em}
.logo--row .sub{font-size:7px;letter-spacing:.3em}

/* ----------  Accessibility  ---------- */
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:16px;background:var(--ink);color:var(--paper);padding:10px 16px;border-radius:var(--radius-sm);z-index:9999}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}

/* ----------  Responsive  ---------- */
@media(max-width:1024px){
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .grid-3{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
  .split{grid-template-columns:1fr;gap:34px}
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
  .section{padding:clamp(52px,12vw,72px) 0}
  .wrap{padding:0 20px}
}
