/* =========================================================
   DALTON BROTHERS HORSE RANCH — Refined Western
   ========================================================= */

:root{
  --ink:#231409;
  --leather:#3a2618;
  --sand:#cbb08a;
  --sand-soft:#ddc7a3;
  --ember:#7c2d1a;
  --ember-bright:#9a3a21;
  --pine:#22332a;
  --cream:#f3ead9;
  --cream-2:#ece0c8;
  --cream-3:#e2d2b4;
  --brass:#b8894b;
  --brass-2:#c99a58;
  --paper:#f7f0e3;

  --font-display:'Fraunces', Georgia, serif;
  --font-body:'Hanken Grotesk', system-ui, sans-serif;
  --font-mark:'Zilla Slab', Georgia, serif;

  --edge:1px solid rgba(58,38,24,.16);
  --edge-strong:1px solid rgba(58,38,24,.28);
  --shadow:0 30px 60px -30px rgba(35,20,9,.45);
  --ease:cubic-bezier(.2,.7,.2,1);

  --pad:clamp(20px, 5vw, 90px);
  --maxw:1320px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{
  scroll-behavior:smooth;
  width:100%;
  max-width:100%;
  overflow-x:hidden;
  overflow-x:clip;
  overscroll-behavior-x:none;
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  font-family:var(--font-body);
  background:var(--cream);
  color:var(--ink);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  overflow-x:clip;
  width:100%;
  max-width:100%;
  overscroll-behavior-x:none;
  text-rendering:optimizeLegibility;
}
main,section,footer{max-width:100%}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
em{font-style:italic}
::selection{background:var(--ember);color:var(--paper)}
:focus-visible{outline:2px solid var(--ember);outline-offset:3px;border-radius:3px}
.hero :focus-visible,.shoot :focus-visible,.visit :focus-visible,.portal :focus-visible,
.tour--trek :focus-visible,.footer :focus-visible{outline-color:var(--brass-2)}

/* -------- film grain + vignette -------- */
.grain{
  position:fixed;inset:-50%;z-index:9998;pointer-events:none;opacity:.05;
  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='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 6s steps(6) infinite;
}
@keyframes grain{
  0%{transform:translate(0,0)}10%{transform:translate(-4%,-4%)}
  30%{transform:translate(3%,-2%)}50%{transform:translate(-2%,4%)}
  70%{transform:translate(4%,2%)}90%{transform:translate(-3%,3%)}
}

/* -------- custom cursor: galloping horse (desktop pointer only) -------- */
.cursor{
  position:fixed;top:0;left:0;width:58px;height:44px;z-index:9999;pointer-events:none;
  transform:translate(-50%,-50%);opacity:0;transition:opacity .3s var(--ease);
  will-change:transform;
}
.cursor.is-active{opacity:1}

/* small anchor dot marks the true pointer position */
.cursor__dot{
  position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px 0 0 -3px;
  border-radius:50%;background:var(--ember);
  transition:transform .25s var(--ease),background .25s;
}
.cursor.is-hover .cursor__dot{transform:scale(1.9);background:var(--ember-bright)}

/* ---- shared galloping-horse glyph (cursor · band · medallion) ---- */
.hs{--gait:.42s}
.hs .hs-body{animation:horseBob var(--gait) ease-in-out infinite;transform-origin:32px 30px}
.hs .hs-mane{opacity:.65}
.hs .hs-tail{animation:horseTail var(--gait) ease-in-out infinite;transform-origin:18px 17px}
.hs .hs-dust{opacity:.26;animation:horseDust var(--gait) linear infinite;transform-origin:10px 40px}
.hs .hs-leg{transform-box:fill-box;transform-origin:50% 0;
  animation:horseLeg var(--gait) ease-in-out infinite}
.hs .hs-leg--b2{animation-delay:calc(var(--gait) * -.5)}
.hs .hs-leg--f1{animation-delay:calc(var(--gait) * -.38)}
.hs .hs-leg--f2{animation-delay:calc(var(--gait) * -.88)}

.cursor__horse{
  position:absolute;left:50%;top:50%;width:58px;height:44px;
  transform:translate(-72%,-96%);
  fill:var(--ember);
  filter:drop-shadow(0 2px 4px rgba(20,12,6,.28));
  transition:transform .2s var(--ease),fill .25s;
}
.cursor.is-left .cursor__horse{transform:translate(-28%,-96%) scaleX(-1)}
.cursor.is-hover .cursor__horse{fill:var(--ember-bright)}
/* gallop faster over interactive things */
.cursor.is-hover .cursor__horse{--gait:.26s}

@keyframes horseLeg{
  0%{transform:rotate(-34deg)}
  50%{transform:rotate(30deg)}
  100%{transform:rotate(-34deg)}
}
@keyframes horseBob{
  0%,100%{transform:translateY(0) rotate(-1.5deg)}
  50%{transform:translateY(-2.4px) rotate(1.5deg)}
}
@keyframes horseTail{
  0%,100%{transform:rotate(-7deg)}
  50%{transform:rotate(9deg)}
}
@keyframes horseDust{
  0%{transform:translate(0,0) scale(.5);opacity:.35}
  100%{transform:translate(-10px,-5px) scale(1.6);opacity:0}
}
@media (hover:none),(pointer:coarse){.cursor{display:none}}
@media (prefers-reduced-motion:reduce){
  .hs .hs-body,.hs .hs-leg,.hs .hs-tail,.hs .hs-dust,.medal__ring,
  .hero__badge-ring,.hero__badge-glow{animation:none}
}

/* =========================================================
   BUTTONS
   ========================================================= */
.btn{
  --bg:var(--ember);--fg:var(--paper);
  position:relative;display:inline-flex;align-items:center;gap:.5em;
  font-family:var(--font-mark);font-weight:600;font-size:.94rem;letter-spacing:.02em;
  padding:.85em 1.5em;border-radius:100px;background:var(--bg);color:var(--fg);
  border:1px solid transparent;cursor:pointer;overflow:hidden;
  transition:transform .4s var(--ease),background .3s,color .3s,box-shadow .3s;
  will-change:transform;
}
.btn span{position:relative;z-index:1}
.btn::after{
  content:"";position:absolute;inset:0;z-index:0;background:var(--ink);
  transform:translateY(101%);transition:transform .45s var(--ease);
}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 26px -12px rgba(124,45,26,.6)}
.btn:hover::after{transform:translateY(0)}
.btn:hover span{color:var(--paper)}
.btn--ghost{--bg:transparent;--fg:var(--paper);border-color:rgba(247,240,227,.5)}
.btn--ghost::after{background:var(--paper)}
.btn--ghost:hover span{color:var(--ink)}
.btn--dark{--bg:var(--ink);--fg:var(--paper)}
.btn--dark::after{background:var(--ember)}
.btn--full{width:100%;justify-content:center}
.btn--mini{
  font-family:var(--font-mark);font-weight:600;font-size:.82rem;letter-spacing:.03em;
  padding:.5em 1.05em;border-radius:100px;background:transparent;color:var(--ember);
  border:1px solid rgba(124,45,26,.4);transition:.3s var(--ease);white-space:nowrap;
}
.btn--mini:hover{background:var(--ember);color:var(--paper);border-color:var(--ember)}

