/* ============================================================
   1 · TOKENS — enAlma design system (ver brand-spec.md)
   ============================================================ */
:root{
  /* neutros */
  --bg:#d7cbbf;
  --bg-deep:#cec1b4;
  --surface:#e9e1d9;
  --surface-2:#f1ece6;
  --border:#c3b6a8;
  --ink:#37332a;
  --ink-soft:#6d6355;
  --ink-faint:#8a8071;

  /* marca */
  --olive:#3f4032;
  --olive-deep:#33342a;
  --teja:#9f5f45;
  --ocre:#996637;
  --salvia:#7d8f66;
  --lima:#e4f2b8;
  --crema:#ebe9df;

  /* tipografía */
  --display:'Cormorant Garamond',"Iowan Old Style",Georgia,serif;
  --body:'Jost',-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;

  /* escala fluida */
  --t-hero:clamp(50px,9vw,134px);
  --t-xl:clamp(38px,5.6vw,82px);
  --t-lg:clamp(30px,3.9vw,56px);
  --t-md:clamp(22px,2.4vw,34px);
  --t-lead:clamp(17px,1.55vw,25px);
  --t-body:clamp(14.5px,1.02vw,16.5px);
  --t-small:13px;
  --t-eyebrow:11px;

  /* ritmo */
  --gutter:clamp(20px,4.6vw,72px);
  --sec:clamp(88px,11.5vw,178px);
  --maxw:1400px;

  /* forma */
  --r-lg:22px;
  --r-md:14px;
  --r-sm:10px;
  --shadow-float:0 30px 70px -34px rgba(48,38,28,.62);
  --shadow-soft:0 18px 44px -30px rgba(48,38,28,.5);

  /* movimiento */
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
}

/* ============================================================
   2 · BASE
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  font-family:var(--body);
  font-size:var(--t-body);
  font-weight:300;
  line-height:1.62;
  color:var(--ink);
  background:var(--bg);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
button,input,select,textarea{font:inherit;color:inherit;}
::selection{background:var(--lima);color:var(--olive);}
:focus-visible{outline:2px solid var(--teja);outline-offset:3px;border-radius:4px;}

.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);}

/* ============================================================
   3 · TIPOGRAFÍA
   ============================================================ */
.display{
  font-family:var(--display);
  font-weight:400;
  line-height:.98;
  letter-spacing:-.012em;
  text-wrap:balance;
}
.display em{font-style:italic;font-weight:400;}
.eyebrow{
  display:inline-block;
  font-size:var(--t-eyebrow);
  font-weight:500;
  letter-spacing:.17em;
  text-transform:uppercase;
  line-height:1;
}
.pill-eyebrow{
  background:var(--lima);
  color:#4b5323;
  padding:6px 12px 5px;
  border-radius:999px;
}
.lead{
  font-size:var(--t-lead);
  font-weight:300;
  line-height:1.48;
  letter-spacing:-.005em;
  text-wrap:pretty;
}
.muted{color:var(--ink-soft);}

/* enlace subrayado que se dibuja */
.link-ul{
  display:inline-block;
  position:relative;
  font-size:var(--t-eyebrow);
  font-weight:500;
  letter-spacing:.16em;
  text-transform:uppercase;
  padding-bottom:4px;
  transition:color .4s var(--ease);
}
.link-ul::after{
  content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;
  background:currentColor;transform-origin:right;transform:scaleX(1);
  transition:transform .45s var(--ease-out);
}
.link-ul:hover{color:var(--teja);}
.link-ul:hover::after{transform-origin:left;animation:ul-redraw .55s var(--ease-out);}
@keyframes ul-redraw{0%{transform:scaleX(1);transform-origin:right;}
  49%{transform:scaleX(0);transform-origin:right;}
  50%{transform:scaleX(0);transform-origin:left;}
  100%{transform:scaleX(1);transform-origin:left;}}

/* ============================================================
   4 · BOTONES — barrido de relleno desde abajo
   ============================================================ */
.btn{
  --btn-fg:var(--ink);
  --btn-bg:transparent;
  --btn-bd:var(--ink);
  --btn-hover-fg:var(--surface);
  --btn-hover-bg:var(--olive);
  position:relative;
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 26px 13px;
  border:1px solid var(--btn-bd);
  border-radius:999px;
  background:var(--btn-bg);
  color:var(--btn-fg);
  font-size:var(--t-eyebrow);font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;line-height:1;
  cursor:pointer;overflow:hidden;isolation:isolate;
  transition:color .45s var(--ease),border-color .45s var(--ease),transform .45s var(--ease-out);
}
.btn::before{
  content:'';position:absolute;inset:0;z-index:-1;
  background:var(--btn-hover-bg);
  transform:translateY(101%);
  transition:transform .55s var(--ease-out);
}
.btn:hover{color:var(--btn-hover-fg);border-color:var(--btn-hover-bg);}
.btn:hover::before{transform:translateY(0);}
.btn:active{transform:scale(.97);}
.btn .ico{width:13px;height:13px;flex:none;transition:transform .45s var(--ease-out);}
.btn:hover .ico{transform:translateX(4px);}

.btn--solid{--btn-bg:var(--surface);--btn-bd:transparent;--btn-hover-bg:var(--olive);}
.btn--light{--btn-fg:var(--crema);--btn-bd:rgba(235,233,223,.42);--btn-hover-fg:var(--olive);--btn-hover-bg:var(--crema);}
.btn--filled{--btn-fg:var(--crema);--btn-bg:var(--teja);--btn-bd:var(--teja);--btn-hover-fg:var(--crema);--btn-hover-bg:var(--olive);}
.btn--sm{padding:11px 20px 10px;}

/* ============================================================
   5 · NAV — píldora flotante
   ============================================================ */
.nav{
  position:fixed;top:16px;left:50%;translate:-50% 0;z-index:120;
  width:min(1180px,calc(100% - var(--gutter)));
  transition:translate .55s var(--ease-out),opacity .4s var(--ease);
}
.nav.is-hidden{translate:-50% -140%;opacity:0;}
.nav__inner{
  display:flex;align-items:center;gap:clamp(12px,2vw,26px);
  padding:11px 11px 11px clamp(18px,2vw,30px);
  border-radius:999px;
  background:color-mix(in oklab,var(--surface) 84%,transparent);
  backdrop-filter:blur(16px) saturate(1.3);
  -webkit-backdrop-filter:blur(16px) saturate(1.3);
  box-shadow:0 2px 30px -18px rgba(48,38,28,.7);
  transition:background .5s var(--ease),box-shadow .5s var(--ease),padding .5s var(--ease);
}
.nav.is-stuck .nav__inner{
  background:color-mix(in oklab,var(--surface) 96%,transparent);
  box-shadow:0 10px 34px -24px rgba(48,38,28,.75);
}

/* logotipo enAlma */
.logo{display:inline-flex;align-items:baseline;gap:.06em;font-family:var(--display);
  font-size:clamp(22px,2.1vw,27px);font-weight:500;line-height:1;letter-spacing:.005em;color:var(--ink);
  transition:opacity .35s var(--ease);}
.logo span{font-variant:small-caps;letter-spacing:.06em;}
.logo:hover{opacity:.62;}
.logo__leaf{
  /* icono de marca: la mujer con las dos hojas (manual Entropía del Alma).
     Va mayor que la caja de texto y desborda con margen negativo para no
     hacer crecer la píldora del nav. */
  width:1.85em;height:1.85em;margin-inline:.14em;align-self:center;
  margin-block:-.55em;flex:none;
  background:var(--ink);
  -webkit-mask:url(ea-icono.png) center/contain no-repeat;
  mask:url(ea-icono.png) center/contain no-repeat;
  transition:transform .6s var(--ease-out),background .4s var(--ease);}
.logo:hover .logo__leaf{transform:rotate(-6deg) scale(1.06);}

.nav__links{display:flex;align-items:center;gap:clamp(14px,1.8vw,30px);margin-left:auto;}
.nav__links a{
  position:relative;font-size:var(--t-eyebrow);font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;
  transition:color .35s var(--ease);
}
.nav__links a::after{
  content:'';position:absolute;left:0;right:0;bottom:-5px;height:1px;background:var(--teja);
  transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease-out);
}
.nav__links a:hover{color:var(--teja);}
.nav__links a:hover::after{transform:scaleX(1);transform-origin:left;}
.nav__cta{margin-left:6px;}

.nav__burger{
  display:none;width:44px;height:44px;margin-left:auto;
  border:1px solid var(--border);border-radius:999px;background:transparent;cursor:pointer;
  align-items:center;justify-content:center;flex-direction:column;gap:5px;
  transition:background .35s var(--ease);
}
.nav__burger:hover{background:rgba(63,64,50,.07);}
.nav__burger i{display:block;width:16px;height:1.4px;background:var(--ink);border-radius:2px;
  transition:transform .45s var(--ease-out),opacity .3s var(--ease);}
body.menu-open .nav__burger i:nth-child(1){transform:translateY(3.2px) rotate(45deg);}
body.menu-open .nav__burger i:nth-child(2){opacity:0;transform:scaleX(.3);}
body.menu-open .nav__burger i:nth-child(3){transform:translateY(-3.6px) rotate(-45deg);}

/* menú móvil */
.menu{
  position:fixed;inset:0;z-index:110;background:var(--olive);color:var(--crema);
  display:flex;flex-direction:column;justify-content:safe center;gap:6px;
  padding:104px var(--gutter) 48px;
  /* Con un acordeon abierto el contenido pasa de la altura de pantalla: sin
     esto los primeros enlaces quedaban debajo de la pildora del logo y no
     habia forma de llegar a ellos. `safe center` evita que se recorte arriba. */
  overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  clip-path:circle(0% at calc(100% - 44px) 44px);
  transition:clip-path .8s var(--ease-out);
  pointer-events:none;
}
body.menu-open .menu{clip-path:circle(150% at calc(100% - 44px) 44px);pointer-events:auto;}
.menu a{font-family:var(--display);font-size:clamp(34px,9vw,54px);line-height:1.18;
  opacity:0;transform:translateY(22px);transition:opacity .5s var(--ease),transform .6s var(--ease-out),color .3s;}
