/* ==========================================================================
   Psic. Cristina Castro — Psicología y Consejería Familiar Integral
   Guadalajara, Jalisco
   Dirección de arte: "Alba pastel" — menta, rosa y lavanda sobre blanco,
   siguiendo la paleta del logo de la marca
   Strata Digital
   ========================================================================== */

:root{
  /* lavanda / índigo (antes verdes) */
  --deep:#3B3F68;
  --deep-2:#4A4F82;
  --pine:#6F739E;
  --sage:#7FC4BE;
  --sage-lt:#C8ECE7;

  /* rosa (antes oro/luz) */
  --gold:#E58FB0;
  --gold-d:#B14D76;          /* variante con contraste AA sobre claro */
  --gold-lt:#F7C9DC;
  --gold-glow:rgba(229,143,176,.45);

  /* papel */
  --sand:#EFE2ED;
  --linen:#FAF1F7;
  --paper:#FDFBFC;

  /* texto */
  --tx:#332F3D;
  --tx-2:#6B6577;
  --tx-lt:#ECE8F5;
  --tx-lt-2:#B9B4D6;

  --line:rgba(51,47,61,.13);
  --line-lt:rgba(255,255,255,.16);
  --wa:#25D366;

  --pad:clamp(20px,5vw,64px);
  --max:1240px;
  --e:cubic-bezier(.22,.68,.28,1);
  --e-soft:cubic-bezier(.33,.9,.35,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:92px;
}
body{
  margin:0;
  background:var(--paper);
  color:var(--tx);
  font-family:'Nunito Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:1.0625rem;
  line-height:1.75;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;}
button{font:inherit;color:inherit;background:none;border:0;}
a,button{-webkit-tap-highlight-color:rgba(229,143,176,.22);}

h1,h2,h3{
  font-family:'Fraunces','Iowan Old Style',Georgia,serif;
  font-weight:300;
  line-height:1.08;
  letter-spacing:-.018em;
  margin:0;
  font-variation-settings:'SOFT' 40,'WONK' 0;
}
h1{font-size:clamp(3.1rem,8.4vw,6.2rem);}
h2{font-size:clamp(1.95rem,3.9vw,3rem);}
h3{font-size:clamp(1.22rem,1.9vw,1.5rem);font-weight:400;line-height:1.26;letter-spacing:-.01em;}
p{margin:0 0 1.15em;}
em{font-style:italic;}
b,strong{font-weight:600;}

.sec__in,.hd__in,.strip__in,.hope__in,.end__in,.ft__in,.ft__bot,.hero__in{
  width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--pad);
}

.skip{position:absolute;left:-9999px;top:0;z-index:400;background:var(--deep);color:#fff;padding:14px 20px;}
.skip:focus{left:0;}
:focus-visible{outline:2px solid var(--gold-d);outline-offset:4px;border-radius:3px;}

/* barra de progreso de lectura */
.prog{
  position:fixed;inset:0 auto auto 0;height:2px;width:0;z-index:250;
  background:linear-gradient(90deg,var(--gold-lt),var(--gold));
  transition:width .1s linear;
}

/* textura de papel */
.grain{
  position:fixed;inset:0;z-index:300;pointer-events:none;opacity:.038;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}

html.is-locked,html.is-locked body{overflow:hidden;}

/* ---------- tipografía auxiliar ---------- */
.kicker{
  display:inline-flex;align-items:flex-start;gap:.62rem;
  font-size:.74rem;font-weight:700;letter-spacing:.21em;text-transform:uppercase;
  line-height:1.6;color:var(--tx-2);margin:0 0 1.5rem;
}
.kicker--lt{color:var(--sage-lt);}
.kicker__dot{
  width:6px;height:6px;border-radius:50%;background:var(--gold);flex:none;
  margin-top:.5em;box-shadow:0 0 0 4px rgba(229,143,176,.16);
}
.sec__sub{font-size:1.1rem;color:var(--tx-2);max-width:36em;margin:1.4rem 0 0;}
.lead{font-size:1.18rem;color:var(--tx);}
.lead em{color:var(--gold-d);font-style:italic;}

/* ---------- botones ---------- */
.btn{
  --b:var(--deep);--c:#fff;
  display:inline-flex;align-items:center;justify-content:center;gap:.65rem;
  background:var(--b);color:var(--c);text-decoration:none;
  font-weight:600;font-size:.98rem;letter-spacing:.005em;
  padding:1rem 1.85rem;border:1px solid var(--b);border-radius:100px;
  position:relative;overflow:hidden;isolation:isolate;
  transition:color .35s var(--e),border-color .35s var(--e),transform .35s var(--e),box-shadow .4s var(--e);
}
.btn::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(120deg,var(--gold-d),var(--gold));
  transform:translateY(101%);transition:transform .5s var(--e);
}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px -14px rgba(51,47,61,.4);}
.btn:hover::before{transform:translateY(0);}
.btn--lg{padding:1.1rem 2.2rem;font-size:1.02rem;}
.btn--xl{padding:1.3rem 2.9rem;font-size:1.08rem;}
.btn--sm{padding:.68rem 1.3rem;font-size:.9rem;}
.btn--block{display:flex;width:100%;}
.btn--line{background:transparent;color:inherit;border-color:var(--line);}
.btn--line::before{background:var(--sand);}
.btn--line:hover{color:var(--tx);border-color:var(--sand);}
.btn--gold{--b:var(--gold);--c:var(--deep);border-color:var(--gold);}
.btn--gold::before{background:#fff;}
.btn--gold:hover{color:var(--deep);border-color:#fff;}
.i-wa{width:19px;height:19px;fill:currentColor;flex:none;}

/* ══════════════ HEADER ══════════════ */
.hd{
  position:fixed;inset:0 0 auto;z-index:200;
  transition:transform .45s var(--e),background .45s var(--e),box-shadow .45s var(--e),border-color .45s var(--e);
  border-bottom:1px solid transparent;
}
.hd.is-solid{
  background:rgba(253,251,252,.88);
  -webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);
  border-bottom-color:var(--line);
}
.hd.is-hidden{transform:translateY(-102%);}
/* con el menú abierto la barra siempre va sólida */
html.is-locked .hd{
  background:var(--paper);border-bottom-color:var(--line);transform:none;
}
.hd__in{display:flex;align-items:center;gap:1.4rem;min-height:80px;}

.brand{display:flex;align-items:center;gap:.72rem;text-decoration:none;margin-right:auto;min-height:44px;}
.brand__mk{width:40px;height:40px;color:var(--deep);flex:none;transition:transform .6s var(--e);}
.brand__mk svg{width:100%;height:100%;}
.brand:hover .brand__mk{transform:rotate(-8deg) scale(1.04);}

/* logo real: se conserva íntegro (fondo y proporción originales), en una tarjeta que lo separa del fondo del header */
.brand__mk--logo{
  width:44px;height:44px;border-radius:11px;overflow:hidden;
  background:#fff;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 10px -6px rgba(59,63,104,.3);
}
.brand__mk--logo img{width:100%;height:100%;object-fit:contain;}
.brand__tx{display:flex;flex-direction:column;line-height:1.18;}
.brand__tx b{font-family:'Fraunces',Georgia,serif;font-weight:400;font-size:1.06rem;letter-spacing:-.012em;}
.brand__tx i{font-style:normal;font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:var(--tx-2);margin-top:.15rem;}

.hd__nav{display:flex;gap:1.7rem;}
.hd__nav a{
  text-decoration:none;font-size:.93rem;font-weight:600;color:var(--tx-2);
  position:relative;padding:.3rem 0;transition:color .3s var(--e);
}
.hd__nav a::after{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:0;
  background:var(--gold);transition:width .4s var(--e);
}
.hd__nav a:hover{color:var(--tx);}
.hd__nav a:hover::after{width:100%;}

.burger{display:none;width:44px;height:44px;padding:0;cursor:pointer;position:relative;}
.burger span{
  position:absolute;left:12px;width:20px;height:1.5px;background:var(--tx);
  transition:transform .4s var(--e),opacity .3s;
}
.burger span:nth-child(1){top:19px;}
.burger span:nth-child(2){top:25px;}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(3px) rotate(45deg);}
.burger[aria-expanded="true"] span:nth-child(2){transform:translateY(-3px) rotate(-45deg);}

