/* ==========================================================================
   El Mañío · Condominio Termal
   Sistema de diseño derivado de plantillas_carrusel.md (identidad de marca)
   ========================================================================== */

:root{
  /* Paleta de marca */
  --bosque:      #1F2A22;
  --crema:       #EDE7DC;
  --verde:       #3F5642;
  --vapor:       #C8B7A0;
  --agua:        #6B8B96;
  --cobre:       #A87C56;

  /* Derivados */
  --bosque-90:   rgba(31,42,34,.90);
  --bosque-70:   rgba(31,42,34,.70);
  --bosque-40:   rgba(31,42,34,.40);
  --crema-70:    rgba(237,231,220,.70);
  --crema-45:    rgba(237,231,220,.45);
  --linea:       rgba(31,42,34,.14);
  --linea-light: rgba(237,231,220,.18);

  /* Tipografía */
  --serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans:  "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  /* Ritmo */
  --pad-x: clamp(1.25rem, 5vw, 6rem);
  --sec-y: clamp(5rem, 12vh, 10rem);
  --maxw:  1320px;

  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--crema);
  color:var(--bosque);
  font-family:var(--sans);
  font-weight:300;
  font-size:clamp(1rem,.95rem + .25vw,1.0625rem);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; }
h1,h2,h3{ margin:0; font-weight:400; }
p{ margin:0 0 1.15em; }
ul{ margin:0; padding:0; list-style:none; }

.skip-link{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--bosque); color:var(--crema);
  padding:.75rem 1.25rem; font-size:.875rem;
}
.skip-link:focus{ left:0; }

:focus-visible{ outline:2px solid var(--cobre); outline-offset:3px; }

/* ---------- Tipografía display ---------- */
.display{
  font-family:var(--serif);
  font-weight:300;
  line-height:1.12;
  letter-spacing:.012em;
  font-size:clamp(1.8rem,1.3rem + 2.4vw,3.15rem);
  text-wrap:balance;
}
.display--lg{ font-size:clamp(1.95rem,1.3rem + 3.1vw,3.9rem); }
.display--xl{ font-size:clamp(2.15rem,1.4rem + 4.2vw,5rem); }

/* Saltos de línea sólo en pantallas anchas. En mobile el texto fluye y se
   reparte solo: el espacio que va antes del <br> en el HTML mantiene la
   separación entre palabras cuando el salto se oculta. */
.br-d{ display:none; }
@media (min-width:760px){ .br-d{ display:inline; } }

/* Exponente tipográfico: el carácter ² de la serif se desalinea en tamaños display */
.sup{
  font-size:.52em;
  vertical-align:super;
  line-height:0;
  letter-spacing:0;
}

.eyebrow{
  font-family:var(--sans);
  font-size:.72rem;
  font-weight:400;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--verde);
  margin:0 0 1.5rem;
}
.eyebrow--light{ color:var(--vapor); }

.lead{
  font-size:clamp(1.08rem,1rem + .4vw,1.28rem);
  line-height:1.62;
  color:var(--bosque);
}
.section--dark .lead,
.closing .lead{ color:var(--crema); }

/* ---------- Botones ---------- */
.btn{
  --btn-bg:transparent;
  --btn-fg:var(--bosque);
  --btn-bd:currentColor;
  --btn-shadow:none;
  display:inline-flex; align-items:center; justify-content:center; gap:.7rem;
  padding:1.2rem 2.4rem;
  background:var(--btn-bg);
  color:var(--btn-fg);
  border:1px solid var(--btn-bd);
  box-shadow:var(--btn-shadow);
  font-family:var(--sans);
  font-size:.9rem;
  font-weight:500;
  letter-spacing:.12em;
  text-transform:uppercase;
  text-decoration:none;
  cursor:pointer;
  transition:background .4s var(--ease), color .4s var(--ease),
             border-color .4s var(--ease), transform .4s var(--ease),
             box-shadow .4s var(--ease);
}
.btn:hover{ transform:translateY(-3px); }
.btn:active{ transform:translateY(-1px); }