.menu a:hover{color:var(--lima);}
body.menu-open .menu a{opacity:1;transform:none;}
body.menu-open .menu__row:nth-of-type(1) a{transition-delay:.18s}
body.menu-open .menu__row:nth-of-type(2) a{transition-delay:.24s}
body.menu-open .menu__row:nth-of-type(3) a{transition-delay:.3s}
body.menu-open .menu__row:nth-of-type(4) a{transition-delay:.36s}
body.menu-open .menu__row:nth-of-type(5) a{transition-delay:.42s}
body.menu-open .menu__row:nth-of-type(6) a{transition-delay:.48s}
.menu__foot{margin-top:34px;font-size:var(--t-eyebrow);letter-spacing:.16em;text-transform:uppercase;
  color:rgba(235,233,223,.6);opacity:0;transition:opacity .5s .55s var(--ease);}
body.menu-open .menu__foot{opacity:1;}

/* ============================================================
   6 · HERO
   ============================================================ */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;
  overflow:hidden;background:var(--olive-deep);}
.hero__media{position:absolute;inset:0;z-index:0;}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:52% 42%;
  transform:scale(1.14);animation:kenburns 26s var(--ease) infinite alternate;}
@keyframes kenburns{
  from{transform:scale(1.14) translate3d(0,0,0);}
  to{transform:scale(1.26) translate3d(-1.4%,-2%,0);}
}
.hero__media::after{
  content:'';position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(40,34,26,.42) 0%,rgba(40,34,26,0) 26%),
    linear-gradient(0deg,rgba(40,34,26,.72) 0%,rgba(40,34,26,.06) 48%),
    radial-gradient(120% 80% at 50% 50%,transparent 40%,rgba(40,34,26,.34) 100%);
}
.hero__mark{
  position:relative;z-index:2;flex:1;
  display:flex;align-items:center;justify-content:center;
  padding-top:64px;
}
.hero__mark svg{width:clamp(88px,10vw,140px);height:auto;overflow:visible;
  animation:floaty 7s ease-in-out infinite;}
@keyframes floaty{0%,100%{transform:translateY(0) rotate(0deg);}50%{transform:translateY(-13px) rotate(1.4deg);}}
.hero__mark path{
  fill:none;stroke:var(--lima);stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:var(--len,360);stroke-dashoffset:var(--len,360);
  animation:draw 2.1s var(--ease-out) .35s forwards;
}
.hero__mark path:nth-child(2){animation-delay:.75s}
.hero__mark path:nth-child(3){animation-delay:.9s}
.hero__mark path:nth-child(4){animation-delay:1.05s}
.hero__mark path:nth-child(5){animation-delay:1.2s}
.hero__mark path:nth-child(6){animation-delay:1.35s}
.hero__mark path:nth-child(7){animation-delay:1.5s}
@keyframes draw{to{stroke-dashoffset:0;}}

.hero__foot{
  position:relative;z-index:2;
  display:grid;grid-template-columns:1fr auto;align-items:flex-end;gap:34px;
  padding-block:0 clamp(30px,4.4vw,62px);
}
.hero__title{
  font-family:var(--display);font-weight:400;color:var(--crema);
  font-size:var(--t-hero);line-height:.92;letter-spacing:-.022em;
  text-shadow:0 2px 40px rgba(40,34,26,.4);
}
.hero__title em{font-style:italic;}
.hero__title .ln{display:block;overflow:hidden;}
.hero__title .ln > span{display:block;transform:translateY(105%);
  animation:rise 1.1s var(--ease-out) forwards;}
.hero__title .ln:nth-child(1) > span{animation-delay:.35s}
.hero__title .ln:nth-child(2) > span{animation-delay:.47s}
@keyframes rise{to{transform:translateY(0);}}

/* tarjeta de novedades */
.newscard{
  width:min(330px,86vw);
  background:color-mix(in oklab,var(--surface) 92%,transparent);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-radius:var(--r-md);padding:18px 18px 15px;
  box-shadow:var(--shadow-float);
  opacity:0;transform:translateY(26px);
  animation:fadeUp .9s var(--ease-out) .95s forwards;
  transition:transform .5s var(--ease-out),box-shadow .5s var(--ease);
}
@keyframes fadeUp{to{opacity:1;transform:none;}}
.newscard:hover{transform:translateY(-6px);box-shadow:0 36px 76px -34px rgba(48,38,28,.7);}
.newscard p{font-size:14.5px;line-height:1.42;color:var(--ink);}
.newscard__row{display:flex;align-items:center;justify-content:space-between;margin-top:22px;}
.newscard__arrow{width:15px;height:15px;color:var(--ink-soft);transition:transform .45s var(--ease-out);}
.newscard:hover .newscard__arrow{transform:translateX(5px);}

.hero__scroll{
  position:absolute;left:50%;translate:-50% 0;bottom:clamp(30px,4.4vw,62px);z-index:2;
  width:1px;height:52px;background:linear-gradient(180deg,transparent,rgba(235,233,223,.75));
  overflow:hidden;
}
.hero__scroll::after{content:'';position:absolute;inset:0;background:var(--lima);
  animation:scrollcue 2.4s var(--ease) infinite;}
@keyframes scrollcue{0%{transform:translateY(-100%);}60%,100%{transform:translateY(100%);}}

/* ============================================================
   7 · MANIFIESTO
   ============================================================ */
.manifest{padding-block:var(--sec);text-align:center;position:relative;}
.manifest__text{
  max-width:29ch;margin-inline:auto;
  font-family:var(--body);font-weight:300;
  font-size:clamp(20px,2.28vw,33px);line-height:1.34;letter-spacing:-.015em;
  text-wrap:balance;
}
.manifest__text em{font-family:var(--display);font-style:italic;font-size:1.1em;}
.manifest__rule{width:1px;height:clamp(56px,7vw,96px);background:var(--border);
  margin:clamp(34px,4.6vw,64px) auto clamp(26px,3.4vw,42px);transform-origin:top;}
.pillars{display:flex;justify-content:center;gap:clamp(30px,6vw,86px);flex-wrap:wrap;}
.pillar{display:flex;flex-direction:column;align-items:center;gap:14px;max-width:170px;}
.pillar__ico{
  width:clamp(38px,4vw,50px);height:clamp(38px,4vw,50px);
  background:var(--salvia);
  -webkit-mask-position:center;mask-position:center;
  -webkit-mask-size:contain;mask-size:contain;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  transition:transform .7s var(--ease-out),background .45s var(--ease);
}
.pillar:hover .pillar__ico{transform:translateY(-7px) rotate(-8deg) scale(1.09);background:var(--teja);}
.pillar span{font-size:var(--t-eyebrow);font-weight:500;letter-spacing:.15em;
  text-transform:uppercase;color:var(--ink-soft);text-align:center;line-height:1.5;}

/* ============================================================
   8 · SERVICIOS
   ============================================================ */
.services{padding-bottom:var(--sec);}
.sec-head{
  display:grid;grid-template-columns:1fr auto;align-items:end;gap:34px;
  margin-bottom:clamp(30px,3.6vw,52px);
}
.sec-head__title{font-size:var(--t-xl);margin-top:20px;max-width:16ch;}
.sec-head__aside{text-align:right;max-width:34ch;}
.sec-head__aside p{color:var(--ink-soft);font-size:15px;line-height:1.5;margin-bottom:14px;}

.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.2vw,18px);}
.card{
  position:relative;display:block;border-radius:var(--r-md);overflow:hidden;
  aspect-ratio:16/13;background:var(--bg-deep);
  transition:transform .7s var(--ease-out),box-shadow .6s var(--ease);
}
.card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform 1.15s var(--ease-out),filter .7s var(--ease);}
.card::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(40,34,26,.34) 0%,rgba(40,34,26,0) 34%,rgba(40,34,26,0) 46%,rgba(40,34,26,.62) 100%);
  transition:opacity .6s var(--ease);
}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-float);}
.card:hover img{transform:scale(1.075);filter:saturate(1.06);}
.card__label{
  position:absolute;top:18px;left:20px;z-index:2;
  font-family:var(--display);font-size:clamp(21px,1.9vw,27px);font-weight:400;
  color:var(--crema);line-height:1;
}
.card__foot{
  position:absolute;left:20px;right:20px;bottom:18px;z-index:2;
  display:flex;align-items:flex-end;justify-content:space-between;gap:14px;
}
.card__desc{
  color:rgba(235,233,223,.94);font-size:13.5px;line-height:1.45;max-width:30ch;
  transform:translateY(6px);opacity:.9;
  transition:transform .6s var(--ease-out),opacity .5s var(--ease);
}
.card:hover .card__desc{transform:none;opacity:1;}
.card__arrow{
  width:34px;height:34px;flex:none;border-radius:999px;
  border:1px solid rgba(235,233,223,.5);color:var(--crema);
  display:grid;place-items:center;
  opacity:0;transform:translateY(10px) scale(.85);
  transition:opacity .5s var(--ease),transform .6s var(--ease-out),background .4s,color .4s;
}
.card:hover .card__arrow{opacity:1;transform:none;}
.card__arrow:hover,.card:hover .card__arrow:hover{background:var(--lima);color:var(--olive);border-color:var(--lima);}
.card__arrow svg{width:13px;height:13px;}

/* ============================================================
   9 · EL CENTRO — polaroids
   ============================================================ */