/* =========================================================
   NAV
   ========================================================= */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  display:flex;align-items:center;gap:24px;
  padding:18px var(--pad);
  background:linear-gradient(180deg, rgba(15,9,4,.5) 0%, rgba(15,9,4,.22) 60%, transparent 100%);
  transition:background .4s var(--ease),padding .4s var(--ease),box-shadow .4s,backdrop-filter .4s;
}
.nav.is-scrolled{
  background:rgba(243,234,217,.9);backdrop-filter:blur(14px) saturate(1.1);
  padding-top:12px;padding-bottom:12px;box-shadow:0 1px 0 rgba(58,38,24,.12);
}
.brand{display:flex;align-items:center;gap:13px;margin-right:auto}
.brand__logo{display:block;width:112px;height:60px;flex:none;object-fit:contain;object-position:left center;
  filter:brightness(0) invert(1) drop-shadow(0 2px 10px rgba(20,12,6,.45));
  transition:filter .4s var(--ease),transform .6s var(--ease)}
.nav.is-scrolled .brand__logo,.nav.is-past-hero .brand__logo{filter:none}
.brand:hover .brand__logo{transform:scale(1.04)}

/* infographic nav */
.nav__links{display:flex;gap:12px}
.nav__links a{
  position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;
  font-family:var(--font-mark);font-weight:500;font-size:.74rem;letter-spacing:.04em;
  color:var(--paper);opacity:.9;transition:color .4s,opacity .3s;padding:4px 12px;
}
.nav.is-scrolled .nav__links a,.nav.is-past-hero .nav__links a{color:var(--leather)}
.nav__ico{
  width:38px;height:38px;display:grid;place-items:center;border-radius:50%;
  border:1px solid currentColor;transition:background .35s var(--ease),color .35s,transform .35s var(--ease);
}
.nav__ico svg{width:19px;height:19px}
.nav__links a:hover{opacity:1}
.nav__links a:hover .nav__ico{background:var(--ember);border-color:var(--ember);color:var(--paper);transform:translateY(-3px)}

.nav__right{display:flex;align-items:center;gap:14px}
.nav__cta{padding-top:.7em;padding-bottom:.7em}

/* language switcher */
.lang{position:relative}
.lang__btn{display:flex;align-items:center;gap:6px;background:transparent;border:1px solid currentColor;
  color:var(--paper);border-radius:100px;padding:.5em .8em;cursor:pointer;
  font-family:var(--font-mark);font-weight:600;font-size:.82rem;letter-spacing:.04em;
  transition:color .4s,border-color .4s,background .3s;opacity:.9}
.nav.is-scrolled .lang__btn,.nav.is-past-hero .lang__btn{color:var(--leather)}
.lang__btn:hover{opacity:1;background:rgba(124,45,26,.1)}
.lang__menu{
  position:absolute;top:calc(100% + 10px);right:0;min-width:150px;list-style:none;
  background:var(--paper);border:var(--edge-strong);border-radius:14px;padding:6px;
  box-shadow:0 24px 40px -20px rgba(35,20,9,.5);
  opacity:0;transform:translateY(-8px) scale(.98);pointer-events:none;transition:.28s var(--ease);z-index:20;
}
.lang.is-open .lang__menu{opacity:1;transform:none;pointer-events:auto}
.lang__menu button{
  width:100%;text-align:left;background:none;border:none;cursor:pointer;
  font-family:var(--font-mark);font-size:.9rem;color:var(--leather);padding:.6em .8em;border-radius:9px;
  transition:background .2s,color .2s;
}
.lang__menu button:hover{background:var(--cream-2)}
.lang__menu button.is-on{background:var(--ember);color:var(--paper)}
.nav__burger{display:none;flex-direction:column;gap:6px;width:40px;height:40px;
  align-items:center;justify-content:center;background:none;border:none;cursor:pointer}
.nav__burger span{width:24px;height:2px;background:var(--paper);transition:.35s var(--ease)}
.nav.is-scrolled .nav__burger span,.nav.is-past-hero .nav__burger span{background:var(--leather)}
.nav__burger.is-open span:first-child{transform:translateY(4px) rotate(45deg)}
.nav__burger.is-open span:last-child{transform:translateY(-4px) rotate(-45deg)}

.drawer{
  position:fixed;inset:0;z-index:999;background:var(--pine);color:var(--paper);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  clip-path:circle(0% at 100% 0);transition:clip-path .6s var(--ease);pointer-events:none;
}
.drawer.is-open{clip-path:circle(150% at 100% 0);pointer-events:auto}
.drawer a{font-family:var(--font-display);font-size:2rem;padding:10px 0;opacity:0;transform:translateY(14px);transition:.5s var(--ease)}
.drawer.is-open a{opacity:1;transform:none}
.drawer.is-open a:nth-child(1){transition-delay:.15s}
.drawer.is-open a:nth-child(2){transition-delay:.22s}
.drawer.is-open a:nth-child(3){transition-delay:.29s}
.drawer.is-open a:nth-child(4){transition-delay:.36s}
.drawer.is-open a:nth-child(5){transition-delay:.43s}
.drawer .btn{font-family:var(--font-mark);font-size:1rem;margin-top:18px}

/* =========================================================
   HERO
   ========================================================= */
.hero{height:230vh;position:relative}
.hero__sticky{
  position:sticky;top:0;height:100vh;overflow:hidden;
  display:grid;place-items:center;background:var(--pine);
  /* reserve room under the fixed nav so centered content never
     starts underneath it on shorter viewports */
  padding-top:clamp(104px,12vh,130px);
}
.hero__media{position:absolute;inset:0;will-change:transform;transform:scale(1.08)}
.hero__video{width:100%;height:100%;object-fit:cover;filter:saturate(.82) contrast(1.02) sepia(.16) brightness(.92)}
.hero__grade{position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(34,20,10,.62) 0%, rgba(34,20,10,.12) 32%, rgba(34,20,10,.28) 64%, rgba(20,12,6,.82) 100%),
    radial-gradient(120% 80% at 50% 30%, rgba(124,45,26,.10), transparent 60%);
  mix-blend-mode:multiply;
}
.hero__vignette{position:absolute;inset:0;box-shadow:inset 0 0 220px 40px rgba(15,9,4,.7)}

.hero__content{
  position:relative;z-index:4;text-align:center;color:var(--paper);
  padding:0 24px;max-width:1000px;will-change:transform,opacity;
}
.hero__eyebrow{
  font-family:var(--font-mark);font-weight:500;font-size:.8rem;letter-spacing:.28em;
  text-transform:uppercase;display:inline-flex;align-items:center;gap:.7em;
  color:var(--sand-soft);margin-bottom:26px;
}
.hero__eyebrow .tick{width:26px;height:1px;background:currentColor;display:inline-block}