/* ---------- drawer móvil ---------- */
.drawer{
  position:fixed;inset:80px 0 0;z-index:190;background:var(--paper);
  padding:2rem var(--pad) 3rem;display:flex;flex-direction:column;gap:1.2rem;
  overflow-y:auto;animation:drawerIn .45s var(--e);
}
.drawer[hidden]{display:none;}
@keyframes drawerIn{from{opacity:0;transform:translateY(-10px);}to{opacity:1;transform:none;}}
.drawer nav{display:flex;flex-direction:column;}
.drawer nav a{
  display:flex;align-items:baseline;gap:1rem;text-decoration:none;
  font-family:'Fraunces',Georgia,serif;font-size:1.6rem;font-weight:300;
  padding:1.05rem 0;border-bottom:1px solid var(--line);
}
.drawer nav a em{font-style:normal;font-family:'Nunito Sans',sans-serif;font-size:.7rem;letter-spacing:.16em;color:var(--gold-d);font-weight:700;}
.drawer__tel{text-align:center;margin:.3rem 0 0;}
.drawer__tel a{font-size:1.05rem;font-weight:600;text-decoration:none;color:var(--tx-2);}

/* ---------- rail lateral ---------- */
.rail{
  position:fixed;right:26px;top:50%;transform:translateY(-50%);z-index:150;
  display:flex;flex-direction:column;gap:14px;align-items:center;
}
.rail a{display:block;padding:5px;position:relative;}
.rail a span{
  display:block;width:7px;height:7px;border-radius:50%;
  border:1px solid rgba(51,47,61,.32);transition:all .4s var(--e);
}
.rail a.is-on span{background:var(--gold);border-color:var(--gold);transform:scale(1.35);}
.rail a::after{
  content:attr(data-t);position:absolute;right:22px;top:50%;transform:translateY(-50%) translateX(6px);
  background:var(--deep);color:#fff;font-size:.7rem;letter-spacing:.06em;padding:.32rem .6rem;border-radius:4px;
  white-space:nowrap;opacity:0;pointer-events:none;transition:all .3s var(--e);
}
.rail a:hover::after{opacity:1;transform:translateY(-50%) translateX(0);}
.rail.is-lt a span{border-color:rgba(255,255,255,.45);}
.rail.is-lt a.is-on span{background:var(--gold-lt);border-color:var(--gold-lt);}

/* ══════════════ HERO ══════════════ */
.hero{position:relative;padding:clamp(112px,11vw,136px) 0 clamp(52px,6vw,80px);overflow:hidden;}
.hero::before{
  content:"";position:absolute;inset:0;z-index:-2;
  background:
    radial-gradient(120% 90% at 78% 8%,rgba(247,201,220,.5) 0%,rgba(247,201,220,0) 58%),
    radial-gradient(90% 70% at 6% 92%,rgba(200,236,231,.42) 0%,rgba(200,236,231,0) 60%),
    linear-gradient(180deg,var(--linen) 0%,var(--paper) 72%);
}
.hero__bloom{
  position:absolute;z-index:-1;top:-12%;right:-6%;width:min(70vw,760px);aspect-ratio:1;
  background:radial-gradient(circle,var(--gold-glow) 0%,rgba(229,143,176,0) 66%);
  filter:blur(18px);opacity:.62;animation:breathe 13s var(--e-soft) infinite;
}
@keyframes breathe{
  0%,100%{transform:scale(1) translateY(0);opacity:.55;}
  50%{transform:scale(1.09) translateY(14px);opacity:.75;}
}

/* filigrana de marca detrás del hero */
.hero__deco{
  position:absolute;z-index:-1;pointer-events:none;
  left:50%;top:46%;transform:translate(-52%,-50%);
  width:min(112vw,1180px);height:auto;opacity:.5;
}
.deco__ring{
  fill:none;stroke:var(--gold);stroke-width:1.1;opacity:.5;
  stroke-dasharray:1180 1602;stroke-linecap:round;
  transform-origin:300px 300px;animation:decoTurn 60s linear infinite;
}
.deco__ring--in{
  stroke:var(--sage);stroke-width:1;opacity:.42;
  stroke-dasharray:760 1288;animation-duration:78s;animation-direction:reverse;
}
@keyframes decoTurn{to{transform:rotate(360deg);}}
.deco__stem{fill:none;stroke:var(--sage);stroke-width:2.4;stroke-linecap:round;opacity:.5;}
.deco__leaf{fill:var(--sage-lt);stroke:var(--sage);stroke-width:1.4;opacity:.42;}

.hero__in{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(2rem,5vw,5rem);align-items:center;}

/* logotipo protagónico. El archivo va íntegro: multiply funde su fondo claro
   con el del hero, sin recortarlo. Sin .anim a propósito — cualquier filter u
   opacidad en un ancestro crea un contexto de apilamiento y anula la mezcla. */
.hero__logo{
  margin:0 0 1.1rem;width:clamp(132px,12vw,168px);
}
.hero__logo img{
  /* PNG con transparencia real: ya no depende de mix-blend-mode ni del tono
     del fondo, así que se integra parejo sobre el degradado del hero. */
  display:block;width:100%;height:auto;
}