.studio{padding-bottom:var(--sec);}
.studio__grid{
  display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,5vw,80px);align-items:center;
}
.polaroids{position:relative;min-height:clamp(330px,38vw,520px);}
.polaroid{
  position:absolute;background:var(--surface-2);padding:11px 11px 34px;
  border-radius:4px;box-shadow:var(--shadow-soft);
  transition:transform .8s var(--ease-out),box-shadow .6s var(--ease),z-index 0s;
  will-change:transform;
}
.polaroid img{border-radius:2px;object-fit:cover;width:100%;height:100%;}
.polaroid figcaption{
  position:absolute;left:11px;right:11px;bottom:11px;
  font-size:9.5px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;
  color:var(--ink-faint);
}
.polaroid--a{width:44%;aspect-ratio:4/3.2;left:2%;top:6%;transform:rotate(-7deg);z-index:2;}
.polaroid--b{width:40%;aspect-ratio:4/4.5;left:33%;top:26%;transform:rotate(5deg);z-index:3;}
.polaroid--c{width:36%;aspect-ratio:4/3.4;left:63%;top:2%;transform:rotate(9deg);z-index:1;}
.polaroid:hover{transform:rotate(0deg) scale(1.06);z-index:5;box-shadow:0 34px 72px -32px rgba(48,38,28,.7);}

.studio__body h2{font-size:var(--t-lg);margin:18px 0 22px;}
.studio__body p{color:var(--ink-soft);max-width:46ch;margin-bottom:16px;}
.studio__body .btn{margin-top:14px;}

/* ============================================================
   10 · AGENDA — banda oscura con parallax
   ============================================================ */
.agenda{position:relative;overflow:hidden;background:var(--olive-deep);
  padding-block:clamp(90px,11vw,150px);color:var(--crema);}
.agenda__bg{position:absolute;inset:-12% 0;z-index:0;}
.agenda__bg img{width:100%;height:100%;object-fit:cover;filter:brightness(.52) saturate(.82);
  will-change:transform;}
.agenda__bg::after{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(51,52,42,.62),rgba(51,52,42,.34) 40%,rgba(51,52,42,.78));}
.agenda .wrap{position:relative;z-index:2;}
.agenda__head{text-align:center;max-width:640px;margin:0 auto clamp(38px,5vw,68px);}
.agenda__head h2{font-size:var(--t-xl);margin:20px 0 18px;color:var(--crema);}
.agenda__head p{color:rgba(235,233,223,.78);max-width:36ch;margin:0 auto 26px;font-size:15.5px;}

.event{
  display:grid;grid-template-columns:1fr .82fr;gap:clamp(20px,2.4vw,34px);
  align-items:center;
  background:var(--surface);border-radius:var(--r-lg);
  padding:clamp(20px,2.4vw,30px);
  max-width:940px;margin-inline:auto;
  box-shadow:var(--shadow-float);
  transition:transform .7s var(--ease-out),box-shadow .6s var(--ease);
}
.event:hover{transform:translateY(-7px);box-shadow:0 44px 90px -38px rgba(30,26,18,.85);}
.event__body{text-align:center;padding:clamp(6px,2vw,26px) clamp(4px,2vw,22px);color:var(--ink);}
.event__date{background:var(--lima);color:#4b5323;padding:6px 12px 5px;border-radius:999px;}
.event__body h3{font-family:var(--display);font-weight:400;font-size:var(--t-md);
  line-height:1.06;letter-spacing:-.015em;margin:18px 0 14px;}
.event__place{font-size:var(--t-eyebrow);font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-soft);}
.event__body p{font-size:14px;line-height:1.55;color:var(--ink-soft);margin:16px auto 22px;max-width:34ch;}
.event__media{border-radius:var(--r-md);overflow:hidden;aspect-ratio:4/4.6;}
.event__media img{width:100%;height:100%;object-fit:cover;
  transition:transform 1.1s var(--ease-out);}
.event:hover .event__media img{transform:scale(1.06);}

/* ============================================================
   11 · PRIMERA VISITA
   ============================================================ */
.first{padding-block:var(--sec);}
.first__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,80px);align-items:start;}
.first__body h2{font-size:var(--t-lg);margin:18px 0 18px;}
.first__body > p{color:var(--ink-soft);max-width:44ch;margin-bottom:26px;}
.minicards{display:grid;grid-template-columns:1fr 1fr;gap:clamp(10px,1vw,14px);
  margin-top:clamp(40px,5vw,74px);}
.minicard{
  background:var(--surface-2);border-radius:var(--r-md);padding:20px 20px 22px;
  transition:transform .6s var(--ease-out),background .5s var(--ease);
}
.minicard:hover{transform:translateY(-5px);background:var(--surface);}
.minicard__ico{width:30px;height:30px;background:var(--ink);margin-bottom:26px;
  -webkit-mask-position:center;mask-position:center;
  -webkit-mask-size:contain;mask-size:contain;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  transition:background .45s var(--ease),transform .6s var(--ease-out);}
.minicard:hover .minicard__ico{background:var(--salvia);transform:rotate(-8deg) scale(1.08);}
.minicard h3{font-size:15px;font-weight:400;margin-bottom:8px;}
.minicard p{font-size:13.5px;line-height:1.5;color:var(--ink-soft);}
.first__media{border-radius:var(--r-md);overflow:hidden;aspect-ratio:4/4.6;}
.first__media img{width:100%;height:100%;object-fit:cover;will-change:transform;}

/* ============================================================
   12 · BLOG
   ============================================================ */
.journal{padding-bottom:var(--sec);}
.journal .sec-head{align-items:flex-end;}
.posts{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,1.4vw,22px);}
.post{display:block;}
.post__media{border-radius:var(--r-md);overflow:hidden;aspect-ratio:16/9.2;background:var(--bg-deep);}
.post__media img{width:100%;height:100%;object-fit:cover;
  transition:transform 1.1s var(--ease-out),filter .6s var(--ease);}
.post:hover .post__media img{transform:scale(1.06);filter:saturate(1.05);}
.post__tags{display:flex;gap:6px;margin:16px 0 12px;}
.post__tags span{background:var(--lima);color:#4b5323;font-size:10px;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;padding:5px 9px 4px;border-radius:4px;}
.post h3{font-family:var(--display);font-weight:400;font-size:clamp(20px,1.75vw,26px);
  line-height:1.18;letter-spacing:-.01em;margin-bottom:12px;max-width:32ch;
  transition:color .4s var(--ease);}
.post:hover h3{color:var(--teja);}
.post time{font-size:var(--t-eyebrow);font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-faint);}

/* ============================================================
   13 · FOOTER
   ============================================================ */
.foot{position:relative;background:var(--olive-deep);color:var(--crema);overflow:hidden;}
.foot__cta{position:relative;min-height:clamp(440px,52vw,660px);
  display:grid;place-items:center;text-align:center;padding-block:clamp(70px,9vw,110px);}
.foot__collage{position:absolute;inset:0;z-index:0;pointer-events:none;}
.foot__collage img{position:absolute;border-radius:var(--r-sm);object-fit:cover;
  box-shadow:0 24px 50px -30px rgba(0,0,0,.7);will-change:transform;
  filter:brightness(.84) saturate(.88) contrast(1.02);}
.foot__collage img:nth-child(1){width:clamp(92px,10.5vw,158px);aspect-ratio:4/5;left:7%;top:30%;}
.foot__collage img:nth-child(2){width:clamp(84px,9vw,132px);aspect-ratio:4/3;left:24%;top:70%;}
.foot__collage img:nth-child(3){width:clamp(76px,8.2vw,120px);aspect-ratio:4/5;right:9%;top:20%;}
.foot__collage img:nth-child(4){width:clamp(98px,10.8vw,164px);aspect-ratio:4/5.2;right:21%;top:62%;}
.foot__collage img:nth-child(5){width:clamp(72px,7.6vw,112px);aspect-ratio:4/4.4;left:43%;top:6%;}
.foot__cta__in{position:relative;z-index:2;}
.foot__cta h2{font-size:var(--t-xl);color:var(--crema);margin-bottom:30px;}
.foot__cta .row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}

.foot__main{position:relative;z-index:2;border-top:1px solid rgba(235,233,223,.15);}
.foot__cols{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(30px,5vw,70px);
  padding-block:clamp(38px,4.6vw,58px);}
.news h3{font-family:var(--display);font-weight:400;font-size:clamp(21px,2vw,29px);margin-bottom:20px;}
.news form{display:flex;align-items:center;gap:8px;max-width:420px;
  border-bottom:1px solid rgba(235,233,223,.3);padding-bottom:10px;
  transition:border-color .4s var(--ease);}
.news form:focus-within{border-color:var(--lima);}
.news input{flex:1;background:transparent;border:0;outline:none;color:var(--crema);
  font-size:15px;font-weight:300;padding:6px 0;}
.news input::placeholder{color:rgba(235,233,223,.45);}
.news button{background:none;border:0;cursor:pointer;color:rgba(235,233,223,.75);
  font-size:var(--t-eyebrow);font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  padding:6px 2px;transition:color .35s var(--ease);}
.news button:hover{color:var(--lima);}
.news .msg{font-size:12.5px;margin-top:12px;min-height:18px;color:var(--lima);
  opacity:0;transform:translateY(-4px);transition:opacity .4s,transform .4s var(--ease-out);}
