/* ============================================================
   KURIUWA HOTEL — "The Neblina Thread"
   Cinematic mountain refuge · Brand-First · zero-build
   ============================================================ */

/* metric-matched fallbacks — zero CLS when webfont isn't ready */
@font-face{font-family:'Cormorant Fallback';src:local('Georgia'),local('Times New Roman');
  ascent-override:92%;descent-override:30%;line-gap-override:0%;size-adjust:104%}
@font-face{font-family:'Inter Fallback';src:local('Arial');
  ascent-override:90%;descent-override:22%;line-gap-override:0%;size-adjust:107%}

:root{
  --night:#0B1A14; --forest:#102A20; --forest-2:#0E2419;
  --emerald:#0F8A5C; --emerald-lt:#36B783;
  --gold:#C9A24B; --gold-lt:#E0C079;
  --mist:#F4F1E9; --mist-2:#E8E3D6;
  --ink:#16201B; --on-dark:#EDEBE1; --mute:#7C857C; --mute-dark:rgba(237,235,225,.62);
  --line:rgba(22,32,27,.14); --line-dark:rgba(237,235,225,.16);

  --fd:'Cormorant Garamond','Cormorant Fallback',Georgia,serif;
  --fb:'Inter','Inter Fallback',system-ui,-apple-system,sans-serif;

  --ease-kur:cubic-bezier(.22,.61,.27,1);
  --ease-settle:cubic-bezier(.16,1,.3,1);
  --dur-slow:1000ms; --dur-cine:2400ms;

  --s4:16px; --s5:24px; --s6:32px; --s8:48px; --s12:80px; --s16:120px;
  --container:1280px; --r:6px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:84px}