/* con el logotipo al frente, el nombre cede escala y gana aire */
.hero h1{margin:0 0 .85rem;font-size:clamp(2.7rem,5.2vw,4.4rem);}
.hero__triad{list-style:none;margin:0 0 1.2rem;padding:0;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;}
.hero__triad li{
  display:inline-flex;align-items:center;gap:.5rem;
  font-size:.9rem;font-weight:600;letter-spacing:.02em;color:var(--tx);
}
.hero__triad svg{width:26px;height:12px;flex:none;fill:none;stroke:var(--gold);stroke-width:1.6;stroke-linecap:round;}
.hero__lead{font-size:1.08rem;color:var(--tx-2);max-width:32em;margin-bottom:1.4rem;}
.hero__act{display:flex;flex-wrap:wrap;gap:.85rem;margin-bottom:1.4rem;}
.hero__note{font-size:.88rem;color:var(--tx-2);margin:0;opacity:.9;}

/* --- arco fotográfico --- */
.hero__art{position:relative;}
.arch{
  position:relative;margin:0;overflow:hidden;
  border-radius:clamp(150px,25vw,260px) clamp(150px,25vw,260px) 16px 16px;
  box-shadow:0 40px 80px -40px rgba(59,63,104,.45),0 2px 0 rgba(255,255,255,.6) inset;
}
.arch img{width:100%;height:clamp(400px,54vw,600px);object-fit:cover;}
.arch::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  border:1px solid rgba(255,255,255,.4);
  background:linear-gradient(180deg,rgba(247,232,247,.14) 0%,rgba(59,63,104,.12) 100%);
}
.arch__glow{
  position:absolute;left:50%;top:14%;transform:translateX(-50%);
  width:56%;aspect-ratio:1;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(252,224,236,.75) 0%,rgba(252,224,236,0) 68%);
  animation:breathe 11s var(--e-soft) infinite;
}

/* marco desfasado que enmarca el retrato del hero */
.hero__art::before{
  content:"";position:absolute;z-index:-1;
  inset:-18px -18px 34px 22px;
  border:1px solid var(--gold);opacity:.34;
  border-radius:clamp(150px,25vw,260px) clamp(150px,25vw,260px) 16px 16px;
}

/* tarjeta de rating */
.rate{
  /* arriba a la izquierda: abajo ahora vive la franja del mensaje de Cristy */
  position:absolute;left:-8px;top:22px;
  background:rgba(253,251,252,.94);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border:1px solid var(--line);border-radius:14px;
  padding:.95rem 1.25rem;box-shadow:0 22px 44px -24px rgba(59,63,104,.45);
  animation:floaty 7s var(--e-soft) infinite;
}
@keyframes floaty{0%,100%{transform:translateY(0);}50%{transform:translateY(-8px);}}
.rate__stars{color:var(--gold);font-size:.86rem;letter-spacing:.12em;line-height:1;}
.rate p{margin:.4rem 0 0;font-size:.92rem;line-height:1.2;}
.rate p b{font-family:'Fraunces',Georgia,serif;font-size:1.28rem;font-weight:400;margin-right:.16rem;}
.rate span{display:block;font-size:.74rem;color:var(--tx-2);margin-top:.18rem;}

.chip{
  display:block;margin:0;
  font-size:.8rem;font-weight:600;letter-spacing:.01em;line-height:1.55;
  background:var(--deep);color:var(--tx-lt);
  padding:.8rem 1rem;border-radius:16px;
}
/* mensaje de Cristy sobre su retrato: franja de ancho completo abajo de la
   foto, igual que la de la fachada — así el texto nunca se aprieta contra
   un borde ni parte palabras a la mitad, en ninguna resolución. */
.chip--online{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  border-radius:0 0 16px 16px;max-width:none;
  padding:2.3rem 1.4rem 1.15rem;font-size:.86rem;
  background:linear-gradient(0deg,rgba(38,42,72,.95) 0%,rgba(38,42,72,.68) 62%,rgba(38,42,72,0) 100%);
}

.hero__scroll{
  display:flex;align-items:center;gap:.6rem;justify-content:center;
  margin-top:clamp(2.4rem,5vw,4rem);
  font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--tx-2);opacity:.75;
}
.hero__scroll span{
  width:1px;height:34px;background:linear-gradient(180deg,transparent,var(--gold));
  animation:drop 2.6s var(--e-soft) infinite;transform-origin:top;
}
@keyframes drop{0%{transform:scaleY(.2);opacity:0;}45%{opacity:1;}100%{transform:scaleY(1);opacity:0;}}

/* ══════════════ STRIP ══════════════ */
.strip{background:var(--deep);color:var(--tx-lt);}
.strip__in{
  display:grid;grid-template-columns:repeat(4,1fr);
  padding-block:clamp(1.8rem,3vw,2.6rem);
}
.strip__i{padding:.4rem 1.2rem;border-left:1px solid var(--line-lt);}
.strip__i:first-child{border-left:0;padding-left:0;}
.strip__i b{
  display:block;font-family:'Fraunces',Georgia,serif;font-weight:400;
  font-size:clamp(1.05rem,1.7vw,1.32rem);letter-spacing:-.01em;
}
.strip__i span{display:block;font-size:.82rem;color:var(--tx-lt-2);margin-top:.2rem;}

/* ══════════════ SECCIONES ══════════════ */
.sec{padding-block:clamp(4.5rem,9vw,8.5rem);}
.sec__hd{max-width:44rem;margin-bottom:clamp(2.6rem,5vw,4.2rem);}
.sec__hd--center{margin-inline:auto;text-align:center;}
.sec__hd--center .sec__sub{margin-inline:auto;}

/* ---------- SOBRE ---------- */
.sobre{background:linear-gradient(180deg,var(--paper) 0%,var(--linen) 100%);}
.sobre__in{display:grid;grid-template-columns:.86fr 1.14fr;gap:clamp(2.4rem,6vw,6rem);align-items:start;}
.sobre__art{position:sticky;top:110px;}
.arch--sm{border-radius:clamp(120px,20vw,200px) clamp(120px,20vw,200px) 14px 14px;}
.arch--sm img{height:clamp(340px,44vw,520px);}

.quote{
  position:relative;margin-top:-46px;margin-left:clamp(10px,3vw,34px);margin-right:-14px;
  background:var(--deep);color:var(--tx-lt);border-radius:14px;
  padding:1.5rem 1.6rem 1.3rem;box-shadow:0 30px 60px -34px rgba(59,63,104,.6);
}
.quote span{
  position:absolute;top:-6px;left:16px;font-family:'Fraunces',Georgia,serif;
  font-size:4rem;color:var(--gold);line-height:1;opacity:.5;
}
.quote p{
  margin:0;font-family:'Fraunces',Georgia,serif;font-style:italic;font-weight:300;
  font-size:1.1rem;line-height:1.45;position:relative;
}
.quote cite{
  display:block;margin-top:.7rem;font-style:normal;
  font-size:.76rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold-lt);
}

