/* ════════════════════════════════════════════════════════════════════
   Academia Horizonte — estilos
   Dirección: blanco y negro, editorial y científico.
   La vida la ponen el movimiento (red de puntos, átomo, cintas)
   y el contraste entre papel claro y secciones de noche.
   ════════════════════════════════════════════════════════════════════ */

:root{
  --papel:#f5f5f2;
  --papel-2:#ebebe7;
  --blanco:#ffffff;
  --tinta:#0c0c0d;
  --tinta-2:#55555a;
  --tinta-3:#8b8b90;
  --linea:#e2e2de;
  --linea-2:#c9c9c4;
  --marcador:#dcdcd5;          /* el subrayador, gris cálido */
  --noche:#0c0c0d;
  --noche-2:#161618;
  --claro:#f5f5f2;
  --claro-2:rgba(245,245,242,.66);
  --claro-3:rgba(245,245,242,.16);

  --serif:"Instrument Serif", "Times New Roman", Georgia, serif;
  --sans:"Geist", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --mono:"Geist Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;
  --marca:"Comfortaa", "Quicksand", "Varela Round", system-ui, sans-serif;

  --ancho:1240px;
  --estrecho:760px;
  --suave:cubic-bezier(.2,.7,.15,1);
  --cab:84px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;background:var(--papel);color:var(--tinta);font:400 17px/1.65 var(--sans);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
figure{margin:0}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--tinta);color:var(--papel)}
.ico{width:1.1em;height:1.1em;flex:none;display:inline-block;vertical-align:-.16em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sr:focus{position:fixed;left:12px;top:12px;width:auto;height:auto;clip:auto;z-index:200;background:var(--tinta);color:var(--papel);padding:10px 16px;border-radius:999px}
:focus-visible{outline:2px solid var(--tinta);outline-offset:3px;border-radius:4px}

.envoltura{width:min(var(--ancho), 100% - 56px);margin-inline:auto}
.estrecho{width:min(var(--estrecho), 100% - 56px);margin-inline:auto}
@media (max-width:600px){ .envoltura,.estrecho{width:calc(100% - 32px)} }

/* ── Tipografía ─────────────────────────────────────────────────────── */
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;letter-spacing:-.02em;line-height:1;margin:0;color:var(--tinta);text-wrap:balance}
h1{font-size:clamp(3rem, 1.4rem + 6vw, 7rem);line-height:.95}
h2{font-size:clamp(2.6rem, 1.5rem + 3.8vw, 5.2rem);line-height:.96}
h3{font-size:clamp(1.6rem, 1.3rem + .9vw, 2.1rem);line-height:1.05}
h1 em,h2 em,h3 em{font-style:italic}
/* Brillo plateado que recorre las palabras en cursiva de los títulos */
h1 em,h2 em,.lema em,.pie-lema em{background:linear-gradient(100deg, currentColor 0 40%, #9a9a9f 50%, currentColor 60% 100%) 0 0 / 300% 100%;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:brillo 3.2s ease-in-out .8s 2 both}
@keyframes brillo{0%{background-position:100% 0}100%{background-position:0 0}}
.seccion-noche h2 em,.pie-lema em{background-image:linear-gradient(100deg, var(--claro) 0 40%, #77777c 50%, var(--claro) 60% 100%)}
p{margin:0 0 1em;text-wrap:pretty}
.etiqueta{display:inline-flex;align-items:center;gap:10px;font:500 .72rem/1.4 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--tinta-2);margin:0 0 26px}
.etiqueta::before{content:"";width:7px;height:7px;border-radius:50%;border:1px solid currentColor;box-shadow:inset 0 0 0 1.5px var(--papel), inset 0 0 0 4px currentColor}
.seccion-blanca .etiqueta::before{box-shadow:inset 0 0 0 1.5px var(--blanco), inset 0 0 0 4px currentColor}
.seccion-noche .etiqueta::before{box-shadow:inset 0 0 0 1.5px var(--noche), inset 0 0 0 4px currentColor}
.entrada{font-size:clamp(1.06rem, 1rem + .3vw, 1.22rem);line-height:1.6;color:var(--tinta-2);max-width:34em;margin-inline:auto}

/* Subrayador: se «pinta» al aparecer */
.sub{background:linear-gradient(var(--marcador), var(--marcador)) no-repeat 0 88% / 0% .32em;padding:0 .04em;transition:background-size 1.2s var(--suave) .45s;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.visto .sub,.sub.visto{background-size:100% .32em}
html:not(.js) .sub{background-size:100% .32em}
.sub em{-webkit-text-fill-color:currentColor;background:none;animation:none}

/* ── Botones ────────────────────────────────────────────────────────── */
.boton{display:inline-flex;align-items:center;justify-content:center;gap:.65em;min-height:54px;padding:0 1.7em;border-radius:999px;
  border:1px solid var(--tinta);background:var(--tinta);color:var(--papel);font:500 .95rem/1 var(--sans);letter-spacing:.005em;
  text-decoration:none;cursor:pointer;white-space:nowrap;position:relative;overflow:hidden;isolation:isolate;
  transition:color .45s var(--suave), border-color .3s, transform .45s var(--suave), background .3s}
.boton::before{content:"";position:absolute;left:50%;top:100%;width:140%;aspect-ratio:1;border-radius:50%;background:var(--blanco);transform:translate(-50%, 0) scale(.2);transition:transform .6s var(--suave);z-index:-1}
.boton:hover{color:var(--tinta)}
.boton:hover::before{transform:translate(-50%, -62%) scale(1.2)}
.boton:active{transform:scale(.97)}
.boton .ico{transition:transform .4s var(--suave)}
.boton:hover .ico-flecha{transform:translateX(4px)}
.boton-linea{background:transparent;color:var(--tinta);border-color:var(--linea-2)}
.boton-linea::before{background:var(--tinta)}
.boton-linea:hover{color:var(--papel);border-color:var(--tinta)}
.boton-claro{background:var(--claro);color:var(--tinta);border-color:var(--claro)}
.boton-claro::before{background:var(--papel-2)}
.boton-borde-claro{background:transparent;color:var(--claro);border-color:rgba(245,245,242,.32)}
.boton-borde-claro::before{background:var(--claro)}
.boton-borde-claro:hover{color:var(--tinta);border-color:var(--claro)}
.botones{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.enlace{display:inline-flex;align-items:center;gap:.5em;font:500 .76rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--tinta);padding-bottom:7px;
  background:linear-gradient(var(--tinta), var(--tinta)) no-repeat 0 100% / 100% 1px;transition:background-size .45s var(--suave), gap .3s}
.enlace:hover{gap:.85em;background-size:30% 1px}
.estrellas{display:inline-flex;gap:2px;color:var(--tinta);vertical-align:middle}
.estrellas .ico{width:14px;height:14px}

/* ── Aviso superior ─────────────────────────────────────────────────── */
.aviso-sup{background:var(--tinta);color:rgba(245,245,242,.74);font:400 .68rem/1 var(--mono);letter-spacing:.13em;text-transform:uppercase;position:relative;z-index:51}
.aviso-sup .envoltura{display:flex;justify-content:center;align-items:center;gap:14px;min-height:36px;text-align:center}
.aviso-sup a{text-decoration:none;color:var(--claro);transition:opacity .2s}
.aviso-sup a:hover{opacity:.7}
.aviso-sup .ico{width:12px;height:12px;vertical-align:-1px}
.aviso-sup .punto{width:3px;height:3px;border-radius:50%;background:rgba(245,245,242,.5);flex:none}
@media (max-width:760px){ .aviso-sup .ocultar-movil{display:none} .aviso-sup{font-size:.62rem;letter-spacing:.1em} }

/* ── Logotipo (texto + átomo) ───────────────────────────────────────── */
.logo{display:inline-flex;flex-direction:column;align-items:flex-start;font-size:30px;line-height:1;color:var(--tinta);user-select:none}
.logo-a{font:300 .42em/1 var(--marca);letter-spacing:.01em;margin:0 0 .06em .06em}
.logo-h{display:flex;align-items:center;font:400 1em/1 var(--marca);letter-spacing:.005em;white-space:nowrap}
.logo .atomo{width:1.32em;height:1.32em;margin:-.16em -.1em -.16em -.06em;flex:none;overflow:visible}
.marca{display:inline-flex;text-decoration:none;color:var(--tinta);flex:none}
.marca .atomo{transition:transform 1.2s var(--suave)}
.marca:hover .atomo{transform:rotate(120deg)}

/* ── Cabecera ───────────────────────────────────────────────────────── */
.cabecera{position:sticky;top:0;z-index:50;background:rgba(245,245,242,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color .3s, background .3s}
.cabecera.con-sombra{border-color:var(--linea);background:rgba(245,245,242,.92)}
.cabecera .envoltura{display:flex;align-items:center;justify-content:space-between;min-height:var(--cab);gap:24px}
.cabecera .logo{font-size:29px}
.menu{display:flex;gap:2px;align-items:center}
.menu a{position:relative;padding:9px 14px;text-decoration:none;font-size:.94rem;color:var(--tinta-2);border-radius:999px;transition:color .25s, background .25s}
.menu a:hover{color:var(--tinta);background:rgba(12,12,13,.05)}
.menu a[aria-current="page"]{color:var(--tinta)}
.menu a[aria-current="page"]::after{content:"";position:absolute;left:50%;bottom:2px;width:4px;height:4px;border-radius:50%;background:var(--tinta);transform:translateX(-50%)}
.cab-dcha{display:flex;align-items:center;gap:10px}
.boton-cab{min-height:46px;padding:0 1.35em;font-size:.9rem}
.boton-redondo{display:inline-flex;width:46px;height:46px;border-radius:50%;border:1px solid var(--linea-2);background:transparent;cursor:pointer;align-items:center;justify-content:center;text-decoration:none;color:var(--tinta);transition:border-color .25s, background .25s, transform .3s var(--suave)}
.boton-redondo:hover{border-color:var(--tinta);background:var(--blanco)}
.boton-redondo:active{transform:scale(.94)}
.boton-redondo .ico{width:20px;height:20px}
.boton-menu{display:none}
.progreso{position:absolute;left:0;bottom:-1px;height:2px;width:100%;background:var(--tinta);transform:scaleX(var(--p, 0));transform-origin:left;pointer-events:none}
@media (max-width:1100px){
  .menu{display:none}
  .boton-menu{display:inline-flex}
  :root{--cab:72px}
}
@media (max-width:560px){
  .cabecera .logo{font-size:24px}
  .boton-cab{display:none}
  .cab-dcha{gap:8px}
  .boton-redondo{width:44px;height:44px}
}

/* Menú móvil */
.menu-movil{position:fixed;inset:0;z-index:80;background:var(--noche);color:var(--claro);display:flex;flex-direction:column;padding:14px 16px calc(24px + env(safe-area-inset-bottom));overflow:auto;
  clip-path:circle(0 at calc(100% - 38px) 54px);visibility:hidden;transition:clip-path .7s var(--suave), visibility 0s .7s}
.menu-movil.abierto{clip-path:circle(150% at calc(100% - 38px) 54px);visibility:visible;transition:clip-path .8s var(--suave)}
.menu-movil .fila{display:flex;align-items:center;justify-content:space-between;min-height:60px}
.menu-movil .marca,.menu-movil .logo{color:var(--claro)}
.menu-movil .logo{font-size:24px}
.menu-movil .boton-redondo{color:var(--claro);border-color:rgba(245,245,242,.3)}
.menu-movil .boton-redondo:hover{background:transparent;border-color:var(--claro)}
.menu-movil nav{margin:auto 0;padding:34px 4px;display:grid}
.menu-movil nav a{display:flex;align-items:baseline;gap:16px;padding:9px 0;border-bottom:1px solid rgba(245,245,242,.1);font:400 clamp(2.1rem, 9vw, 3rem)/1.1 var(--serif);text-decoration:none;opacity:0;transform:translateY(18px);transition:opacity .5s, transform .7s var(--suave)}
.menu-movil nav a small{font:400 .66rem/1 var(--mono);letter-spacing:.12em;color:rgba(245,245,242,.4);width:22px}
.menu-movil nav a[aria-current="page"] span{font-style:italic}
.menu-movil nav a[aria-current="page"] small{color:var(--claro)}
.menu-movil.abierto nav a{opacity:1;transform:none}
.menu-movil.abierto nav a:nth-child(1){transition-delay:.12s}.menu-movil.abierto nav a:nth-child(2){transition-delay:.16s}
.menu-movil.abierto nav a:nth-child(3){transition-delay:.2s}.menu-movil.abierto nav a:nth-child(4){transition-delay:.24s}
.menu-movil.abierto nav a:nth-child(5){transition-delay:.28s}.menu-movil.abierto nav a:nth-child(6){transition-delay:.32s}
.menu-movil.abierto nav a:nth-child(7){transition-delay:.36s}
.menu-movil .botones{flex-direction:column}
.menu-movil .botones .boton{width:100%}
.menu-movil .boton{background:var(--claro);color:var(--tinta);border-color:var(--claro)}
.menu-movil .boton-linea{background:transparent;color:var(--claro);border-color:rgba(245,245,242,.3)}
.menu-movil .datos{margin:22px 0 0;text-align:center;font:400 .66rem/1.9 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:rgba(245,245,242,.55)}
body.sin-scroll{overflow:hidden}

/* ── Secciones ──────────────────────────────────────────────────────── */
.seccion{padding:clamp(96px, 11vw, 164px) 0;position:relative}
.seccion-blanca{background:var(--blanco)}
.seccion-noche{background:var(--noche);color:var(--claro-2);overflow:hidden;isolation:isolate}
.seccion-noche h2,.seccion-noche h3{color:var(--claro)}
.seccion-noche .etiqueta{color:rgba(245,245,242,.6)}
.seccion-noche .entrada{color:rgba(245,245,242,.7)}
.seccion-noche .envoltura{position:relative;z-index:1}
.cabeza{text-align:center;margin-bottom:clamp(56px, 6vw, 88px)}
.cabeza h2{margin-bottom:.35em}
.cabeza .entrada{margin-bottom:0}
.cabeza-fila{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;text-align:left;flex-wrap:wrap}
.cabeza-fila h2{margin:0}

/* ── Red de puntos (canvas) ─────────────────────────────────────────── */
.red{position:absolute;pointer-events:none;display:block;contain:layout paint}
.red-oscura{inset:0;width:100%;height:100%;z-index:0;opacity:.85}
.red-pie{inset:0;width:100%;height:100%;opacity:.5}

/* ── Portada ────────────────────────────────────────────────────────── */
.portada{position:relative;isolation:isolate;overflow:hidden;min-height:calc(100svh - var(--cab) - 36px);display:flex;flex-direction:column;justify-content:center;padding:clamp(48px, 7vh, 90px) 0 0;text-align:center}
.portada::before{content:"";position:absolute;inset:0;z-index:-2;
  background-image:radial-gradient(rgba(12,12,13,.09) 1px, transparent 1.2px);background-size:26px 26px;
  -webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 45%, #000, transparent 75%);mask-image:radial-gradient(ellipse 70% 60% at 50% 45%, #000, transparent 75%)}
.red-portada{z-index:-1;left:50%;top:50%;width:min(1100px, 130vw);aspect-ratio:1;transform:translate(-50%, -54%);opacity:0;animation:aparecer 2.4s ease .3s forwards}
.red-portada[data-interactiva]{pointer-events:auto}
@keyframes aparecer{to{opacity:1}}
.portada > .envoltura{position:relative;pointer-events:none}
.portada > .envoltura a,.portada > .envoltura .botones{pointer-events:auto}

.nota-chip{display:inline-flex;align-items:center;gap:10px;padding:8px 16px 8px 10px;border:1px solid var(--linea-2);border-radius:999px;background:rgba(255,255,255,.75);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  text-decoration:none;font-size:.88rem;color:var(--tinta-2);margin-bottom:clamp(30px, 4vh, 48px);animation:sube .9s var(--suave) .1s both;transition:border-color .3s, transform .4s var(--suave)}
.nota-chip:hover{border-color:var(--tinta);transform:translateY(-2px)}
.nota-chip .g{width:20px;height:20px;padding:3px;border-radius:50%;background:var(--blanco);box-shadow:0 0 0 1px var(--linea)}
.nota-chip b{color:var(--tinta);font-weight:500}

.logo-portada{margin:0;display:flex;justify-content:center;line-height:1}
.logo-xl{font-size:clamp(46px, calc((100vw - 48px) / 6.15), 172px);align-items:flex-start}
.logo-xl .logo-a{animation:sube 1s var(--suave) .15s both;margin-bottom:.1em}
.logo-xl .logo-h .l{display:inline-block;animation:letra 1.2s var(--suave) both}
.logo-xl .logo-h .l:nth-child(1){animation-delay:.2s}.logo-xl .logo-h .l:nth-child(2){animation-delay:.26s}
.logo-xl .logo-h .l:nth-child(3){animation-delay:.32s}.logo-xl .logo-h .l:nth-child(4){animation-delay:.38s}
.logo-xl .logo-h .l:nth-child(5){animation-delay:.44s}.logo-xl .logo-h .l:nth-child(7){animation-delay:.56s}
.logo-xl .logo-h .l:nth-child(8){animation-delay:.62s}.logo-xl .logo-h .l:nth-child(9){animation-delay:.68s}
@keyframes letra{from{opacity:0;transform:translateY(.35em);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
@keyframes sube{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* Átomo vivo: se dibuja y luego gira */
.atomo-vivo{fill:none;stroke:currentColor}
.atomo-vivo .a-orbitas{stroke-width:3.2}
.atomo-vivo{will-change:transform;animation:gira 60s linear 2.4s infinite}
.atomo-vivo .a-orbitas path{stroke-dasharray:1.02 1.02;stroke-dashoffset:1.02;animation:traza 1.6s var(--suave) forwards}
.atomo-vivo .a-orbitas path:nth-child(1){animation-delay:.55s}
.atomo-vivo .a-orbitas path:nth-child(2){animation-delay:.75s}
.atomo-vivo .a-orbitas path:nth-child(3){animation-delay:.95s}
.atomo-vivo .a-anillo{stroke-width:7;stroke-dasharray:1.02 1.02;stroke-dashoffset:1.02;animation:traza 1.2s var(--suave) .45s forwards}
.atomo-vivo .a-nucleo{fill:currentColor;stroke:none;transform-origin:0 0;animation:nucleo .8s var(--suave) 1.1s both, late 2.8s ease-in-out 2s infinite}
.atomo-vivo .a-electrones{fill:currentColor;stroke:none;opacity:0;animation:aparecer .8s ease 1.9s forwards}
.atomo-vivo .a-electrones g{animation:none}
@keyframes traza{to{stroke-dashoffset:0}}
@keyframes nucleo{from{transform:scale(0)}to{transform:scale(1)}}
@keyframes late{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}
@keyframes gira{to{transform:rotate(360deg)}}

.lema{font:400 clamp(1.7rem, 1.1rem + 2.2vw, 3.1rem)/1.05 var(--serif);letter-spacing:-.015em;margin:clamp(22px, 3vh, 36px) 0 14px;animation:sube 1s var(--suave) .9s both}
.lema em{font-style:italic}
.portada .entrada{margin-bottom:34px;animation:sube 1s var(--suave) 1.05s both;max-width:36em}
.portada .botones{animation:sube 1s var(--suave) 1.2s both}
.portada-pie{margin-top:auto;padding-top:clamp(48px, 7vh, 80px);animation:aparecer 1s ease 1.6s both}
.portada-pie .envoltura{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 0;border-top:1px solid var(--linea);font:400 .7rem/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-2)}
.portada-pie .ico{width:14px;height:14px;margin-right:6px;vertical-align:-2px}
.bajar{width:30px;height:46px;border:1px solid var(--linea-2);border-radius:999px;display:grid;justify-items:center;padding-top:9px;flex:none;transition:border-color .3s}
.bajar:hover{border-color:var(--tinta)}
.bajar span{width:3px;height:9px;border-radius:2px;background:var(--tinta);animation:raton 1.8s var(--suave) infinite}
@keyframes raton{0%{transform:translateY(0);opacity:0}30%{opacity:1}100%{transform:translateY(16px);opacity:0}}
@media (max-width:700px){
  .portada{min-height:0;padding-top:36px}
  .portada-pie .envoltura{justify-content:center;flex-wrap:wrap;gap:8px 18px;padding:18px 0;font-size:.62rem}
  .bajar{display:none}
  .portada .botones{flex-direction:column;align-items:stretch;max-width:340px;margin-inline:auto}
  .nota-chip{font-size:.8rem;gap:8px;padding:7px 13px 7px 8px}
  .nota-chip .estrellas .ico{width:12px;height:12px}
}

/* ── Cinta de asignaturas ───────────────────────────────────────────── */
.cinta{border-block:1px solid var(--tinta);overflow:hidden;background:var(--tinta);color:var(--claro);padding:18px 0}
.cinta-pista{display:flex;width:max-content;will-change:transform;animation:cinta 40s linear infinite}
.cinta ul{display:flex;align-items:center;list-style:none;margin:0;padding:0}
.cinta li{display:flex;align-items:center;font:400 clamp(1.5rem, 1.1rem + 1.4vw, 2.4rem)/1 var(--serif);white-space:nowrap;padding-right:40px}
.cinta li:nth-child(even){font-style:italic;color:rgba(245,245,242,.6)}
.cinta li::after{content:"";width:.42em;height:.42em;border:1.5px solid currentColor;border-radius:50%;margin-left:40px;box-shadow:inset 0 0 0 .1em var(--tinta), inset 0 0 0 1em currentColor;opacity:.8}
@keyframes cinta{to{transform:translateX(-50%)}}

/* ── Reseñas en portada ─────────────────────────────────────────────── */
.resenas-inicio{overflow:hidden}
.resenas-cabeza{display:grid;grid-template-columns:minmax(0, .8fr) minmax(0, 1.4fr);gap:clamp(32px, 6vw, 96px);align-items:center;margin-bottom:clamp(56px, 6vw, 84px)}
.marcador{text-align:left;padding-right:clamp(0px, 3vw, 40px);border-right:1px solid var(--linea)}
.nota-grande{display:block;font:400 clamp(6.5rem, 3rem + 10vw, 12rem)/.82 var(--serif);letter-spacing:-.05em;margin:0 0 14px -.04em}
.marcador .estrellas .ico{width:22px;height:22px}
.nota-pie{display:block;margin-top:14px;font:400 .72rem/1.6 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-2)}
.cita-destacada blockquote{margin:0;font:400 clamp(1.9rem, 1.2rem + 2.4vw, 3.5rem)/1.08 var(--serif);letter-spacing:-.018em;text-wrap:balance}
.cita-destacada figcaption{margin-top:26px;font:400 .72rem/1.6 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-2)}
@media (max-width:860px){
  .resenas-cabeza{grid-template-columns:1fr;text-align:center}
  .marcador{text-align:center;border-right:0;padding:0 0 40px;border-bottom:1px solid var(--linea)}
  .nota-grande{margin-inline:auto}
}
.cintas{display:grid;gap:18px;margin-bottom:clamp(48px, 5vw, 72px);-webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent)}
.cinta-resenas{overflow:hidden}
.cinta-r-pista{display:flex;gap:18px;width:max-content;will-change:transform;animation:cinta 90s linear infinite;padding:4px 9px}
.al-reves .cinta-r-pista{animation-direction:reverse;animation-duration:100s}
.cintas:hover .cinta-r-pista{animation-play-state:paused}
.cinta-resenas .resena{width:min(390px, 82vw);flex:none}
@media (max-width:700px){ .al-reves{display:none} .cinta-r-pista{animation-duration:70s} }

/* Tarjeta de reseña */
.resena{position:relative;display:flex;flex-direction:column;gap:16px;padding:28px 28px 24px;background:var(--blanco);border:1px solid var(--linea);border-radius:22px;text-align:left;
  transition:border-color .35s, transform .5s var(--suave), box-shadow .5s var(--suave)}
.resena:hover{border-color:var(--tinta);transform:translateY(-3px);box-shadow:0 24px 40px -30px rgba(12,12,13,.35)}
.resena blockquote{margin:0;font-size:.98rem;line-height:1.6;color:var(--tinta);flex:1}
.resena figcaption{display:flex;align-items:center;gap:12px;padding-top:16px;border-top:1px solid var(--linea)}
.resena .inicial{width:38px;height:38px;border-radius:50%;background:var(--tinta);color:var(--claro);display:grid;place-items:center;font:400 1.15rem/1 var(--serif);flex:none}
.resena b{display:block;font-weight:500;font-size:.93rem}
.resena small{display:block;font:400 .66rem/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--tinta-3)}
.resena .estrellas .ico{width:13px;height:13px}
.resenas-inicio > .botones{margin-top:0}

/* ── Qué ofrecemos ─────────────────────────────────────────────────── */
.oferta{display:grid;grid-template-columns:repeat(3, 1fr);border-top:1px solid var(--tinta);border-left:1px solid var(--linea)}
.servicio{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:40px 34px 38px;border-right:1px solid var(--linea);border-bottom:1px solid var(--linea);text-decoration:none;isolation:isolate;overflow:hidden;min-height:300px;
  transition:color .5s var(--suave)}
.servicio::before{content:"";position:absolute;inset:0;background:var(--tinta);z-index:-1;clip-path:circle(0 at var(--x, 50%) var(--y, 100%));transition:clip-path .75s var(--suave)}
.servicio:hover{color:var(--claro)}
.servicio:hover::before{clip-path:circle(150% at var(--x, 50%) var(--y, 100%))}
.servicio .num{font:400 .7rem/1 var(--mono);letter-spacing:.14em;color:var(--tinta-3);margin-bottom:auto;transition:color .4s}
.servicio .ico-d{width:50px;height:50px;margin:28px 0 8px;transition:transform .7s var(--suave), color .4s}
.servicio:hover .ico-d{transform:translateY(-4px) rotate(-8deg);color:var(--claro);--acento:rgba(245,245,242,.18)}
.servicio h3{font-size:clamp(1.8rem, 1.4rem + .9vw, 2.4rem);transition:color .4s}
.servicio:hover h3,.servicio:hover .num{color:var(--claro)}
.servicio p{margin:0;color:var(--tinta-2);font-size:.96rem;max-width:20em;transition:color .4s}
.servicio:hover p{color:var(--claro-2)}
.servicio .ir{display:inline-flex;align-items:center;gap:8px;margin-top:10px;font:400 .68rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;opacity:0;transform:translateX(-8px);transition:opacity .4s, transform .5s var(--suave)}
.servicio:hover .ir{opacity:1;transform:none}
@media (hover:none){ .servicio .ir{opacity:1;transform:none} }
@media (max-width:900px){ .oferta{grid-template-columns:1fr 1fr} .servicio{min-height:260px;padding:32px 24px} }
@media (max-width:560px){
  .servicio{min-height:0;padding:26px 16px 24px;gap:8px}
  .servicio .ico-d{width:38px;height:38px;margin:16px 0 4px}
  .servicio h3{font-size:1.5rem}
  .servicio p{font-size:.84rem;line-height:1.45}
  .servicio .ir{display:none}
}

/* ── Cifras ─────────────────────────────────────────────────────────── */
.cifras-seccion{padding:clamp(88px, 10vw, 140px) 0}
.cifras{display:grid;grid-template-columns:repeat(4, 1fr);text-align:center}
.cifra{padding:10px 20px}
.cifra + .cifra{border-left:1px solid var(--claro-3)}
.cifra b{display:block;font:400 clamp(3.6rem, 2rem + 4.4vw, 6.6rem)/1 var(--serif);color:var(--claro);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.cifra b em{font-style:italic;color:rgba(245,245,242,.5)}
.cifra span:not([data-contar]){display:block;margin-top:16px;font:400 .68rem/1.6 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:rgba(245,245,242,.58)}
@media (max-width:760px){ .cifras{grid-template-columns:1fr 1fr;row-gap:48px} .cifra:nth-child(3){border-left:0} .cifra{padding:6px 10px} }

/* ── Por qué: claves ───────────────────────────────────────────────── */
.claves{display:grid;grid-template-columns:repeat(4, 1fr);gap:16px}
.clave{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:34px 28px 32px;border:1px solid var(--linea);border-radius:24px;background:var(--blanco);overflow:hidden;isolation:isolate;transition:border-color .4s, transform .5s var(--suave)}
.clave::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(420px circle at var(--x, 50%) var(--y, 50%), rgba(12,12,13,.06), transparent 45%);opacity:0;transition:opacity .4s}
.clave:hover{border-color:var(--tinta);transform:translateY(-4px)}
.clave:hover::after{opacity:1}
.clave .ico-d{width:46px;height:46px;margin-bottom:12px}
.clave h3{font-size:1.85rem}
.clave p{margin:0;color:var(--tinta-2);font-size:.96rem}
@media (max-width:1000px){ .claves{grid-template-columns:1fr 1fr} }
@media (max-width:560px){ .claves{grid-template-columns:1fr} .clave{padding:28px 24px} }

/* ── Manifiesto (cita grande) ──────────────────────────────────────── */
.manifiesto{text-align:center;padding:clamp(100px, 12vw, 180px) 0;border-top:1px solid var(--linea)}
.manifiesto blockquote{margin:0 auto;max-width:15em;font:400 clamp(2.5rem, 1.3rem + 4.6vw, 6.4rem)/1 var(--serif);letter-spacing:-.03em;text-wrap:balance}
.manifiesto cite{display:block;margin-top:34px;font:400 .72rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;font-style:normal;color:var(--tinta-2)}

/* ── Pasos ──────────────────────────────────────────────────────────── */
.pasos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4, 1fr);border-top:1px solid var(--claro-3);counter-reset:p}
.paso{position:relative;padding:40px 30px 10px;text-align:left}
.paso + .paso{border-left:1px solid var(--claro-3)}
.paso::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:100%;background:var(--claro);transform:scaleX(0);transform-origin:left;transition:transform 1.4s var(--suave) .3s}
.paso.visto::before{transform:none}
.paso .num{display:block;font:400 .72rem/1 var(--mono);letter-spacing:.14em;color:rgba(245,245,242,.5);margin-bottom:26px}
.paso .ico-d{color:var(--claro);--acento:rgba(245,245,242,.14);width:44px;height:44px;margin:0 0 22px}
.paso .dibuja{--acento:transparent}
.paso.visto .dibuja{--acento:rgba(245,245,242,.14)}
.paso h3{font-size:1.9rem;margin-bottom:.45em}
.paso p{margin:0;color:rgba(245,245,242,.62);font-size:.96rem;max-width:20em}
@media (max-width:1000px){ .pasos{grid-template-columns:1fr 1fr} .paso:nth-child(3){border-left:0} .paso:nth-child(n+3){border-top:1px solid var(--claro-3)} }
@media (max-width:600px){ .pasos{grid-template-columns:1fr} .paso{padding:34px 0 30px} .paso + .paso{border-left:0;border-top:1px solid var(--claro-3)} }

/* ── Ubicación: ficha + mapa ───────────────────────────────────────── */
.ubicacion{display:grid;grid-template-columns:1fr 1.1fr;gap:24px;align-items:stretch}
.ficha{border:1px solid var(--tinta);background:var(--blanco);text-align:left;border-radius:24px;overflow:hidden}
.ficha-cabeza{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 26px;background:var(--tinta);color:var(--claro);font:400 .68rem/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase}
.ficha dl{margin:0}
.ficha .fila{display:grid;grid-template-columns:130px 1fr;border-bottom:1px solid var(--linea)}
.ficha .fila:last-child{border-bottom:0}
.ficha dt{padding:26px 0 26px 26px;font:400 .68rem/1.6 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-2)}
.ficha dd{margin:0;padding:20px 26px 20px 10px;font:400 1.55rem/1.25 var(--serif);min-width:0}
.ficha dd a{text-decoration:none;background:linear-gradient(var(--marcador), var(--marcador)) no-repeat 0 88% / 0 .32em;transition:background-size .45s var(--suave)}
.ficha dd a:hover{background-size:100% .32em}
.ficha dd small{display:block;font:400 .9rem/1.5 var(--sans);color:var(--tinta-2);margin-top:4px}
.ficha .dd-email{font-size:1.25rem;overflow-wrap:anywhere}
.mapa{position:relative;min-height:420px;border:1px solid var(--linea-2);background:var(--papel-2);overflow:hidden;border-radius:24px}
.mapa iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1) contrast(1.08)}
.mapa-boton{position:absolute;left:16px;bottom:16px;min-height:46px;box-shadow:0 10px 30px -10px rgba(0,0,0,.3)}
@media (max-width:900px){ .ubicacion{grid-template-columns:1fr} .mapa{min-height:340px} }
@media (max-width:560px){ .ficha .fila{grid-template-columns:1fr} .ficha dt{padding:18px 20px 0} .ficha dd{padding:4px 20px 18px;font-size:1.35rem} .ficha-cabeza{padding:14px 20px} }