.hero__title{
  font-family:var(--font-display);font-weight:340;
  font-size:clamp(3.2rem,11vw,9.5rem);line-height:.92;letter-spacing:-.02em;
  text-shadow:0 6px 40px rgba(10,6,3,.55);
}
.hero__title .line{display:block;overflow:hidden}
.hero__title .line>span,.hero__title .line>em{display:inline-block}
.hero__title em{font-weight:340;font-style:italic;color:var(--brass-2)}

.hero__lede{
  max-width:540px;margin:clamp(18px,3vh,32px) auto 0;font-size:clamp(1rem,1.4vw,1.18rem);
  color:rgba(243,234,217,.9);line-height:1.6;
}
.hero__cta{display:flex;gap:14px;justify-content:center;margin-top:clamp(22px,3.4vh,38px);flex-wrap:wrap}

.hero__scroll{
  /* normal-flow, last child of .hero__content — stacks below the CTA
     row instead of being pinned to the viewport bottom, so it can
     never overlap the buttons on shorter viewports or longer copy */
  margin-top:clamp(6px,2vh,28px);z-index:5;
  display:flex;flex-direction:column;align-items:center;gap:6px;color:rgba(243,234,217,.75);
  font-family:var(--font-mark);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
}
.hero__scroll i{width:1px;height:20px;background:linear-gradient(var(--sand),transparent);position:relative;overflow:hidden}
.hero__scroll i::after{content:"";position:absolute;top:0;left:0;width:100%;height:40%;
  background:var(--paper);animation:scrolldrop 1.9s var(--ease) infinite}
@keyframes scrolldrop{0%{transform:translateY(-100%)}60%,100%{transform:translateY(340%)}}

/* =========================================================
   HERO EXPLORE BADGE — rotating seal, links straight to Tours
   ========================================================= */
.hero__badge{
  position:absolute;z-index:6;
  right:clamp(18px,4vw,64px);bottom:clamp(96px,14vh,168px);
  width:clamp(104px,9.4vw,138px);aspect-ratio:1;
  display:grid;place-items:center;color:var(--paper);text-decoration:none;
  will-change:transform,opacity;
}
.hero__badge-glow{
  position:absolute;inset:-16%;z-index:0;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(201,154,88,.6),transparent 68%);
  filter:blur(9px);animation:badgePulse 2.6s ease-in-out infinite;
}
@keyframes badgePulse{0%,100%{opacity:.4;transform:scale(.9)}50%{opacity:.85;transform:scale(1.1)}}
.hero__badge-ring{
  position:absolute;inset:0;z-index:1;width:100%;height:100%;
  animation:badgeSpin 20s linear infinite;color:rgba(243,234,217,.92);
  transition:color .35s var(--ease);
}
@keyframes badgeSpin{to{transform:rotate(360deg)}}
.hero__badge-type{font-family:var(--font-mark);font-size:9.6px;font-weight:700;letter-spacing:.06em;fill:currentColor}
.hero__badge-core{
  position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:5px;
  transition:transform .4s var(--ease);
}
.hero__badge-arrow{transition:transform .4s var(--ease)}
.hero__badge-label{
  font-family:var(--font-mark);font-weight:700;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
}
.hero__badge:hover .hero__badge-core{transform:scale(1.08)}
.hero__badge:hover .hero__badge-arrow{transform:translateX(4px)}
.hero__badge:hover .hero__badge-ring{color:var(--brass-2)}
.hero__badge:hover .hero__badge-glow{animation-play-state:paused;opacity:.9;transform:scale(1.12)}
.hero__badge:focus-visible{outline:2px solid var(--brass-2);outline-offset:6px;border-radius:50%}

@media (max-width:860px){
  .hero__badge{
    right:clamp(14px,4vw,26px);bottom:clamp(150px,20vh,220px);
    width:clamp(84px,20vw,104px);
  }
  .hero__badge-label{font-size:.62rem}
  .hero__badge-arrow{width:16px;height:16px}
}
@media (max-width:480px){.hero__badge{display:none}}

/* =========================================================
   REVEAL util
   ========================================================= */