.sobre__tx h2{margin-bottom:.7rem;}
.sobre__role{
  font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold-d);margin:0 0 1.7rem;
}
.sobre__tx p{color:var(--tx-2);}
.sobre__tx .lead{color:var(--tx);}
.sobre__tx b{color:var(--tx);}

/* diagrama espíritu · alma · cuerpo */
.triad{
  display:grid;grid-template-columns:auto 1fr;gap:clamp(1.4rem,3vw,2.6rem);align-items:center;
  margin:2.6rem 0 2rem;padding:1.8rem;border:1px solid var(--line);border-radius:18px;
  background:rgba(253,251,252,.7);
}
.triad__svg{width:clamp(120px,17vw,170px);height:auto;flex:none;}
.triad__svg .tr{fill:none;stroke:var(--gold);stroke-width:1;opacity:.85;}
.triad__svg .tr--1{stroke-dasharray:616;stroke-dashoffset:616;}
.triad__svg .tr--2{stroke-dasharray:428;stroke-dashoffset:428;stroke-width:1.2;}
.triad__svg .tr--3{stroke-dasharray:239;stroke-dashoffset:239;stroke-width:1.5;}
.triad__svg .tr__core{fill:var(--gold);opacity:0;transition:opacity .7s .9s var(--e);}
.triad.in .tr{transition:stroke-dashoffset 1.5s var(--e-soft);stroke-dashoffset:0;}
.triad.in .tr--2{transition-delay:.18s;}
.triad.in .tr--3{transition-delay:.36s;}
.triad.in .tr__core{opacity:1;}
.triad__key{list-style:none;margin:0;padding:0;display:grid;gap:.9rem;}
.triad__key li{display:flex;flex-direction:column;padding-left:1rem;border-left:2px solid var(--sand);}
.triad__key em{
  font-style:normal;font-family:'Fraunces',Georgia,serif;font-size:1.1rem;
  font-weight:400;color:var(--tx);letter-spacing:-.01em;
}
.triad__key span{font-size:.86rem;color:var(--tx-2);line-height:1.5;}

/* formación académica */
.creds{
  border:1px solid var(--line);border-radius:14px;padding:1.3rem 1.5rem;
  background:rgba(252,249,244,.6);
}
.creds b{display:block;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-d);margin-bottom:.8rem;}
.creds ul{list-style:none;margin:0;padding:0;display:grid;gap:.6rem;}
.creds li{
  position:relative;padding-left:1.5rem;font-size:.92rem;color:var(--tx-2);line-height:1.5;
}
.creds li::before{
  content:"";position:absolute;left:0;top:.5em;width:8px;height:8px;border-radius:50%;
  border:1.5px solid var(--gold);
}

/* ---------- SERVICIOS ---------- */
.serv{background:var(--linen);}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.6rem);}
.card{
  position:relative;background:var(--paper);border:1px solid var(--line);
  border-radius:22px 22px 14px 14px;padding:2.2rem 1.7rem 1.8rem;
  display:flex;flex-direction:column;overflow:hidden;
  transition:transform .5s var(--e),box-shadow .5s var(--e),border-color .5s var(--e);
}
.card::before{
  content:"";position:absolute;inset:0 0 auto;height:3px;
  background:linear-gradient(90deg,var(--gold-lt),var(--gold));
  transform:scaleX(0);transform-origin:left;transition:transform .6s var(--e);
}
.card:hover{transform:translateY(-6px);box-shadow:0 34px 60px -34px rgba(59,63,104,.35);border-color:transparent;}
.card:hover::before{transform:scaleX(1);}
.card__n{
  position:absolute;top:1.3rem;right:1.5rem;
  font-family:'Fraunces',Georgia,serif;font-size:2.6rem;font-weight:300;
  color:var(--sand);line-height:1;
}
.card__ic{
  display:grid;place-items:center;width:60px;height:60px;border-radius:50%;
  background:linear-gradient(150deg,rgba(247,201,220,.4),rgba(200,236,231,.32));
  margin-bottom:1.3rem;
}
.card__ic svg{width:32px;height:32px;fill:none;stroke:var(--deep);stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;}
.card h3{margin-bottom:.7rem;}
.card p{color:var(--tx-2);font-size:.98rem;}
.card__ul{list-style:none;margin:0 0 1.5rem;padding:0;display:grid;gap:.45rem;}
.card__ul li{position:relative;padding-left:1.4rem;font-size:.9rem;color:var(--tx-2);}
.card__ul li::before{
  content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;border-radius:50%;
  border:1.5px solid var(--gold);
}
.card__cta{
  margin-top:auto;text-decoration:none;font-weight:700;font-size:.9rem;color:var(--gold-d);
  display:inline-flex;align-items:center;gap:.5rem;
}
.card__cta i{font-style:normal;transition:transform .4s var(--e);}
.card__cta:hover i{transform:translateX(5px);}

.serv__mode{
  display:flex;flex-wrap:wrap;gap:.8rem 2.4rem;justify-content:center;
  margin:clamp(2rem,4vw,3rem) 0 0;font-size:.92rem;color:var(--tx-2);text-align:center;
}
.serv__mode span{display:inline-flex;align-items:center;gap:.5rem;}
.serv__mode b{color:var(--tx);}
.serv__mode span::before{
  content:"";width:7px;height:7px;border-radius:50%;background:var(--gold);flex:none;
}