/* ── Artículos (tarjetas) ──────────────────────────────────────────── */
.articulos{display:grid;grid-template-columns:repeat(3, 1fr);gap:16px}
.articulo-t{position:relative;display:flex;flex-direction:column;gap:14px;padding:30px 28px 28px;min-height:300px;border:1px solid var(--linea-2);border-radius:24px;text-decoration:none;background:var(--blanco);overflow:hidden;isolation:isolate;transition:border-color .4s, transform .5s var(--suave)}
.articulo-t::before{content:"";position:absolute;right:-60px;top:-60px;width:200px;height:200px;border-radius:50%;border:1px solid var(--linea);z-index:-1;transition:transform .9s var(--suave)}
.articulo-t::after{content:"";position:absolute;right:-20px;top:-20px;width:120px;height:120px;border-radius:50%;border:1px dashed var(--linea-2);z-index:-1;transition:transform .9s var(--suave)}
.articulo-t:hover{border-color:var(--tinta);transform:translateY(-4px)}
.articulo-t:hover::before{transform:scale(1.3)}
.articulo-t:hover::after{transform:rotate(90deg) scale(1.2)}
.art-tag{align-self:flex-start;padding:7px 12px;border:1px solid var(--linea-2);border-radius:999px;font:400 .64rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-2)}
.articulo-t h3{font-size:clamp(1.65rem, 1.3rem + .8vw, 2.1rem);margin-top:auto}
.articulo-t p{margin:0;color:var(--tinta-2);font-size:.95rem}
.articulo-t .ir{display:inline-flex;align-items:center;gap:8px;font:400 .68rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;transition:gap .3s}
.articulo-t:hover .ir{gap:14px}
@media (max-width:900px){ .articulos{grid-template-columns:1fr} .articulo-t{min-height:0} .articulo-t h3{margin-top:24px} }