/* El sólido es el CTA primario: peso, elevación y un hover que se nota. */
.btn--solid{
  --btn-bg:var(--verde); --btn-fg:var(--crema); --btn-bd:var(--verde);
  --btn-shadow:0 4px 16px rgba(31,42,34,.24);
}
.btn--solid:hover{
  --btn-bg:var(--bosque); --btn-bd:var(--bosque);
  --btn-shadow:0 10px 30px rgba(31,42,34,.34);
}

.btn--ghost{ --btn-bg:transparent; --btn-fg:var(--crema); --btn-bd:var(--crema-45); }
.btn--ghost:hover{ --btn-bd:var(--crema); --btn-bg:rgba(237,231,220,.1); }

.btn--sm{ padding:.82rem 1.45rem; font-size:.78rem; letter-spacing:.1em; }
.btn--lg{ padding:1.38rem 3rem; font-size:.95rem; }
.btn--xl{ padding:1.56rem 3.75rem; font-size:1.02rem; }
.btn--block{ width:100%; }

.btn__ico{ width:1.25rem; height:1.25rem; display:inline-block; flex:none; }
.btn__ico svg{ width:100%; height:100%; display:block; }

/* ---------- Nav ---------- */
/* Altura constante a propósito: animar el padding de una barra fija provoca
   reflow en cada frame del scroll. La transición al estado sólido se resuelve
   sólo con propiedades de pintura (fondo y borde), que no tocan el layout. */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:100;
  padding:.9rem var(--pad-x);
  transition:background .5s var(--ease), border-color .5s var(--ease);
  border-bottom:1px solid transparent;
}
.nav.is-stuck{
  background:rgba(237,231,220,.94);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom-color:var(--linea);
}
.nav__inner{
  max-width:var(--maxw); margin-inline:auto;
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
}
.nav__brand{ position:relative; display:block; line-height:0; }
.nav__logo{
  width:clamp(96px,10vw,132px); height:auto;
  transition:opacity .5s var(--ease);
}
.nav__logo--dark{ position:absolute; inset:0; opacity:0; }
.nav.is-stuck .nav__logo--light{ opacity:0; }
.nav.is-stuck .nav__logo--dark{ opacity:1; }
.nav__links{ display:none; gap:2.1rem; }
.nav__links a{
  font-size:.78rem; letter-spacing:.1em; text-transform:uppercase;
  text-decoration:none; color:var(--crema); opacity:.85;
  transition:opacity .3s var(--ease), color .5s var(--ease);
}
.nav__links a:hover{ opacity:1; }
.nav.is-stuck .nav__links a{ color:var(--bosque); }
.nav:not(.is-stuck) .nav__cta{ --btn-bg:transparent; --btn-fg:var(--crema); --btn-bd:var(--crema-45); }
.nav:not(.is-stuck) .nav__cta:hover{ --btn-bg:var(--crema); --btn-fg:var(--bosque); --btn-bd:var(--crema); }

@media (min-width:1000px){ .nav__links{ display:flex; } }

/* ---------- Hero ---------- */
.hero{
  position:relative;
  min-height:100svh;
  display:flex; align-items:flex-end;
  padding:8rem var(--pad-x) clamp(3rem,8vh,6rem);
  overflow:hidden;
}
.hero__media{ position:absolute; inset:0; }
.hero__media img{
  width:100%; height:100%; object-fit:cover; object-position:center 42%;
  animation:heroIn 1.8s var(--ease) both;
}
@keyframes heroIn{ from{ transform:scale(1.06); opacity:0; } to{ transform:scale(1); opacity:1; } }

.hero__veil{
  position:absolute; inset:0;
  background:
    linear-gradient(to top, rgba(31,42,34,.92) 0%, rgba(31,42,34,.55) 38%, rgba(31,42,34,.18) 68%, rgba(31,42,34,.42) 100%);
}
.hero__content{
  position:relative;
  max-width:var(--maxw); margin-inline:auto; width:100%;
  color:var(--crema);
}
.hero__title{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(2.5rem,1.5rem + 5.4vw,6rem);
  line-height:1.04;
  letter-spacing:.01em;
  margin:0 0 1.6rem;
  max-width:16ch;
}
.hero__lead{
  font-size:clamp(1.05rem,1rem + .45vw,1.32rem);
  color:var(--crema-70);
  max-width:44ch;
  margin-bottom:2.4rem;
}
.hero__actions{ display:flex; flex-wrap:wrap; gap:.9rem; }