.news .msg.show{opacity:1;transform:none;}
.news .msg.err{color:#e9b39a;}

.foot__nav{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-content:start;}
.foot__nav a{display:block;font-size:var(--t-eyebrow);font-weight:500;letter-spacing:.16em;
  text-transform:uppercase;padding:7px 0;color:rgba(235,233,223,.82);
  transition:color .35s var(--ease),transform .45s var(--ease-out);}
.foot__nav a:hover{color:var(--lima);transform:translateX(5px);}

.foot__mark{border-top:1px solid rgba(235,233,223,.15);padding-block:clamp(26px,3vw,38px);
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;}
.foot__mark .logo{color:var(--crema);font-size:clamp(26px,3vw,40px);}
.foot__mark .logo__leaf{background:var(--crema);}
.foot__mark small,.foot__mark .legal{font-size:11.5px;color:rgba(235,233,223,.55);}
.foot__mark .legal{display:flex;gap:14px;justify-content:flex-end;flex-wrap:wrap;}
.foot__mark .legal a{transition:color .3s;}
.foot__mark .legal a:hover{color:var(--lima);}

.foot__base{border-top:1px solid rgba(235,233,223,.15);padding-block:18px;
  display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
  font-size:11.5px;color:rgba(235,233,223,.5);}
.foot__base em{font-family:var(--display);font-size:14px;font-style:italic;}
.socials{display:flex;gap:14px;}
.socials a{width:28px;height:28px;display:grid;place-items:center;border-radius:999px;
  border:1px solid rgba(235,233,223,.22);transition:all .4s var(--ease);}
.socials a:hover{background:var(--lima);border-color:var(--lima);color:var(--olive);transform:translateY(-3px);}
.socials svg{width:13px;height:13px;}

/* ============================================================
   14 · REVEALS AL SCROLL
   ============================================================ */
.rv{opacity:0;transform:translateY(30px);
  transition:opacity .95s var(--ease-out),transform 1.05s var(--ease-out);}
.rv.in{opacity:1;transform:none;}
.rv-d1{transition-delay:.09s}.rv-d2{transition-delay:.18s}.rv-d3{transition-delay:.27s}
.rv-line{transform:scaleY(0);transition:transform 1.1s var(--ease-out);}
.rv-line.in{transform:scaleY(1);}

/* ============================================================
   15 · RESPONSIVE — 360 · 390 · 430 · 600 · 768 · 820 · 1024 · 1366 · 1440 · 1920
   ============================================================ */
@media (max-width:1180px){
  .sec-head__aside{max-width:30ch;}
  .polaroid--a{width:47%}.polaroid--b{width:43%}.polaroid--c{width:38%}
}
@media (max-width:1024px){
  .nav__links{display:none;}
  .nav__cta{display:none;}
  .nav__burger{display:flex;}
  .cards{grid-template-columns:1fr 1fr;}
  .cards .card:last-child{grid-column:1 / -1;aspect-ratio:16/8;}
  .studio__grid,.first__grid{grid-template-columns:1fr;gap:clamp(34px,6vw,54px);}
  .polaroids{min-height:min(74vw,430px);}
  .first__media{aspect-ratio:16/11;}
  .foot__collage img:nth-child(5){display:none;}
}
@media (max-width:860px){
  .hero__foot{grid-template-columns:1fr;align-items:flex-start;gap:26px;}
  .newscard{width:min(360px,100%);}
  .event{grid-template-columns:1fr;}
  .event__media{aspect-ratio:16/10;order:-1;}
  .sec-head{grid-template-columns:1fr;align-items:flex-start;gap:20px;}
  .sec-head__aside{text-align:left;max-width:46ch;}
  .foot__cols{grid-template-columns:1fr;}
  .foot__mark{grid-template-columns:1fr;text-align:center;justify-items:center;gap:16px;}
  .foot__mark .legal{justify-content:center;}
}
@media (max-width:680px){
  :root{--sec:clamp(64px,15vw,96px);}
  .cards{grid-template-columns:1fr;}
  .cards .card,.cards .card:last-child{aspect-ratio:16/12;grid-column:auto;}
  .posts{grid-template-columns:1fr;gap:34px;}
  .pillars{gap:22px clamp(14px,4vw,26px);flex-wrap:nowrap;}
  .pillar{max-width:110px;flex:1 1 0;gap:10px;}
  .pillar span{font-size:10px;letter-spacing:.11em;}
  .manifest__text{max-width:22ch;}
  .foot__cta{min-height:420px;}
  .foot__collage img:nth-child(2),.foot__collage img:nth-child(4){opacity:.55;}
  .foot__base{justify-content:center;text-align:center;}
}
@media (max-width:520px){
  .nav{top:10px;}
  .hero__mark{padding-top:40px;}
  .minicards{grid-template-columns:1fr;}
  .polaroid figcaption{font-size:8px;}
  .polaroid{padding:8px 8px 26px;}
  .foot__collage img:nth-child(1){left:-3%;top:14%;}
  .foot__collage img:nth-child(3){right:-2%;top:8%;}
  .foot__collage img:nth-child(4){right:6%;top:66%;}
}
@media (max-width:380px){
  .btn{padding:12px 18px 11px;letter-spacing:.12em;}
  .foot__cta .row{flex-direction:column;align-items:stretch;}
  .foot__cta .row .btn{justify-content:center;}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;
    transition-duration:.01ms !important;scroll-behavior:auto !important;}
  .rv{opacity:1;transform:none;}
  .hero__title .ln > span{transform:none;}
  .hero__mark path{stroke-dashoffset:0;}
  .newscard{opacity:1;transform:none;}
}

/* ============================================================
   16 · PÁGINAS INTERIORES — hero compacto
   ============================================================ */
.phero{
  position:relative;display:flex;align-items:flex-end;
  min-height:clamp(430px,56vw,620px);
  overflow:hidden;background:var(--olive-deep);
}
.phero__media{position:absolute;inset:0;z-index:0;}
.phero__media img{width:100%;height:100%;object-fit:cover;
  transform:scale(1.08);animation:kenburns 30s var(--ease) infinite alternate;}
.phero__media::after{
  content:'';position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(40,34,26,.58) 0%,rgba(40,34,26,.08) 34%),
    linear-gradient(0deg,rgba(40,34,26,.84) 0%,rgba(40,34,26,.14) 64%),
    rgba(40,34,26,.12);
}
/* el nav es fixed: reservamos su alto arriba para que nunca pise el titular */
.phero__in{position:relative;z-index:2;padding-block:clamp(96px,11vw,120px) clamp(34px,5vw,64px);}
.phero__crumb{
  display:flex;align-items:center;gap:9px;margin-bottom:clamp(14px,1.8vw,22px);
  font-size:var(--t-eyebrow);font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(235,233,223,.62);
}
.phero__crumb a{transition:color .35s var(--ease);}
.phero__crumb a:hover{color:var(--lima);}
.phero__crumb i{width:12px;height:1px;background:currentColor;flex:none;font-style:normal;}
.phero h1{
  font-family:var(--display);font-weight:400;color:var(--crema);
  font-size:var(--t-xl);line-height:.98;letter-spacing:-.02em;max-width:15ch;
  text-shadow:0 2px 40px rgba(40,34,26,.35);
}
.phero h1 em{font-style:italic;}
.phero__lead{color:rgba(235,233,223,.8);max-width:44ch;margin-top:20px;font-size:var(--t-lead);
  font-weight:300;line-height:1.45;}

/* nav — página activa */
.nav__links a[aria-current="page"]{color:var(--teja);}
.nav__links a[aria-current="page"]::after{transform:scaleX(1);transform-origin:left;}
.menu a[aria-current="page"]{color:var(--lima);}

/* ============================================================
   17 · BLOQUES DE SERVICIO — filas alternas
   ============================================================ */
.svc{padding-block:clamp(56px,7.5vw,104px);}
.svc + .svc{border-top:1px solid var(--border);}
.svc__grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(30px,5vw,78px);align-items:center;}
.svc--flip .svc__media{order:2;}
.svc__media{position:relative;border-radius:var(--r-md);overflow:hidden;aspect-ratio:4/4.4;
  background:var(--bg-deep);box-shadow:var(--shadow-soft);}
.svc__media img{width:100%;height:100%;object-fit:cover;
  transition:transform 1.2s var(--ease-out);will-change:transform;}
.svc:hover .svc__media img{transform:scale(1.045);}
.svc__body h2{font-size:var(--t-lg);margin:18px 0 18px;}
.svc__body > p{color:var(--ink-soft);max-width:48ch;margin-bottom:8px;}

.svc__list{margin:clamp(24px,3vw,36px) 0 clamp(26px,3vw,34px);border-top:1px solid var(--border);}
.svc__list li{
  display:flex;align-items:baseline;gap:14px;list-style:none;
  border-bottom:1px solid var(--border);padding:13px 4px 12px;
  transition:padding-left .5s var(--ease-out),color .4s var(--ease);
}
.svc__list li:hover{padding-left:12px;}
.svc__list li b{font-weight:400;font-size:15.5px;flex:none;min-width:14ch;}
.svc__list li span{font-size:13.5px;line-height:1.5;color:var(--ink-soft);}
.svc__list li::before{
  content:'';width:13px;height:13px;flex:none;align-self:center;background:var(--salvia);
  -webkit-mask:url(bot-hoja.png) center/contain no-repeat;
  mask:url(bot-hoja.png) center/contain no-repeat;
  opacity:.55;transition:opacity .4s var(--ease),transform .55s var(--ease-out);
}
.svc__list li:hover::before{opacity:1;transform:rotate(-14deg) scale(1.15);}
.svc__note{font-size:13px;color:var(--ink-faint);margin-top:-8px;margin-bottom:24px;font-style:italic;
  font-family:var(--display);font-size:16px;}

/* ============================================================
   18 · PASOS — banda oscura numerada
   ============================================================ */
.steps{position:relative;overflow:hidden;background:var(--olive-deep);color:var(--crema);
  padding-block:clamp(80px,10vw,132px);}
.steps__bg{position:absolute;inset:-12% 0;z-index:0;}
.steps__bg img{width:100%;height:100%;object-fit:cover;filter:brightness(.42) saturate(.75);will-change:transform;}
.steps__bg::after{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(51,52,42,.72),rgba(51,52,42,.5) 45%,rgba(51,52,42,.85));}
.steps .wrap{position:relative;z-index:2;}
.steps__head{text-align:center;max-width:620px;margin:0 auto clamp(40px,5vw,66px);}
.steps__head h2{font-size:var(--t-xl);margin:20px 0 16px;color:var(--crema);}
.steps__head p{color:rgba(235,233,223,.76);max-width:38ch;margin-inline:auto;font-size:15.5px;}
.steps__row{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,34px);}
.step{border-top:1px solid rgba(235,233,223,.22);padding-top:22px;
  transition:border-color .5s var(--ease);}