body{font-family:var(--fb);background:var(--mist);color:var(--ink);
  font-size:17px;line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{text-wrap:balance;line-height:1.08;font-weight:500}
p{text-wrap:pretty}
.container{width:min(92vw,var(--container));margin-inline:auto}

/* ---------- reveal system ---------- */
.no-js .reveal,.no-js [data-reveal],.no-js .reveal-clip{opacity:1!important;transform:none!important;clip-path:none!important}
.reveal{opacity:0;transform:translateY(28px);transition:opacity 1.1s var(--ease-kur),transform 1.1s var(--ease-kur)}
.reveal.is-in{opacity:1;transform:none}
[data-reveal="rise"]{opacity:0;transform:translateY(34px);transition:opacity 1.1s var(--ease-kur),transform 1.1s var(--ease-kur)}
[data-reveal="rise"].is-in{opacity:1;transform:none}
[data-reveal="mask"]{opacity:0;clip-path:inset(0 0 105% 0);transform:translateY(.22em);
  transition:clip-path 1.2s var(--ease-kur),transform 1.2s var(--ease-kur),opacity .9s ease}
[data-reveal="mask"].is-in{opacity:1;clip-path:inset(0 0 -12% 0);transform:none}
.reveal-clip{clip-path:inset(0 100% 0 0);transition:clip-path 1.25s var(--ease-kur)}
.reveal-clip.is-in{clip-path:inset(0 0 0 0)}
/* keyboard escape hatch: focus always reveals (WCAG 2.4.7) */
.reveal:focus-within,[data-reveal]:focus-within{opacity:1!important;transform:none!important;clip-path:none!important}
.reveal-clip:focus-within{clip-path:inset(0 0 0 0)!important}

:focus-visible{outline:2px solid var(--emerald);outline-offset:3px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;background:#fff;padding:10px 16px;z-index:400;border-radius:var(--r)}

/* ---------- type helpers ---------- */
.display{font-family:var(--fd);font-weight:500;font-size:clamp(2rem,4.6vw,3.6rem);line-height:1.04;letter-spacing:.005em}
.display--light{color:var(--on-dark)}
.display em,.hero__title em{font-style:italic;color:var(--gold)}
.eyebrow{font-family:var(--fb);text-transform:uppercase;letter-spacing:.28em;font-size:.72rem;font-weight:500;color:var(--emerald);margin-bottom:18px}
.eyebrow--gold{color:var(--gold)} .eyebrow--light{color:var(--gold-lt)}

/* ---------- buttons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:15px 30px;border-radius:var(--r);font-weight:600;font-size:.95rem;line-height:1;min-height:52px;
  transition:color .4s var(--ease-kur),border-color .4s,background .4s;letter-spacing:.01em;cursor:pointer;
  border:1.5px solid transparent;overflow:hidden;isolation:isolate}
.btn::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-kur)}
.btn--primary{background:var(--emerald);color:#fff}
.btn--primary:hover{color:var(--night)} .btn--primary:hover::after{transform:scaleX(1)}
.btn--ghost{background:transparent;border-color:rgba(255,255,255,.55);color:#fff}
.btn--ghost:hover{color:var(--night)} .btn--ghost:hover::after{transform:scaleX(1)}
.btn--ghost-dark{border-color:var(--line-dark);color:var(--on-dark)}
.btn--ghost-dark:hover{color:var(--night)} .btn--ghost-dark:hover::after{transform:scaleX(1)}
.btn--block{width:100%} .btn--sm{min-height:42px;padding:10px 20px;font-size:.85rem}
.btn:active{transform:translateY(1px)}

/* ============================================================ NAV */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .4s,box-shadow .4s}
.nav__wrap{width:min(92vw,var(--container));margin-inline:auto;display:flex;align-items:center;gap:28px;padding:22px 0;transition:padding .4s}
.nav__brand img{height:46px;width:auto;filter:brightness(0) invert(1)}
.nav__links{display:flex;gap:30px;margin-left:auto;align-items:center}
.nav__links a{font-size:.9rem;font-weight:500;color:rgba(255,255,255,.92);position:relative;letter-spacing:.01em}
.nav__links a::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:1px;background:var(--gold);transition:width .38s var(--ease-kur)}
.nav__links a:hover::after{width:100%}
.nav__cta{padding:11px 24px;border:1.5px solid rgba(255,255,255,.5);border-radius:var(--r);font-size:.88rem;font-weight:600;color:#fff;transition:background .3s,border-color .3s}
.nav__cta:hover{background:var(--emerald);border-color:var(--emerald)}
.nav__burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px;margin-left:auto}
.nav__burger span{width:26px;height:2px;background:#fff;transition:.3s}
.nav.is-scrolled{background:rgba(11,26,20,.92);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line-dark)}
.nav.is-scrolled .nav__wrap{padding:13px 0}
.nav__progress{position:absolute;left:0;bottom:0;height:1.5px;width:100%;background:var(--gold);transform:scaleX(0);transform-origin:left;opacity:.85}
.nav__mobile{display:none;flex-direction:column;background:var(--night);padding:14px 6vw 26px;gap:4px;border-top:1px solid var(--line-dark)}
.nav__mobile a{padding:14px 0;color:var(--on-dark);font-size:1.05rem;border-bottom:1px solid var(--line-dark)}
.nav__mobile-cta{margin-top:14px;background:var(--emerald);color:#fff!important;text-align:center;border-radius:var(--r);border-bottom:0!important;font-weight:600}
.nav.is-open .nav__mobile{display:flex}

/* ============================================================ HERO */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;color:#fff}
.hero__media{position:absolute;inset:0;z-index:0}
.hero__media img{width:100%;height:100%;object-fit:cover;animation:settle var(--dur-cine) var(--ease-kur) both}
@keyframes settle{from{transform:scale(1.07)}to{transform:scale(1)}}
.hero__glow{position:absolute;inset:0;background:radial-gradient(38% 30% at 72% 33%,rgba(201,162,75,.22),transparent 70%);mix-blend-mode:screen;animation:glowpulse 8s ease-in-out infinite;pointer-events:none}
@keyframes glowpulse{0%,100%{opacity:.35}50%{opacity:1}}
.hero__veil{position:absolute;inset:0;z-index:1;background:radial-gradient(120% 90% at 50% 16%,transparent 38%,rgba(11,26,20,.55) 100%),linear-gradient(to top,rgba(7,17,12,.92) 0%,rgba(7,17,12,.32) 44%,rgba(7,17,12,.46) 100%)}
.hero::before,.hero::after{content:"";position:absolute;left:0;right:0;z-index:3;height:7vh;max-height:64px;pointer-events:none}
.hero::before{top:0;background:linear-gradient(to bottom,rgba(7,17,12,.85),transparent)}
.hero::after{bottom:0;background:linear-gradient(to top,rgba(7,17,12,.7),transparent)}
.grain{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.06;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.hero__inner{position:relative;z-index:4;width:min(92vw,var(--container));margin-inline:auto;padding-bottom:clamp(72px,12vh,140px);max-width:1000px}
.hero__title{font-family:var(--fd);font-weight:500;font-size:clamp(2.6rem,6.4vw,5.6rem);line-height:1.02;letter-spacing:.004em;margin-bottom:24px;text-shadow:0 2px 30px rgba(0,0,0,.35)}
.hero__title .w{display:inline-block}
.hero__title .w--accent{font-style:italic;color:var(--gold)}
.hero__title.is-split .w{opacity:0;transform:translateY(.7em);transition:opacity .85s var(--ease-kur),transform .95s var(--ease-kur);transition-delay:calc(var(--i,0)*55ms)}
.hero__title.is-split.run .w{opacity:1;transform:none}
.hero__sub{font-size:clamp(1.05rem,1.7vw,1.3rem);max-width:60ch;color:rgba(255,255,255,.9);margin-bottom:36px}
.hero__cta{display:flex;flex-wrap:wrap;gap:14px}
.hero__scroll{position:absolute;z-index:4;left:50%;bottom:26px;transform:translateX(-50%);font-size:.68rem;text-transform:uppercase;letter-spacing:.26em;color:rgba(255,255,255,.7);display:flex;flex-direction:column;align-items:center;gap:10px}
.hero__scroll span{width:1px;height:46px;background:linear-gradient(to bottom,var(--gold),transparent);animation:scrolldown 3.4s ease-in-out infinite}
@keyframes scrolldown{0%,100%{opacity:.25;transform:scaleY(.55)}50%{opacity:1;transform:scaleY(1)}}

/* ---------- neblina (mist) ---------- */
.mist{position:absolute;inset:-15%;background:radial-gradient(closest-side,rgba(244,241,233,.55),transparent 72%);mix-blend-mode:screen;opacity:.13;pointer-events:none}
.mist-a{animation:drift 72s linear infinite alternate}
.mist-b{animation:drift2 96s linear infinite alternate;opacity:.1}
@keyframes drift{from{transform:translate3d(-7%,0,0)}to{transform:translate3d(7%,2%,0)}}
@keyframes drift2{from{transform:translate3d(6%,1%,0)}to{transform:translate3d(-6%,-2%,0)}}
.mist-band{position:absolute;top:0;left:0;right:0;height:130px;z-index:1;pointer-events:none;background:linear-gradient(to bottom,rgba(244,241,233,.05),transparent)}

/* ============================================================ MANIFESTO + STATS */
.manifesto{position:relative;background:var(--mist);padding:clamp(80px,12vw,150px) 0 clamp(60px,8vw,90px)}
.manifesto__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,90px);align-items:start}
.arauc{width:52px;height:auto;color:var(--emerald);margin-bottom:22px;display:block}
.arauc .ap{stroke-dasharray:1;stroke-dashoffset:1}
.arauc.is-in .ap{stroke-dashoffset:0;transition:stroke-dashoffset 1.5s var(--ease-kur)}
.arauc.is-in .ap--crown{transition-delay:.5s}.arauc.is-in .ap--b{transition-delay:.3s}
.manifesto__text p{color:var(--ink);opacity:.86;margin-bottom:18px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:clamp(56px,7vw,90px);border-top:1px solid var(--line);padding-top:48px}
.stat{text-align:center}
.stat__num{display:block;font-family:var(--fd);font-size:clamp(2.4rem,4.5vw,3.4rem);color:var(--emerald);font-weight:600;line-height:1}
.stat__lbl{display:block;font-size:.82rem;text-transform:uppercase;letter-spacing:.16em;color:var(--mute);margin-top:10px}