.hero__scarcity{
  position:absolute;
  right:var(--pad-x); top:52%;
  display:none; align-items:flex-start; gap:.7rem;
  color:var(--crema);
}
.hero__count{
  font-family:var(--serif); font-weight:300;
  font-size:clamp(4rem,8vw,7.5rem); line-height:.82;
  color:var(--vapor);
}
.hero__count-label{
  font-size:.72rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--crema-70); padding-top:.6rem; line-height:1.5;
}
@media (min-width:1100px){ .hero__scarcity{ display:flex; } }

/* ---------- Factbar ---------- */
.factbar{ background:var(--bosque); color:var(--crema); padding:clamp(2.2rem,5vh,3.4rem) var(--pad-x); }
.factbar__inner{
  max-width:var(--maxw); margin-inline:auto;
  display:grid; grid-template-columns:repeat(2,1fr); gap:2rem 1.5rem;
}
@media (min-width:860px){ .factbar__inner{ grid-template-columns:repeat(4,1fr); } }
.fact{ display:flex; flex-direction:column; gap:.35rem; }
.fact__value{
  font-family:var(--serif); font-weight:400;
  font-size:clamp(1.6rem,1.2rem + 1.4vw,2.3rem); line-height:1;
  color:var(--vapor);
}
.fact__label{
  font-size:.73rem; letter-spacing:.14em; text-transform:uppercase; color:var(--crema-45);
}

/* ---------- Secciones ---------- */
.section{ padding:var(--sec-y) var(--pad-x); }
.section--dark{ background:var(--bosque); color:var(--crema); }
.section--cream{ background:#E4DCCE; }

.section__head{ max-width:var(--maxw); margin:0 auto clamp(3rem,6vh,4.5rem); }
.section__sub{ color:var(--crema-70); max-width:52ch; margin-top:1rem; }
.section:not(.section--dark) .section__sub{ color:var(--verde); }

/* ---------- Intro ---------- */
.intro{ padding:var(--sec-y) var(--pad-x); }
.intro__inner{ max-width:var(--maxw); margin-inline:auto; }
.intro__cols{
  display:grid; gap:1.5rem 4rem; margin-top:2.6rem;
  max-width:76ch;
}
@media (min-width:820px){ .intro__cols{ grid-template-columns:1fr 1fr; max-width:none; } }
.intro__cols p{ margin:0; color:var(--verde); font-size:1.05rem; }
.intro__cols strong{ font-weight:500; color:var(--bosque); }

/* ---------- Split ---------- */
.split{
  max-width:var(--maxw); margin-inline:auto;
  display:grid; gap:clamp(2.5rem,5vw,5rem);
  align-items:center;
}
@media (min-width:900px){
  .split{ grid-template-columns:1fr 1fr; }
  .split--reverse .split__text{ order:2; }
}
.split__text{ max-width:56ch; }
.split__text .display{ margin-bottom:1.5rem; }
.split__text .btn{ margin-top:1.4rem; }

/* ---------- Figuras ---------- */
.fig{ margin:0; position:relative; overflow:hidden; background:var(--bosque-40); }
.fig img{ width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); }
.fig:hover img{ transform:scale(1.035); }
.fig figcaption{
  margin-top:.85rem;
  font-size:.75rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--verde);
}
.section--dark .fig figcaption{ color:var(--crema-45); }
.fig--tall{ aspect-ratio:4/5; }
.fig--wide{
  aspect-ratio:16/9; max-width:var(--maxw); margin:clamp(3rem,7vh,5rem) auto 0;
}
.fig--wide figcaption{ text-align:center; }

/* ---------- Masterplan ---------- */
/* El plano viene del brochure y es casi cuadrado: se acota para que no domine
   la sección y se centra. Sin recorte: el loteo debe leerse completo. */