.step:hover{border-color:var(--lima);}
.step__n{font-family:var(--display);font-size:clamp(38px,4.4vw,60px);line-height:1;
  color:var(--lima);opacity:.85;display:block;margin-bottom:16px;}
.step h3{font-family:var(--display);font-weight:400;font-size:var(--t-md);line-height:1.1;
  margin-bottom:12px;color:var(--crema);}
.step p{font-size:14.5px;line-height:1.58;color:rgba(235,233,223,.72);max-width:32ch;}

/* ============================================================
   19 · HISTORIA / RETRATO
   ============================================================ */
.story{padding-block:var(--sec);}
.story__grid{display:grid;grid-template-columns:1fr .82fr;gap:clamp(32px,5.5vw,84px);align-items:center;}
.story__body h2{font-size:var(--t-lg);margin:18px 0 22px;}
.story__body p{color:var(--ink-soft);max-width:50ch;margin-bottom:16px;}
.story__portrait{position:relative;}
.story__portrait figure{border-radius:var(--r-md);overflow:hidden;aspect-ratio:4/4.9;
  box-shadow:var(--shadow-float);background:var(--bg-deep);}
.story__portrait img{width:100%;height:100%;object-fit:cover;
  transition:transform 1.2s var(--ease-out);}
.story__portrait:hover img{transform:scale(1.04);}
.story__portrait figcaption{margin-top:16px;font-size:var(--t-eyebrow);font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);}
.story__portrait figcaption em{display:block;font-family:var(--display);font-style:italic;
  font-size:17px;letter-spacing:0;text-transform:none;color:var(--ink-faint);margin-top:6px;}

/* ============================================================
   20 · TARJETAS DE ROL (equipo)
   ============================================================ */
.roles{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.4vw,20px);}
.role{background:var(--surface-2);border-radius:var(--r-md);padding:clamp(22px,2.4vw,30px);
  transition:transform .6s var(--ease-out),background .5s var(--ease);}
.role:hover{transform:translateY(-6px);background:var(--surface);}
.role__ico{width:34px;height:34px;background:var(--ink);margin-bottom:26px;
  -webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  transition:background .45s var(--ease),transform .6s var(--ease-out);}
.role:hover .role__ico{background:var(--salvia);transform:rotate(-9deg) scale(1.08);}
.role h3{font-family:var(--display);font-weight:400;font-size:var(--t-md);line-height:1.1;margin-bottom:12px;}
.role p{font-size:14px;line-height:1.55;color:var(--ink-soft);}

/* ============================================================
   21 · GALERÍA DEL ESPACIO
   ============================================================ */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);
  grid-template-rows:repeat(2,clamp(168px,18.5vw,258px));gap:clamp(10px,1.1vw,16px);}
.gallery figure{position:relative;border-radius:var(--r-md);overflow:hidden;background:var(--bg-deep);
  transition:transform .7s var(--ease-out),box-shadow .6s var(--ease);}
.gallery figure:hover{transform:translateY(-6px);box-shadow:var(--shadow-float);}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform 1.15s var(--ease-out);}
.gallery figure:hover img{transform:scale(1.06);}
.gallery figcaption{position:absolute;left:16px;bottom:14px;z-index:2;
  font-size:10px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;
  color:var(--crema);text-shadow:0 1px 12px rgba(40,34,26,.8);}
.gallery figure::after{content:'';position:absolute;inset:0;
  background:linear-gradient(0deg,rgba(40,34,26,.6) 0%,rgba(40,34,26,0) 42%);}
.gallery figure{height:100%;}
.gallery .g--tall{grid-row:span 2;}
.gallery .g--wide{grid-column:span 2;}

/* ============================================================
   22 · CITA — banda oscura
   ============================================================ */
.quote{position:relative;overflow:hidden;background:var(--olive-deep);color:var(--crema);
  padding-block:clamp(78px,9.5vw,128px);text-align:center;}
.quote__bg{position:absolute;inset:-12% 0;z-index:0;}
.quote__bg img{width:100%;height:100%;object-fit:cover;filter:brightness(.4) saturate(.7);will-change:transform;}
.quote__bg::after{content:'';position:absolute;inset:0;background:rgba(51,52,42,.62);}
.quote .wrap{position:relative;z-index:2;}
.quote blockquote{font-family:var(--display);font-weight:300;font-style:italic;
  font-size:clamp(27px,4.2vw,58px);line-height:1.12;letter-spacing:-.02em;
  max-width:19ch;margin-inline:auto;text-wrap:balance;}
.quote cite{display:block;margin-top:28px;font-family:var(--body);font-style:normal;
  font-size:var(--t-eyebrow);font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(235,233,223,.6);}

/* ============================================================
   23 · CONTACTO — formulario + datos
   ============================================================ */
.contact{padding-block:var(--sec);}
.contact__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(30px,4.4vw,68px);align-items:start;}

.form{background:var(--surface-2);border-radius:var(--r-lg);padding:clamp(24px,3vw,40px);}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,1.8vw,24px);}
.field{margin-bottom:clamp(18px,2.2vw,26px);}
.field label{display:block;font-size:var(--t-eyebrow);font-weight:500;letter-spacing:.15em;
  text-transform:uppercase;color:var(--ink-soft);margin-bottom:9px;}
.field input,.field select,.field textarea{
  width:100%;background:transparent;border:0;border-bottom:1px solid var(--border);
  padding:9px 2px;font-size:15.5px;font-weight:300;color:var(--ink);
  border-radius:0;appearance:none;
  transition:border-color .4s var(--ease);
}
.field textarea{resize:vertical;min-height:96px;line-height:1.5;}
.field select{cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--ink-soft) 50%),linear-gradient(135deg,var(--ink-soft) 50%,transparent 50%);
  background-position:calc(100% - 11px) 18px,calc(100% - 6px) 18px;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:26px;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--teja);}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-faint);}