/* ── Llamada final ─────────────────────────────────────────────────── */
.final{text-align:center;padding:clamp(110px, 13vw, 190px) 0}
.final h2{font-size:clamp(3.6rem, 1.6rem + 8vw, 9.4rem);line-height:.9;margin-bottom:.3em}
.final .entrada{margin-bottom:40px}
.atomo-final{width:clamp(84px, 9vw, 120px);height:auto;aspect-ratio:1;margin:0 auto 34px;color:var(--claro);overflow:visible;animation:gira 24s linear infinite;will-change:transform}
.seccion-blanca.final .atomo-final,.final:not(.seccion-noche) .atomo-final{color:var(--tinta)}

/* ── Cabecera de páginas interiores ────────────────────────────────── */
.pagina-cabeza{position:relative;isolation:isolate;overflow:hidden;padding:clamp(72px, 9vw, 132px) 0 clamp(64px, 7vw, 100px);text-align:center;border-bottom:1px solid var(--linea)}
.pagina-cabeza .red{z-index:-1;left:50%;top:50%;width:min(860px, 140vw);aspect-ratio:1;transform:translate(-50%, -50%);opacity:.55}
.pagina-cabeza h1{font-size:clamp(3rem, 1.5rem + 5vw, 6.4rem);margin:0 auto .32em;max-width:12em}
.pagina-cabeza .botones{margin-top:34px}
.miga{display:flex;justify-content:center;gap:10px;font:400 .68rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-3);margin-bottom:34px}
.miga a{text-decoration:none}
.miga a:hover{color:var(--tinta)}
.pagina-cabeza .aparece{transition-duration:1.2s}