.reveal{opacity:0;transform:translateY(38px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.is-in{opacity:1;transform:none}

/* =========================================================
   CINEMATIC 3D SCROLL LAYER
   ========================================================= */
/* .cine blocks are driven by GSAP (rotateX / Z-depth as they enter view).
   Without JS they simply sit flat — no visual debt. */
.cine{will-change:transform,opacity;transform-style:preserve-3d}

/* split-text: each word flips up out of depth, one after another */
[data-split]{perspective:700px}
[data-split] .w{
  display:inline-block;white-space:pre;will-change:transform,opacity;
  opacity:0;transform:translateY(.42em) rotateX(-58deg);
  transition:opacity .8s var(--ease),transform .8s var(--ease);
}
[data-split].is-lit .w{opacity:1;transform:none}

/* scroll-velocity motion blur: JS writes --vblur, each image
   folds it into its own grade further down the sheet. */

/* =========================================================
   HOOFPRINT SCROLL RAIL (left edge, brand + progress)
   ========================================================= */
.hoofrail{
  position:fixed;left:clamp(10px,1.6vw,26px);top:50%;transform:translateY(-50%);
  z-index:880;display:flex;flex-direction:column;gap:clamp(9px,1.5vh,16px);
  pointer-events:none;opacity:0;transition:opacity .6s var(--ease);
}
.hoofrail.is-on{opacity:1}
.hoofrail span{
  width:11px;height:13px;flex:none;border-radius:50% 50% 46% 46%;
  border:1.6px solid currentColor;border-bottom-color:transparent;
  color:rgba(58,38,24,.24);
  transform:rotate(-16deg) scale(.82);
  transition:color .45s var(--ease),transform .45s var(--ease),box-shadow .45s;
}
.hoofrail span:nth-child(even){transform:rotate(-16deg) scale(.82) translateX(6px)}
.hoofrail span.is-on{color:var(--ember);transform:rotate(-16deg) scale(1.12)}
.hoofrail span.is-on:nth-child(even){transform:rotate(-16deg) scale(1.12) translateX(6px)}
.hoofrail span.is-hot{box-shadow:0 0 14px 2px rgba(124,45,26,.35)}
/* on dark sections the trail flips to brass */
.hoofrail.on-dark span{color:rgba(243,234,217,.26)}
.hoofrail.on-dark span.is-on{color:var(--brass-2)}
.hoofrail.on-dark span.is-hot{box-shadow:0 0 14px 2px rgba(201,154,88,.35)}
@media (max-width:900px),(pointer:coarse){.hoofrail{display:none}}

/* =========================================================
   ROTATING BRAND MEDALLION
   ========================================================= */
.medal{
  position:absolute;right:clamp(-40px,2vw,60px);top:clamp(120px,20vw,260px);
  width:clamp(150px,17vw,240px);aspect-ratio:1;z-index:0;pointer-events:none;
  opacity:.5;
}
.medal__ring{position:absolute;inset:0;width:100%;height:100%;
  animation:medalSpin 34s linear infinite;color:var(--ember)}
.medal__type{font-family:var(--font-mark);font-size:12.4px;font-weight:600;
  letter-spacing:.3em;fill:currentColor}
.medal__horse{position:absolute;left:50%;top:50%;width:44%;aspect-ratio:64/48;
  transform:translate(-50%,-50%)}
.medal__horse svg{width:100%;height:100%;fill:var(--ember);opacity:.85}
@keyframes medalSpin{to{transform:rotate(360deg)}}
@media (max-width:900px){.medal{opacity:.22;right:-50px;top:60px;width:180px}}

/* =========================================================
   GALLOP BAND — kinetic brand strip
   ========================================================= */
.band{
  position:relative;height:clamp(230px,30vw,360px);overflow:hidden;
  background:linear-gradient(178deg,var(--leather) 0%,#2b1a10 55%,var(--ink) 100%);
  display:grid;align-items:center;isolation:isolate;
}
.band__glow{position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(60% 90% at 20% 110%, rgba(124,45,26,.55), transparent 60%),
    radial-gradient(50% 80% at 80% -10%, rgba(184,137,75,.32), transparent 62%)}
.band__type{
  position:relative;z-index:1;display:flex;align-items:center;gap:clamp(20px,3vw,52px);
  width:max-content;white-space:nowrap;will-change:transform;
}
.band__type span{
  font-family:var(--font-display);font-weight:340;letter-spacing:-.02em;
  font-size:clamp(3.4rem,10vw,8.5rem);line-height:.9;
  color:transparent;-webkit-text-stroke:1.4px rgba(243,234,217,.34);
}
.band__type span:nth-child(4n+1){color:rgba(243,234,217,.1);-webkit-text-stroke:1.4px rgba(201,154,88,.5)}
.band__type i{font-style:normal;color:var(--brass-2);font-size:clamp(1rem,2vw,1.7rem);opacity:.75}

/* the horse runs left→right as you scroll through the band */
.band__runner{position:absolute;left:0;bottom:12%;z-index:2;width:100%;height:0;will-change:transform}
.band__horse{position:absolute;left:0;bottom:0;width:clamp(96px,12vw,168px);aspect-ratio:64/48;display:block}
.band__horse svg{width:100%;height:100%;fill:var(--ink);
  filter:drop-shadow(0 10px 18px rgba(0,0,0,.5))}
.band__ground{position:absolute;left:0;right:0;bottom:0;height:22%;z-index:1;
  background:linear-gradient(180deg,transparent,rgba(12,7,3,.85));pointer-events:none}

/* =========================================================
   SHARED SECTION HEADINGS
   ========================================================= */
.eyebrow{
  font-family:var(--font-mark);font-weight:700;font-size:clamp(.92rem,1.1vw,1.05rem);letter-spacing:.2em;
  text-transform:uppercase;color:var(--ember);display:inline-flex;align-items:center;gap:.85em;margin-bottom:26px;
}
.eyebrow .tick{width:34px;height:2px;background:currentColor;display:inline-block;border-radius:2px}
.eyebrow--light{color:var(--brass-2)}
.section-head{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);text-align:center}
.section-title{
  font-family:var(--font-display);font-weight:360;line-height:1.02;letter-spacing:-.02em;
  font-size:clamp(2.4rem,6vw,5rem);
}
.section-title--light{color:var(--paper)}
.section-lede{max-width:560px;margin:20px auto 0;color:rgba(35,20,9,.72);font-size:1.05rem}

/* =========================================================
   STATEMENT + MARQUEE
   ========================================================= */
.statement{background:var(--cream);padding-bottom:clamp(70px,10vw,140px)}
.marquee{
  overflow:hidden;border-top:var(--edge);border-bottom:var(--edge);
  background:var(--cream-2);padding:22px 0;margin-bottom:clamp(60px,9vw,120px);
}
.marquee__row{display:flex;gap:44px;white-space:nowrap;width:max-content;animation:marq 32s linear infinite}
.marquee__row span{font-family:var(--font-display);font-style:italic;font-weight:340;
  font-size:clamp(1.5rem,3vw,2.4rem);color:var(--leather)}
.marquee__row .dot{color:var(--ember);font-style:normal;font-size:1rem;align-self:center}
@keyframes marq{to{transform:translateX(-50%)}}

.statement__inner{max-width:1060px;margin:0 auto;padding:0 var(--pad);text-align:center}
.statement__ey{font-family:var(--font-mark);font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  font-size:clamp(.92rem,1.1vw,1.05rem);color:var(--ember);margin-bottom:30px}
.statement__text{font-family:var(--font-display);font-weight:340;letter-spacing:-.015em;
  font-size:clamp(1.7rem,4.2vw,3.3rem);line-height:1.16}
.statement__text em{color:var(--ember)}
.statement__meta{display:flex;justify-content:center;gap:clamp(30px,6vw,90px);margin-top:56px;flex-wrap:wrap}
.statement__meta div{display:flex;flex-direction:column;gap:4px}
.statement__meta b{font-family:var(--font-display);font-size:2.6rem;font-weight:400;line-height:1;color:var(--leather)}
.statement__meta span{font-family:var(--font-mark);font-size:.8rem;letter-spacing:.06em;
  text-transform:uppercase;color:rgba(35,20,9,.6);max-width:150px}
.statement__socials{display:grid;grid-template-columns:repeat(2,minmax(0,220px));justify-content:center;
  gap:12px;margin-top:38px}
.statement__socials a{display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;
  align-items:center;text-align:left;padding:13px 16px;border:1px solid rgba(58,38,24,.2);
  border-radius:12px;background:rgba(247,240,227,.42);transition:transform .3s var(--ease),background .3s var(--ease),border-color .3s var(--ease)}
.statement__socials svg{grid-row:1/3;width:22px;height:22px;fill:currentColor;color:var(--ember)}
.statement__socials span{font-family:var(--font-mark);font-size:.9rem;font-weight:700;line-height:1.2}
.statement__socials small{font-family:var(--font-body);font-size:.72rem;color:rgba(35,20,9,.58);line-height:1.25}
.statement__socials a:hover{transform:translateY(-2px);background:var(--paper);border-color:rgba(124,45,26,.35)}
.statement__socials a:active{transform:translateY(1px) scale(.99)}

/* =========================================================
   TOURS
   ========================================================= */
.tours{padding:clamp(70px,10vw,130px) 0}
.moon-hint{max-width:var(--maxw);margin:26px auto 0;padding:0 var(--pad);text-align:center;
  font-family:var(--font-mark);font-weight:700;font-size:.95rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ember)}

/* ---- 3D stage ---- */
.tours-stage{max-width:var(--maxw);margin:52px auto 0;padding:0 var(--pad);perspective:1600px}
.moon-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,2.4vw,40px) clamp(16px,1.8vw,30px);
  transform-style:preserve-3d}