.field.is-bad input,.field.is-bad select,.field.is-bad textarea{border-color:#b4623f;}
.field .err{display:block;font-size:12px;color:#a4542f;margin-top:7px;min-height:0;
  opacity:0;transform:translateY(-3px);transition:opacity .35s,transform .35s var(--ease-out);}
.field.is-bad .err{opacity:1;transform:none;}

.consent{display:flex;align-items:flex-start;gap:11px;margin-bottom:26px;}
.consent input{appearance:none;width:17px;height:17px;flex:none;margin-top:2px;
  border:1px solid var(--border);border-radius:4px;background:transparent;cursor:pointer;
  transition:background .3s var(--ease),border-color .3s var(--ease);}
.consent input:checked{background:var(--olive);border-color:var(--olive);}
.consent input:checked::after{content:'';display:block;width:5px;height:9px;margin:1px auto 0;
  border:solid var(--lima);border-width:0 1.6px 1.6px 0;transform:rotate(42deg);}
.consent label{font-size:12.5px;line-height:1.5;color:var(--ink-soft);}
.consent a{text-decoration:underline;text-underline-offset:3px;}
.consent.is-bad input{border-color:#b4623f;}
.form__msg{margin-top:18px;font-size:14px;line-height:1.5;color:var(--olive);
  opacity:0;transform:translateY(-4px);transition:opacity .45s,transform .45s var(--ease-out);}
.form__msg.show{opacity:1;transform:none;}

.info{display:grid;gap:clamp(14px,1.6vw,20px);}
.infocard{background:var(--surface-2);border-radius:var(--r-md);padding:clamp(20px,2.2vw,28px);
  transition:background .5s var(--ease),transform .6s var(--ease-out);}
.infocard:hover{background:var(--surface);transform:translateY(-4px);}
.infocard h3{font-size:var(--t-eyebrow);font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-soft);margin-bottom:14px;}
.infocard p,.infocard a{font-family:var(--display);font-size:clamp(19px,1.7vw,25px);line-height:1.28;}
.infocard a{transition:color .35s var(--ease);}
.infocard a:hover{color:var(--teja);}
.infocard small{display:block;font-family:var(--body);font-size:13px;color:var(--ink-faint);margin-top:9px;}
.hours{display:grid;gap:9px;}
.hours div{display:flex;justify-content:space-between;gap:16px;font-family:var(--body);
  font-size:14.5px;border-bottom:1px solid var(--border);padding-bottom:8px;}
.hours div:last-child{border-bottom:0;padding-bottom:0;}
.hours span:last-child{color:var(--ink-soft);}

/* dato pendiente de confirmar con la clienta */
.tbd{border-bottom:1.5px dotted var(--teja);cursor:help;color:var(--teja);}

/* ============================================================
   24 · FAQ
   ============================================================ */
.faq{padding-bottom:var(--sec);}
.faq__list{border-top:1px solid var(--border);max-width:860px;}
.faq details{border-bottom:1px solid var(--border);}
.faq summary{
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:clamp(18px,2vw,24px) 4px;cursor:pointer;list-style:none;
  font-family:var(--display);font-size:clamp(19px,1.8vw,26px);font-weight:400;line-height:1.25;
  transition:color .4s var(--ease);
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary:hover{color:var(--teja);}
.faq summary i{position:relative;width:15px;height:15px;flex:none;font-style:normal;}
.faq summary i::before,.faq summary i::after{content:'';position:absolute;background:currentColor;
  transition:transform .45s var(--ease-out),opacity .3s;}
.faq summary i::before{left:0;top:7px;width:15px;height:1.3px;}
.faq summary i::after{left:7px;top:0;width:1.3px;height:15px;}
.faq details[open] summary i::after{transform:scaleY(0);opacity:0;}
.faq details[open] summary{color:var(--teja);}
.faq__a{overflow:hidden;}
.faq__a p{padding:0 4px clamp(20px,2.4vw,28px);max-width:62ch;color:var(--ink-soft);font-size:15px;}
.faq details[open] .faq__a{animation:faqOpen .5s var(--ease-out);}
@keyframes faqOpen{from{opacity:0;transform:translateY(-8px);}to{opacity:1;transform:none;}}

/* ============================================================
   25 · RESPONSIVE — páginas interiores
   ============================================================ */
@media (max-width:1024px){
  .svc__grid{grid-template-columns:1fr;gap:clamp(26px,4vw,40px);}
  .svc--flip .svc__media{order:0;}
  .svc__media{aspect-ratio:16/11;}
  .story__grid{grid-template-columns:1fr;gap:clamp(30px,5vw,46px);}
  .story__portrait figure{aspect-ratio:16/12;}
  .contact__grid{grid-template-columns:1fr;}
  .gallery{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(3,clamp(150px,22vw,210px));}
  .gallery .g--tall{grid-row:span 1;}
  .gallery .g--wide{grid-column:span 2;}
}
@media (max-width:860px){
  .steps__row{grid-template-columns:1fr;gap:0;}
  .step{padding-block:24px 26px;}
  .roles{grid-template-columns:1fr;}
  .phero h1{max-width:none;}
}
@media (max-width:680px){
  .phero{min-height:clamp(470px,104vw,580px);}
  .phero__media::after{background:
    linear-gradient(180deg,rgba(40,34,26,.6) 0%,rgba(40,34,26,.12) 32%),
    linear-gradient(0deg,rgba(40,34,26,.8) 0%,rgba(40,34,26,.2) 70%),
    rgba(40,34,26,.2);}
  .phero__in{padding-block:clamp(104px,26vw,124px) clamp(30px,7vw,44px);}
  .phero__lead{font-size:16px;max-width:34ch;margin-top:16px;}
  .form__row{grid-template-columns:1fr;gap:0;}
  .svc__list li{flex-direction:column;gap:6px;align-items:flex-start;}
  .svc__list li::before{align-self:flex-start;margin-top:4px;}
  .svc__list li b{min-width:0;}
  .gallery{grid-template-columns:1fr;grid-template-rows:none;grid-auto-rows:clamp(190px,52vw,260px);}
  .gallery .g--wide,.gallery .g--tall,.gallery figure{grid-column:auto;grid-row:auto;}
}

/* ============================================================
   26 · CTA DE LLAMADA
   ============================================================ */
.cta-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:clamp(22px,2.8vw,32px);}
.cta-row .btn{white-space:nowrap;}
.cta-note{font-size:12.5px;color:rgba(235,233,223,.66);letter-spacing:.02em;}

/* botón de teléfono grande */
.btn--call{--btn-fg:var(--olive);--btn-bg:var(--lima);--btn-bd:var(--lima);
  --btn-hover-fg:var(--lima);--btn-hover-bg:var(--olive);
  font-size:12px;padding:16px 28px 15px;}
.btn--call .ico{width:15px;height:15px;}
.btn--call:hover .ico{transform:rotate(-12deg) scale(1.1);}

/* banda de llamada */
.callband{position:relative;overflow:hidden;background:var(--olive);color:var(--crema);
  padding-block:clamp(60px,7.5vw,96px);}
.callband__in{display:grid;grid-template-columns:1.25fr auto;gap:clamp(24px,4vw,56px);align-items:center;}
.callband h2{font-size:var(--t-lg);color:var(--crema);margin-bottom:14px;}
.callband p{color:rgba(235,233,223,.76);max-width:44ch;font-size:15.5px;}
.callband__leaf{position:absolute;right:-40px;top:50%;translate:0 -50%;
  width:clamp(180px,22vw,300px);height:clamp(180px,22vw,300px);
  background:var(--lima);opacity:.09;pointer-events:none;
  -webkit-mask:url(bot-helecho.png) center/contain no-repeat;
  mask:url(bot-helecho.png) center/contain no-repeat;}
.callband__num{display:flex;flex-direction:column;align-items:flex-end;gap:12px;text-align:right;}
.callband__num .tel{font-family:var(--display);font-size:clamp(28px,3.4vw,46px);line-height:1;
  color:var(--lima);letter-spacing:-.01em;transition:opacity .35s var(--ease);}
a.callband__telwrap:hover .tel{opacity:.75;}
.callband__num small{font-size:12.5px;color:rgba(235,233,223,.6);}

/* barra fija de llamada — solo móvil */
.callbar{
  position:fixed;left:0;right:0;bottom:0;z-index:130;
  display:none;gap:10px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));
  background:color-mix(in oklab,var(--olive-deep) 94%,transparent);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-top:1px solid rgba(235,233,223,.16);
  transform:translateY(110%);transition:transform .5s var(--ease-out);
}
.callbar.in{transform:none;}
.callbar a{
  flex:1;display:flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 10px 13px;border-radius:999px;
  font-size:11.5px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;line-height:1;
}
.callbar .b-call{background:var(--lima);color:var(--olive);}
.callbar .b-book{background:transparent;color:var(--crema);border:1px solid rgba(235,233,223,.4);}
.callbar svg{width:14px;height:14px;flex:none;}
body.has-callbar .foot__base{padding-bottom:78px;}
@media (max-width:860px){ .callbar{display:flex;} }

/* ============================================================
   27 · MOTIVOS DE CONSULTA / QUÉ TRATAMOS
   ============================================================ */
.motivos{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(10px,1.2vw,16px);}
.motivo{
  background:var(--surface-2);border-radius:var(--r-md);padding:clamp(18px,2vw,24px);
  border:1px solid transparent;
  transition:transform .55s var(--ease-out),background .45s var(--ease),border-color .45s var(--ease);
}
.motivo:hover{transform:translateY(-5px);background:var(--surface);border-color:var(--border);}
.motivo h3{font-family:var(--display);font-weight:400;font-size:clamp(19px,1.65vw,23px);
  line-height:1.16;margin-bottom:9px;}
.motivo p{font-size:13.5px;line-height:1.5;color:var(--ink-soft);}
.motivo__soon{display:inline-block;margin-top:12px;font-size:9.5px;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);
  border:1px solid var(--border);border-radius:999px;padding:4px 9px 3px;}

/* ============================================================
   28 · ZONAS (páginas de municipio del plan)
   ============================================================ */
.zonas{border-top:1px solid var(--border);padding-top:clamp(22px,2.6vw,32px);
  margin-top:clamp(30px,3.6vw,48px);}
.zonas h3{font-size:var(--t-eyebrow);font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-soft);margin-bottom:16px;}
.zonas ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;}
.zonas li{font-size:13px;color:var(--ink-soft);background:var(--surface-2);
  border-radius:999px;padding:7px 14px 6px;transition:background .4s var(--ease),color .4s var(--ease);}
.zonas li:hover{background:var(--surface);color:var(--ink);}
.zonas small{display:block;margin-top:14px;font-size:12px;color:var(--ink-faint);}

@media (max-width:1024px){ .motivos{grid-template-columns:repeat(2,1fr);} }
@media (max-width:860px){
  .callband__in{grid-template-columns:1fr;gap:24px;}
  .callband__num{align-items:flex-start;text-align:left;}
}
@media (max-width:680px){ .motivos{grid-template-columns:1fr;} }

/* ============================================================
   29 · CORRECCIONES DE MÓVIL (revisión 1-sep)
   ============================================================ */

/* CTA: no pueden ir pegados ni con anchos distintos */
.cta-row{gap:14px;}
@media (max-width:560px){
  .cta-row{flex-direction:column;align-items:stretch;gap:12px;}
  .cta-row .btn{justify-content:center;}
  .foot__cta .row{flex-direction:column;align-items:stretch;gap:12px;max-width:340px;margin-inline:auto;}
  .foot__cta .row .btn{justify-content:center;}
  .callband__num{align-items:stretch;}
  .callband__num .btn{justify-content:center;}
}
.callbar{gap:12px;}

/* la hojita de las listas se quedaba sola en su línea */
@media (max-width:680px){
  .svc__list li{
    display:grid;grid-template-columns:auto 1fr;
    column-gap:12px;row-gap:5px;align-items:baseline;
  }
  .svc__list li::before{grid-area:1 / 1;align-self:center;margin-top:1px;}
  .svc__list li b{grid-area:1 / 2;min-width:0;}
  .svc__list li span{grid-area:2 / 2;}
}

/* icono botánico en las tarjetas de motivo — menos muro de texto */
.motivo__ico{
  width:38px;height:38px;background:var(--salvia);margin-bottom:16px;opacity:.85;
  -webkit-mask-position:center;mask-position:center;
  -webkit-mask-size:contain;mask-size:contain;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  transition:background .45s var(--ease),transform .6s var(--ease-out);
}
.motivo:hover .motivo__ico{background:var(--teja);transform:rotate(-9deg) scale(1.1);}

/* ============================================================
   30 · BANDA DE FOTO — aire entre bloques de texto
   ============================================================ */
.photoband{position:relative;overflow:hidden;min-height:clamp(300px,42vw,460px);
  display:flex;align-items:flex-end;background:var(--olive-deep);}
.photoband img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  will-change:transform;}
.photoband::after{content:'';position:absolute;inset:0;
  background:linear-gradient(0deg,rgba(40,34,26,.8) 0%,rgba(40,34,26,.12) 62%);}
.photoband__in{position:relative;z-index:2;padding-block:clamp(30px,4vw,52px);}
.photoband p{font-family:var(--display);font-weight:300;font-style:italic;
  font-size:clamp(24px,3.4vw,44px);line-height:1.12;letter-spacing:-.018em;
  color:var(--crema);max-width:20ch;text-wrap:balance;}
.photoband span{display:block;margin-top:14px;font-size:var(--t-eyebrow);font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:rgba(235,233,223,.6);}

/* <i> es inline: sin display:block el width/height se ignoran y el icono
   se queda en 0×0. .pillar__ico se salvaba solo porque su padre es flex. */
.motivo__ico,.role__ico,.minicard__ico,.pillar__ico{display:block;}