/* ── Clases ────────────────────────────────────────────────────────── */
.selector{position:sticky;top:var(--cab);z-index:20;background:rgba(245,245,242,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--linea)}
.selector .envoltura{display:flex;justify-content:center;gap:4px;padding:12px 0;overflow-x:auto;scrollbar-width:none}
.selector .envoltura::-webkit-scrollbar{display:none}
.selector a{flex:none;padding:10px 16px;border-radius:999px;text-decoration:none;font:400 .7rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-2);border:1px solid transparent;transition:all .3s}
.selector a:hover{color:var(--tinta);border-color:var(--linea-2)}
.selector a.activo{background:var(--tinta);border-color:var(--tinta);color:var(--claro)}
@media (max-width:760px){ .selector .envoltura{justify-content:flex-start;width:100%;padding-inline:12px} .selector a{padding:9px 12px} }
.nivel{padding:clamp(84px, 10vw, 140px) 0;border-bottom:1px solid var(--linea)}
.nivel-blanco{background:var(--blanco)}
.nivel-rejilla{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1.15fr);gap:clamp(36px, 6vw, 100px);align-items:start}
.nivel-texto{position:sticky;top:calc(var(--cab) + 90px)}
.nivel .num{display:block;font:400 .72rem/1 var(--mono);letter-spacing:.14em;color:var(--tinta-3);margin-bottom:22px}
.nivel .ico-d{width:60px;height:60px;margin-bottom:22px}
.nivel h2{margin-bottom:.25em}
.nivel .edad{display:inline-block;font:400 .7rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-2);margin-bottom:22px;padding:8px 12px;border:1px solid var(--linea-2);border-radius:999px}
.nivel .entrada{margin:0 0 30px}
.carta{border-top:1px solid var(--tinta)}
.plato{padding:26px 0;border-bottom:1px solid var(--linea)}
.plato-linea{display:flex;align-items:baseline;gap:14px}
.plato h3{font-size:clamp(1.5rem, 1.3rem + .7vw, 1.95rem);flex:0 1 auto}
.plato .puntos{flex:1;border-bottom:1px dotted var(--linea-2);transform:translateY(-6px);min-width:24px}
.plato .precio{flex:none;font:400 .68rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-2)}
.plato p{margin:10px 0 0;color:var(--tinta-2);font-size:.97rem;max-width:36em}
.materias{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:14px 0 0}
.materias li{padding:6px 12px;border:1px solid var(--linea-2);border-radius:999px;font-size:.84rem;background:var(--papel)}
.nivel-blanco .materias li{background:var(--blanco)}
.cita-mini{margin:30px 0 0;padding:22px 24px;border-left:2px solid var(--tinta);background:var(--papel);border-radius:0 16px 16px 0}
.nivel-blanco .cita-mini{background:var(--papel)}
.cita-mini blockquote{margin:0;font:italic 400 1.35rem/1.3 var(--serif)}
.cita-mini figcaption{margin-top:10px;font:400 .66rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-3)}
@media (max-width:900px){ .nivel-rejilla{grid-template-columns:1fr} .nivel-texto{position:static} }
@media (max-width:560px){ .plato .puntos{display:none} .plato-linea{justify-content:space-between} .plato .precio{font-size:.6rem} }