/* ---------- MENSAJE DE ESPERANZA ---------- */
.hope{
  position:relative;isolation:isolate;overflow:hidden;
  background:var(--deep);color:var(--tx-lt);
  padding-block:clamp(5rem,10vw,9rem);
}
.hope__bg{
  position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;
  opacity:.24;filter:saturate(.85);
}
.hope::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(80% 70% at 50% 0%,rgba(247,201,220,.3) 0%,rgba(247,201,220,0) 62%),
    linear-gradient(180deg,rgba(59,63,104,.86) 0%,rgba(59,63,104,.94) 100%);
}
.hope__rays{
  position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.4;
  background:repeating-linear-gradient(102deg,
    rgba(250,225,240,0) 0px,rgba(250,225,240,.09) 2px,rgba(250,225,240,0) 5px,rgba(250,225,240,0) 46px);
  -webkit-mask-image:radial-gradient(70% 80% at 55% 0%,#000 0%,transparent 72%);
  mask-image:radial-gradient(70% 80% at 55% 0%,#000 0%,transparent 72%);
  animation:sway 16s ease-in-out infinite;
}
@keyframes sway{0%,100%{transform:translateX(-1.5%);}50%{transform:translateX(1.5%);}}

.hope__in{max-width:56rem;text-align:center;margin-inline:auto;}
.hope h2{font-size:clamp(2.2rem,5.4vw,4.1rem);margin-bottom:1.8rem;}
.hope h2 em{color:var(--gold-lt);font-style:italic;}
.hope p{color:var(--tx-lt-2);font-size:1.08rem;max-width:44em;margin-inline:auto;}
.hope .btn{margin-top:1.6rem;}

/* ---------- TEMAS ---------- */
.temas{background:var(--paper);}
.temas__g{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.9rem,1.8vw,1.4rem);}
.tema{
  background:var(--linen);border:1px solid transparent;border-radius:18px;
  padding:2rem 1.6rem;transition:transform .5s var(--e),background .5s var(--e),box-shadow .5s var(--e);
}
.tema:hover{transform:translateY(-5px);background:var(--paper);border-color:var(--line);box-shadow:0 26px 50px -32px rgba(59,63,104,.38);}
.tema__ic{display:block;width:46px;height:46px;margin-bottom:1.1rem;}
.tema__ic svg{width:100%;height:100%;fill:none;stroke:var(--gold);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.tema h3{margin-bottom:.5rem;}
.tema p{margin:0;font-size:.95rem;color:var(--tx-2);}
.tema--cta{
  background:var(--deep);color:var(--tx-lt);display:flex;flex-direction:column;justify-content:center;
}
.tema--cta:hover{background:var(--deep-2);}
.tema--cta p{color:var(--tx-lt-2);margin-bottom:1.1rem;}
.tema__link{
  text-decoration:none;font-weight:700;font-size:.9rem;color:var(--gold-lt);
  display:inline-flex;align-items:center;gap:.5rem;
}
.tema__link i{font-style:normal;transition:transform .4s var(--e);}
.tema__link:hover i{transform:translateX(5px);}

/* ---------- POR QUÉ ---------- */
.porque{background:linear-gradient(180deg,var(--paper) 0%,var(--linen) 100%);}
.porque__in{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2.4rem,5vw,4.6rem);align-items:start;}
.porque__hd{position:sticky;top:112px;}
.porque__hd h2{margin-bottom:2rem;font-size:clamp(1.95rem,3.5vw,2.9rem);}
.arch--xs{border-radius:clamp(90px,14vw,140px) clamp(90px,14vw,140px) 12px 12px;max-width:320px;}
.arch--xs img{height:clamp(230px,28vw,320px);filter:saturate(.82) sepia(.14) brightness(1.03);}

.why{list-style:none;margin:0;padding:0;counter-reset:w;}
.why li{
  position:relative;padding:1.9rem 0 1.9rem 4.6rem;border-top:1px solid var(--line);
}
.why li:first-child{border-top:0;padding-top:0;}
.why li:first-child .why__n{top:0;}
.why__n{
  position:absolute;left:0;top:1.9rem;
  font-family:'Fraunces',Georgia,serif;font-size:1.35rem;font-weight:300;color:var(--gold);
  width:3.1rem;height:3.1rem;display:grid;place-items:center;border-radius:50%;
  border:1px solid var(--sand);background:rgba(253,251,252,.7);
  transition:background .5s var(--e),border-color .5s var(--e),color .5s var(--e);
}
.why li:hover .why__n{background:var(--deep);border-color:var(--deep);color:var(--gold-lt);}
.why h3{margin-bottom:.55rem;}
.why p{margin:0;color:var(--tx-2);}

/* ---------- RESEÑAS ---------- */
.reviews{background:var(--paper);}
.sec__sub--rev{
  display:inline-flex;align-items:center;gap:.55rem;
  font-weight:600;color:var(--tx);
}
.rev__g-ic{width:19px;height:19px;flex:none;}

.rev__g{
  display:grid;grid-template-columns:1.32fr 1fr 1fr;gap:clamp(1rem,2vw,1.5rem);
  align-items:start;
}
.rev{
  position:relative;background:var(--linen);border:1px solid transparent;border-radius:20px;
  padding:2.1rem 1.8rem 1.9rem;overflow:hidden;
  transition:transform .5s var(--e),background .5s var(--e),box-shadow .5s var(--e),border-color .5s var(--e);
}
.rev:hover{transform:translateY(-4px);background:var(--paper);border-color:var(--line);box-shadow:0 30px 56px -36px rgba(59,63,104,.35);}
.rev__q{
  position:absolute;top:.4rem;right:1.3rem;
  font-family:'Fraunces',Georgia,serif;font-size:4.2rem;color:var(--gold);opacity:.16;line-height:1;
}
.rev__top{display:flex;align-items:center;gap:.85rem;margin-bottom:1.1rem;}
.rev__av{
  display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:50%;
  background:linear-gradient(150deg,var(--gold-lt),var(--sage-lt));
  font-family:'Fraunces',Georgia,serif;font-weight:400;font-size:1.15rem;color:var(--deep);
}
.rev__who{display:flex;flex-direction:column;line-height:1.3;}
.rev__who b{font-size:.94rem;font-weight:700;}
.rev__who span{font-size:.78rem;color:var(--tx-2);}
.rev__stars{color:var(--gold);font-size:.82rem;letter-spacing:.1em;margin-bottom:.4rem;}
.rev__time{margin:0 0 1rem;font-size:.78rem;color:var(--tx-2);}
.rev__body p{font-size:.95rem;color:var(--tx-2);margin:0 0 .9em;}
.rev__body p:last-child{margin-bottom:0;}

.rev__rest{
  display:grid;grid-template-rows:0fr;opacity:0;
  transition:grid-template-rows .55s var(--e-soft),opacity .45s var(--e-soft);
}
.rev__rest.is-open{grid-template-rows:1fr;opacity:1;}
.rev__rest-in{overflow:hidden;min-height:0;}
.rev__rest-in p{font-size:.95rem;color:var(--tx-2);margin:.9em 0 0;}

.rev__more{
  display:inline-flex;align-items:center;gap:.4rem;margin-top:1.1rem;
  font-weight:700;font-size:.86rem;color:var(--gold-d);cursor:pointer;
}
.rev__more svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .4s var(--e);}
.rev__more[aria-expanded="true"] svg{transform:rotate(180deg);}
.rev__more:hover{color:var(--tx);}