/* ---- lunette (half-moon) card ---- */
.moon{
  --arch:48% 48% 20px 20px / 46% 46% 6% 6%;
  position:relative;display:block;width:100%;aspect-ratio:.72;border:0;background:none;padding:0;margin:0;
  cursor:pointer;color:var(--paper);text-align:left;font:inherit;
  transform-style:preserve-3d;transition:transform .25s var(--ease),opacity .8s var(--ease);will-change:transform;
}
.moon__media{position:absolute;inset:0;border-radius:var(--arch);overflow:hidden;background:var(--cream-3);
  box-shadow:0 34px 54px -26px rgba(35,20,9,.6), inset 0 0 0 1px rgba(243,234,217,.16);
  transition:box-shadow .5s var(--ease)}
.moon__media img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);
  transition:transform 1.1s var(--ease);filter:saturate(.97) contrast(1.03) blur(var(--vblur,0px))}
.moon:hover .moon__media img{transform:scale(1.13)}
.moon__media::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,12,6,.04) 34%,rgba(20,12,6,.5) 72%,rgba(12,7,3,.9))}
.moon:hover .moon__media{box-shadow:0 46px 70px -28px rgba(35,20,9,.7), inset 0 0 0 1px rgba(243,234,217,.28)}

/* ambient glow behind + cursor sheen on top */
.moon__glow{position:absolute;inset:-6% -6% -12%;z-index:-1;border-radius:50%;filter:blur(30px);opacity:0;
  background:radial-gradient(circle at 50% 32%,rgba(184,137,75,.6),transparent 62%);transition:opacity .5s}
.moon:hover .moon__glow{opacity:.85}
.moon__sheen{position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:var(--arch);
  opacity:0;transition:opacity .4s;mix-blend-mode:screen;
  background:radial-gradient(220px circle at var(--mx,50%) var(--my,4%),rgba(255,244,222,.4),transparent 55%)}
.moon:hover .moon__sheen{opacity:1}

.moon__tag{position:absolute;top:15px;left:50%;z-index:3;transform:translate(-50%,0) translateZ(46px);
  font-family:var(--font-mark);font-weight:600;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink);background:var(--brass-2);padding:.42em .9em;border-radius:100px;white-space:nowrap;
  box-shadow:0 8px 18px -6px rgba(0,0,0,.55)}

.moon__body{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:20px 22px 24px;
  display:flex;flex-direction:column;gap:5px;transform:translateZ(38px)}
.moon__dur{font-family:var(--font-mark);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--sand-soft)}
.moon__name{font-family:var(--font-display);font-weight:400;letter-spacing:-.01em;line-height:1.04;
  font-size:clamp(1.15rem,1.5vw,1.55rem);text-shadow:0 4px 20px rgba(0,0,0,.55)}
.moon__price{font-family:var(--font-display);font-weight:400;font-size:1.5rem;margin-top:5px;
  display:inline-flex;align-items:baseline;gap:.32em;color:var(--paper)}
.moon__price i{font-family:var(--font-mark);font-style:normal;font-size:.58rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--sand-soft)}
.moon__cue{position:absolute;bottom:22px;right:20px;z-index:3;width:34px;height:34px;border-radius:50%;
  border:1px solid rgba(243,234,217,.5);display:grid;place-items:center;transform:translateZ(38px);
  opacity:0;transition:opacity .4s,background .3s,transform .4s var(--ease)}
.moon:hover .moon__cue{opacity:1}
.moon__feature .moon__media{box-shadow:0 40px 64px -26px rgba(124,45,26,.55), inset 0 0 0 1px rgba(200,161,90,.5)}

/* =========================================================
   TOUR CAMPAIGN MODAL (fullscreen)
   ========================================================= */
.tmodal{position:fixed;inset:0;z-index:2000;display:none}
.tmodal.is-open,.tmodal.is-anim{display:block}
.tmodal__backdrop{position:absolute;inset:0;background:rgba(12,7,3,.55);backdrop-filter:blur(8px);
  opacity:0;transition:opacity .5s}
.tmodal.is-open .tmodal__backdrop{opacity:1}
.tmodal__img{position:fixed;margin:0;overflow:hidden;z-index:2001;background:var(--ink);
  box-shadow:0 50px 100px -30px rgba(0,0,0,.7)}
.tmodal__img img{width:100%;height:100%;object-fit:cover}
.tmodal__scrim{position:fixed;inset:0;z-index:2002;pointer-events:none;opacity:0;transition:opacity .5s .1s;
  background:linear-gradient(180deg,rgba(12,7,3,.35) 0%,transparent 26%,rgba(12,7,3,.4) 52%,rgba(10,6,3,.92) 100%)}
.tmodal.is-open .tmodal__scrim{opacity:1}
.tmodal__close{position:fixed;top:22px;right:22px;z-index:2004;width:48px;height:48px;border-radius:50%;
  background:rgba(20,12,6,.4);border:1px solid rgba(243,234,217,.35);color:var(--paper);cursor:pointer;
  display:grid;place-items:center;backdrop-filter:blur(6px);opacity:0;transition:.4s var(--ease);transform:scale(.8)}
.tmodal.is-open .tmodal__close{opacity:1;transform:none}
.tmodal__close:hover{background:var(--ember);border-color:var(--ember);transform:rotate(90deg)}
.tmodal__panel{position:fixed;left:0;bottom:0;z-index:2003;color:var(--paper);
  padding:clamp(26px,5vw,64px);width:min(680px,100%);
  opacity:0;transform:translateY(34px);transition:opacity .6s var(--ease) .18s,transform .6s var(--ease) .18s}
.tmodal.is-open .tmodal__panel{opacity:1;transform:none}
.tmodal__dur{font-family:var(--font-mark);font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-2)}
.tmodal__name{font-family:var(--font-display);font-weight:360;line-height:1;letter-spacing:-.02em;
  font-size:clamp(2.2rem,5.5vw,4rem);margin:12px 0 16px;text-shadow:0 8px 40px rgba(0,0,0,.5)}
.tmodal__desc{max-width:46ch;color:rgba(243,234,217,.9);font-size:1.06rem;line-height:1.6}
.tmodal__perks{list-style:none;margin:22px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:10px 22px;max-width:520px}
.tmodal__perks li{position:relative;padding-left:24px;font-size:.94rem;color:rgba(243,234,217,.86);line-height:1.4}
.tmodal__perks li::before{content:"";position:absolute;left:0;top:.5em;width:8px;height:8px;border-radius:50%;
  border:1.5px solid var(--brass-2)}
.tmodal__foot{display:flex;align-items:center;gap:26px;margin-top:30px;flex-wrap:wrap}
.tmodal__price{font-family:var(--font-display);font-size:2.6rem;color:var(--paper);line-height:1}
.tmodal__price i{font-family:var(--font-mark);font-style:normal;font-size:.62rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--sand-soft);margin-right:.4em}

@media (max-width:1100px){ .moon-grid{grid-template-columns:repeat(3,1fr)} }
@media (max-width:760px){
  .moon-grid{grid-template-columns:repeat(2,1fr);gap:22px 16px}
  .moon{aspect-ratio:.74}
  .tmodal__perks{grid-template-columns:1fr}
}
@media (max-width:440px){
  .moon__name{font-size:1.2rem}
}