.fig--plan{
  max-width:960px; margin:0 auto clamp(3rem,6vh,4.5rem);
  background:transparent;
}
.fig--plan img{ width:100%; height:auto; object-fit:contain; }
.fig--plan:hover img{ transform:none; }
.fig--plan figcaption{ text-align:center; }

.plots{ max-width:var(--maxw); margin-inline:auto; }
.plots__title{
  font-family:var(--sans); font-size:.73rem; font-weight:400;
  letter-spacing:.18em; text-transform:uppercase; color:var(--verde);
  margin-bottom:1.5rem;
}
.plots__grid{
  display:grid; gap:.5rem;
  grid-template-columns:repeat(auto-fill,minmax(132px,1fr));
}
.plot{
  display:flex; flex-direction:column; gap:.15rem;
  padding:.8rem .9rem;
  border:1px solid var(--linea);
  font-size:.72rem;
}
.plot__n{ font-family:var(--serif); font-size:1.35rem; line-height:1; }
.plot__s{ letter-spacing:.06em; text-transform:uppercase; font-size:.65rem; }

.plot--sold{ color:rgba(63,86,66,.5); background:transparent; }
.plot--common,
.plot--termas{ color:var(--verde); background:rgba(200,183,160,.28); border-color:transparent; }

.plot--free{ padding:0; border-color:var(--cobre); background:var(--cobre); }
.plot--free a{
  display:flex; flex-direction:column; gap:.15rem;
  padding:.8rem .9rem; height:100%;
  color:var(--crema); text-decoration:none;
  transition:background .4s var(--ease);
}
.plot--free a:hover{ background:var(--bosque); }
.plot--free .plot__n{ font-size:1.6rem; }

.plots__legend{
  display:flex; flex-wrap:wrap; gap:1.5rem;
  margin-top:1.6rem; padding-top:1.3rem; border-top:1px solid var(--linea);
  font-size:.75rem; color:var(--verde);
}
.lg{ display:inline-flex; align-items:center; gap:.5rem; }
.lg__sw{ width:.85rem; height:.85rem; display:inline-block; }
.lg__sw--free{ background:var(--cobre); }
.lg__sw--sold{ border:1px solid var(--linea); }
.lg__sw--common{ background:rgba(200,183,160,.55); }

/* ---------- Checklist ---------- */
.checklist{ margin:1.8rem 0 0; display:grid; gap:.85rem; }
.checklist li{
  position:relative; padding-left:1.6rem;
  font-size:.98rem; color:var(--crema-70);
}
.checklist li::before{
  content:""; position:absolute; left:0; top:.62em;
  width:.55rem; height:1px; background:var(--cobre);
}
.section:not(.section--dark) .checklist li{ color:var(--verde); }

/* ---------- Galerías ---------- */
.gallery{
  max-width:var(--maxw); margin:clamp(3rem,7vh,5rem) auto 0;
  display:grid; gap:1.4rem;
}
.gallery--2{ grid-template-columns:1fr; }
.gallery--3{ grid-template-columns:1fr; }
@media (min-width:700px){
  .gallery--2{ grid-template-columns:repeat(2,1fr); }
  .gallery--3{ grid-template-columns:repeat(3,1fr); }
}
.gallery .fig{ aspect-ratio:3/4; }
.gallery .fig figcaption{ position:static; }

/* ---------- Feature grid ---------- */
.feature-grid{
  max-width:var(--maxw); margin-inline:auto;
  display:grid; gap:clamp(2rem,4vw,3rem); grid-template-columns:1fr;
}
@media (min-width:640px){ .feature-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1060px){ .feature-grid{ grid-template-columns:repeat(4,1fr); } }
.feature .fig{ aspect-ratio:3/4; margin-bottom:1.4rem; }
.feature__title{
  font-family:var(--serif); font-weight:400;
  font-size:1.35rem; line-height:1.25; margin-bottom:.6rem;
}
.feature p{ font-size:.95rem; color:var(--verde); margin:0; }