/* pista de deslizamiento: solo en el carrusel móvil */
.rev__hint{
  display:none;align-items:center;justify-content:center;gap:.5rem;
  margin:.2rem 0 0;font-size:.8rem;font-weight:600;letter-spacing:.02em;color:var(--tx-2);
}
.rev__hint svg{
  width:16px;height:16px;flex:none;fill:none;stroke:var(--gold);
  stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;
  animation:hintNudge 1.9s var(--e-soft) infinite;
}
@keyframes hintNudge{0%,100%{transform:translateX(0);}50%{transform:translateX(4px);}}

.rev__all{
  display:flex;align-items:center;justify-content:center;
  width:fit-content;min-height:48px;margin:clamp(2rem,4vw,3rem) auto 0;
  padding:.75rem 1.7rem;border:1px solid var(--line);border-radius:100px;
  font-weight:700;font-size:.92rem;color:var(--gold-d);text-decoration:none;
  transition:border-color .35s var(--e),color .35s var(--e),background .35s var(--e);
}
.rev__all:hover{color:var(--tx);border-color:var(--gold);background:var(--paper);}

/* ---------- CONTACTO ---------- */
.cont{background:var(--linen);}
.cont__g{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,4vw,3.4rem);align-items:start;}
.cont__info{display:grid;gap:1.5rem;}
.info{display:grid;grid-template-columns:auto 1fr;gap:1.1rem;align-items:start;}
.info__ic{
  display:grid;place-items:center;width:46px;height:46px;border-radius:50%;flex:none;
  background:var(--paper);border:1px solid var(--line);
}
.info__ic svg{width:22px;height:22px;fill:none;stroke:var(--gold-d);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.info b{display:block;font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;color:var(--tx-2);margin-bottom:.35rem;}
.info p{margin:0 0 .35rem;line-height:1.55;}
/* enlaces de llamada y correo: área táctil de 44px, es el canal principal */
.info p a{
  display:inline-flex;align-items:center;min-height:44px;
  text-decoration:none;border-bottom:1px solid var(--sand);word-break:break-word;
}
.info p a:hover{border-bottom-color:var(--gold);}
.info__a{
  display:inline-flex;align-items:center;min-height:44px;
  font-size:.9rem;font-weight:700;color:var(--gold-d);text-decoration:none;
}
.info__a:hover{text-decoration:underline;}

.hours{list-style:none;margin:0;padding:0;display:grid;gap:.55rem;}
.hours li{
  display:grid;grid-template-columns:auto auto;column-gap:.6rem;row-gap:.05rem;align-items:baseline;
}
.hours span{font-weight:700;color:var(--tx);font-size:.94rem;}
.hours em{font-style:normal;color:var(--tx-2);font-size:.9rem;text-align:right;}
.hours i{grid-column:2;font-style:normal;font-size:.76rem;color:var(--gold-d);text-align:right;}

.cont__visual{display:grid;gap:1.1rem;}

.cont__photo{
  margin:0;border-radius:18px;overflow:hidden;border:1px solid var(--line);
  box-shadow:0 30px 56px -38px rgba(59,63,104,.45);position:relative;
}
.cont__photo img{display:block;width:100%;height:clamp(180px,20vw,240px);object-fit:cover;}
.cont__photo figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:.7rem 1rem;
  background:linear-gradient(0deg,rgba(59,63,104,.82),rgba(59,63,104,0));
  color:#fff;font-size:.78rem;font-weight:600;letter-spacing:.01em;
}

.cont__map{
  border-radius:18px;overflow:hidden;border:1px solid var(--line);
  box-shadow:0 34px 64px -40px rgba(59,63,104,.45);background:var(--sand);
}
.cont__map iframe{display:block;width:100%;height:clamp(280px,34vw,380px);filter:saturate(.86) contrast(1.02);}

/* ---------- CTA FINAL ---------- */
.end{position:relative;overflow:hidden;background:var(--deep);color:var(--tx-lt);text-align:center;padding-block:clamp(4.5rem,9vw,8rem);}
.end__bloom{
  position:absolute;left:50%;top:-40%;transform:translateX(-50%);
  width:min(120vw,1100px);aspect-ratio:1;pointer-events:none;
  background:radial-gradient(circle,rgba(247,201,220,.34) 0%,rgba(247,201,220,0) 62%);
  animation:breathe 15s var(--e-soft) infinite;
}
.end__in{position:relative;max-width:48rem;margin-inline:auto;}
.end__mk{display:block;width:56px;height:56px;margin:0 auto 1.6rem;color:var(--gold-lt);opacity:.9;}
.end__mk svg{width:100%;height:100%;}
.end h2{font-size:clamp(2.1rem,5vw,3.7rem);margin-bottom:1.2rem;}
.end p{color:var(--tx-lt-2);max-width:34em;margin-inline:auto;}
.end .btn{--b:var(--gold-lt);--c:var(--deep);border-color:var(--gold-lt);margin-top:1.4rem;}
.end .btn::before{background:#fff;}
.end .btn:hover{color:var(--deep);}
.end__alt{margin:1.5rem 0 0;font-size:.92rem;}
.end__alt a{
  display:inline-flex;align-items:center;min-height:44px;padding-inline:.2rem;
  color:var(--gold-lt);text-decoration:none;border-bottom:1px solid rgba(247,201,220,.4);
}

/* ---------- FOOTER ---------- */
.ft{background:#262A48;color:var(--tx-lt-2);font-size:.92rem;}
.ft__in{
  display:grid;grid-template-columns:1.5fr 1fr 1fr .9fr;gap:2.4rem;
  padding-block:clamp(3rem,5vw,4.4rem);
}
/* logo real en el footer: mismo archivo, sin recortar ni quitarle el fondo */
.ft__logo{
  display:block;width:118px;margin-bottom:1.2rem;border-radius:14px;overflow:hidden;
  background:#fff;box-shadow:0 18px 34px -20px rgba(0,0,0,.5);
}
.ft__logo img{display:block;width:100%;height:auto;}
.ft__tag{font-family:'Fraunces',Georgia,serif;font-style:italic;font-weight:300;font-size:1.02rem;line-height:1.5;max-width:22em;color:var(--tx-lt-2);margin:0;}
.ft__col{display:flex;flex-direction:column;gap:.55rem;}
.ft__col b{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--tx-lt);margin-bottom:.35rem;font-weight:700;}
.ft__col a{
  display:inline-flex;align-items:center;min-height:44px;
  text-decoration:none;transition:color .3s var(--e);word-break:break-word;
}
.ft__col a:hover{color:var(--gold-lt);}
.ft__col p{margin:.3rem 0 0;line-height:1.6;}
.soc{display:flex;gap:.6rem;}
.soc a{
  display:grid;place-items:center;width:44px;height:44px;border-radius:50%;
  border:1px solid var(--line-lt);transition:all .4s var(--e);
}
.soc a svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.5;}
.soc a:last-child svg{fill:currentColor;stroke:none;}
.soc a:hover{background:var(--gold-lt);color:var(--deep);border-color:var(--gold-lt);transform:translateY(-3px);}
.ft__soc-tx{margin:.7rem 0 0;font-size:.82rem;}