/* ============================================================ PINNED COUPLE CROSSFADE */
.pin{position:relative;height:230vh;background:var(--night)}
.pin__stick{position:sticky;top:0;height:100svh;overflow:hidden;color:#fff}
.pin__frame{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0}
.pin__frame--1{opacity:1}
.pin__veil{position:absolute;inset:0;z-index:2;background:linear-gradient(to top,rgba(7,17,12,.9) 0%,rgba(7,17,12,.28) 42%,rgba(7,17,12,.5) 100%)}
.pin .mist{z-index:3}
.pin__copy{position:absolute;z-index:4;left:0;right:0;bottom:14vh;width:min(92vw,var(--container));margin-inline:auto;max-width:840px}
.pin__copy::before{content:"";position:absolute;z-index:-1;inset:-34px -28px -40px -28px;background:radial-gradient(130% 130% at 0% 100%,rgba(7,17,12,.62),transparent 72%);border-radius:30px}
.pin__line{font-family:var(--fd);font-style:italic;font-size:clamp(1.6rem,3.4vw,2.8rem);line-height:1.25;color:#fff;font-weight:400;text-shadow:0 2px 30px rgba(0,0,0,.55)}
.pin__copy .eyebrow{text-shadow:0 1px 16px rgba(0,0,0,.5)}
.pin__copy .eyebrow{opacity:0;transform:translateY(20px);transition:opacity 1s var(--ease-kur),transform 1s var(--ease-kur)}
.pin__copy .pin__line{opacity:0;transform:translateY(26px);transition:opacity 1.1s var(--ease-kur) .15s,transform 1.1s var(--ease-kur) .15s}
.pin.is-in .pin__copy .eyebrow,.pin.is-in .pin__copy .pin__line{opacity:1;transform:none}
/* fallback auto-crossfade when scroll-timeline unsupported */
@supports not (animation-timeline:view()){
  .pin__frame{animation:pfade 14s linear infinite}
  .pin__frame--1{animation-delay:0s}.pin__frame--2{animation-delay:4.6s}.pin__frame--3{animation-delay:9.2s}
  @keyframes pfade{0%{opacity:0}3%{opacity:1}28%{opacity:1}33%{opacity:0}100%{opacity:0}}
}

/* ============================================================ EXPERIÊNCIAS */
.exp{position:relative;background:var(--forest);color:var(--on-dark);padding:clamp(80px,11vw,150px) 0}
.sec-head{max-width:720px;margin-bottom:clamp(44px,6vw,72px)}
.sec-head__sub{color:var(--mute);margin-top:18px;font-size:1.05rem}
.exp .sec-head__sub,.serra .sec-head__sub{color:var(--mute-dark)}
.exp__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.exp-card{position:relative;border-radius:var(--r);overflow:hidden;min-height:340px;display:flex;align-items:flex-end;isolation:isolate}
.exp-card picture{position:absolute;inset:0;z-index:-2}
.exp-card img{width:100%;height:100%;object-fit:cover}
.exp-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(7,17,12,.95) 0%,rgba(7,17,12,.42) 48%,rgba(7,17,12,.12) 100%);transition:background .6s}
.exp-card--tall{grid-row:span 2}
.exp-card--wide{grid-column:span 2;min-height:300px}
.exp-card--glow::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(60% 60% at 50% 80%,rgba(201,162,75,.0),transparent 70%);transition:background 1s var(--ease-kur)}
.exp-card--glow.is-in::before{background:radial-gradient(60% 60% at 50% 80%,rgba(201,162,75,.34),transparent 70%)}
.exp-card__body{padding:30px 30px 32px;position:relative}
.exp-card__body h3{font-family:var(--fd);font-size:1.7rem;color:#fff;margin-bottom:8px;font-weight:600}
.exp-card__body p{font-size:.96rem;color:rgba(255,255,255,.82);max-width:46ch}
.exp-card img.photo-settle{transition:filter .6s var(--ease-kur)}
.exp-card:hover img.photo-settle{filter:brightness(1.07) saturate(1.05)}

/* ============================================================ MORADAS */
.moradas{position:relative;background:var(--mist);padding:clamp(80px,11vw,150px) 0}
.morada-feature{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(28px,4vw,56px);align-items:center;margin-bottom:clamp(48px,6vw,80px)}
.morada-feature__media{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3}
.morada-feature__media img{width:100%;height:100%;object-fit:cover}
.morada-feature__rule{position:absolute;left:0;top:0;width:2px;height:100%;background:var(--gold);transform:scaleY(0);transform-origin:top;transition:transform 1.1s var(--ease-kur) .3s}
.morada-feature__media.is-in .morada-feature__rule{transform:scaleY(1)}
.morada-feature__body h3{font-size:clamp(1.8rem,3.2vw,2.8rem);margin:6px 0 16px}
.morada-feature__body p{color:var(--ink);opacity:.84;margin-bottom:26px;max-width:48ch}
.morada-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.morada{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:3/4;isolation:isolate}
.morada picture{position:absolute;inset:0}
.morada img{width:100%;height:100%;object-fit:cover;transition:filter .6s var(--ease-kur)}
.morada::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(7,17,12,.92),rgba(7,17,12,.1) 62%,transparent 80%)}
.morada:hover img{filter:brightness(1.09)}
.morada__cap{position:absolute;left:0;bottom:0;z-index:2;padding:22px 22px 24px;color:#fff}
.morada__cap h4{font-family:var(--fd);font-size:1.4rem;font-weight:600}
.morada__cap span{font-size:.8rem;color:rgba(255,255,255,.78)}

/* ============================================================ CHAPTER (held shot) */
.chapter{position:relative;min-height:86vh;display:flex;align-items:center;overflow:hidden;color:#fff}
.chapter__pin{position:absolute;top:-10%;left:0;right:0;height:120%;z-index:0;will-change:transform}
.chapter__pin picture,.chapter__pin img{width:100%;height:100%;object-fit:cover}
.chapter__veil{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(7,17,12,.86) 0%,rgba(7,17,12,.5) 45%,rgba(7,17,12,.12) 100%)}
.chapter--right .chapter__veil{background:linear-gradient(270deg,rgba(7,17,12,.86) 0%,rgba(7,17,12,.5) 45%,rgba(7,17,12,.12) 100%)}
.chapter::before,.chapter::after{content:"";position:absolute;left:0;right:0;height:5vh;max-height:54px;background:var(--night);z-index:2}
.chapter::before{top:0}.chapter::after{bottom:0}
.chapter__copy{position:relative;z-index:3;width:min(92vw,var(--container));margin-inline:auto;max-width:760px}
.chapter--right .chapter__copy{margin-left:auto;text-align:right}
.chapter__line{font-family:var(--fd);font-style:italic;font-size:clamp(1.7rem,3.6vw,2.9rem);line-height:1.22;color:#fff;font-weight:400}

/* ============================================================ SERRA */
.serra{position:relative;background:var(--night);color:var(--on-dark);padding:clamp(80px,11vw,150px) 0}
.serra__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,72px);align-items:center}
.serra__text p{color:var(--mute-dark);margin-bottom:22px;max-width:48ch}
.serra__list{list-style:none;margin:0 0 30px;display:flex;flex-direction:column;gap:14px}
.serra__list li{padding-left:22px;position:relative;color:var(--on-dark);font-size:.98rem}
.serra__list li::before{content:"";position:absolute;left:0;top:.6em;width:8px;height:8px;border-radius:50%;background:var(--emerald)}
.serra__list strong{color:var(--gold-lt);font-weight:600}
.serra__map{border-radius:var(--r);overflow:hidden;aspect-ratio:4/3;border:1px solid var(--line-dark)}
.serra__map iframe{width:100%;height:100%;border:0;filter:grayscale(.3) contrast(1.05)}