/* =========================================================
   AERIAL PORTAL
   ========================================================= */
.portal{height:200vh;background:var(--pine);position:relative}
.portal__sticky{position:sticky;top:0;height:100vh;overflow:hidden;display:grid;place-items:center}
.portal__stage{perspective:1400px;perspective-origin:50% 45%;display:grid;place-items:center;
  grid-area:1/1;width:100%;height:100%}
.portal__ring{
  position:relative;width:min(78vh,720px);aspect-ratio:1;border-radius:50%;overflow:hidden;
  box-shadow:0 40px 120px -40px rgba(0,0,0,.7), inset 0 0 0 1px rgba(243,234,217,.2);
  will-change:transform;transform:scale(.6);transform-style:preserve-3d;
}
.portal__video{width:100%;height:100%;object-fit:cover;filter:saturate(.85) sepia(.14) contrast(1.02)}
.portal__grade{position:absolute;inset:0;box-shadow:inset 0 0 120px 20px rgba(20,12,6,.6);
  background:radial-gradient(70% 60% at 50% 46%, rgba(15,9,4,.55), rgba(15,9,4,.12) 70%, transparent)}
.portal__text{position:absolute;z-index:3;text-align:center;color:var(--paper);
  padding:0 24px;max-width:640px;pointer-events:none}
.portal__title{font-family:var(--font-display);font-weight:340;font-size:clamp(2.4rem,6vw,5rem);
  line-height:1;letter-spacing:-.02em;text-shadow:0 8px 40px rgba(0,0,0,.6)}
.portal__lede{max-width:440px;margin:22px auto 0;color:rgba(243,234,217,.9);
  opacity:0;transition:opacity .6s;font-size:1.02rem}
.portal.is-open .portal__lede{opacity:1}

/* =========================================================
   RANCH / STORY
   ========================================================= */
.ranch{padding:clamp(70px,10vw,140px) var(--pad);background:var(--cream)}
.ranch__grid{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(34px,5vw,90px);align-items:center}
.ranch__media{position:relative;border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}
.ranch__media img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5;
  filter:saturate(.95) contrast(1.02) blur(var(--vblur,0px));transform:scale(1.01);transition:transform 1.4s var(--ease)}
.ranch__media:hover img{transform:scale(1.06)}
.ranch__badge{position:absolute;left:18px;bottom:18px;font-family:var(--font-mark);font-weight:600;
  font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--paper);
  background:rgba(34,20,10,.6);backdrop-filter:blur(6px);padding:.55em 1em;border-radius:100px;
  border:1px solid rgba(243,234,217,.25)}
.ranch__copy .section-title{margin-bottom:8px}
.ranch__p{margin-top:18px;color:rgba(35,20,9,.78);font-size:1.06rem;line-height:1.65;max-width:52ch}
.ranch__p em{color:var(--ember);font-family:var(--font-display)}
.ranch__note{margin-top:22px;font-family:var(--font-mark);font-style:italic;color:rgba(35,20,9,.55);font-size:.95rem}
.ranch__copy .btn{margin-top:30px}

/* =========================================================
   PHOTOSHOOT
   ========================================================= */
.shoot{background:var(--leather);color:var(--paper);padding:clamp(70px,10vw,140px) var(--pad);
  position:relative;overflow:hidden}
.shoot::before{content:"";position:absolute;inset:0;
  background:radial-gradient(80% 60% at 80% 0%,rgba(124,45,26,.4),transparent 60%);pointer-events:none}
.shoot__inner{max-width:var(--maxw);margin:0 auto;position:relative}
.shoot__head{max-width:680px}
.shoot__lede{margin-top:22px;color:rgba(243,234,217,.82);font-size:1.08rem;max-width:52ch}
.shoot__cta{display:flex;align-items:center;gap:24px;margin-top:34px;flex-wrap:wrap}
.shoot__price{font-family:var(--font-mark);font-size:.9rem;letter-spacing:.04em;color:rgba(243,234,217,.75)}
.shoot__price b{color:var(--sand-soft);font-weight:600}
.shoot__strip{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:56px;
  perspective:1500px;transform-style:preserve-3d}
.shoot__strip figure{border-radius:14px;overflow:hidden;aspect-ratio:3/4;will-change:transform}
.shoot__strip img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease);
  filter:saturate(.9) contrast(1.03) blur(var(--vblur,0px))}
.shoot__strip figure:hover img{transform:scale(1.07)}

/* =========================================================
   GALLERY
   ========================================================= */
.gallery{padding:clamp(70px,10vw,130px) 0;background:var(--cream);position:relative}
.gallery__grid{max-width:var(--maxw);margin:56px auto 0;padding:0 var(--pad);
  columns:3;column-gap:18px;perspective:1500px}
.g-item{break-inside:avoid;margin-bottom:18px;border-radius:14px;overflow:hidden;position:relative;
  will-change:transform;transform-style:preserve-3d}
.g-item img{width:100%;height:auto;aspect-ratio:calc(1 / var(--h,1));object-fit:cover;
  transition:transform 1.2s var(--ease);filter:saturate(.94) blur(var(--vblur,0px))}
.g-item::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,12,6,.32),transparent 55%);
  opacity:0;transition:opacity .5s}
.g-item:hover img{transform:scale(1.06)}
.g-item:hover::after{opacity:1}

/* =========================================================
   GOOGLE REVIEWS & LOCATION
   ========================================================= */
.google-proof{padding:clamp(42px,6vw,76px) var(--pad);background:var(--sand-soft);
  border-top:1px solid rgba(58,38,24,.14);border-bottom:1px solid rgba(58,38,24,.14)}
.google-proof__inner{max-width:var(--maxw);margin:0 auto;display:grid;
  grid-template-columns:84px minmax(0,1fr) auto;align-items:center;gap:clamp(24px,4vw,58px);
  padding:clamp(28px,4vw,52px);border:1px solid rgba(58,38,24,.18);border-radius:18px;
  background:rgba(247,240,227,.66);box-shadow:0 24px 60px -44px rgba(35,20,9,.7)}
.google-proof__mark{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;
  color:var(--ember);background:rgba(124,45,26,.08);border:1px solid rgba(124,45,26,.22)}
.google-proof__mark svg{width:44px;height:44px}
.google-proof__copy .eyebrow{justify-content:flex-start;margin-bottom:14px}
.google-proof__title{font-family:var(--font-display);font-weight:380;font-size:clamp(2rem,4vw,4rem);
  line-height:1.02;letter-spacing:-.025em;color:var(--ink);max-width:760px}
.google-proof__lede{margin-top:15px;max-width:62ch;color:rgba(35,20,9,.66);font-size:1rem}
.google-proof__cta{white-space:nowrap;align-self:center}
.google-proof__cta svg{width:19px;height:19px;margin-left:8px;transition:transform .3s var(--ease)}
.google-proof__cta:hover svg{transform:translateX(4px)}
.google-proof__cta:active{transform:translateY(1px) scale(.98)}

/* =========================================================
   VISIT / CONTACT
   ========================================================= */