/* en móvil el collage del footer se cruzaba con los botones: velo detrás */
@media (max-width:560px){
  .foot__collage img{opacity:.42;}
  .foot__cta__in::before{
    content:'';position:absolute;inset:-10% -8%;z-index:-1;
    background:radial-gradient(62% 52% at 50% 52%,rgba(51,52,42,.94) 0%,rgba(51,52,42,.72) 55%,rgba(51,52,42,0) 100%);
  }
}

/* ============================================================
   31 · CTA — jerarquía en vez de dos pastillas iguales pegadas
   ============================================================ */
.cta-row{gap:clamp(16px,1.6vw,22px);}

/* el secundario deja de ser una pastilla y pasa a enlace subrayado */
.btn--ghost{
  --btn-bg:transparent;--btn-bd:transparent;
  padding:13px 4px 12px;border:0;border-radius:0;
  position:relative;overflow:visible;isolation:auto;
  color:var(--ink);
}
.btn--ghost::before{display:none;}
.btn--ghost::after{
  content:'';position:absolute;left:4px;right:4px;bottom:6px;height:1px;
  background:currentColor;transform-origin:right;transform:scaleX(1);
  transition:transform .45s var(--ease-out);
}
.btn--ghost:hover{color:var(--teja);border-color:transparent;}
.btn--ghost:hover::after{transform-origin:left;animation:ul-redraw .55s var(--ease-out);}
.btn--ghost.on-dark{color:var(--crema);}
.btn--ghost.on-dark:hover{color:var(--lima);}

@media (max-width:560px){
  .cta-row{gap:20px;}
  .cta-row .btn--ghost{align-self:center;}
  .foot__cta .row{gap:18px;}
  .callband__num{gap:18px;}
}

/* ============================================================
   32 · MOSAICO DE MOTIVOS — tarjetas + fotos intercaladas
   ============================================================ */
.motivo{position:relative;overflow:hidden;display:flex;flex-direction:column;
  justify-content:flex-end;min-height:clamp(168px,15vw,200px);}
/* el line-art pasa de icono diminuto a marca de agua grande: se lee */
.motivo__ico{
  position:absolute;right:-18px;top:-14px;
  width:clamp(92px,9vw,124px);height:clamp(92px,9vw,124px);
  margin:0;opacity:.16;pointer-events:none;
  transition:opacity .5s var(--ease),transform .7s var(--ease-out);
}
.motivo:hover .motivo__ico{opacity:.3;transform:rotate(-9deg) scale(1.07);}
.motivo h3,.motivo p{position:relative;z-index:1;}

.motivo--foto{padding:0;background:var(--bg-deep);border:0;}
.motivo--foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform 1.15s var(--ease-out);}
.motivo--foto:hover img{transform:scale(1.06);}
.motivo--foto::after{content:'';position:absolute;inset:0;
  background:linear-gradient(0deg,rgba(40,34,26,.86) 0%,rgba(40,34,26,.34) 42%,rgba(40,34,26,0) 78%);}
.motivo--foto figcaption{
  position:relative;z-index:2;padding:clamp(18px,2vw,24px);
  font-family:var(--display);font-style:italic;font-size:clamp(19px,1.7vw,24px);
  line-height:1.16;color:var(--crema);text-wrap:balance;
  text-shadow:0 1px 18px rgba(40,34,26,.6);
}
.motivo--foto:hover{transform:translateY(-5px);}

/* en columna los contenedores estiran: el enlace fantasma debe ceñirse
   a su texto, si no el subrayado cruza toda la caja */
@media (max-width:560px){
  .cta-row .btn--ghost,
  .foot__cta .row .btn--ghost,
  .callband__num .btn--ghost{align-self:center;width:auto;}
}

/* móvil: el collage se queda arriba y deja limpia la zona del CTA */
@media (max-width:560px){
  .foot__collage img:nth-child(2),
  .foot__collage img:nth-child(4){display:none;}
  .foot__collage img:nth-child(1){left:-4%;top:4%;width:clamp(96px,26vw,120px);}
  .foot__collage img:nth-child(3){right:-4%;top:0%;width:clamp(88px,24vw,112px);}
  .foot__collage img{opacity:.5;}
  .foot__cta{min-height:400px;}
  .foot__cta__in::before{inset:-6% -8% -14%;}
}

/* ============================================================
   33 · ZONAS EN MÓVIL — índice tipográfico, no sopa de etiquetas
   ============================================================ */
@media (max-width:680px){
  .zonas ul{display:block;counter-reset:z;}
  .zonas li{
    display:flex;align-items:baseline;gap:13px;
    background:none;border-radius:0;padding:14px 2px 12px;
    border-bottom:1px solid var(--border);
    font-family:var(--display);font-size:19px;line-height:1.1;color:var(--ink);
    transition:padding-left .45s var(--ease-out);
  }
  .zonas li:first-child{border-top:1px solid var(--border);}
  .zonas li:hover{padding-left:8px;background:none;}
  .zonas li::before{
    counter-increment:z;content:counter(z,decimal-leading-zero);
    font-family:var(--body);font-size:10.5px;font-weight:500;letter-spacing:.14em;
    color:var(--teja);flex:none;min-width:20px;
  }
  .zonas li::after{content:'';flex:1;height:1px;background:var(--border);opacity:.5;}
  .zonas h3{margin-bottom:6px;}
  .zonas small{margin-top:18px;}
}

/* más aire aún entre CTA en móvil */
@media (max-width:560px){
  .cta-row{gap:26px;}
  .foot__cta .row{gap:24px;}
  .callband__num{gap:22px;}
}

/* ============================================================
   34 · MODALIDADES (tarjeta de Pilates en la home)
   ============================================================ */
.mods{list-style:none;text-align:left;margin:20px 0 24px;border-top:1px solid var(--border);}
.mods li{
  border-bottom:1px solid var(--border);padding:12px 2px 11px;
  display:grid;grid-template-columns:1fr auto;gap:6px 14px;align-items:baseline;
  transition:padding-left .45s var(--ease-out);
}
.mods li:hover{padding-left:8px;}
.mods b{font-family:var(--display);font-weight:400;font-size:clamp(17px,1.5vw,20px);line-height:1.15;}
.mods em{grid-column:1/-1;font-style:normal;font-size:12.5px;line-height:1.45;color:var(--ink-soft);}
.mods span{font-size:10.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  color:var(--teja);white-space:nowrap;}
.zonas-inline{font-size:12.5px;color:var(--ink-faint);margin-top:2px;}

/* ══ Submenús del header (3-sep-2026) ═══════════════════════════════════════
   Escritorio: panel en hover y en :focus-within (para teclado).
   Móvil: acordeón dentro de .menu — ver .menu__row/.menu__sub más abajo. */
.nav__item{position:relative;display:flex;align-items:center;}
.nav__links .nav__item > a{display:inline-flex;align-items:center;gap:.28em;}
.chev{width:11px;height:11px;flex:none;transition:transform .22s ease;opacity:.65;}
.nav__item.has-sub:hover > a .chev,
.nav__item.has-sub:focus-within > a .chev{transform:rotate(180deg);opacity:1;}

.sub{
  position:absolute;top:100%;left:50%;translate:-50% 0;padding-top:14px;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .2s ease, translate .2s ease;z-index:60;
}
.nav__item.has-sub:hover > .sub,
.nav__item.has-sub:focus-within > .sub{
  opacity:1;visibility:visible;pointer-events:auto;translate:-50% 4px;
}
.sub__inner{
  background:var(--surface);border:1px solid var(--border);border-radius:16px;
  box-shadow:0 18px 44px rgba(55,51,42,.16);
  padding:22px 26px 18px;display:flex;flex-direction:column;gap:14px;
  max-width:min(92vw,720px);width:max-content;
}
.sub__cols{display:flex;gap:34px;}
.sub__col{min-width:170px;}
.sub__h{
  display:block;font-family:var(--display);font-size:19px;color:var(--olive);
  padding-bottom:9px;margin-bottom:9px;border-bottom:1px solid var(--border);
}
a.sub__h:hover{color:var(--teja);}
.sub__list{display:flex;flex-direction:column;gap:2px;}
.sub__list a{
  font-size:14.5px;line-height:1.35;color:var(--ink-soft);
  padding:5px 8px;margin-inline:-8px;border-radius:8px;
  transition:background .16s ease,color .16s ease;
}
.sub__list a:hover{background:rgba(63,64,50,.07);color:var(--ink);}
.sub__list a[aria-current="page"]{color:var(--teja);}
.sub__all{
  font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink-faint);padding-top:12px;border-top:1px solid var(--border);
}
.sub__all:hover{color:var(--teja);}
/* El panel no se abre en pantallas sin hover fiable: ahí manda el acordeón. */
@media (hover:none){ .nav__item.has-sub > .sub{display:none;} }