.formatos{display:grid;grid-template-columns:repeat(3, 1fr);gap:16px}
.formato{padding:34px 30px;border:1px solid var(--claro-3);border-radius:24px;text-align:left}
.formato .ico-d{color:var(--claro);--acento:rgba(245,245,242,.14);margin-bottom:22px}
.formato h3{font-size:1.8rem;margin-bottom:.4em}
.formato p{margin:0;font-size:.96rem;color:rgba(245,245,242,.62)}
@media (max-width:900px){ .formatos{grid-template-columns:1fr} }

/* ── Método ────────────────────────────────────────────────────────── */
.recorrido{list-style:none;margin:0 auto;padding:0;max-width:880px;position:relative}
.recorrido::before{content:"";position:absolute;left:38px;top:20px;bottom:20px;width:1px;background:var(--linea-2)}
.recorrido .linea-viva{position:absolute;left:38px;top:20px;width:1px;height:calc(100% - 40px);background:var(--tinta);transform:scaleY(var(--avance, 0));transform-origin:top}
.etapa{position:relative;display:grid;grid-template-columns:78px 1fr;gap:28px;padding:0 0 64px}
.etapa:last-child{padding-bottom:0}
.etapa .num{position:relative;z-index:1;display:grid;place-items:center;width:78px;height:78px;border-radius:50%;border:1px solid var(--tinta);background:var(--papel);font:italic 400 1.9rem/1 var(--serif);transition:background .5s, color .5s}
.etapa.visto .num{background:var(--tinta);color:var(--claro)}
.etapa h3{font-size:clamp(2rem, 1.5rem + 1.4vw, 2.8rem);margin:12px 0 .35em}
.etapa p{color:var(--tinta-2);max-width:34em;margin:0}
.etapa ul{margin:16px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.etapa li{padding:7px 13px;border:1px solid var(--linea-2);border-radius:999px;font-size:.86rem;background:var(--blanco)}
@media (max-width:600px){ .etapa{grid-template-columns:56px 1fr;gap:18px} .etapa .num{width:56px;height:56px;font-size:1.5rem} .recorrido::before,.recorrido .linea-viva{left:28px} }

/* ── Opiniones (muro) ──────────────────────────────────────────────── */
.resumen-nota{display:grid;grid-template-columns:auto 1fr auto;gap:clamp(24px, 4vw, 56px);align-items:center;padding:clamp(28px, 4vw, 44px);border:1px solid var(--tinta);border-radius:32px;background:var(--blanco);margin-bottom:clamp(48px, 5vw, 72px)}
.resumen-nota .nota-grande{font-size:clamp(5rem, 3rem + 5vw, 8rem);margin:0}
.resumen-nota .botones{flex-direction:column;align-items:stretch}
@media (max-width:860px){ .resumen-nota{grid-template-columns:1fr;text-align:center} .resumen-nota .nota-grande{margin-inline:auto} }
.filtros{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0 0 40px}
.filtros button{min-height:42px;padding:0 18px;border:1px solid var(--linea-2);border-radius:999px;background:var(--blanco);cursor:pointer;font-size:.92rem;color:var(--tinta-2);transition:all .25s}
.filtros button:hover{border-color:var(--tinta);color:var(--tinta)}
.filtros button[aria-pressed="true"]{background:var(--tinta);border-color:var(--tinta);color:var(--claro)}
.filtros button span{font:400 .7rem/1 var(--mono);opacity:.6;margin-left:4px}
.muro{columns:3 320px;column-gap:16px}
.muro .resena{break-inside:avoid;margin-bottom:16px;transition:opacity .4s, transform .5s var(--suave), border-color .35s, box-shadow .5s}
.muro .resena.oculta{display:none}
.muro .resena.entra{animation:entra .6s var(--suave) both}
@keyframes entra{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.nombre-repetido{display:grid;grid-template-columns:auto 1fr;gap:clamp(24px, 4vw, 60px);align-items:center;max-width:980px;margin:0 auto;text-align:left}
.nombre-repetido b{font:italic 400 clamp(5rem, 3rem + 7vw, 11rem)/.85 var(--serif);color:var(--claro);letter-spacing:-.04em}
.nombre-repetido p{margin:0;font-size:1.1rem;color:rgba(245,245,242,.7);max-width:30em}
.nombre-repetido p strong{color:var(--claro);font-weight:500}
@media (max-width:700px){ .nombre-repetido{grid-template-columns:1fr;text-align:center} .nombre-repetido p{margin-inline:auto} }

/* ── Blog y artículos ──────────────────────────────────────────────── */
.articulo{max-width:720px;margin:0 auto;font-size:1.08rem;line-height:1.75;color:#2c2c30}
.articulo h2{font-size:clamp(2rem, 1.6rem + 1.4vw, 2.7rem);margin:1.7em 0 .5em;line-height:1.05}
.articulo h3{font-size:1.6rem;margin:1.5em 0 .4em}
.articulo p,.articulo li{text-wrap:pretty}
.articulo ul,.articulo ol{padding-left:1.2em;margin:0 0 1.2em}
.articulo li{margin-bottom:.55em}
.articulo li::marker{color:var(--tinta-3)}
.articulo strong{font-weight:500;color:var(--tinta)}
.articulo a{color:var(--tinta);text-underline-offset:4px;text-decoration-color:var(--linea-2)}
.articulo .destacado{margin:2em 0;padding:26px 28px;border:1px solid var(--tinta);border-radius:20px;background:var(--blanco);font-size:1rem}
.articulo .destacado p:last-child{margin:0}
.articulo-meta{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 18px;font:400 .68rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-3)}
.articulo-fin{margin-top:56px;padding:34px;border-radius:24px;background:var(--tinta);color:var(--claro);text-align:center}
.articulo-fin h3{color:var(--claro);font-size:2rem;margin:0 0 .4em}
.articulo-fin p{color:var(--claro-2);margin:0 auto 22px;max-width:28em}
.lista-blog{display:grid;gap:0;border-top:1px solid var(--tinta)}
.entrada-blog{display:grid;grid-template-columns:110px 1fr 56px;gap:28px;align-items:center;padding:38px 8px;border-bottom:1px solid var(--linea-2);text-decoration:none;position:relative;isolation:isolate}
.entrada-blog::before{content:"";position:absolute;inset:0;background:var(--blanco);z-index:-1;transform:scaleY(0);transform-origin:bottom;transition:transform .5s var(--suave)}
.entrada-blog:hover::before{transform:none}
.entrada-blog .art-tag{justify-self:start}
.entrada-blog h2{font-size:clamp(2rem, 1.4rem + 2vw, 3.2rem);transition:transform .5s var(--suave)}
.entrada-blog:hover h2{transform:translateX(8px)}
.entrada-blog p{margin:10px 0 0;color:var(--tinta-2)}
.entrada-blog .flecha{width:56px;height:56px;border-radius:50%;border:1px solid var(--linea-2);display:grid;place-items:center;transition:background .35s, color .35s, transform .5s var(--suave)}
.entrada-blog:hover .flecha{background:var(--tinta);color:var(--claro);transform:rotate(-45deg)}
@media (max-width:760px){ .entrada-blog{grid-template-columns:1fr auto;gap:14px} .entrada-blog .art-tag{grid-column:1 / -1} .entrada-blog .flecha{width:46px;height:46px} }

/* ── Preguntas + asistente ─────────────────────────────────────────── */
.faq{max-width:var(--estrecho);margin:0 auto;border-top:1px solid var(--tinta);text-align:left}
.faq details{border-bottom:1px solid var(--linea)}
.faq summary{list-style:none;display:grid;grid-template-columns:52px 1fr 40px;align-items:center;gap:12px;padding:26px 0;cursor:pointer;font:400 clamp(1.35rem, 1.2rem + .6vw, 1.8rem)/1.2 var(--serif)}
.faq summary::-webkit-details-marker{display:none}
.faq summary .n{font:400 .7rem/1 var(--mono);letter-spacing:.12em;color:var(--tinta-3)}
.faq summary .mas{width:40px;height:40px;border-radius:50%;border:1px solid var(--linea-2);display:grid;place-items:center;transition:transform .45s var(--suave), background .3s, border-color .3s, color .3s}
.faq summary .mas .ico{width:15px;height:15px}
.faq summary:hover .mas{border-color:var(--tinta)}
.faq details[open] summary .mas{transform:rotate(45deg);background:var(--tinta);border-color:var(--tinta);color:var(--claro)}
.faq .respuesta{padding:0 52px 28px 64px;color:var(--tinta-2)}
.faq .respuesta p:last-child{margin:0}
.faq a,.legal a,.formulario a{color:var(--tinta);text-decoration-color:var(--linea-2);text-underline-offset:4px}
@media (max-width:560px){ .faq summary{grid-template-columns:1fr 40px} .faq summary .n{display:none} .faq .respuesta{padding:0 0 24px} }

.asistente{max-width:760px;margin:0 auto;border:1px solid var(--claro-3);border-radius:32px;background:var(--noche-2);overflow:hidden;text-align:left;color:var(--claro)}
.asis-cab{display:flex;align-items:center;gap:14px;padding:18px 24px;border-bottom:1px solid var(--claro-3)}
.asis-cab .avatar{width:44px;height:44px;border-radius:50%;background:var(--claro);color:var(--tinta);display:grid;place-items:center;flex:none}
.asis-cab .avatar svg{width:30px;height:30px;animation:gira 14s linear infinite}
.asis-cab b{display:block;font-weight:500}
.asis-cab small{display:flex;align-items:center;gap:6px;font:400 .64rem/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:rgba(245,245,242,.55)}
.asis-cab small::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--claro);animation:late 2s ease-in-out infinite}
.asis-mensajes{height:380px;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth;overscroll-behavior:contain}
.msg{max-width:84%;padding:13px 17px;border-radius:20px;font-size:.96rem;line-height:1.5;animation:entra .45s var(--suave) both}
.msg a{color:inherit;text-underline-offset:3px}
.msg-bot{align-self:flex-start;background:rgba(245,245,242,.08);border-bottom-left-radius:6px}
.msg-yo{align-self:flex-end;background:var(--claro);color:var(--tinta);border-bottom-right-radius:6px}
.msg-escribe{display:inline-flex;gap:4px;align-self:flex-start;padding:16px 18px;background:rgba(245,245,242,.08);border-radius:20px;border-bottom-left-radius:6px}
.msg-escribe i{width:6px;height:6px;border-radius:50%;background:var(--claro);opacity:.5;animation:punto 1s ease-in-out infinite}
.msg-escribe i:nth-child(2){animation-delay:.15s}.msg-escribe i:nth-child(3){animation-delay:.3s}
@keyframes punto{50%{transform:translateY(-4px);opacity:1}}
.asis-chips{display:flex;gap:8px;overflow-x:auto;padding:0 24px 14px;scrollbar-width:none}
.asis-chips::-webkit-scrollbar{display:none}
.asis-chips button{flex:none;min-height:38px;padding:0 14px;border:1px solid rgba(245,245,242,.25);border-radius:999px;background:transparent;color:var(--claro);cursor:pointer;font-size:.86rem;transition:all .25s}
.asis-chips button:hover{background:var(--claro);color:var(--tinta)}
.asis-form{display:flex;gap:10px;padding:14px 16px 16px;border-top:1px solid var(--claro-3)}
.asis-form input{flex:1;min-width:0;min-height:50px;padding:0 18px;border:1px solid rgba(245,245,242,.2);border-radius:999px;background:transparent;color:var(--claro);font-size:16px}
.asis-form input::placeholder{color:rgba(245,245,242,.4)}
.asis-form input:focus{outline:none;border-color:var(--claro)}
.asis-form button{width:50px;height:50px;border-radius:50%;border:0;background:var(--claro);color:var(--tinta);cursor:pointer;display:grid;place-items:center;flex:none;transition:transform .3s var(--suave)}
.asis-form button:hover{transform:scale(1.06) rotate(-10deg)}
@media (max-width:560px){ .asis-mensajes{height:340px;padding:18px} .msg{max-width:92%} .asistente{border-radius:24px} }