/* ============================================================ REVIEWS */
.reviews{position:relative;background:var(--mist-2);padding:clamp(80px,11vw,150px) 0}
.reviews .sec-head{text-align:center;margin-inline:auto}
.reviews__scores{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(28px,5vw,64px);align-items:center;margin-bottom:clamp(44px,6vw,68px)}
.score{text-align:center}
.score__num{display:block;font-family:var(--fd);font-size:clamp(2.4rem,4vw,3.2rem);color:var(--emerald);font-weight:600;line-height:1}
.score__num .stat__num{font-size:inherit}
.score__src{display:block;font-size:.8rem;text-transform:uppercase;letter-spacing:.14em;color:var(--mute);margin-top:8px}
.score--badge img{border-radius:var(--r)}
.reviews__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.reviews blockquote{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:30px 28px;font-family:var(--fd);font-style:italic;font-size:1.3rem;line-height:1.35;color:var(--ink)}
.reviews cite{display:block;margin-top:18px;font-family:var(--fb);font-style:normal;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--emerald)}
.reviews__disc{text-align:center;font-size:.82rem;color:var(--mute);margin-top:30px}

/* ============================================================ RESERVAR */
.reservar{position:relative;color:var(--on-dark);padding:clamp(80px,11vw,150px) 0;overflow:hidden}
.reservar__media{position:absolute;inset:0;z-index:0}
.reservar__media picture,.reservar__media img{width:100%;height:100%;object-fit:cover}
.reservar__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,17,12,.9),rgba(7,17,12,.82))}
.reservar__grid{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,5vw,80px);align-items:center}
.reservar__copy p{color:var(--mute-dark);margin-bottom:26px;max-width:42ch}
.reservar__contacts{list-style:none;display:flex;flex-direction:column;gap:18px}
.reservar__contacts li{display:flex;flex-direction:column;gap:3px;border-top:1px solid var(--line-dark);padding-top:14px;font-size:.98rem}
.reservar__contacts span{font-size:.72rem;text-transform:uppercase;letter-spacing:.18em;color:var(--gold-lt)}
.reservar__contacts a{color:var(--on-dark);transition:color .25s}
.reservar__contacts a:hover{color:var(--emerald-lt)}
.form{background:rgba(244,241,233,.97);border-radius:var(--r);padding:clamp(26px,3vw,40px);color:var(--ink);display:flex;flex-direction:column;gap:14px;box-shadow:0 30px 80px rgba(0,0,0,.35)}
.form label{display:flex;flex-direction:column;gap:6px;font-size:.82rem;font-weight:600;letter-spacing:.02em;color:var(--ink)}
.form input,.form select,.form textarea{font-family:var(--fb);font-size:16px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);background:#fff;color:var(--ink)}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--emerald);outline-offset:0;border-color:transparent}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form__lgpd{flex-direction:row;align-items:flex-start;gap:10px;font-size:.78rem;font-weight:400;line-height:1.5;color:#49514a}
.form__lgpd input{width:18px;height:18px;flex:0 0 auto;margin-top:2px}
.form__lgpd a{color:var(--emerald);text-decoration:underline}
.form button{margin-top:6px}