/* ── Acordeón del menú móvil ── */
.menu__row{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.menu__tog{
  flex:none;width:44px;height:44px;display:grid;place-items:center;
  background:none;border:1px solid var(--border);border-radius:50%;
  color:var(--crema);cursor:pointer;transition:background .18s ease,transform .22s ease;
}
.menu__tog .chev{width:15px;height:15px;opacity:.9;}
.menu__tog:hover{background:rgba(235,233,223,.1);}
.menu__tog[aria-expanded="true"] .chev{transform:rotate(180deg);}
.menu__sub{
  display:flex;flex-direction:column;gap:2px;
  padding:4px 0 14px 14px;margin-top:-2px;
  border-left:1px solid rgba(235,233,223,.22);
}
.menu__sub[hidden]{display:none;}
.menu__sub a{font-family:var(--body);font-size:16px;line-height:1.5;padding:9px 0;}
.menu__sh{
  font-family:var(--body);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(235,233,223,.55);margin-top:12px;padding:4px 0;
}
a.menu__sh:hover{color:var(--lima);}

/* ============================================================
   12-oct-2026 · FEEDBACK DE LA CLIENTA
   - Fuera el verde lima: botones en el malva del manual de identidad
     (Pantone 4115 C #8e7a88). Para el fondo del botón con texto blanco se usa
     un tono algo más oscuro (#76626f, 5,6:1) porque #8e7a88 da 3,97:1.
   - --lima se redefine a malva claro: así los acentos sobre fondo oscuro
     (menú, pasos, hovers) dejan de ser verdes sin tocar cada regla.
   - Letra más grande en escritorio ("en el PC se ve pequeñita").
   ============================================================ */
:root{
  --malva:#8e7a88;
  --malva-btn:#76626f;
  --malva-claro:#e6dce2;
  --malva-tinta:#5a4855;
  --lima:#e2d5de;
}
.pill-eyebrow,.event__date,.post__tags span{background:var(--malva-claro);color:var(--malva-tinta);}
.btn--call{--btn-fg:#fff;--btn-bg:var(--malva-btn);--btn-bd:var(--malva-btn);
  --btn-hover-fg:#fff;--btn-hover-bg:var(--malva-tinta);}
.callbar .b-call{background:var(--malva-btn);color:#fff;}
::selection{background:var(--malva-claro);color:var(--ink);}

@media (min-width:1024px){
  :root{--t-body:clamp(16px,1.12vw,18px);}
  .sec-head__aside p,.callband p,.steps__head p,.agenda__head p{font-size:17.5px;}
  .minicard p,.motivo p,.role p,.event__body p,.svc__list li span,.step p{font-size:16px;line-height:1.55;}
  .minicard h3{font-size:17px;}
  .svc__list li b{font-size:16.5px;}
  .faq__a p{font-size:17px;}
  .newscard p{font-size:15.5px;}
  .card__desc{font-size:15px;max-width:38ch;}
  .menu__sub a{font-size:17px;}
}

/* — inicio (12-oct-2026) — */
.hero__title{font-size:clamp(44px,7.4vw,112px);}
.manifest__title{font-size:var(--t-lg);line-height:1.08;margin:0 auto clamp(22px,2.6vw,34px);max-width:16ch;}
.manifest__sub{max-width:52ch;margin:clamp(18px,2vw,26px) auto 0;color:var(--ink-soft);
  font-size:clamp(15.5px,1.15vw,18px);line-height:1.6;}
.pillars__title{font-family:var(--display);font-style:italic;font-size:clamp(21px,1.9vw,28px);
  color:var(--ink);margin-bottom:clamp(22px,2.6vw,34px);}
/* "Te acompañamos si…": que ocupe menos y se lea más */
.first{padding-block:clamp(64px,7.5vw,112px);}
.first__body > p{font-size:clamp(17px,1.4vw,21px);line-height:1.5;}
.minicards{margin-top:clamp(28px,3vw,44px);}
.minicard{padding:18px 20px 20px;}
.minicard__ico{margin-bottom:14px;}
.first__media{aspect-ratio:4/4;}
/* cierre "Encuentra lo que te mueve": más compacto */
.foot__cta{min-height:clamp(340px,36vw,480px);padding-block:clamp(56px,6vw,84px);}
.foot__collage img{filter:brightness(.9) saturate(.95) contrast(1.02);}
/* — sobre nosotras: "Una vida sana…" en grande, sin tarjetas (12-oct-2026) — */
.vida{padding-block:clamp(72px,9vw,140px);text-align:center;}
.vida h2{font-size:var(--t-xl);line-height:1.04;margin:20px auto 0;max-width:16ch;}
.vida__text{font-family:var(--display);font-weight:400;font-size:clamp(24px,2.7vw,40px);line-height:1.3;
  color:var(--ink-soft);max-width:30ch;margin:clamp(22px,2.6vw,34px) auto 0;text-wrap:balance;}
.vida__text em{color:var(--teja);}
@media (min-width:861px){
  .foot__collage img:nth-child(2){top:64%;}
  .foot__collage img:nth-child(4){top:50%;}
}
.quote + .services{padding-top:var(--sec);}

/* — hero: logo enAlma que se dibuja (12-oct-2026) —
   1) cada contorno se traza con stroke-dashoffset (--len lo pone site.js,
      --d es el retraso de cada trazo: círculo → figura → hojas → raíces)
   2) el relleno del logo real aparece y los contornos se desvanecen. */
.hero__mark svg{width:clamp(110px,12vw,176px);}
.hero__mark svg .ln-d{
  fill:none;stroke:var(--crema);stroke-width:.55;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:var(--len,400);stroke-dashoffset:var(--len,400);
  animation:draw 2.2s cubic-bezier(.45,.05,.25,1) var(--d,0s) forwards,
            ln-out 1.2s ease 4.1s forwards;
}
.hero__mark svg .logo-fill{
  fill:var(--crema);stroke:none;opacity:0;
  stroke-dasharray:none;stroke-dashoffset:0;
  animation:logo-in 1.4s ease 3.6s forwards;
}
@keyframes logo-in{to{opacity:1;}}
@keyframes ln-out{to{opacity:0;}}
.hero__mark svg{filter:drop-shadow(0 1px 7px rgba(30,25,18,.38));}

/* — logo del hero en bucle (12-oct-2026): se forma, se mantiene, se deshace en
   el mismo orden y vuelve a formarse. Lo encadena site.js con clases:
   .is-drawn (contornos dibujados) → .is-filled (relleno) → .is-erasing
   (contornos se borran hacia delante) → .is-reset (vuelta al inicio sin transición). */
.hero__mark svg .ln-d{
  animation:none;
  stroke-dashoffset:var(--len,400);
  transition:stroke-dashoffset 2.2s cubic-bezier(.45,.05,.25,1) var(--d,0s),opacity .9s ease;
}
.hero__mark svg.is-drawn .ln-d{stroke-dashoffset:0;}
.hero__mark svg.is-filled .ln-d{opacity:0;}
.hero__mark svg.is-erasing .ln-d{stroke-dashoffset:calc(var(--len,400) * -1);}
.hero__mark svg.is-reset .ln-d{transition:none;}
.hero__mark svg .logo-fill{animation:none;opacity:0;transition:opacity 1.2s ease;}
.hero__mark svg.is-filled .logo-fill{opacity:1;}
@media (prefers-reduced-motion:reduce){
  .hero__mark svg .logo-fill{opacity:1;}
  .hero__mark svg .ln-d{opacity:0;}
}

/* barra móvil con número: Llamar · WhatsApp · Cita (15-oct-2026) */
.callbar--multi{gap:8px;}
.callbar--multi a{padding:14px 8px 13px;letter-spacing:.1em;}
.callbar--multi .b-book{flex:.8;}
.callbar .b-wa{background:var(--crema);color:var(--olive);}

/* burbujas de contacto — solo escritorio (en móvil está la barra) */
.fab{position:fixed;right:clamp(16px,2vw,28px);bottom:clamp(16px,2.4vw,30px);z-index:125;
  display:none;flex-direction:column;align-items:flex-end;gap:10px;
  opacity:0;transform:translateY(16px);pointer-events:none;
  transition:opacity .45s var(--ease),transform .55s var(--ease-out);}
.fab.in{opacity:1;transform:none;pointer-events:auto;}
.fab:empty{display:none !important;}
.fab__b{display:flex;align-items:center;gap:0;height:54px;min-width:54px;padding:0 17px;
  border-radius:999px;background:var(--olive);color:var(--crema);
  box-shadow:0 14px 34px -18px rgba(48,38,28,.8);
  font-size:11.5px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;white-space:nowrap;
  transition:background .35s var(--ease),gap .45s var(--ease-out);}
.fab__b svg{width:20px;height:20px;flex:none;}
.fab__b span{max-width:0;overflow:hidden;opacity:0;
  transition:max-width .5s var(--ease-out),opacity .3s var(--ease);}
.fab__b:hover,.fab__b:focus-visible{gap:10px;}
.fab__b:hover span,.fab__b:focus-visible span{max-width:260px;opacity:1;}
.fab__b--wa{background:var(--lima);color:var(--olive);}
.fab__b:not(.fab__b--wa):hover{background:var(--teja);}
@media (min-width:861px){ .fab{display:flex;} }

/* teléfono en la cabecera (15-oct-2026) */
.nav__tel{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;
  font-size:var(--t-eyebrow);font-weight:500;letter-spacing:.12em;color:var(--ink);
  transition:color .35s var(--ease);}
.nav__tel svg{width:15px;height:15px;flex:none;transition:transform .45s var(--ease-out);}
.nav__tel:hover{color:var(--teja);}
.nav__tel:hover svg{transform:rotate(-12deg) scale(1.1);}
@media (max-width:1240px) and (min-width:1025px){ .nav__tel span{display:none;} }
@media (max-width:1024px){
  .nav__tel{margin-left:auto;width:44px;height:44px;justify-content:center;border-radius:999px;
    background:var(--olive);color:var(--crema);}
  .nav__tel:hover{color:var(--crema);background:var(--teja);}
  .nav__tel span{display:none;}
  .nav__tel + .nav__cta + .nav__burger, .nav__tel ~ .nav__burger{margin-left:0;}
}

/* CTA bajo el titular del hero */
.hero__foot{grid-template-columns:1fr auto;}
.hero__title{grid-column:1;}
.hero__cta{grid-column:1;grid-row:2;margin-top:0;
  opacity:0;animation:fadein .9s var(--ease) .9s forwards;}
.hero__foot .newscard{grid-column:2;grid-row:1 / span 2;align-self:end;}
@keyframes fadein{to{opacity:1;}}
@media (max-width:860px){
  .hero__foot{grid-template-columns:1fr;gap:20px;}
  .hero__foot .newscard{grid-column:1;grid-row:auto;}
  .hero__cta{flex-direction:row;flex-wrap:nowrap;gap:10px;}
  .hero__cta .btn{flex:1;justify-content:center;padding-inline:12px;}
}
@media (prefers-reduced-motion:reduce){ .hero__cta{animation:none;opacity:1;} }