.ft__bot{
  display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;
  border-top:1px solid var(--line-lt);padding-block:1.5rem;font-size:.82rem;
}
.ft__bot p{margin:0;}

/* ---------- FAB WHATSAPP ---------- */
.fab{
  position:fixed;right:20px;bottom:20px;z-index:180;
  width:58px;height:58px;border-radius:50%;
  display:grid;place-items:center;background:var(--wa);color:#fff;
  box-shadow:0 14px 30px -10px rgba(37,211,102,.6);
  transform:translateY(90px) scale(.85);opacity:0;
  transition:transform .5s var(--e),opacity .4s var(--e),box-shadow .4s var(--e);
}
.fab.is-on{transform:none;opacity:1;}
.fab svg{width:30px;height:30px;fill:currentColor;}
.fab::after{
  content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--wa);
  animation:ring 2.8s ease-out infinite;
}
@keyframes ring{0%{transform:scale(1);opacity:.6;}70%,100%{transform:scale(1.55);opacity:0;}}
.fab__tip{
  position:absolute;right:70px;top:50%;transform:translateY(-50%) translateX(8px);
  background:var(--deep);color:#fff;font-size:.82rem;font-weight:600;white-space:nowrap;
  padding:.5rem .9rem;border-radius:8px;opacity:0;pointer-events:none;
  transition:all .35s var(--e);
}
.fab:hover .fab__tip{opacity:1;transform:translateY(-50%);}
.fab:hover{box-shadow:0 18px 40px -10px rgba(37,211,102,.75);}