/* ── Contacto ──────────────────────────────────────────────────────── */
.vias{display:grid;grid-template-columns:repeat(4, 1fr);border-block:1px solid var(--tinta)}
.via{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:42px 18px;text-decoration:none;position:relative;isolation:isolate;transition:color .5s var(--suave)}
.via + .via{border-left:1px solid var(--linea-2)}
.via::before{content:"";position:absolute;inset:0;background:var(--tinta);z-index:-1;transform:scaleY(0);transform-origin:bottom;transition:transform .55s var(--suave)}
.via:hover{color:var(--claro)}
.via:hover::before{transform:none}
.via .etq{font:400 .68rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-2);transition:color .4s}
.via:hover .etq{color:var(--claro-2)}
.via b{font:400 clamp(1.45rem, 1.1rem + 1vw, 2.1rem)/1.15 var(--serif);overflow-wrap:anywhere}
.via .ico-d{width:44px;height:44px;margin-bottom:8px;transition:color .4s}
.via:hover .ico-d{color:var(--claro);--acento:rgba(245,245,242,.15)}
.via-email b{font-size:clamp(1.05rem, .9rem + .5vw, 1.35rem);font-family:var(--sans)}
@media (max-width:1000px){ .vias{grid-template-columns:1fr 1fr} .via:nth-child(3){border-left:0} .via:nth-child(n+3){border-top:1px solid var(--linea-2)} }
@media (max-width:520px){ .via{padding:30px 10px} .via b{font-size:1.3rem} .via-email b{font-size:.86rem} }