/* ---------- CTA band ---------- */
.cta-band{
  background:var(--verde); color:var(--crema);
  padding:clamp(3.5rem,9vh,6rem) var(--pad-x);
  text-align:center;
}
.cta-band__inner{ max-width:56ch; margin-inline:auto; }
.cta-band p{ color:var(--crema-70); margin:1.1rem 0 2rem; }

/* ---------- Specs ---------- */
.specs{ margin-top:2.2rem; border-top:1px solid var(--linea); }
.spec{
  display:flex; justify-content:space-between; align-items:baseline; gap:1.5rem;
  padding:.95rem 0; border-bottom:1px solid var(--linea);
}
.spec__k{ font-size:.75rem; letter-spacing:.13em; text-transform:uppercase; color:var(--verde); }
.spec__v{ font-family:var(--serif); font-size:1.15rem; text-align:right; }
.spec__v--accent{ color:var(--cobre); }

/* ---------- Amenities ---------- */
.amenities{
  max-width:var(--maxw); margin-inline:auto;
  display:grid; gap:0; grid-template-columns:1fr;
  border-top:1px solid var(--linea-light);
}
@media (min-width:700px){ .amenities{ grid-template-columns:repeat(2,1fr); column-gap:3.5rem; } }
@media (min-width:1100px){ .amenities{ grid-template-columns:repeat(3,1fr); } }
.amenity{
  display:flex; align-items:baseline; gap:1.1rem;
  padding:1.05rem 0; border-bottom:1px solid var(--linea-light);
  font-size:.98rem; color:var(--crema-70);
}
.amenity__n{
  font-family:var(--serif); font-size:.9rem; color:var(--cobre);
  min-width:1.8rem; letter-spacing:.05em;
}

/* ---------- Distancias ---------- */
.distances{ display:flex; flex-wrap:wrap; gap:1.5rem 2.6rem; margin:2rem 0 1.8rem; }
.distance{ display:flex; flex-direction:column; gap:.2rem; }
.distance__t{ font-family:var(--serif); font-size:clamp(2rem,1.5rem + 1.6vw,2.8rem); line-height:1; color:var(--cobre); }
.distance__d{ font-size:.75rem; letter-spacing:.13em; text-transform:uppercase; color:var(--verde); }

/* ---------- Price card ---------- */
.price-card{
  max-width:var(--maxw); margin:0 auto clamp(3.5rem,8vh,5.5rem);
  background:var(--bosque); color:var(--crema);
  display:grid; grid-template-columns:1fr;
  gap:2.5rem;
  padding:clamp(2rem,5vw,3.5rem);
}
@media (min-width:860px){
  .price-card{ grid-template-columns:1.35fr 1fr; gap:4rem; align-items:center; }
}
.price-card__label{
  display:block; font-size:.73rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--crema-45); margin-bottom:.9rem;
}
.price-card__value{
  display:block; font-family:var(--serif); font-weight:300;
  font-size:clamp(3.2rem,2rem + 5vw,5.4rem); line-height:.95; color:var(--vapor);
}
.price-card__value span{ font-size:.36em; letter-spacing:.06em; margin-left:.25em; color:var(--crema-70); }
.price-card__note{ display:block; margin-top:1.1rem; color:var(--crema-70); font-size:.95rem; max-width:38ch; }
.price-card__aside{ border-top:1px solid var(--linea-light); padding-top:1.8rem; }
@media (min-width:860px){
  .price-card__aside{ border-top:0; border-left:1px solid var(--linea-light); padding:0 0 0 4rem; }
}
.price-card__stock{
  display:block; font-family:var(--serif); font-size:1.3rem; color:var(--cobre); margin-bottom:1.4rem;
}
.price-card__legal{ margin:1rem 0 0; font-size:.78rem; color:var(--crema-45); }

/* ---------- Steps ---------- */
.steps{
  max-width:var(--maxw); margin-inline:auto;
  display:grid; gap:clamp(2rem,4vw,3.5rem); grid-template-columns:1fr;
}
@media (min-width:800px){ .steps{ grid-template-columns:repeat(3,1fr); } }
.step{ border-top:1px solid var(--linea); padding-top:1.5rem; }
.step__n{
  display:block; font-family:var(--serif); font-size:1.6rem; color:var(--cobre); margin-bottom:.8rem;
}
.step__t{ font-family:var(--serif); font-size:1.45rem; font-weight:400; margin-bottom:.7rem; }
.step p{ margin:0; font-size:.95rem; color:var(--verde); }