.visit{background:var(--pine);color:var(--paper);padding:clamp(70px,10vw,140px) var(--pad);
  position:relative;overflow:hidden}
.visit::before{content:"";position:absolute;inset:0;
  background:radial-gradient(70% 60% at 15% 100%,rgba(124,45,26,.3),transparent 55%);pointer-events:none}
.visit__grid{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1.25fr 1fr;
  gap:clamp(34px,5vw,80px);align-items:start;position:relative}
.visit__lede{margin-top:20px;color:rgba(243,234,217,.8);font-size:1.08rem;max-width:46ch}
.visit__list{list-style:none;margin-top:40px;border-top:1px solid rgba(243,234,217,.18)}
.visit__list li{display:flex;align-items:baseline;justify-content:space-between;gap:20px;
  padding:18px 0;border-bottom:1px solid rgba(243,234,217,.18)}
.visit__list span{font-family:var(--font-mark);font-size:.76rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--sand-soft)}
.visit__list a{font-family:var(--font-display);font-size:clamp(1.1rem,2vw,1.5rem);
  transition:color .3s}
.visit__list a:hover{color:var(--brass-2)}
.visit__socials{display:flex;gap:12px;margin-top:34px;flex-wrap:wrap}
.visit__socials a{font-family:var(--font-mark);font-size:.86rem;letter-spacing:.03em;
  padding:.55em 1.1em;border:1px solid rgba(243,234,217,.3);border-radius:100px;transition:.3s var(--ease)}
.visit__socials a:hover{background:var(--paper);color:var(--pine);border-color:var(--paper)}

.visit__card{background:rgba(243,234,217,.06);border:1px solid rgba(243,234,217,.2);
  border-radius:18px;padding:clamp(26px,3vw,40px);backdrop-filter:blur(4px)}
.visit__card h3{font-family:var(--font-display);font-weight:380;font-size:1.7rem;margin-bottom:22px}
.visit__card ul{list-style:none;display:flex;flex-direction:column;gap:16px;margin-bottom:28px}
.visit__card li{position:relative;padding-left:26px;color:rgba(243,234,217,.85);font-size:.98rem;line-height:1.5}
.visit__card li::before{content:"";position:absolute;left:0;top:.55em;width:9px;height:9px;
  border:1.5px solid var(--brass-2);border-radius:50%}
.visit__card li b{color:var(--paper);font-weight:600}

/* =========================================================
   FOOTER
   ========================================================= */
.footer{background:var(--ink);color:var(--sand-soft);padding:clamp(50px,7vw,80px) var(--pad) 34px}
.footer__top{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;
  justify-content:space-between;gap:30px;flex-wrap:wrap;
  padding-bottom:34px;border-bottom:1px solid rgba(243,234,217,.14)}
.footer__brand{display:flex;flex-direction:column;line-height:1;color:var(--paper)}
.footer__brand .brand__name{font-family:var(--font-display);font-size:1.6rem}
.footer__brand .brand__sub{font-family:var(--font-mark);font-size:.7rem;letter-spacing:.16em;
  text-transform:uppercase;opacity:.6;margin-top:6px}
.footer__nav{display:flex;gap:26px;flex-wrap:wrap}
.footer__nav a{font-family:var(--font-mark);font-size:.9rem;opacity:.8;transition:opacity .3s}
.footer__nav a:hover{opacity:1;color:var(--paper)}
.footer__bottom{max-width:var(--maxw);margin:26px auto 0;display:flex;justify-content:space-between;
  gap:16px;flex-wrap:wrap;font-family:var(--font-mark);font-size:.78rem;letter-spacing:.03em;opacity:.6}
.footer__socials{max-width:var(--maxw);margin:24px auto 0;padding-top:22px;border-top:1px solid rgba(243,234,217,.1);
  display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap}
.footer__socials a{display:inline-flex;align-items:center;gap:9px;padding:10px 14px;border:1px solid rgba(243,234,217,.18);
  border-radius:100px;font-family:var(--font-mark);font-size:.82rem;color:var(--paper);
  transition:transform .3s var(--ease),background .3s var(--ease),border-color .3s var(--ease)}
.footer__socials svg{width:18px;height:18px;fill:currentColor;color:var(--brass-2)}
.footer__socials a:hover{transform:translateY(-2px);background:rgba(243,234,217,.08);border-color:rgba(243,234,217,.34)}
.footer__socials a:active{transform:translateY(1px) scale(.98)}

/* =========================================================
   FLOATING WHATSAPP
   ========================================================= */
.wa-float{position:fixed;right:22px;bottom:22px;z-index:900;width:58px;height:58px;border-radius:50%;
  background:#25572f;color:var(--paper);display:grid;place-items:center;
  box-shadow:0 14px 30px -8px rgba(0,0,0,.5);transition:transform .35s var(--ease),background .3s;
  animation:wapop .5s var(--ease) both 1.2s;transform:scale(0)}
@keyframes wapop{to{transform:scale(1)}}
.wa-float:hover{transform:scale(1.08) translateY(-2px);background:#2e6b3a}
.wa-float::before{content:"";position:absolute;inset:0;border-radius:50%;
  border:2px solid #25572f;animation:waping 2.4s ease-out infinite}
@keyframes waping{0%{transform:scale(1);opacity:.6}100%{transform:scale(1.7);opacity:0}}

/* =========================================================
   ANIMATED BACKGROUNDS — keep it alive
   ========================================================= */
/* drifting soft blobs for flat cream sections */
.drift{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.drift span{position:absolute;border-radius:50%;filter:blur(60px);opacity:.5;will-change:transform}
.drift span:nth-child(1){width:38vw;height:38vw;left:-8vw;top:8%;
  background:radial-gradient(circle,rgba(184,137,75,.5),transparent 70%);animation:float1 26s ease-in-out infinite}
.drift span:nth-child(2){width:32vw;height:32vw;right:-6vw;top:38%;
  background:radial-gradient(circle,rgba(124,45,26,.28),transparent 70%);animation:float2 32s ease-in-out infinite}
.drift span:nth-child(3){width:26vw;height:26vw;left:30%;bottom:-8vw;
  background:radial-gradient(circle,rgba(36,53,42,.3),transparent 70%);animation:float3 30s ease-in-out infinite}
.drift--warm span:nth-child(1){background:radial-gradient(circle,rgba(203,176,138,.55),transparent 70%)}
.drift--warm span:nth-child(2){background:radial-gradient(circle,rgba(124,45,26,.22),transparent 70%)}
@keyframes float1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(6vw,4vw) scale(1.12)}}
@keyframes float2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-5vw,5vw) scale(1.15)}}
@keyframes float3{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(4vw,-4vw) scale(1.1)}}
.statement,.tours,.ranch{position:relative}
.statement>*:not(.drift):not(.medal),.tours>*:not(.drift),.ranch>*:not(.drift){position:relative;z-index:1}