.formulario{max-width:760px;margin:0 auto;padding:clamp(28px, 5vw, 56px);background:var(--blanco);border:1px solid var(--linea);border-radius:32px}
.campos{display:grid;grid-template-columns:1fr 1fr;gap:28px 24px;text-align:left}
.campo{display:flex;flex-direction:column;gap:4px;min-width:0}
.campo.ancho{grid-column:1 / -1}
.campo label,.campo legend{font:400 .66rem/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-2);padding:0}
.campo label span,.campo legend span{color:var(--tinta-3)}
.campo input,.campo select,.campo textarea{width:100%;min-height:52px;padding:10px 0;border:0;border-bottom:1px solid var(--linea-2);border-radius:0;background:transparent;font:400 1.3rem/1.3 var(--serif);transition:border-color .25s, box-shadow .25s;appearance:none;-webkit-appearance:none}
.campo select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230c0c0d' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 2px center;background-size:18px;padding-right:30px;cursor:pointer}
.campo textarea{min-height:110px;resize:vertical}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:none;border-color:var(--tinta);box-shadow:0 1px 0 var(--tinta)}
.campo.error input,.campo.error select{border-color:#a3271c}
.campo .aviso{display:none;font-size:.82rem;color:#a3271c;margin-top:4px}
.campo.error .aviso{display:block}
fieldset.campo{border:0;margin:0;padding:0}
.campo legend{margin-bottom:12px}
.opciones{display:flex;flex-wrap:wrap;gap:8px}
.opciones label{position:relative;cursor:pointer;font:inherit;letter-spacing:normal;text-transform:none}
.opciones input{position:absolute;opacity:0;pointer-events:none}
.opciones span{display:inline-flex;align-items:center;min-height:42px;padding:0 17px;border:1px solid var(--linea-2);border-radius:999px;font:400 .92rem/1 var(--sans);color:var(--tinta-2);background:var(--blanco);transition:all .25s}
.opciones label:hover span{border-color:var(--tinta)}
.opciones input:checked + span{background:var(--tinta);border-color:var(--tinta);color:var(--claro)}
.opciones input:focus-visible + span{outline:2px solid var(--tinta);outline-offset:2px}
.privacidad{grid-column:1 / -1;display:flex;gap:12px;align-items:flex-start;font-size:.92rem;color:var(--tinta-2);cursor:pointer}
.privacidad input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--tinta);flex:none}
.privacidad.error{color:#a3271c}
.envio{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:10px}
.envio .botones{width:100%}
.envio small{font:400 .68rem/1.6 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--tinta-3);text-align:center}
.formulario-ok{display:none;margin-top:24px;padding:16px 20px;background:var(--tinta);color:var(--claro);border-radius:16px;text-align:center;font-size:.95rem}
.formulario-ok.ver{display:block;animation:entra .5s var(--suave)}
@media (max-width:640px){ .campos{grid-template-columns:1fr} .envio .boton{width:100%} .formulario{padding:24px 18px;border-radius:24px} }

.horario{width:100%;max-width:560px;margin:0 auto;border-collapse:collapse;border-top:1px solid var(--tinta)}
.horario td{padding:16px 4px;border-bottom:1px solid var(--linea);font:400 1.35rem/1.2 var(--serif);text-align:left}
.horario td:last-child{text-align:right;font:400 .74rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase}
.horario .cerrado td{color:var(--tinta-3)}
.horario .hoy td:first-child span{background:linear-gradient(var(--marcador), var(--marcador)) no-repeat 0 88% / 100% .34em}
.horario .hoy td:last-child::after{content:" · hoy";color:var(--tinta-3)}
.estado-abierto{display:inline-flex;align-items:center;gap:8px;margin:0 0 28px;padding:8px 14px;border-radius:999px;border:1px solid var(--linea-2);font:400 .68rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase}
.estado-abierto::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--tinta-3)}
.estado-abierto.si::before{background:var(--tinta);box-shadow:0 0 0 0 rgba(12,12,13,.4);animation:onda 2s infinite}
@keyframes onda{to{box-shadow:0 0 0 10px rgba(12,12,13,0)}}