/* ---------- BARRA DE ACCIÓN (solo móvil) ---------- */
.dock{
  display:none;
  position:fixed;inset:auto 0 0;z-index:185;
  gap:.55rem;padding:.55rem .8rem calc(.55rem + env(safe-area-inset-bottom));
  background:rgba(253,251,252,.93);
  -webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);
  border-top:1px solid var(--line);
  transform:translateY(115%);transition:transform .45s var(--e);
}
.dock.is-on{transform:none;}
.dock__b{
  flex:1;min-height:52px;
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  text-decoration:none;font-weight:700;font-size:.98rem;border-radius:100px;
}
.dock__b svg{width:20px;height:20px;flex:none;}
.dock__b--wa{background:var(--wa);color:#fff;fill:currentColor;box-shadow:0 8px 20px -10px rgba(37,211,102,.8);}
.dock__b--tel{flex:0 0 41%;background:transparent;color:var(--deep);border:1px solid var(--line);}
.dock__b:active{transform:scale(.98);}

/* ══════════════ ANIMACIONES DE ENTRADA ══════════════ */
.anim{opacity:0;transform:translateY(22px);filter:blur(4px);}
.anim.in{
  opacity:1;transform:none;filter:blur(0);
  transition:opacity .95s var(--e-soft),transform .95s var(--e-soft),filter .95s var(--e-soft);
}

/* ══════════════ RESPONSIVE ══════════════ */
@media (max-width:1180px){
  .rail{display:none;}
}
@media (max-width:1024px){
  .hero__in{grid-template-columns:1fr;gap:3rem;}
  .hero__art{max-width:560px;margin-inline:auto;width:100%;}
  .hero__lead{max-width:none;}
  .sobre__in,.porque__in,.cont__g{grid-template-columns:1fr;}
  .sobre__art,.porque__hd{position:static;}
  .sobre__art{max-width:520px;}
  .arch--xs{max-width:none;margin-top:1.6rem;border-radius:120px 120px 12px 12px;}
  .arch--xs img{height:clamp(180px,32vw,240px);object-position:center 42%;}
  .cards{grid-template-columns:1fr;}
  .card{max-width:none;}
  .temas__g{grid-template-columns:repeat(2,1fr);}
  .rev__g{grid-template-columns:1fr 1fr;}
  .rev:first-child{grid-column:1 / -1;}
  .ft__in{grid-template-columns:1fr 1fr;gap:2.2rem;}
}
@media (max-width:860px){
  .hd__nav{display:none;}
  .burger{display:block;}
  .hd .btn--sm{display:none;}
  .hd__in{min-height:72px;}
  .drawer{inset-block-start:72px;}
  html{scroll-padding-top:80px;}
  .strip__in{grid-template-columns:repeat(2,1fr);gap:1.4rem 0;}
  .strip__i:nth-child(3){border-left:0;padding-left:0;}
}
@media (max-width:620px){
  /* --- ritmo general: texto más compacto y menos scroll --- */
  body{font-size:1rem;line-height:1.66;}
  h1{font-size:clamp(2.45rem,11.5vw,3.3rem);line-height:1.04;}
  h2{font-size:clamp(1.85rem,7.8vw,2.5rem);}
  h3{font-size:1.14rem;}
  p{margin-bottom:1em;}
  .sec{padding-block:3.6rem;}
  .sec__hd{margin-bottom:2rem;}
  .sec__sub{font-size:.98rem;margin-top:1rem;}
  .kicker{font-size:.68rem;letter-spacing:.17em;margin-bottom:1.1rem;}
  .lead{font-size:1.06rem;}

  /* --- header y menú --- */
  .brand__mk{width:36px;height:36px;}
  .brand__tx b{font-size:.98rem;}
  .brand__tx i{font-size:.58rem;letter-spacing:.1em;white-space:nowrap;}
  .drawer nav a{font-size:1.42rem;padding:.95rem 0;}

  /* --- hero --- */
  .hero{padding:104px 0 2.6rem;}
  .hero__in{gap:2.2rem;}
  .hero__logo{width:132px;margin-bottom:1.1rem;}
  .hero__deco{width:150vw;top:38%;opacity:.42;}
  .hero__art::before{inset:-12px -12px 24px 14px;}
  .hero__triad{gap:.3rem 1rem;margin-bottom:1.3rem;}
  .hero__triad li{font-size:.82rem;}
  .hero__triad svg{width:22px;height:10px;}
  .hero__lead{font-size:1.02rem;margin-bottom:1.5rem;}
  .hero__act{flex-direction:column;align-items:stretch;gap:.6rem;}
  .hero__act .btn{width:100%;min-height:54px;}
  .hero__note{font-size:.85rem;}
  .hero__scroll{display:none;}
  .arch img{height:clamp(330px,80vw,420px);}
  /* en móvil la reseña deja de flotar y se vuelve una barra bajo la foto */
  .hero__art{display:flex;flex-direction:column;}
  .rate{
    position:static;order:2;margin-top:.9rem;animation:none;
    display:flex;flex-wrap:wrap;align-items:center;gap:.15rem .7rem;
    padding:.75rem 1rem;border-radius:12px;box-shadow:none;
  }
  .rate__stars{font-size:.8rem;}
  .rate p{margin:0;font-size:.9rem;}
  .rate p b{font-size:1.1rem;}
  .rate span{margin:0;font-size:.76rem;}
  /* en móvil, un poco menos de relleno: la foto es más baja */
  .chip--online{padding:2.1rem 1.15rem .95rem;font-size:.82rem;}

  /* --- strip --- */
  .strip__in{padding-block:1.6rem;gap:1.1rem 0;}
  .strip__i{padding:0 .9rem;}
  .strip__i b{font-size:1rem;}
  .strip__i span{font-size:.76rem;}

  /* --- sobre --- */
  .sobre__art{margin-bottom:.4rem;}
  .arch--sm img{height:clamp(280px,66vw,360px);}
  .quote{margin:-32px 0 0;padding:1.2rem 1.25rem 1rem;}
  .quote p{font-size:1rem;}
  .quote span{font-size:3rem;}
  .sobre__role{font-size:.72rem;margin-bottom:1.3rem;}
  .triad{grid-template-columns:1fr;justify-items:center;padding:1.3rem 1.1rem;margin:2rem 0 1.6rem;}
  .triad__svg{width:132px;}
  .triad__key{width:100%;gap:.75rem;}
  .pend{padding:.9rem 1rem;}
  .pend p{font-size:.86rem;}

  /* --- servicios --- */
  .cards{gap:.9rem;}
  .card{padding:1.7rem 1.3rem 1.5rem;border-radius:18px 18px 12px 12px;}
  .card__n{font-size:2.1rem;top:1.1rem;right:1.2rem;}
  .card__ic{width:52px;height:52px;margin-bottom:1rem;}
  .card__ic svg{width:28px;height:28px;}
  .card p{font-size:.95rem;}
  .card__ul{margin-bottom:1.2rem;}
  .card__cta{min-height:44px;align-items:center;}
  .serv__mode{flex-direction:column;align-items:flex-start;gap:.55rem;text-align:left;font-size:.88rem;}

  /* --- esperanza --- */
  .hope{padding-block:3.8rem;}
  .hope h2{font-size:clamp(1.95rem,8.2vw,2.7rem);margin-bottom:1.3rem;}
  .hope p{font-size:1rem;}
  .hope .btn{width:100%;min-height:54px;}

  /* --- temas --- */
  .temas__g{grid-template-columns:1fr;gap:.8rem;}
  .tema{padding:1.5rem 1.3rem;border-radius:16px;}
  .tema__ic{width:40px;height:40px;margin-bottom:.85rem;}
  .tema p{font-size:.93rem;}
  .tema__link{min-height:44px;align-items:center;}

  /* --- por qué --- */
  .porque__hd .arch--xs{margin-top:1.4rem;border-radius:100px 100px 12px 12px;}
  .porque__hd .arch--xs img{height:210px;object-position:center 45%;filter:saturate(.7) sepia(.24) brightness(1.05);}
  .why li{padding:1.5rem 0 1.5rem 3.6rem;}
  .why li:first-child{padding-top:0;}
  .why__n{width:2.6rem;height:2.6rem;font-size:1.1rem;top:1.5rem;}
  .why li:first-child .why__n{top:0;}
  .why p{font-size:.96rem;}

  /* --- reseñas: carrusel horizontal --- */
  .sec__sub--rev{font-size:.94rem;}
  .rev__g{
    /* stretch: todas las tarjetas igualan altura, sin huecos al deslizar */
    display:flex;grid-template-columns:none;align-items:stretch;gap:.85rem;
    overflow-x:auto;overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
    /* se sangra hasta el borde de la pantalla para que el deslizamiento se sienta natural */
    margin-inline:calc(var(--pad) * -1);
    padding:.25rem var(--pad) 1.1rem;
    scroll-padding-inline:var(--pad);
    scrollbar-width:none;
  }
  .rev__g::-webkit-scrollbar{display:none;}
  .rev__g.has-open{align-items:flex-start;}
  .rev__g:focus-visible{outline:2px solid var(--gold-d);outline-offset:2px;border-radius:18px;}
  .rev{
    flex:0 0 84%;scroll-snap-align:start;grid-column:auto;
    padding:1.6rem 1.4rem 1.5rem;border-radius:16px;
  }
  .rev:hover{transform:none;}
  .rev__q{font-size:3.4rem;top:.2rem;right:1.1rem;}
  .rev__av{width:40px;height:40px;font-size:1.05rem;}
  .rev__body p,.rev__rest-in p{font-size:.93rem;}
  .rev__more{min-height:44px;}
  .rev__all{font-size:.9rem;width:100%;}

  /* pista de deslizamiento */
  .rev__hint{display:flex;}

  /* --- contacto --- */
  .cont__g{gap:1.8rem;}
  .cont__info{gap:1.2rem;}
  .info{gap:.9rem;}
  .info__ic{width:40px;height:40px;}
  .info__ic svg{width:19px;height:19px;}
  .info b{font-size:.7rem;}
  .info p{font-size:.96rem;}
  .info__a{min-height:44px;}
  .cont__map iframe{height:270px;}

  /* --- cierre y footer --- */
  .end{padding-block:3.8rem;}
  .end__mk{width:46px;height:46px;margin-bottom:1.2rem;}
  .end h2{font-size:clamp(1.9rem,8vw,2.6rem);}
  .end p{font-size:1rem;}
  .end .btn{width:100%;min-height:56px;}
  .ft__in{grid-template-columns:1fr;gap:1.9rem;padding-block:2.6rem;}
  .ft__col a{min-height:44px;}
  .ft__bot{flex-direction:column;gap:.4rem;padding-block:1.2rem;}

  /* --- en móvil manda la barra inferior, no el botón flotante --- */
  .fab{display:none;}
  .dock{display:flex;}
  body{padding-bottom:calc(70px + env(safe-area-inset-bottom));}
}

/* ══════════════ ACCESIBILIDAD ══════════════ */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{
    animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .anim{opacity:1;transform:none;filter:none;}
  .triad__svg .tr{stroke-dashoffset:0;}
  .triad__svg .tr__core{opacity:1;}
  .fab{opacity:1;transform:none;}
  .dock{transform:none;}
}
@media print{
  .hd,.rail,.fab,.dock,.drawer,.prog,.grain,.hero__scroll{display:none !important;}
  .anim{opacity:1;transform:none;filter:none;}
  body{background:#fff;}
}