/* floating motes (hero) + embers (dark sections) */
.hero__dust,.embers{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.embers{z-index:0}
.mote,.ember{position:absolute;bottom:-10px;border-radius:50%;will-change:transform,opacity}
.mote{background:radial-gradient(circle,rgba(243,234,217,.9),rgba(243,234,217,0));animation:rise linear infinite}
.ember{background:radial-gradient(circle,rgba(201,154,88,.95),rgba(124,45,26,0));animation:rise linear infinite}
@keyframes rise{
  0%{transform:translateY(0) translateX(0);opacity:0}
  10%{opacity:1}
  90%{opacity:.6}
  100%{transform:translateY(-105vh) translateX(var(--drift,0));opacity:0}
}
.shoot__inner,.visit__grid{position:relative;z-index:1}

/* =========================================================
   SOCIAL BRAND ICONS
   ========================================================= */
.socials{display:flex;gap:12px;margin-top:38px;flex-wrap:wrap}
.social{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;flex:none;
  border:1px solid rgba(243,234,217,.28);color:var(--sand-soft);
  transition:transform .35s var(--ease),background .3s,color .3s,border-color .3s}
.social svg{width:21px;height:21px}
.social:hover{transform:translateY(-3px) scale(1.06);background:var(--paper);color:var(--pine);border-color:var(--paper)}

/* footer logo */
.footer__logo{display:block;width:200px;height:108px;object-fit:contain;object-position:left center;
  filter:brightness(0) invert(1)}

/* =========================================================
   CINEMATIC INTRO
   ========================================================= */
.intro{position:fixed;inset:0;z-index:9999;overflow:hidden}
.intro.is-done{display:none}
.intro__panel{position:absolute;left:0;right:0;height:50.6%;
  background:radial-gradient(120% 160% at 50% 100%,#3a2618 0%,#241610 45%,#160d06 100%)}
.intro__panel--t{top:0;background-position:50% 100%;box-shadow:0 1px 0 rgba(0,0,0,.4)}
.intro__panel--b{bottom:0;transform:scaleY(-1)}
.intro__embers{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2}
.intro__stage{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:20px}
.intro__logo{position:relative;width:min(60vw,540px);aspect-ratio:1300/700;
  -webkit-mask:url('../assets/brand/logo.png') center/contain no-repeat;
  mask:url('../assets/brand/logo.png') center/contain no-repeat;will-change:transform,opacity,filter}
.intro__fill{position:absolute;inset:0;background:linear-gradient(176deg,#f4ecdb 0%,#e6d3ad 55%,#cbb08a 100%)}
.intro__shine{position:absolute;top:-25%;bottom:-25%;left:0;width:42%;
  background:linear-gradient(105deg,transparent 18%,rgba(255,248,230,.95) 50%,transparent 82%);
  transform:translateX(-200%) skewX(-12deg);filter:blur(3px);mix-blend-mode:screen}
.intro__tag{font-family:var(--font-mark);font-weight:500;font-size:clamp(.72rem,1.6vw,.92rem);
  letter-spacing:.42em;color:var(--sand-soft);padding-left:.42em}
.intro__rule{width:0;height:1px;background:linear-gradient(90deg,transparent,var(--brass-2),transparent)}
@media (prefers-reduced-motion:reduce){.intro{display:none}}

/* drawer language row */
.drawer__lang{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.drawer__lang button{background:none;border:1px solid rgba(243,234,217,.4);color:var(--paper);
  font-family:var(--font-mark);font-size:.8rem;padding:.4em .7em;border-radius:100px;cursor:pointer;transition:.25s}
.drawer__lang button.is-on{background:var(--paper);color:var(--pine)}

/* =========================================================
   RESPONSIVE  — designed for phone, not shrunk
   ========================================================= */
@media (max-width:1024px){
  .visit__grid{grid-template-columns:1fr}
}
@media (max-width:1080px){
  .nav__links{gap:2px}
  .nav__links a{font-size:0;gap:0;padding:4px 7px}
  .nav__links a .nav__ico{width:40px;height:40px}
}
@media (max-width:860px){
  .cursor{display:none}
  .nav__links,.nav__right{display:none}
  .nav__burger{display:flex}
  .tour--feature,.tour--trek{grid-template-columns:1fr}
  .tour--feature{min-height:0}
  .tour--feature .tour__img{aspect-ratio:16/11}
  .tour--trek{grid-template-rows:auto}
  .tour--trek .tour__img--trek{aspect-ratio:16/11;order:-1}
  .tour-grid{grid-template-columns:1fr}
  .ranch__grid{grid-template-columns:1fr}
  .ranch__media{max-width:440px}
  .gallery__grid{columns:2}
  .google-proof__inner{grid-template-columns:68px minmax(0,1fr)}
  .google-proof__mark{width:68px;height:68px}
  .google-proof__cta{grid-column:2;justify-self:start}
  .hero{height:200vh}
}
@media (max-width:560px){
  :root{--pad:20px}
  html,body{touch-action:pan-y}
  .medal{display:none}
  .hero__title{font-size:clamp(2.9rem,15vw,5rem)}
  .hero__lede{font-size:1rem}
  .hero__cta{flex-direction:column;width:100%;max-width:300px;margin-left:auto;margin-right:auto}
  .hero__cta .btn{width:100%;justify-content:center}
  .statement__meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;width:100%}
  .statement__meta div{min-width:0}
  .statement__meta b{font-size:2.1rem}
  .statement__meta span{font-size:.68rem;letter-spacing:.035em;max-width:100%}
  .statement__socials{grid-template-columns:1fr;gap:10px;margin-top:30px}
  .statement__socials a{width:100%;padding:12px 14px}
  .tour__row{flex-direction:column;gap:20px}
  .tour__end{flex-direction:row;align-items:center;width:100%;justify-content:space-between}
  .tour__foot{flex-direction:column;align-items:flex-start;gap:18px}
  .tour__foot .btn{width:100%;justify-content:center}
  .shoot__strip{grid-template-columns:1fr 1fr}
  .shoot__strip figure:nth-child(3){display:none}
  .shoot__strip figure:nth-child(2){transform:none}
  .gallery__grid{columns:1}
  .google-proof{padding-left:0;padding-right:0}
  .google-proof__inner{grid-template-columns:1fr;gap:20px;border-left:0;border-right:0;border-radius:0;padding:34px 20px}
  .google-proof__mark{width:58px;height:58px}
  .google-proof__mark svg{width:32px;height:32px}
  .google-proof__copy .eyebrow{margin-bottom:12px}
  .google-proof__title{font-size:clamp(2rem,11vw,3rem)}
  .google-proof__cta{grid-column:1;width:100%;justify-content:center;margin-top:4px}
  .portal__ring{width:86vw}
  .visit__list li{flex-direction:column;gap:4px}
  .footer{padding-bottom:100px}
  .footer__top{flex-direction:column;align-items:flex-start;gap:22px}
  .footer__nav{gap:14px 20px}
  .footer__socials{justify-content:flex-start;flex-direction:column}
  .footer__socials a{width:100%;justify-content:center;min-width:0}
  .wa-float{width:52px;height:52px;right:16px;bottom:16px}
}