/* ── Pie ───────────────────────────────────────────────────────────── */
.pie{position:relative;isolation:isolate;overflow:hidden;background:var(--noche);color:rgba(245,245,242,.6);padding:clamp(80px, 9vw, 130px) 0 calc(28px + env(safe-area-inset-bottom));font-size:.94rem}
.pie .envoltura{position:relative;z-index:1}
.pie-arriba{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;padding-bottom:clamp(48px, 6vw, 80px);border-bottom:1px solid var(--claro-3)}
.marca-pie,.marca-pie .logo{color:var(--claro)}
.marca-pie .logo{font-size:clamp(40px, 6vw, 74px)}
.pie-lema{margin:0;font:400 clamp(1.6rem, 1.2rem + 1.4vw, 2.6rem)/1.1 var(--serif);color:var(--claro);max-width:12em;text-align:right}
.pie-lema em{font-style:italic}
.pie-rejilla{display:grid;grid-template-columns:repeat(4, 1fr);gap:32px;padding:44px 0}
.pie-rejilla small{display:block;font:400 .64rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:rgba(245,245,242,.4);margin-bottom:14px}
.pie-rejilla a,.pie-rejilla span{color:var(--claro);text-decoration:none;line-height:1.7;overflow-wrap:anywhere}
.pie-rejilla a:hover{opacity:.65}
.pie-nav{display:flex;flex-direction:column;align-items:flex-start}
.pie-nav a{line-height:1.9}
.pie-base{display:flex;flex-wrap:wrap;gap:10px 26px;padding-top:26px;border-top:1px solid var(--claro-3);font:400 .64rem/1.6 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:rgba(245,245,242,.42)}
.pie-base > :first-child{margin-right:auto}
.pie-base a{text-decoration:none}
.pie-base a:hover{color:var(--claro)}
.pie-base .ico{width:11px;height:11px;vertical-align:-1px}
@media (max-width:900px){ .pie-rejilla{grid-template-columns:1fr 1fr} .pie-lema{text-align:left} }
@media (max-width:520px){ .pie-rejilla{grid-template-columns:1fr;gap:28px} .pie-base{padding-bottom:70px} .pie-base > :first-child{width:100%} }

/* ── WhatsApp flotante ─────────────────────────────────────────────── */
.wa-flotante{position:fixed;right:22px;bottom:calc(22px + env(safe-area-inset-bottom));z-index:60;display:flex;align-items:center;gap:10px;text-decoration:none;
  transform:translateY(120px);transition:transform .7s var(--suave)}
.wa-flotante.ver,html:not(.js) .wa-flotante{transform:none}
.wa-flotante .circulo{position:relative;width:60px;height:60px;border-radius:50%;background:var(--tinta);color:var(--claro);display:grid;place-items:center;box-shadow:0 16px 34px -14px rgba(12,12,13,.7);transition:transform .45s var(--suave)}
.wa-flotante .circulo::after{content:"";position:absolute;inset:-1px;border-radius:50%;border:1px solid var(--tinta);animation:pulso 2.6s var(--suave) infinite}
@keyframes pulso{from{transform:scale(1);opacity:.6}to{transform:scale(1.6);opacity:0}}
.wa-flotante:hover .circulo{transform:scale(1.08) rotate(-8deg)}
.wa-flotante .circulo .ico{width:28px;height:28px}
.wa-burbuja{padding:10px 15px;border-radius:999px;background:var(--blanco);border:1px solid var(--linea);box-shadow:0 10px 30px -12px rgba(0,0,0,.25);font-size:.88rem;white-space:nowrap;opacity:0;transform:translateX(10px);transition:opacity .4s, transform .5s var(--suave);pointer-events:none}
.wa-flotante:hover .wa-burbuja,.wa-flotante.saluda .wa-burbuja{opacity:1;transform:none}
@media (max-width:600px){ .wa-flotante{right:14px;bottom:calc(14px + env(safe-area-inset-bottom))} .wa-flotante .circulo{width:56px;height:56px} }

/* ── Legal ─────────────────────────────────────────────────────────── */
.legal{text-align:left}
.legal h2{font-size:2rem;margin:1.8em 0 .5em}
.legal p,.legal li{color:var(--tinta-2)}

/* ── Aparición ─────────────────────────────────────────────────────── */
.js .aparece{opacity:0;transform:translateY(30px);transition:opacity 1s var(--suave), transform 1.1s var(--suave)}
.js .aparece.visto{opacity:1;transform:none}
.js .aparece[data-retraso="1"]{transition-delay:.1s}
.js .aparece[data-retraso="2"]{transition-delay:.2s}
.js .aparece[data-retraso="3"]{transition-delay:.3s}

/* Iconos que se dibujan */
@property --acento{syntax:"<color>";inherits:true;initial-value:#e8e8e4}
.ico-d{width:44px;height:44px;flex:none;display:block;color:var(--tinta);--acento:#e8e8e4;overflow:visible}
.dibuja{stroke-dasharray:1;stroke-dashoffset:1;--acento:transparent;transition:stroke-dashoffset 1.6s var(--suave) .15s, --acento .9s ease .9s, transform .7s var(--suave), color .4s}
.visto .dibuja,.dibuja.visto{stroke-dashoffset:0;--acento:#e8e8e4}
html:not(.js) .dibuja{stroke-dashoffset:0;--acento:#e8e8e4}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
  .js .aparece{opacity:1;transform:none}
  .cinta-pista,.cinta-r-pista{animation:none !important}
  .cinta-resenas{overflow-x:auto}
}
@media print{ .aviso-sup,.cabecera,.wa-flotante,.mapa,.cinta,.red{display:none} }
.resumen-texto p{margin:0 0 .6em;color:var(--tinta-2);max-width:30em}
.resumen-texto p:first-child{font:400 clamp(1.5rem, 1.2rem + 1vw, 2.1rem)/1.15 var(--serif);color:var(--tinta)}
.resumen-texto b{font-weight:400;font-style:italic}
@media (max-width:860px){ .resumen-texto p{margin-inline:auto} }
.legal mark{background:var(--marcador);padding:0 .25em}
.atomo-vivo .a-orbitas{stroke-linecap:round}
.atomo-vivo .a-disco{fill:var(--papel);stroke:none}
.wa-flotante .circulo{border:1px solid rgba(245,245,242,.28)}
.articulo-pagina .pagina-cabeza{padding-bottom:clamp(48px, 5vw, 72px)}
.articulo-pagina .seccion{padding-top:clamp(56px, 6vw, 88px)}

/* ── Rendimiento en móviles y tabletas táctiles ────────────────────── */
@media (hover:none), (max-width:760px){
  .cabecera,.cabecera.con-sombra,.selector{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--papel)}
  .nota-chip{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--blanco)}
  .cintas{-webkit-mask-image:none;mask-image:none}
  .resena{transition:none}
  .wa-flotante .circulo::after{animation-iteration-count:3}
}

/* Móvil: las reseñas se deslizan con el dedo en vez de moverse solas */
@media (hover:none), (max-width:760px){
  .cinta-resenas{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
  .cinta-resenas::-webkit-scrollbar{display:none}
  .cinta-r-pista{animation:none;will-change:auto;padding:4px 16px}
  .cinta-resenas .resena[aria-hidden]{display:none}
  .cinta-resenas .resena{scroll-snap-align:center;width:min(330px, 84vw)}
  .al-reves{display:none}
  .cintas::after{content:'Desliza para ver más →';display:block;text-align:center;font:400 .64rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-3);margin-top:6px}
}

/* El brillo plateado de los títulos, solo con ratón (en móvil cuesta fotogramas) */
@media (hover:none), (max-width:760px){ h1 em,h2 em,.lema em,.pie-lema em{animation:none;background-position:0 0} }