/* ---------- Closing ---------- */
.closing{
  position:relative; overflow:hidden;
  padding:clamp(5rem,14vh,9rem) var(--pad-x);
  color:var(--crema); text-align:center;
}
.closing__bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.closing__veil{ position:absolute; inset:0; background:var(--bosque-90); }
.closing__inner{ position:relative; max-width:60ch; margin-inline:auto; }
.closing__lead{ color:var(--crema-70); margin:1.5rem 0 2.6rem; font-size:1.08rem; }
.closing__alt{
  margin-top:2.6rem; display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem 1rem;
  font-size:.87rem; color:var(--crema-45);
}
.closing__alt a{ color:var(--crema-70); text-decoration:none; border-bottom:1px solid transparent; transition:border-color .3s var(--ease); }
.closing__alt a:hover{ border-bottom-color:var(--cobre); }

/* ---------- Footer ---------- */
.footer{ background:var(--bosque); color:var(--crema-70); padding:clamp(3rem,7vh,4.5rem) var(--pad-x) 2rem; border-top:1px solid var(--linea-light); }
.footer__inner{
  max-width:var(--maxw); margin-inline:auto;
  display:grid; gap:2.8rem; grid-template-columns:1fr;
}
@media (min-width:820px){ .footer__inner{ grid-template-columns:1.4fr 1fr 1fr; gap:3.5rem; } }
.footer__brand img{ width:130px; height:auto; margin-bottom:1.2rem; }
.footer__brand p{ font-size:.9rem; line-height:1.7; margin:0; }
.footer__nav, .footer__contact{ display:flex; flex-direction:column; gap:.65rem; }
.footer__nav a, .footer__contact a{
  font-size:.88rem; text-decoration:none; color:var(--crema-70);
  transition:color .3s var(--ease);
}
.footer__nav a:hover, .footer__contact a:hover{ color:var(--vapor); }
.footer__social{ display:flex; gap:1.2rem; margin-top:.7rem; }
.footer__bottom{
  max-width:var(--maxw); margin:3rem auto 0; padding-top:1.6rem;
  border-top:1px solid var(--linea-light);
  font-size:.78rem; color:var(--crema-45);
}
.footer__bottom p{ margin:0 0 .5rem; }
.footer__disclaimer{ max-width:70ch; }

/* ---------- WhatsApp flotante ---------- */
.wa-float{
  position:fixed; right:1rem; bottom:1rem; z-index:90;
  display:inline-flex; align-items:center; gap:.7rem;
  padding:1.06rem 1.6rem;
  background:var(--verde); color:var(--crema);
  text-decoration:none;
  font-size:.88rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase;
  box-shadow:0 8px 30px rgba(31,42,34,.34);
  transform:translateY(120%);
  opacity:0;
  transition:transform .6s var(--ease), opacity .6s var(--ease),
             background .4s var(--ease), box-shadow .4s var(--ease);
}
.wa-float.is-visible{ transform:translateY(0); opacity:1; }
.wa-float:hover{ background:var(--bosque); box-shadow:0 12px 38px rgba(31,42,34,.42); }
.wa-float.is-visible:hover{ transform:translateY(-3px); }
.wa-float svg{ width:1.45rem; height:1.45rem; flex:none; display:block; }
@media (min-width:700px){ .wa-float{ right:1.75rem; bottom:1.75rem; } }
@media (max-width:420px){ .wa-float__txt{ display:none; } .wa-float{ padding:1.15rem; border-radius:50%; } }

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

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  .reveal{ opacity:1; transform:none; }
  .hero__media img{ animation:none; }
  .wa-float{ transform:none; opacity:1; }
}

/* ---------- Print ---------- */
@media print{
  .nav,.wa-float,.hero__actions,.cta-band{ display:none !important; }
  body{ background:#fff; color:#000; }
}