/* ============================================================ FOOTER / FAB / COOKIE / CURSOR / CURTAIN */
.footer{background:var(--night);color:var(--on-dark);padding:clamp(56px,7vw,90px) 0 0}
.footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:36px;padding-bottom:48px}
.footer__brand img{height:60px;width:auto;filter:brightness(0) invert(1);margin-bottom:18px}
.footer__brand p{color:var(--mute-dark);font-size:.94rem;max-width:34ch}
.footer__col h4{font-family:var(--fd);font-size:1.2rem;color:var(--gold-lt);margin-bottom:16px;font-weight:600}
.footer__col a,.footer__col p{display:block;color:var(--mute-dark);font-size:.92rem;margin-bottom:10px;transition:color .25s}
.footer__col a:hover{color:var(--emerald-lt)}
.footer__bar{border-top:1px solid var(--line-dark);padding:22px 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;width:min(92vw,var(--container));margin-inline:auto;font-size:.8rem;color:var(--mute-dark)}
.footer__bar a{color:var(--gold-lt)}
.fab-wa{position:fixed;right:18px;bottom:18px;z-index:120;display:inline-flex;align-items:center;gap:9px;background:#1FA855;color:#fff;font-weight:600;padding:14px 20px;border-radius:999px;box-shadow:0 10px 30px rgba(0,0,0,.28);opacity:0;transform:translateY(14px);transition:opacity .45s,transform .45s}
.fab-wa.is-in{opacity:1;transform:none}.fab-wa:hover{background:#1c9b4e}
@media(max-width:560px){.fab-wa span{display:none}.fab-wa{padding:15px}}
.cookie{position:fixed;left:18px;bottom:18px;z-index:115;max-width:380px;background:var(--night);color:var(--on-dark);border:1px solid var(--line-dark);border-radius:var(--r);padding:18px 20px;display:flex;gap:16px;align-items:center;box-shadow:0 16px 40px rgba(0,0,0,.4)}
.cookie p{font-size:.82rem;color:var(--mute-dark);line-height:1.5}.cookie .btn{flex:0 0 auto}
@media(max-width:560px){.cookie{left:10px;right:10px;bottom:90px;max-width:none}}
.cur-dot,.cur-ring{position:fixed;top:0;left:0;border-radius:50%;pointer-events:none;z-index:210;opacity:0;transition:opacity .5s}
.cur-dot{width:7px;height:7px;background:var(--gold);margin:-3.5px 0 0 -3.5px}
.cur-ring{width:46px;height:46px;margin:-23px 0 0 -23px;background:radial-gradient(closest-side,rgba(244,241,233,.5),transparent 72%);mix-blend-mode:soft-light;filter:blur(1px);will-change:transform}
body.has-cursor .cur-dot,body.has-cursor .cur-ring{opacity:1}
#curtain{position:fixed;inset:0;z-index:300;background:var(--night);display:flex;align-items:center;justify-content:center;clip-path:circle(150% at 50% 50%);transition:clip-path 1s var(--ease-kur),opacity .5s ease}
#curtain.lift{clip-path:circle(0% at 50% 50%);opacity:0}
#curtain .arauc{width:110px;color:var(--emerald)}
#curtain .ap{stroke-dasharray:1;stroke-dashoffset:1}
#curtain.draw .ap{stroke-dashoffset:0;transition:stroke-dashoffset 1.5s var(--ease-kur)}

/* ============================================================ SCROLL-DRIVEN (progressive enhancement) */
@supports (animation-timeline:view()){
  .arauc .ap{animation:apdraw linear both;animation-timeline:view();animation-range:entry 5% cover 45%}
  .arauc .ap--trunk{animation-range:entry 0% cover 30%}
  .arauc .ap--crown{animation-range:entry 28% cover 58%}
  @keyframes apdraw{to{stroke-dashoffset:0}}
  .photo-settle{animation:settlefill linear both;animation-timeline:view();animation-range:entry 0% cover 56%}
  @keyframes settlefill{from{transform:scale(1.14)}to{transform:scale(1)}}
  .pin{view-timeline-name:--pin;view-timeline-axis:block}
  .pin__frame{animation:linear both;animation-timeline:--pin;animation-range:cover 0% cover 100%}
  .pin__frame--1{animation-name:pf1}.pin__frame--2{animation-name:pf2}.pin__frame--3{animation-name:pf3}
  @keyframes pf1{0%,26%{opacity:1}40%,100%{opacity:0}}
  @keyframes pf2{0%,26%{opacity:0}40%,58%{opacity:1}74%,100%{opacity:0}}
  @keyframes pf3{0%,58%{opacity:0}74%,100%{opacity:1}}
}
@supports (animation-timeline:scroll()){
  .nav__progress{animation:navgrow linear both;animation-timeline:scroll(root)}
  @keyframes navgrow{to{transform:scaleX(1)}}
  .hero__inner{animation:herolift linear both;animation-timeline:scroll(root);animation-range:10vh 88vh}
  @keyframes herolift{to{transform:translateY(-42px);opacity:0}}
}

/* ============================================================ RESPONSIVE */
@media(max-width:980px){.exp-card--tall{grid-row:auto}.morada-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:860px){
  .nav__links,.nav__cta{display:none}.nav__burger{display:flex}
  .manifesto__grid,.morada-feature,.serra__grid,.reservar__grid{grid-template-columns:1fr;gap:32px}
  .chapter--right .chapter__copy{text-align:left}
  .reviews__grid{grid-template-columns:1fr}.footer__grid{grid-template-columns:1fr 1fr}
  /* collapse the pin on mobile (perf + no scroll fatigue) */
  .pin{height:auto}.pin__stick{position:static;height:74vh}
  .pin__frame{animation:none!important}
  .pin__frame--1,.pin__frame--2{display:none}
  .pin__frame--3{opacity:1;position:relative;height:74vh}
  .cur-dot,.cur-ring{display:none}
}
@media(max-width:680px){
  body{font-size:16px}
  .stats{grid-template-columns:repeat(2,1fr);gap:32px 16px}
  .exp__grid{grid-template-columns:1fr}.exp-card--wide{grid-column:auto}.exp-card{min-height:300px}
  .morada-grid{grid-template-columns:1fr 1fr;gap:12px}
  .form__row{grid-template-columns:1fr}.footer__grid{grid-template-columns:1fr}.footer__bar{flex-direction:column}
  .chapter{min-height:64vh}
}

/* ============================================================ REDUCED MOTION / DATA (full honor) */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .hero__media img{animation:none!important;transform:none!important}
  .hero__inner{animation:none!important;transform:none!important;opacity:1!important}
  .mist,.mist-band,.hero__glow{animation:none!important;opacity:.05!important}
  .reveal,[data-reveal],.reveal-clip{opacity:1!important;transform:none!important;clip-path:none!important}
  .arauc .ap{stroke-dashoffset:0!important;animation:none!important}
  .hero__title .w{opacity:1!important;transform:none!important}
  .nav__progress{display:none!important}
  .photo-settle{animation:none!important;transform:none!important}
  .morada-feature__rule{transform:scaleY(1)!important}
  .pin{height:auto!important;view-timeline-name:none!important}
  .pin__stick{position:static!important;height:74vh!important}
  .pin__frame{animation:none!important}.pin__frame--1,.pin__frame--2{display:none!important}
  .pin__frame--3{opacity:1!important;position:relative!important;height:74vh!important}
  .pin__copy .eyebrow,.pin__copy .pin__line{opacity:1!important;transform:none!important}
  #curtain,.cur-dot,.cur-ring{display:none!important}
}
@media(prefers-reduced-data:reduce){.mist,.mist-band,.hero__glow,.cur-dot,.cur-ring{display:none!important}}
