/* =========================================================
   balé — sitio de varias páginas (noviembre de 2026)
   Mismos tokens de css/base.css (colores, letra y movimiento). Primero el teléfono.
   Retícula: contenedor de 1120 px, márgenes de 20/32 px, ritmo de 8 px.
   Pulido del 8/11/2026 (DECISIONES §39): «el estudio por dentro». Titulares en 500 con tracking negativo,
   botones en frase normal, sin etiquetas en mayúsculas sobre los títulos; los arcos son la firma.
   Movimiento: solo opacity y transform; con prefers-reduced-motion, estado final al instante.
   La audacia está en la sala (selector de lugar); el resto, sereno.
   ========================================================= */
:root{
  --cab-h:60px;
  --err:#8f2f22;                 /* error (7,6:1 sobre crema) */
  --madera:color-mix(in srgb,var(--b-bg) 70%,var(--paper));   /* piso de la sala */
  --barra:#2E2723;               /* las barras son negras, como en la sala */
  --sombra-suave:0 1px 0 color-mix(in srgb,var(--b-ink) 6%,transparent);
  --gutter:20px;
  --dur-hover:200ms;
}
:root[data-mode="dark"]{ --err:#f0a596; --barra:#F3E4D8; --madera:color-mix(in srgb,var(--b-bg) 75%,var(--paper)); }
@media (min-width:640px){ :root{ --gutter:32px; } }
html{scroll-padding-top:calc(var(--cab-h) + 16px)}
/* Entre páginas no hay animación: la cabecera fija hace de continuidad. Se probaron las View Transitions
   entre documentos (Chromium a veces las aborta con un error de consola que no se puede atrapar) y un
   fundido del contenido (retrasaba el LCP unos 2 s en Lighthouse). Ver DECISIONES §33. */

body.sitio{background:var(--b-bg);color:var(--b-ink);font:400 16px/1.6 var(--b-sans);font-variant-numeric:lining-nums}
@media (min-width:640px){ body.sitio{font-size:17px} }
@media (min-width:1280px){ body.sitio{font-size:18px} }
.sitio main{display:block;min-height:60vh}
.sitio a{color:var(--brown)}
.sitio h1,.sitio h2,.sitio h3{font-family:var(--b-sans);color:var(--b-ink);margin:0}
.sitio h1{font-weight:500;font-size:clamp(38px,6vw,64px);line-height:1.04;letter-spacing:-.03em}
.sitio h2{font-weight:500;font-size:clamp(30px,4.4vw,50px);line-height:1.08;letter-spacing:-.025em}
.sitio h3{font-weight:600;font-size:20px;line-height:1.3}
.sitio p{margin:0 0 16px;max-width:66ch}
.lead{font-size:clamp(18px,1.6vw,20px);line-height:1.55;color:var(--b-ink)}
.cinta{display:block;width:56px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--pink),var(--brown));margin:16px 0 20px;transform-origin:0 50%}
.saltar{position:absolute;left:12px;top:-60px;z-index:80;background:var(--brown);color:var(--on-brown)!important;padding:10px 16px;border-radius:999px;font-weight:600;text-decoration:none}
.saltar:focus{top:10px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
[hidden]{display:none!important}

/* ---------- Contenedores y secciones ---------- */
.cont,.phead,.horario,.mias,.aviso-linea,.clases,.precios{width:100%;max-width:1120px;margin-left:auto;margin-right:auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.sec{padding-top:56px;padding-bottom:56px}
@media (min-width:640px){ .sec{padding-top:72px;padding-bottom:72px} }
@media (min-width:1024px){ .sec{padding-top:96px;padding-bottom:96px} }
.sec.suave{background:var(--blush)}
.sec.papel{background:var(--paper)}
.estrecha{max-width:calc(760px + 2 * var(--gutter));margin:0 auto;padding:0 var(--gutter) 72px}
.estrecha > *{padding-left:0;padding-right:0}
.estrecha > .sum,.estrecha > .paybox{padding-left:18px;padding-right:18px}
.estrecha .aviso-linea{margin-left:0;margin-right:0}
.dos{display:grid;gap:32px;align-items:start}
@media (min-width:900px){ .dos{grid-template-columns:5fr 7fr;gap:64px} .dos.invertido{grid-template-columns:7fr 5fr} .dos.invertido > :first-child{order:0} }
.centro{text-align:center}
.centro p{margin-left:auto;margin-right:auto}
.phead{padding-top:40px;padding-bottom:32px}
.phead .kick{margin-bottom:8px}
@media (min-width:1024px){ .phead{padding-top:72px} }
.phead .lead{margin-bottom:0}
.acciones{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}
.texto h2{font-size:22px;font-weight:600;margin:32px 0 8px}
.texto ul,.lista{padding-left:20px;margin:0 0 16px}
.texto li,.lista li{margin:0 0 8px;max-width:62ch}
.fecha{font-size:14px;color:var(--muted)}

/* ---------- Botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:13px 26px;border-radius:999px;border:1.5px solid var(--brown);
  background:var(--brown);color:var(--on-brown)!important;font:600 15px/1.2 var(--b-sans);letter-spacing:0;text-decoration:none;cursor:pointer;
  transition:background-color var(--dur-hover) var(--ease-out),border-color var(--dur-hover) var(--ease-out),color var(--dur-hover) var(--ease-out),transform var(--dur-fast) var(--ease-out)}
.btn:hover{background:var(--brown-2);border-color:var(--brown-2)}
@media (hover:hover) and (pointer:fine){ .btn:hover:not(:disabled){transform:translateY(-1px)} }
.btn:active:not(:disabled){transform:scale(.97)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.line{background:transparent;color:var(--brown)!important}
.btn.line:hover{background:var(--brown);color:var(--on-brown)!important}
.btn.texto{background:none;border-color:transparent;color:var(--brown)!important;padding-left:2px;padding-right:2px;min-height:44px;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:5px;justify-content:flex-start}
.btn.texto:hover{background:none;text-decoration-thickness:2px}
.btn.sm{min-height:44px;padding:10px 18px;font-size:14px}
.btn.peligro{border-color:var(--err);color:var(--err)!important}
.btn.peligro:hover{background:var(--err);color:var(--on-brown)!important}
.btn.claro{background:#F4C5CE;border-color:#F4C5CE;color:#2E2723!important}
.btn.claro:hover{background:#F9DCE2;border-color:#F9DCE2}
.btn.texto.claro{background:none;border-color:transparent;color:#FFFAF6!important}
.plan.dest .btn.claro{background:#F4C5CE;color:#2E2723!important}
.linkbtn{background:none;border:0;color:var(--brown);text-decoration:underline;font-weight:600;padding:0;cursor:pointer;min-height:32px}
.icono{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--line);background:var(--paper);color:var(--b-ink);flex:none;cursor:pointer;transition:border-color var(--dur-hover)}
.icono:hover{border-color:var(--b-ink)}
.icono svg{width:20px;height:20px}
.modebtn .sun{display:none}
:root[data-mode="dark"] .modebtn .sun{display:block}
:root[data-mode="dark"] .modebtn .moon{display:none}

/* ---------- Encabezado y menú ---------- */
.cab{position:sticky;top:0;z-index:40;height:var(--cab-h);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px);box-sizing:content-box}
/* El vidrio va en un pseudo-elemento: con backdrop-filter en .cab, el menú fijo quedaría encerrado en la cabecera */
.cab{transition:height var(--dur-mid) var(--ease-out),border-color var(--dur-mid)}
.cab::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--b-bg);transition:background-color var(--dur-mid)}
.cab-compacta .cab{--cab-h:52px;border-bottom-color:color-mix(in srgb,var(--line) 70%,transparent)}
.cab-compacta .cab::before{background:color-mix(in srgb,var(--b-bg) 82%,transparent);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2)}
.cab-in{transition:height var(--dur-mid) var(--ease-out)}
body.menu-abierto .cab::before{background:var(--b-bg)}
.cab-in{max-width:1120px;margin:0 auto;padding:0 var(--gutter);height:var(--cab-h);display:flex;align-items:center;gap:16px}
.logo{line-height:0;border-radius:8px;flex:none;min-height:44px;display:inline-flex;align-items:center}
.logo img{height:34px;width:auto;transition:height var(--dur-mid) var(--ease-out)}
.cab-compacta .logo img{height:30px}
:root[data-mode="dark"] .logo img,:root[data-mode="dark"] .pie-marca img{filter:invert(1) sepia(.25) saturate(1.4) hue-rotate(-12deg) brightness(.97)}
.cab-acc{display:flex;align-items:center;gap:8px;margin-left:auto}
.cab-reservar{display:none}
.menu-enlaces a,.menu-pie a{text-decoration:none}
.menubtn .l1,.menubtn .l2{transition:transform var(--dur-mid) var(--ease-out);transform-origin:12px 12px}
.menubtn[aria-expanded="true"] .l1{transform:translateY(4px) rotate(45deg)}
.menubtn[aria-expanded="true"] .l2{transform:translateY(-4px) rotate(-45deg)}
/* Teléfono: menú a pantalla completa que baja como una cortina */
@media (max-width:899px){
  .menu{position:fixed;inset:calc(var(--cab-h) + env(safe-area-inset-top,0px)) 0 0 0;z-index:39;background:var(--b-bg);display:flex;flex-direction:column;justify-content:space-between;
    padding:32px var(--gutter) calc(32px + env(safe-area-inset-bottom,0px));visibility:hidden;clip-path:inset(0 0 100% 0);
    transition:clip-path var(--dur-slow) var(--ease-in-out),visibility 0s linear var(--dur-slow)}
  .menu.abierto{visibility:visible;clip-path:inset(0 0 0 0);transition:clip-path var(--dur-slow) var(--ease-in-out),visibility 0s}
  .menu-enlaces{display:grid;gap:4px}
  .menu-enlaces a{font-size:32px;font-weight:500;letter-spacing:-.01em;color:var(--b-ink);padding:8px 0;border-bottom:1px solid var(--line)}
  .menu-enlaces a[aria-current="page"]{color:var(--brown);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:8px}
  .menu-pie{display:grid;gap:12px;margin-top:32px}
  .menu-pie a{color:var(--muted);font-weight:500}
  body.menu-abierto{overflow:hidden}
}
/* Escritorio: enlaces en línea; la página actual subrayada */
@media (min-width:900px){
  .menubtn{display:none}
  .cab-reservar{display:inline-flex}
  .menu{display:flex;align-items:center;margin-left:24px}
  .menu-pie{display:none}
  .menu-enlaces{display:flex;gap:4px}
  .menu-enlaces a{font:500 15px/1 var(--b-sans);letter-spacing:0;color:var(--b-ink);padding:10px 12px;min-height:44px;display:inline-flex;align-items:center;border-radius:999px;transition:color var(--dur-hover),background-color var(--dur-hover)}
  .menu-enlaces a:hover{color:var(--brown)}
  .menu-enlaces a[aria-current="page"]{color:var(--brown);background:color-mix(in srgb,var(--brown) 9%,transparent);font-weight:600}
  .menu-enlaces a[href="reservar.html"]{display:none}   /* el botón «Reservar» ya está a la derecha */
}
.aviso-sitio{margin:0;padding:10px var(--gutter);text-align:center;font-weight:600;font-size:14px;color:var(--on-brown);background:var(--brown)}

/* Barra inferior fija del teléfono con «Reservar» */
.barra-movil{position:fixed;left:0;right:0;bottom:0;z-index:30;padding:10px var(--gutter) calc(10px + env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--b-bg) 94%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--line)}
.barra-movil{transition:transform var(--dur-mid) var(--ease-out)}
.barra-movil .btn{width:100%}
body.barra-oculta .barra-movil{transform:translateY(calc(100% + 2px));pointer-events:none}
body.con-barra{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}
@media (min-width:900px){ .barra-movil{display:none} body.con-barra{padding-bottom:0} }
body.menu-abierto .barra-movil{display:none}

/* ---------- Pie ---------- */
.pie{border-top:1px solid var(--line);background:var(--b-bg);color:var(--muted);font-size:15px;padding:56px 0 32px}
.pie-in{max-width:1120px;margin:0 auto;padding:0 var(--gutter);display:grid;gap:32px}
@media (min-width:768px){ .pie-in{grid-template-columns:1.4fr 1fr 1fr 1fr} }
.pie-marca img{height:44px;width:auto;margin-bottom:16px}
.pie h2{font-size:15px!important;font-weight:600!important;letter-spacing:0;color:var(--b-ink);margin:0 0 12px!important}
.pie-col{display:grid;gap:8px;align-content:start}
.pie a,.pie .pie-dato{color:var(--muted);text-decoration:none;min-height:32px;display:inline-flex;align-items:center}
.pie a{min-height:44px}
.pie-col a{justify-self:start}
.pie a:hover{color:var(--brown);text-decoration:underline}
.pie p{margin:0;max-width:none}
.pie-fin{max-width:1120px;margin:40px auto 0;padding:0 var(--gutter);font-size:13px}
.pie-fin p{border-top:1px solid var(--line);padding-top:20px}
.pie-marca p{line-height:1.7}

/* ---------- Entradas y revelado (una vez, sin escalonar tarjetas) ---------- */
.js .entra{opacity:0;transform:translateY(14px);animation:entra 560ms var(--ease-out) forwards;animation-delay:calc(var(--e,0) * 140ms)}
@keyframes entra{to{opacity:1;transform:none}}
[data-reveal]{transition:opacity 600ms var(--ease-out),transform 600ms var(--ease-out)}
[data-reveal].por-ver{opacity:0;transform:translateY(12px)}

/* ---------- Encabezado de sección (como la versión de una sola página) ----------
   Etiqueta pequeña en marrón, título, cinta de satén y entradilla en gris. Al entrar en pantalla,
   «relevé»: el título sube desde su línea, la cinta se dibuja y el resto aparece. */
.kick{display:inline-block;font:600 14px/1.3 var(--b-sans);letter-spacing:0;color:var(--brown);margin-bottom:10px}
.shead{margin-bottom:40px;max-width:720px}
.shead h2{margin:0 0 16px}
.shead .cinta{margin:16px 0 16px}
.shead p{color:var(--muted);margin:0 0 16px;max-width:60ch}
.shead p:last-child{margin-bottom:0}
.shead .btn{margin-top:8px}
.acciones.fin{margin-top:32px}
.badge{display:inline-block;align-self:flex-start;font:600 13px/1.25 var(--b-sans);letter-spacing:0;background:var(--brown);color:var(--on-brown);border-radius:999px;padding:6px 12px;margin:0!important}
.chip{display:inline-block;font:600 13px/1.2 var(--b-sans);background:var(--blush);color:var(--brown);border-radius:999px;padding:6px 12px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}

/* ---------- Entrada: telón (recuperado de la página única) ----------
   El logo en crema sobre el telón marrón, la cinta rosa que se dibuja y el telón que se abre hacia
   los lados. Solo en la portada, una vez por visita; un clic o una tecla lo salta; con movimiento
   reducido no aparece. La portada entra cuando se abre (--telon). */
.telon{position:fixed;inset:0;z-index:100;display:grid;place-items:center;animation:telonFuera 0s 2.3s forwards}
.sin-telon .telon,.telon-saltado .telon{display:none}
.telon .half{position:absolute;top:0;bottom:0;width:50.5%;background:
  repeating-linear-gradient(90deg,rgba(0,0,0,.22) 0,rgba(0,0,0,0) 28px,rgba(255,255,255,.07) 52px,rgba(0,0,0,0) 76px,rgba(0,0,0,.22) 104px),
  linear-gradient(180deg,#6B4030,#5A3426 70%,#46281E)}
.telon .half.l{left:0;animation:telonL .95s 1.25s cubic-bezier(.7,0,.25,1) forwards}
.telon .half.r{right:0;animation:telonR .95s 1.25s cubic-bezier(.7,0,.25,1) forwards}
.telon .half.l::after,.telon .half.r::before{content:"";position:absolute;top:0;bottom:0;width:26px;background:linear-gradient(90deg,rgba(0,0,0,.28),transparent)}
.telon .half.l::after{right:0;transform:scaleX(-1)}
.telon .half.r::before{left:0}
.telon .mark{position:relative;display:grid;justify-items:center;gap:14px;animation:telonMarcaFuera .35s 1.1s ease-in forwards}
.telon .tlogo{display:block;animation:telonMarca .9s .15s cubic-bezier(.2,.8,.2,1) both}
.telon img{width:min(300px,64vw);height:auto;filter:brightness(0) invert(.96) sepia(.35)}
.telon svg{width:min(260px,56vw);height:28px;overflow:visible}
.telon svg path{stroke:#F4C5CE;stroke-width:2;fill:none;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;animation:telonCinta .8s .55s ease-out forwards}
@keyframes telonMarca{from{opacity:0;transform:translateY(12px) scale(.94);filter:blur(8px)}}
@keyframes telonMarcaFuera{to{opacity:0;transform:translateY(-8px)}}
@keyframes telonCinta{to{stroke-dashoffset:0}}
@keyframes telonL{to{transform:translateX(-101%)}}
@keyframes telonR{to{transform:translateX(101%)}}
@keyframes telonFuera{to{visibility:hidden;pointer-events:none}}
/* Con telón, la portada espera a que se abra; si se salta, entra enseguida */
.con-telon:not(.telon-saltado) .portada .entra{animation-delay:calc(1.45s + var(--e,0) * 140ms)}
.con-telon:not(.telon-saltado) .btn.brillo::after{animation-delay:2.65s}

/* ---------- Inicio: portada con el logo grande al centro ---------- */
.portada{position:relative;isolation:isolate;min-height:max(540px,calc(100svh - var(--cab-h) - env(safe-area-inset-top,0px)));max-height:900px;display:grid;align-items:end;justify-items:center;color:#FFFAF6;overflow:hidden;background:#2E2723}
.pfoto{position:absolute;inset:0;z-index:-1}
.pfoto img,.pfoto video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%}
.js .pfoto img{animation:fotoEntra 1100ms var(--ease-out) both}
@keyframes fotoEntra{from{opacity:.001;transform:scale(1.04)}to{opacity:1;transform:none}}
.pfoto video{opacity:0;transition:opacity 800ms ease}
.pfoto video.on{opacity:1}
.pfoto::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,22,20,.28) 0%,rgba(30,22,20,.04) 28%,rgba(30,22,20,.42) 60%,rgba(30,22,20,.8) 100%)}
@media (min-aspect-ratio:4/5){ .pfoto::after{background:radial-gradient(ellipse 60% 70% at 50% 55%,rgba(30,22,20,.62),rgba(30,22,20,.2) 75%),linear-gradient(180deg,rgba(30,22,20,.25),rgba(30,22,20,.45))} }
.ptexto{display:grid;justify-items:center;text-align:center;width:100%;max-width:760px;padding:40px var(--gutter) calc(48px + env(safe-area-inset-bottom,0px))}
@media (min-width:900px){ .portada{align-items:center} .ptexto{padding:64px var(--gutter)} }
.portada h1{margin:0;line-height:0}
.portada h1 img{width:min(340px,70vw);height:auto;filter:brightness(0) invert(.96) sepia(.35) drop-shadow(0 2px 14px rgba(0,0,0,.35))}
.portada .frase{font:500 clamp(18px,2.4vw,24px)/1.35 var(--b-sans);color:#F3E4D8;margin:24px auto 28px;max-width:28ch;text-shadow:0 1px 12px rgba(0,0,0,.4)}
.pacc{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.btn.fantasma{background:rgba(30,22,20,.25);border-color:#F3E4D8;color:#F3E4D8!important}
.btn.fantasma:hover{background:#F3E4D8;border-color:#F3E4D8;color:#2E2723!important}
/* Brillo de satén: cruza el botón principal una sola vez */
.btn.brillo{position:relative;overflow:hidden;isolation:isolate}
.btn.brillo::after{content:"";position:absolute;inset:-2px;z-index:-1;pointer-events:none;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.75) 48%,rgba(255,255,255,.75) 52%,transparent 70%);transform:translateX(-110%);animation:satin 900ms 1.2s var(--ease-in-out) forwards}
@keyframes satin{to{transform:translateX(110%)}}

/* El estudio: texto y la foto del logo en arco */
.best{display:grid;gap:32px;align-items:center}
@media (min-width:900px){ .best{grid-template-columns:1.3fr .7fr;gap:64px} }
.best h2{margin:0}
.best .cinta{margin:16px 0 20px}
.historia p{color:var(--muted);line-height:1.75}
.historia.grande p:first-child{font-size:clamp(18px,1.6vw,20px);color:var(--b-ink);line-height:1.6}
.historia + .btn{margin-top:8px}
.estfoto{margin:0;width:100%;max-width:320px;justify-self:center;aspect-ratio:4/5;border-radius:200px 200px 28px 28px;overflow:hidden;border:1px solid var(--line);background:var(--pink)}
@media (min-width:900px){ .estfoto{max-width:400px} }
.estfoto img{width:100%;height:100%;object-fit:cover}

/* Clases: tarjetas con dos fotos */
.ctypes{display:grid;gap:16px;grid-template-columns:1fr}
@media (min-width:700px){ .ctypes{grid-template-columns:1fr 1fr;align-items:stretch} }
@media (min-width:1100px){ .ctypes{grid-template-columns:repeat(5,1fr)} .ctype h3{font-size:19px} .ctype .ct{padding:18px 16px 14px} }
.ctype{position:relative;background:var(--b-bg);border:1px solid var(--line);border-radius:28px;overflow:hidden;display:flex;flex-direction:column;transition:border-color var(--dur-hover),transform var(--dur-mid) var(--ease-out)}
@media (hover:hover) and (pointer:fine){ .ctype:hover{border-color:color-mix(in srgb,var(--brown) 40%,var(--line));transform:translateY(-3px)} }
.ctype .phs{display:grid;grid-template-rows:minmax(0,1fr);gap:3px;aspect-ratio:16/11;overflow:hidden;background:var(--pink)}
.ctype .phs.n2{grid-template-columns:1.25fr 1fr}
.ctype .phs img{width:100%;height:100%;min-width:0;min-height:0;object-fit:cover}
.ctype .ct{padding:20px 20px 16px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;flex:1}
.ctype .kick{margin:0}
.ctype h3{font-size:21px;font-weight:600;line-height:1.2}
.ctype .ages{list-style:none;margin:2px 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.ctype .ages li{font:600 12px var(--b-sans);background:var(--blush);color:var(--brown);border-radius:999px;padding:5px 11px}
.ctype .ctx{margin:0;color:var(--muted);font-size:14.5px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ctype .meta{font:600 13px/1.5 var(--b-sans);color:var(--b-ink);margin:auto 0 0;padding-top:8px}
.ctype .more{color:var(--brown);font:600 12px var(--b-sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;padding:12px 0 4px;min-height:44px;display:inline-flex;align-items:center;gap:6px}
.ctype .more span[aria-hidden]{display:inline-block;transition:transform var(--dur-mid) var(--ease-out)}
.ctype .more:hover span[aria-hidden]{transform:translateX(4px)}
/* Teléfono: tarjetas en una fila deslizable (la siguiente asoma) */
@media (max-width:699.98px){
  .ctypes,.carrusel .momentos{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:82%;gap:12px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding:2px 2px 12px;margin:0 -2px;scrollbar-width:thin}
  .ctypes > *,.carrusel .momento{scroll-snap-align:start;min-width:0}
}
.ctypes:focus-visible,.carrusel:focus-visible{outline:3px solid var(--ring);outline-offset:4px;border-radius:28px}

/* Nuevo espacio de Reformer: una foto grande en arco y dos debajo */
.refo{display:grid;gap:32px;align-items:center}
@media (min-width:900px){ .refo{grid-template-columns:1.15fr .85fr;gap:56px} }
.refo-ph{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.refo-ph img{width:100%;height:100%;object-fit:cover;border-radius:22px;aspect-ratio:4/5}
.refo-ph img.big{grid-column:1/-1;aspect-ratio:16/11;border-radius:200px 200px 22px 22px}
.refo-tx h2{margin:0}
.refo-tx .cinta{margin:16px 0 20px}
.refo-tx p{color:var(--muted);line-height:1.75}
.refo-meta{font:500 clamp(19px,1.8vw,22px)/1.4 var(--b-sans);color:var(--b-ink)!important;margin:0 0 16px!important;max-width:30ch}

/* Horario y reservas: la próxima clase */
.dos.centrado{align-items:center}
.dos .shead{margin-bottom:0}
.proxima-tarjeta{background:var(--b-bg);border:1px solid var(--line);border-radius:28px;padding:28px;min-height:200px;display:grid;gap:12px;align-content:center;position:relative;overflow:hidden}
.proxima-tarjeta::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--pink),var(--brown))}
.proxima-tarjeta .pq{font:600 14px/1.4 var(--b-sans);color:var(--brown);margin:0}
.proxima-tarjeta .pn{font-size:30px;font-weight:600;letter-spacing:-.01em;line-height:1.15;margin:0}
.proxima-tarjeta .pl{margin:0;color:var(--muted)}
.proxima-tarjeta .btn{justify-self:start;margin-top:4px}
.pcarga{color:var(--muted);margin:0}

/* Precios en breve (inicio) */
.pbreve{list-style:none;margin:0;padding:0;display:grid;gap:16px}
@media (min-width:800px){ .pbreve{grid-template-columns:repeat(3,1fr)} }
.pbreve .pblock{display:flex;flex-direction:column;align-items:flex-start}
.pbreve h3{font-size:22px;font-weight:600;margin:0 0 8px}
.pdesde{font-size:34px;font-weight:500;letter-spacing:-.01em;font-variant-numeric:tabular-nums;line-height:1.1;margin:4px 0 12px!important;color:var(--b-ink)}
.pdesde small{font-size:14px;font-weight:500;color:var(--muted);letter-spacing:0}
.pbreve .pdet{color:var(--muted);font-size:15px;margin:0}
.pblock.dest{background:var(--brown);border-color:var(--brown)}
.pblock.dest :is(.kick,h3,.pdesde,.pdesde small,.pdet){color:var(--on-brown)}

/* Ubicación */
.ubic{display:grid;gap:24px}
.ubic h2,#ubicacion h2{margin:0 0 16px}
.where{font:500 20px/1.3 var(--b-sans);color:var(--brown);margin:0 0 6px!important}
.city{margin:0 0 4px!important;font:600 15px/1.4 var(--b-sans);color:var(--b-ink)}
.addr{margin:0 0 16px!important;color:var(--muted)}
.ubic .acciones{margin:0}

/* ---------- Clases (página) ---------- */
.clase{display:grid;gap:24px;padding-top:48px;padding-bottom:48px;border-bottom:1px solid var(--line);scroll-margin-top:calc(var(--cab-h) + 16px)}
.clase:last-child{border-bottom:0}
@media (min-width:900px){ .clase{grid-template-columns:5fr 7fr;gap:64px;align-items:center;padding-top:72px;padding-bottom:72px} .clase.alt .cfoto{order:2} }
.cfoto{margin:0;max-width:460px;width:100%;justify-self:center}
.cfoto img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:200px 200px 28px 28px;background:var(--pink);border:1px solid var(--line)}
.ctexto .kick{margin-bottom:8px}
.ctexto h2{margin-bottom:16px}
.datos{margin:8px 0 24px;display:grid;gap:0;border-top:1px solid var(--line)}
.datos div{display:grid;grid-template-columns:minmax(110px,32%) 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.datos dt{font:600 14px/1.7 var(--b-sans);color:var(--muted)}
.datos dd{margin:0}
.cacc{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px}
.mode{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--brown);margin:0!important}
.mode::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.wa-mode{color:var(--muted)}
.cierre .kick{margin-bottom:8px}
.cierre h2{margin-bottom:12px}

/* ---------- Precios (página): tres bloques como el flyer ---------- */
.precios{padding-top:16px;padding-bottom:72px}
.prices{display:grid;gap:16px;align-items:start}
@media (min-width:900px){ .prices{grid-template-columns:1fr 1.25fr 1fr} }
.pblock{background:var(--paper);border:1px solid var(--line);border-radius:28px;padding:24px 22px 22px}
.pblock .kick{margin-bottom:8px}
.pblock h2{font-size:24px!important;font-weight:600!important;margin:0 0 12px}
.pblock h3.sub{font-size:16px;font-weight:600;color:var(--b-ink);margin:28px 0 4px}
.pblock .kname{margin:-6px 0 8px;font:500 16px/1.3 var(--b-sans);color:var(--brown)}
.plist{list-style:none;margin:0;padding:0}
.plist li{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}
.plist .pn{font:600 15px/1.3 var(--b-sans);color:var(--b-ink)}
.plist .pn small{display:block;font-weight:500;font-size:13px;color:var(--muted);margin-top:2px;line-height:1.45}
.plist b{font:500 20px/1 var(--b-sans);font-variant-numeric:tabular-nums;color:var(--b-ink);white-space:nowrap}
.plist .btn{grid-column:1/-1;justify-self:start}
.plist.acc li{padding:10px 0}
.plist.acc .pn{font-weight:500;font-size:14px}
.plist.acc b{font-size:17px}
.plist li.star{background:var(--blush);border-radius:18px;border-top:0;margin-top:8px;padding:16px}
.pblock > .btn{margin-top:12px}
.pnote{margin:16px 0 0;padding:12px 14px;border-radius:16px;background:var(--blush);color:var(--b-ink);font:500 14px/1.55 var(--b-sans);max-width:none!important}
.socks,.gift,.pcaja{background:var(--paper);border:1px solid var(--line);border-radius:28px;padding:24px;margin-top:16px}
.socks{display:grid;gap:24px;align-items:center;scroll-margin-top:calc(var(--cab-h) + 16px)}
@media (min-width:900px){ .socks{grid-template-columns:1.05fr 1fr;gap:40px;padding:32px} }
.socks h2,.gift h2,.pcaja h2{font-size:24px!important;font-weight:600!important;margin:0 0 12px}
.socks p,.gift p,.pcaja p,.pcaja li{color:var(--muted)}
.mpair{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start;margin:0}
.mpair figure{margin:0;min-width:0}
.mpair figure:nth-child(2){margin-top:24px}
.mpair img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:20px;background:var(--blush)}
.mpair figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:10px 4px 0}
.mpair figcaption span{font:500 13px/1.3 var(--b-sans);color:var(--muted)}
.mpair figcaption b{font:600 17px/1 var(--b-sans);font-variant-numeric:tabular-nums;color:var(--b-ink)}
@media (max-width:599px){ .mpair figcaption{flex-direction:column;align-items:flex-start;gap:3px} }
.pinfo{display:grid;gap:16px;margin-top:16px}
.pinfo .pcaja{margin-top:0}
@media (min-width:900px){ .pinfo{grid-template-columns:1fr 1fr} }
.pcaja .lista li b{color:var(--b-ink)}
.gift{display:grid;gap:28px;align-items:center}
@media (min-width:900px){ .gift{grid-template-columns:.8fr 1.2fr;padding:32px} }
.gcard{position:relative;aspect-ratio:1.6;border-radius:20px;background:linear-gradient(135deg,#F4C5CE,#F3E4D8 60%,#F7E6E8);display:grid;place-items:center;align-content:center;gap:8px;overflow:hidden;box-shadow:0 14px 34px rgba(46,39,35,.16);transform:rotate(-2deg);max-width:420px;width:100%;justify-self:center}
.gcard img{width:58%;height:auto}
.gcard span{font:600 14px var(--b-sans);letter-spacing:.02em;color:#2E2723}
.gcard i{position:absolute;inset:auto -10% 7% -10%;height:9px;background:#5A3426;opacity:.85;transform:rotate(-8deg)}

/* ---------- El estudio (página) ---------- */
.sec.arriba{padding-top:16px}
.salas{display:grid;gap:16px}
@media (min-width:800px){ .salas{grid-template-columns:1fr 1fr} }
.sala-card{background:var(--b-bg);border:1px solid var(--line);border-radius:28px;overflow:hidden;display:flex;flex-direction:column}
.sala-card figure{margin:12px 12px 0;aspect-ratio:16/11;border-radius:200px 200px 0 0;overflow:hidden;background:var(--pink)}
.sala-card img{width:100%;height:100%;object-fit:cover}
.sala-card > div{padding:20px 22px 24px}
.sala-card .kick{margin-bottom:6px}
.sala-card h3{font-size:22px;margin-bottom:8px}
.sala-card p{color:var(--muted);margin:0}
/* Equipo: la foto en arco es lo principal */
.team{list-style:none;margin:0;padding:0;display:grid;gap:12px;grid-template-columns:1fr 1fr}
@media (min-width:900px){ .team{grid-template-columns:repeat(4,1fr);gap:16px} }
.member{--stag:120ms;background:var(--b-bg);border:1px solid var(--line);border-radius:28px;overflow:hidden;display:flex;flex-direction:column}
.sec:not(.papel) .member,.sec:not(.papel) .ctype{background:var(--paper)}
.member[data-reveal].por-ver{opacity:1;transform:none}
.member[data-reveal] .mph{transition:clip-path 900ms calc(var(--r,0) * var(--stag)) var(--ease-out)}
.member[data-reveal].por-ver .mph{clip-path:inset(100% 0 0 0)}
@media (max-width:699.98px){ .member{--stag:60ms} }
.mph{position:relative;aspect-ratio:4/5;border-radius:200px 200px 0 0;margin:12px 12px 0;overflow:hidden;background:linear-gradient(180deg,var(--blush),var(--pink))}
.mph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (hover:hover) and (pointer:fine){ .mph img{transition:transform var(--dur-mid) var(--ease-out)} .member:hover .mph img{transform:scale(1.03)} }
.mtx{padding:14px 16px 20px;display:flex;flex-direction:column;align-items:flex-start}
.member h3{font-weight:500;font-size:clamp(16px,4.4vw,19px);line-height:1.25}
.member p{margin:2px 0 0;font-size:14px;color:var(--muted)}
.member .nick{font-weight:500;color:var(--brown)}
.member .role{font:600 14px/1.4 var(--b-sans);color:var(--brown);margin-top:8px}
.member .types{font-weight:600;color:var(--b-ink)}
.member .mbio{margin-top:8px;line-height:1.55}
.member .mbio.clamp{display:-webkit-box;-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.member .biomore{margin-top:6px;padding:8px 0;min-height:44px;background:none;border:0;font:600 14px var(--b-sans);letter-spacing:0;color:var(--b-ink);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
/* Mapa: un fondo mientras carga (o si no carga) */
.mapa{position:relative;border-radius:28px;overflow:hidden;border:1px solid var(--line);aspect-ratio:4/3;
  background:radial-gradient(circle at 50% 46%,var(--brown) 0 7px,transparent 8px),repeating-linear-gradient(45deg,var(--paper) 0 18px,var(--blush) 18px 36px)}
.mapa iframe{position:relative;display:block;width:100%;height:100%;border:0}

/* ---------- Preguntas: cada una en su píldora ---------- */
.faq{display:grid;gap:10px;max-width:760px}
.faq summary:hover{color:var(--brown)}
.faq details{background:var(--paper);border:1px solid var(--line);border-radius:20px;transition:border-color var(--dur-hover)}
.faq details[open]{border-color:color-mix(in srgb,var(--brown) 35%,var(--line))}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;min-height:56px;font:600 17px/1.35 var(--b-sans);color:var(--b-ink);border-radius:20px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);font:400 20px/1 var(--b-sans);color:var(--brown);transition:transform var(--dur-mid) var(--ease-out)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details > div{padding:0 18px 18px}
.faq details[open] > div{animation:abre 220ms var(--ease-out)}
@keyframes abre{from{opacity:0;transform:translateY(-4px)}}
.faq details p{margin:0;color:var(--muted);line-height:1.65}
.otra{margin-top:32px;display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.otra p{margin:0}
.cont.estrecho{max-width:calc(760px + 2 * var(--gutter))}

/* ---------- Comunidad ---------- */
.csec{max-width:1120px;margin:0 auto;padding:32px var(--gutter)}
.csec:last-child{padding-bottom:72px}
.csec h2{margin-bottom:24px}
.actividades{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.actividad{display:grid;grid-template-columns:auto 1fr;gap:20px;padding:24px;border:1px solid var(--line);border-radius:28px;background:var(--paper)}
.afecha{margin:0;width:74px;height:84px;border-radius:40px 40px 14px 14px;background:var(--brown);color:var(--on-brown);display:grid;place-items:center;align-content:center;gap:2px}
.afecha b{font-size:28px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums}
.afecha span{font-size:13px;font-weight:600;letter-spacing:.02em}
.actividad .kick{margin-bottom:4px}
.actividad h3{margin-bottom:4px}
.ameta{font-size:14px;color:var(--muted);margin-bottom:8px!important}
.acupo{font-size:14px;font-weight:600;color:var(--brown);margin:0 0 12px!important}
.afotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin:12px 0}
.afotos img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:12px}
.solo-com{display:inline-block;font-size:13px;font-weight:600;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:2px 10px;margin-bottom:8px}
/* Momentos: tarjeta con la foto a la izquierda en pantallas anchas */
.momentos{list-style:none;margin:0;padding:0;display:grid;gap:16px}
@media (min-width:700px){ .momentos{grid-template-columns:1fr 1fr} }
.momento{display:grid;background:var(--paper);border:1px solid var(--line);border-radius:28px;overflow:hidden;align-content:start}
.momento figure{margin:0;aspect-ratio:4/3;background:var(--pink)}
.momento figure img{width:100%;height:100%;object-fit:cover;object-position:50% 30%}
.mtexto{padding:20px 20px 22px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.mtexto .kick{margin:0}
.momento h3{font-size:21px;margin:0}
.momento .mtexto > p,.momento .cuerpo-pub{color:var(--muted);margin:0}
.momento .acciones{margin-top:8px}
@media (min-width:900px){
  .momento{grid-template-columns:.8fr 1.2fr}
  .momento figure{aspect-ratio:auto;min-height:100%}
  .mtexto{padding:28px 24px;justify-content:center}
}
.cuerpo-pub ul{padding-left:20px;margin:0 0 12px}
.cuerpo-pub p{margin:0 0 8px}
.megusta{display:inline-flex;align-items:center;gap:6px}
.megusta svg{width:18px;height:18px}
.megusta[aria-pressed="true"] svg path{fill:currentColor}
.comentarios{margin-top:16px;border-top:1px solid var(--line);padding-top:12px;display:grid;gap:8px;width:100%}
.comentarios p{font-size:15px;margin:0}

/* ---------- Mi cuenta ---------- */
.cu-paso,#cuMio{padding-top:8px;padding-bottom:16px}
.cu-bloque{padding:32px 0;border-bottom:1px solid var(--line)}
.cu-bloque h2{font-size:24px;margin-bottom:16px}
.cu-lista{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:12px}
.cu-lista li{border:1px solid var(--line);border-radius:18px;background:var(--paper);padding:16px 18px;display:grid;gap:4px}
.cu-lista .cl-t{font-weight:600}
.cu-lista .cl-m{font-size:14px;color:var(--muted)}
.cu-lista .bkbtns{margin-top:8px}
.vacio{color:var(--muted)}

/* ---------- Formularios ---------- */
.form{display:grid;gap:16px}
.campo{display:grid;gap:6px}
.campo label{font-size:14px;font-weight:600;color:var(--b-ink)}
.campo input,.campo select,.campo textarea,.form select{width:100%;min-height:48px;border:1.5px solid var(--line);background:var(--paper);border-radius:12px;padding:12px 14px;color:var(--b-ink);font:inherit}
.campo input:focus-visible{outline:3px solid var(--ring);outline-offset:2px}
.campo input[aria-invalid="true"]{border-color:var(--err)}
.ayuda{font-size:14px;color:var(--muted);margin:0!important}
.error{display:flex;gap:6px;align-items:flex-start;font-size:14px;font-weight:600;color:var(--err);margin:0!important}
.error::before{content:"";flex:none;width:16px;height:16px;margin-top:2px;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z'/%3E%3C/svg%3E") center/contain no-repeat}
.check{display:flex;gap:12px;align-items:flex-start;font-size:15px;cursor:pointer;min-height:44px}
.check input{width:22px;height:22px;flex:none;margin:1px 0 0;accent-color:var(--brown)}
.check small{display:block;color:var(--muted);font-size:14px}
.check input[aria-invalid="true"]{outline:2px solid var(--err);outline-offset:2px}
.aviso-linea{border-left:4px solid var(--pink);background:var(--paper);padding:12px 16px;border-radius:0 12px 12px 0;margin:16px auto;font-size:15px;max-width:1080px}
.medias-aviso{font-size:14px;color:var(--muted);margin:8px 0 0!important}
.prellenado{font-size:14px;color:var(--muted);margin:0!important}

/* ---------- Reservar: semana, días y clases ---------- */
.horario{padding-bottom:72px}
.cal{background:var(--paper);border:1px solid var(--line);border-radius:28px;padding:16px 14px 20px}
@media (min-width:640px){ .cal{padding:24px 28px 28px} }
.cal .semana{margin-top:0}
.semana-txt{font:600 15px/1.4 var(--b-sans)!important}
.semana{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 12px}
.semana-txt{margin:0;font-weight:600;text-align:center;flex:1}
.flecha{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--line);background:var(--b-bg);display:grid;place-items:center;color:var(--b-ink);cursor:pointer}
.flecha svg{width:20px;height:20px}
.flecha:disabled{opacity:.35;cursor:not-allowed}
.dias{position:relative;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--dg,4px);margin-bottom:16px}
.dbtn{position:relative;z-index:1;display:grid;justify-items:center;gap:2px;padding:10px 0 12px;min-height:64px;border:0;border-radius:16px;background:transparent;color:var(--b-ink);cursor:pointer;transition:color var(--dur-mid)}
.dbtn .dw{font-size:13px;font-weight:600;color:var(--muted)}
.dbtn .dn{font-size:20px;font-weight:500;line-height:1.1}
.dbtn i{width:5px;height:5px;border-radius:50%;background:transparent}
.dbtn i.has{background:var(--brown)}
.dbtn.past .dn{color:var(--muted)}
.dbtn[aria-pressed="true"]{color:var(--on-brown)}
.dbtn[aria-pressed="true"] .dw{color:var(--on-brown)}
.dbtn[aria-pressed="true"] i.has{background:var(--on-brown)}
.dpill{grid-row:1;grid-column:1;align-self:stretch;z-index:0;border-radius:16px;background:var(--brown);transform:translateX(calc((100% + var(--dg,4px)) * var(--i,0)));transition:transform var(--dur-mid) var(--ease-spring);pointer-events:none}
.dbtn{grid-row:1}
.dpill.still{transition:none}
.filtros-h{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px}
.filtros-h label{display:grid;gap:6px;font:600 14px/1.4 var(--b-sans);color:var(--muted);min-width:0}
.filtros-h select{width:100%;min-width:0;min-height:48px;border:1.5px solid var(--line);background:var(--b-bg);border-radius:12px;padding:10px 12px;color:var(--b-ink);font:500 15px var(--b-sans)}
.dia-titulo{font-size:22px!important;font-weight:600!important;margin:0 0 12px!important}
.dia-titulo::first-letter{text-transform:uppercase}
.filas{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);min-height:300px}   /* reserva el lugar del horario: el pie no salta al cargar */
.crow{display:grid;grid-template-columns:72px 1fr;gap:4px 16px;padding:16px 0;border-bottom:1px solid var(--line);align-items:center}
@media (min-width:640px){ .crow{grid-template-columns:88px 1fr auto} }
.crow .tm b{display:block;font-size:18px;font-weight:600;font-variant-numeric:tabular-nums}
.crow .tm small{color:var(--muted);font-size:13px}
.crow h3{margin:0;font-size:18px;font-weight:600}
.crow .who{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted);margin-top:4px}
.crow .ava{width:26px;height:26px;border-radius:50%;object-fit:cover}
.crow .ini{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--pink);font-size:12px;font-weight:600;color:var(--b-ink);font-style:normal}
.crow .badge{display:inline-block;font-size:12px;font-weight:600;color:var(--on-brown);background:var(--brown);border-radius:999px;padding:2px 10px;margin:4px 6px 0 0}
.crow .badge.soft{background:var(--blush);color:var(--b-ink)}
.crow .note{font-size:13px;color:var(--muted);margin-right:6px}
.crow .ac{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px}
@media (min-width:640px){ .crow .ac{grid-column:auto;justify-content:flex-end} }
.cupo{font-size:14px;color:var(--muted)}
.cupo b{color:var(--b-ink);font-weight:600}
.cupo .tbc{display:block}
.rbtn{min-height:44px;padding:10px 20px;border-radius:999px;border:1.5px solid var(--brown);background:var(--brown);color:var(--on-brown);font:600 14px/1 var(--b-sans);letter-spacing:0;cursor:pointer;transition:background-color var(--dur-hover),transform var(--dur-fast) var(--ease-out)}
.rbtn:hover{background:var(--brown-2)}
.rbtn:active{transform:scale(.97)}
.rbtn.line{background:transparent;color:var(--brown)}
.rbtn.line:hover{background:var(--brown);color:var(--on-brown)}
.state{font-size:13px;font-weight:600;color:var(--muted)}
.state.full{color:var(--brown)}
.crow.past .tm b,.crow.past h3,.crow.cancel .tm b,.crow.cancel h3{color:var(--muted)}
.crow.cancel h3{text-decoration:line-through}
.empty-state{list-style:none;border:1.5px dashed var(--line);border-radius:20px;padding:24px;color:var(--muted);margin-top:12px}
.mias{margin-top:8px}
.mias h2{font-size:20px!important;font-weight:600!important;margin:0 0 8px!important}
.mias ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.mias a{display:grid;gap:2px;text-decoration:none;border:1px solid var(--line);background:var(--paper);border-radius:16px;padding:10px 14px;color:var(--b-ink)!important}
.mias a span{font-size:13px;color:var(--muted)}

/* ---------- Reservar: el diálogo por pasos ---------- */
dialog.reserva{border:0;padding:0;background:transparent;color:var(--b-ink);width:100%;max-width:100%;max-height:100%;margin:0;inset:auto 0 0 0}
dialog.reserva::backdrop{background:rgba(30,22,20,.55);backdrop-filter:blur(2px)}
dialog.reserva .bk{--bk-px:var(--gutter);--bk-pb:calc(24px + env(safe-area-inset-bottom,0px));background:var(--b-bg);border-radius:24px 24px 0 0;padding:20px var(--bk-px) var(--bk-pb);max-height:92svh;overflow:auto;overscroll-behavior:contain}
@media (min-width:768px){
  dialog.reserva{inset:0;margin:auto;max-width:640px;height:fit-content}
  dialog.reserva .bk{--bk-px:32px;--bk-pb:32px;border-radius:28px;padding:28px 32px 32px;max-height:88vh}
  dialog.reserva.peq{max-width:460px}
}
dialog.reserva[open]{animation:subir var(--dur-mid) var(--ease-out)}
@keyframes subir{from{transform:translateY(24px);opacity:0}}
.bk-cab{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}
.bk-kick{font-size:14px;font-weight:600;color:var(--brown);margin:0 0 4px!important}
.bk-cab h2{font-size:24px!important}
.bk-meta{font-size:15px;color:var(--muted);margin:4px 0 0!important}
.bk-meta::first-letter{text-transform:uppercase}
.pasos{list-style:none;margin:0 0 20px;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;counter-reset:p}
.pasos li{display:grid;gap:6px;font-size:13px;font-weight:600;color:var(--muted);padding-top:10px;border-top:3px solid var(--line);transition:border-color var(--dur-mid),color var(--dur-mid)}
.pasos .pn{display:none}
.pasos li.hecho{border-top-color:color-mix(in srgb,var(--brown) 45%,transparent);color:var(--b-ink)}
.pasos li[aria-current="step"]{border-top-color:var(--brown);color:var(--brown)}
.pasos li.salta{opacity:.55}
.steph{font-size:18px;font-weight:600;margin:0 0 12px!important}
.bkwarn{margin:0 0 12px!important;padding:10px 14px;border-radius:14px;background:var(--b-ink);color:var(--b-bg);font-weight:600;font-size:14px}
.bkwarn.good{background:var(--brown);color:var(--on-brown)}
.bkerr{border-left:4px solid var(--err);background:var(--paper);padding:12px 16px;border-radius:0 12px 12px 0;margin:0 0 16px}
.bkerr p{margin:0;font-weight:600}
.bkerr .bkbtns{margin-top:10px}
.bkbtns{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.bkbtns .btn{flex:1 1 auto}
.pick{font-size:15px;color:var(--muted);margin:12px 0 0!important;min-height:1.6em}
.payline{font-size:15px;margin:0!important}
.cupoinfo{font-size:15px;margin:0}
.done{text-align:center;outline:none}
.done .okmsg{margin:0 auto 16px}
.done .cinta{margin:12px auto 16px}
.done h3{font-size:26px;font-weight:500}
/* La reserva confirmada: el círculo se dibuja y el visto aparece; nada de confeti */
.celebra{display:grid;place-items:center;margin:4px 0 12px}
.ok{width:64px;height:64px}
.ok circle{fill:none;stroke:var(--brown);stroke-width:2.5;stroke-dasharray:151;stroke-dashoffset:151}
.ok path{fill:none;stroke:var(--brown);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:36;stroke-dashoffset:36}
.done:not([hidden]) .ok circle{animation:trazo 620ms var(--ease-out) forwards}
.done:not([hidden]) .ok path{animation:trazo 360ms 480ms var(--ease-out) forwards}
.done:not([hidden]) .cinta{animation:cinta 520ms 640ms var(--ease-out) both}
@keyframes trazo{to{stroke-dashoffset:0}}
@keyframes cinta{from{transform:scaleX(0)}}
.sum{margin:0;text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:6px 18px}
.sum div{display:grid;grid-template-columns:minmax(96px,36%) 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.sum div:last-child{border-bottom:0}
.sum dt{font-size:14px;font-weight:600;color:var(--muted)}
.sum dd{margin:0;font-size:15px;overflow-wrap:anywhere}
.sum dd::first-letter{text-transform:uppercase}
.sum .pol dd{font-size:14px;color:var(--muted)}
.mailst{font-size:14px;color:var(--muted);margin:8px 0 0!important}
.mailst.sent{color:var(--brown)}
.mailst.fail{color:var(--err)}
.paybox{margin-top:16px;text-align:left;background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:16px 18px;display:grid;gap:12px;justify-items:start}
.paybox .paytit{margin:0!important;font-size:14px;font-weight:600;color:var(--muted)}
.paybox .payinc{margin:0!important;font-size:16px;font-weight:600;color:var(--brown)}
.paycard{display:grid;gap:6px;justify-items:start}
.paycard .paynote,.transf .paynote{margin:0!important;font-size:14px;line-height:1.45;color:var(--muted)}
.bankd{margin:0;width:100%}
.bankd div{display:grid;grid-template-columns:minmax(96px,36%) 1fr;gap:10px;padding:6px 0;border-bottom:1px solid var(--line)}
.bankd div:last-child{border-bottom:0}
.bankd dt{font-size:14px;font-weight:600;color:var(--muted)}
.bankd dd{margin:0;font-size:15px}
.transf{display:grid;gap:8px;justify-items:start;width:100%}
.transf .paynote.mal{color:var(--b-ink);font-weight:600;border-left:3px solid var(--err);padding-left:8px}
.transf-form{border-top:1px solid var(--line);padding-top:12px}
.transf-form .fld{width:100%;display:grid;gap:6px;font-size:14px;font-weight:600}
.transf-form .fld input{width:100%;min-height:48px;border:1.5px solid var(--line);background:var(--b-bg);border-radius:12px;padding:10px 12px;font:inherit}
.transf-btns{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
.transf .btn,.paycard .btn{min-height:44px}
.bbtn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:11px 20px;border-radius:999px;border:1.5px solid var(--brown);font:600 14px/1.2 var(--b-sans);letter-spacing:0;cursor:pointer;background:var(--brown);color:var(--on-brown)}
.bbtn.line{background:transparent;color:var(--brown)}
.bbtn.solid{background:var(--brown);color:var(--on-brown)}
.bbtn.sm{padding:9px 16px}
.mrmsg,.mrcarga{margin:0 0 16px;font-size:17px}
.mrcarga{color:var(--muted)}
.mres .bkbtns{padding-top:8px}

/* ---------- La sala: la foto oficial «Ubicación de espacios» y los lugares ---------- */
.sala{position:relative;margin:0 auto;width:100%}
/* En el paso «Lugar», el diálogo se ensancha en escritorio para elegir sobre la foto */
@media (min-width:1000px){ dialog.reserva:has(#stLugar:not([hidden])){max-width:980px} }
.sala-foto{position:relative;margin:0}
.sf-lienzo{position:relative;display:block;width:100%;aspect-ratio:var(--ar);border-radius:22px;overflow:hidden;background:var(--madera);padding:0;border:0;margin:0;color:inherit;font:inherit}
.sf-lienzo picture,.sf-lienzo img{display:block;width:100%;height:100%}
.sf-lienzo img{object-fit:cover}
.sf-botones,.sf-marcas{position:absolute;inset:0;container-type:inline-size}
/* Elegir sobre la imagen oficial completa (9/11/2026): solo la imagen y los lugares */
.sala-elige{width:min(100%,max(560px,calc((100dvh - 360px) * 1.56)));margin-inline:auto;overflow:hidden;border-radius:16px;background:#FAF0E8}
/* Sin el borde crema vacío de la imagen (el título y el marco se quedan): la imagen se ve más grande */
.sala-elige .sf-lienzo{width:104%;margin:-2% -2% -2.4%;border-radius:0;background:#FAF0E8}
/* Teléfono: la imagen de borde a borde de la pantalla */
@media (max-width:759px){ .sala-elige{width:auto;margin-inline:calc(-1 * var(--bk-px,16px));border-radius:0} }
.sala-elige .sf-lienzo img{object-fit:contain}
/* Imagen chica (teléfono): los círculos de la foto no se leen; cada lugar se dibuja encima con su número.
   Toque de lo que permite la distancia entre lugares (≥ 24 px de ancho). */
@container (max-width:640px){
  .sala-elige .sf-botones .seat{width:max(24px,calc(var(--rn) * 3cqi));height:32px;aspect-ratio:auto;border-radius:12px;color:#2E2723}
  .sala-elige .sf-botones .seat::before{width:max(19px,calc(var(--rn) * 2.4cqi));background:#F7EBDD;border:1.5px solid #2E2723}
  .sala-elige .sf-botones .seat > span{font-size:11px;font-weight:700}
  .sala-elige .sf-botones .seat[aria-pressed="true"]{color:var(--on-brown)}
  .sala-elige .sf-botones .seat[aria-pressed="true"]::before{width:26px;background:var(--brown);border:2px solid #FFFAF6}
}
/* Un lugar sobre la foto: botón de 44 px o más, invisible; el anillo del tamaño del círculo */
.seat{position:relative;display:grid;place-items:center;padding:0;border:0;background:none;cursor:pointer;font:600 16px/1 var(--b-sans);font-variant-numeric:tabular-nums;color:inherit;-webkit-tap-highlight-color:transparent}
.sf-botones .seat{position:absolute;left:var(--x);top:var(--y);translate:-50% -50%;width:max(44px,calc(var(--rn) * 2.3cqi));aspect-ratio:1;border-radius:50%;color:transparent}
.sf-botones .seat::before,.marca{content:"";position:absolute;left:50%;top:50%;translate:-50% -50%;width:calc(var(--rn) * 2cqi + 8px);aspect-ratio:1;border-radius:50%;border:3px solid transparent;transition:border-color var(--dur-hover),background-color var(--dur-hover),box-shadow var(--dur-hover)}
.sf-botones .seat > span{position:relative;z-index:1;font-size:max(13px,calc(var(--rn) * 1.15cqi))}
.sf-botones .seat:hover:not(:disabled)::before{border-color:var(--brown);box-shadow:0 0 0 3px color-mix(in srgb,#FFFAF6 70%,transparent)}
.sf-botones .seat:focus-visible{outline:none}
.sf-botones .seat:focus-visible::before{border-color:var(--ring);box-shadow:0 0 0 3px #FFFAF6,0 0 0 6px var(--ring)}
.sf-botones .seat[aria-pressed="true"]{color:var(--on-brown)}
.sf-botones .seat[aria-pressed="true"]::before{background:var(--brown);border-color:#FFFAF6;box-shadow:0 4px 14px rgba(46,39,35,.35)}
.sf-botones .seat:disabled{cursor:not-allowed;color:#2E2723}
.sf-botones .seat:disabled > span{opacity:.72}
.sf-botones .seat:disabled::before,.marca.oc{background:color-mix(in srgb,#FFFAF6 80%,transparent);border:2px dashed color-mix(in srgb,#2E2723 70%,transparent)}
.sf-botones .seat:disabled::after,.marca.oc::after{content:"";position:absolute;z-index:0;left:50%;top:50%;width:calc(var(--rn) * 2cqi);height:1.5px;border-radius:1px;background:color-mix(in srgb,#2E2723 45%,transparent);translate:-50% -50%;rotate:-35deg}
.marca.oc{z-index:0;color:color-mix(in srgb,#2E2723 75%,transparent)}
.marca.oc::after{z-index:-1}
/* Marcas (solo para mirar: mi-reserva) */
.marca{left:var(--x);top:var(--y);display:grid;place-items:center;color:transparent;font:600 max(11px,calc(var(--rn) * 1.15cqi))/1 var(--b-sans)}
.marca.mio{background:var(--brown);border-color:#FFFAF6;color:var(--on-brown);box-shadow:0 4px 14px rgba(46,39,35,.35)}
:root[data-mode="dark"] .sf-botones .seat[aria-pressed="true"],:root[data-mode="dark"] .marca.mio{color:#1d1715}
.sin-foto .sf-lienzo img{visibility:hidden}
.sin-foto .sf-botones .seat{color:var(--b-ink)}
.sin-foto .sf-botones .seat::before,.sin-foto .marca{background:#F7EBDD;border-color:color-mix(in srgb,var(--b-ink) 25%,transparent)}
.sin-foto .marca{color:var(--b-ink)}
.tu-lugar figcaption{font-size:15px;color:var(--muted);margin-top:10px}
.mr-sala{margin:16px 0 0}
.seat.asienta{animation:asienta 420ms var(--ease-spring)}
@keyframes asienta{0%{transform:scale(.86)}60%{transform:scale(1.08)}100%{transform:scale(1)}}
.seat.vibra{animation:vibra 360ms var(--ease-out)}
@keyframes vibra{0%,100%{transform:none}20%{transform:translateX(-5px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}
.leyenda{list-style:none;display:flex;flex-wrap:wrap;gap:8px 20px;margin:16px 0 0;padding:0;font-size:14px;color:var(--muted);justify-content:center}
.leyenda li{display:flex;align-items:center;gap:8px}
.leyenda i{width:20px;height:20px;border-radius:50%;border:2px solid color-mix(in srgb,var(--b-ink) 18%,transparent);background:#F7EBDD;position:relative}
.leyenda .l-mio{background:var(--brown);border-color:var(--brown)}
.leyenda .l-oc{background:color-mix(in srgb,var(--madera) 60%,var(--line));border-style:dashed}
.leyenda .l-oc::after{content:"";position:absolute;left:3px;right:3px;top:50%;height:2px;background:var(--muted);transform:rotate(-35deg)}
/* Reformer: 6 máquinas, por cupo (la base de datos no asigna máquina) */
.reformer{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:8px 0 12px}
.maq{position:relative;aspect-ratio:1/1.7;border-radius:14px;background:var(--madera);border:2px solid color-mix(in srgb,var(--b-ink) 15%,transparent);display:grid;place-items:end center;padding-bottom:8px;font-size:13px;font-weight:600;color:var(--muted)}
.maq::before{content:"";position:absolute;left:22%;right:22%;top:14%;bottom:30%;border-radius:8px;background:#F7EBDD;border:2px solid color-mix(in srgb,var(--b-ink) 18%,transparent)}
.maq.oc{opacity:.5}
.maq.oc::before{background:transparent;border-style:dashed}

/* ---------- 404 y mi-reserva ---------- */
.p404 .acciones{padding-bottom:0}


/* ---------- Movimiento reducido: todo en su estado final, al instante ---------- */
@media (prefers-reduced-motion:reduce){
  [data-reveal],[data-reveal].por-ver,.member[data-reveal] .mph{clip-path:none!important;opacity:1!important;transform:none!important;transition:none!important}
  .faq details[open] > div{animation:none}
  .barra-movil,.cab,.cab-in,.logo img{transition:none!important}
  .btn.brillo::after{display:none}
  .telon{display:none!important}
  .ctype,.ctype .more span{transition:none!important;transform:none!important}
  .js .entra,.js .pfoto img{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}
  .seat.asienta,.seat.vibra,dialog.reserva[open]{animation:none!important}
  .done:not([hidden]) .ok circle,.done:not([hidden]) .ok path{animation:none!important;stroke-dashoffset:0}
  .done:not([hidden]) .cinta{animation:none!important}
  .menu{transition:none!important}
}
.icono.con-sesion{border-color:var(--brown);background:var(--blush)}

/* Ritmo bajo los títulos (los bloques con margen propio lo sobrescriben) */
.sitio .cont > h2,.sitio .texto > h2:first-child{margin-bottom:12px}
.sitio .dos > div > h2 + p{margin-top:0}
.crow .tm b{white-space:nowrap}
.crow{grid-template-columns:84px 1fr}
@media (min-width:640px){ .crow{grid-template-columns:96px 1fr auto} }
.dos > *{min-width:0}
/* El horario lo pinta el JS: se reserva el alto de la semana y de los días para que nada salte al cargar */
.semana-txt{min-height:3.2em;display:grid;place-items:center}
.dias{min-height:66px}
/* Rendimiento: lo que
   el JS repinta en Reservar no obliga a recalcular el resto de la página */
.filas,.dias{contain:layout style}

/* =========================================================
   Pulido del 8/11/2026 (DECISIONES §39): «el estudio por dentro»
   Ritmo variado entre secciones, componentes que se adaptan al contexto (clases editoriales,
   precios verticales, comunidad horizontal) y los arcos de los espejos como firma.
   ========================================================= */
/* Ritmo: unas secciones respiran más (El estudio, Instagram) y otras van más juntas (la próxima clase) */
@media (min-width:1024px){
  .sec[aria-labelledby="t-estudio"]{padding-top:128px;padding-bottom:128px}
  .sec[aria-labelledby="t-proxima"]{padding-top:72px;padding-bottom:72px}
  .sec[aria-labelledby="t-faq"]{padding-top:112px;padding-bottom:112px}
}
/* Título al lado de la entrada */
@media (min-width:900px){
  .shead.lado{max-width:none;display:grid;grid-template-columns:5fr 6fr;gap:64px;align-items:end}
  .shead.lado h2{margin:0}
  .shead.lado p{margin:0}
}
/* Cabeceras de página: el arco de los espejos, en línea fina */
.phead{position:relative}
.phead h1{max-width:18ch}
/* Cabeceras con foto en arco a la derecha (desde 900 px): dos columnas, sin superponerse */
.phead-foto{display:none;margin:0}
@media (min-width:900px){
  .phead.con-foto{display:grid;grid-template-columns:minmax(0,1fr) 280px;column-gap:64px;align-items:center}
  .phead.con-foto .phead-tx{max-width:60ch;min-width:0}
  .phead-foto{display:block;width:100%;aspect-ratio:4/5;border-radius:50% 50% 0 0/40% 40% 0 0;overflow:hidden;background:var(--pink)}
  .phead-foto img{width:100%;height:100%;object-fit:cover}
}
/* El estudio: el titular grande y el primer párrafo como entrada */
.best h2{font-size:clamp(36px,5.4vw,64px);margin-bottom:20px}
.best .historia p:first-child{font-size:clamp(18px,1.6vw,21px);line-height:1.6;color:var(--b-ink)}

/* Clases: lista editorial, foto en arco y el texto completo */
.cl-lista{list-style:none;margin:0;padding:0;display:grid;border-top:1px solid var(--line)}
@media (min-width:900px){ .cl-lista{grid-template-columns:1fr 1fr;column-gap:56px} }
.cl-item{display:grid;grid-template-columns:96px minmax(0,1fr);gap:18px;padding:24px 0;border-bottom:1px solid var(--line);align-items:start}
@media (min-width:640px){ .cl-item{grid-template-columns:140px minmax(0,1fr);gap:28px;padding:32px 0} }
.cl-foto{margin:0;aspect-ratio:4/5;border-radius:50% 50% 14px 14px/40% 40% 14px 14px;overflow:hidden;background:var(--pink)}
.cl-foto img{width:100%;height:100%;object-fit:cover}
@media (hover:hover) and (pointer:fine){ .cl-foto img{transition:transform 400ms var(--ease-out)} .cl-item:hover .cl-foto img{transform:scale(1.04)} }
.cl-tx{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0}
.cl-tx h3{font-size:clamp(22px,2.2vw,26px);font-weight:500;letter-spacing:-.015em}
.cl-tx > p{margin:0;color:var(--muted)}
.cl-tx > p.badge{color:var(--on-brown)}
.cl-tx .cl-meta{color:var(--b-ink);font-weight:600;font-size:15px}
.ages{list-style:none;margin:2px 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.ages li{font:600 13px var(--b-sans);background:var(--blush);color:var(--brown);border-radius:999px;padding:5px 11px}
.enlace{color:var(--brown);font-weight:600;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:5px;min-height:44px;display:inline-flex;align-items:center}
.enlace:hover{text-decoration-thickness:2.5px}

/* Reformer: mosaico de arcos que respira */
.refo-ph{grid-template-columns:1.2fr 1fr;gap:12px;align-items:end}
.refo-ph img{border-radius:50% 50% 20px 20px/40% 40% 20px 20px;aspect-ratio:4/5}
.refo-ph img.r0{grid-row:1/3;aspect-ratio:3/4.4;border-radius:50% 50% 20px 20px/34% 34% 20px 20px}
.refo-ph img.r1{aspect-ratio:1;border-radius:20px}
.refo-ph img.r2{aspect-ratio:4/5}
@media (hover:hover) and (pointer:fine){ .refo-ph img{transition:transform 400ms var(--ease-out)} .refo-ph img:hover{transform:scale(1.02)} }
.refo-tx > p:not(.refo-meta){color:var(--muted);line-height:1.7}
.refo-tx h2{margin-bottom:16px}

/* La próxima clase con lugar: el número de lugares libres grande */
.proxima-tarjeta{grid-template-columns:1fr;padding:28px 28px 30px;border-radius:50% 50% 28px 28px/180px 180px 28px 28px;padding-top:64px;text-align:center;justify-items:center}
.proxima-tarjeta::before{display:none}
.proxima-tarjeta .pn{font-size:clamp(26px,3vw,34px);font-weight:500;letter-spacing:-.02em}
.proxima-tarjeta .pl{color:var(--muted);font-size:16px;display:grid;justify-items:center;gap:2px}
.proxima-tarjeta .pl b{font:500 clamp(64px,8vw,96px)/1 var(--b-sans);letter-spacing:-.04em;color:var(--brown);font-variant-numeric:tabular-nums}
.proxima-tarjeta .btn{justify-self:center}
.proxima-tarjeta.vacia{border-radius:28px;padding-top:28px}
.proxima-tarjeta.vacia .pn{font-size:22px}

/* Precios en breve: verticales; la de clases ilimitadas con el arco */
.pbreve{align-items:stretch}
.pbreve .pblock{padding:28px 24px 26px}
.pbreve .pdesde small{text-transform:none}
.pblock.dest{border-radius:50% 50% 28px 28px/150px 150px 28px 28px;padding-top:72px!important;text-align:center}
.pbreve .pblock.dest{align-items:center}
.pblock.dest .badge{background:var(--on-brown);color:var(--brown);align-self:center;margin-bottom:12px!important}
.pnota-clara{margin-top:24px;display:grid;gap:8px;padding:18px 22px;border-radius:20px;background:var(--paper);border:1px solid var(--line);max-width:820px}
.pnota-clara p{margin:0;color:var(--b-ink);font-size:16px;max-width:none}
.pnota-clara a{font-weight:600}

/* Comunidad (inicio): horizontales con la fecha destacada */
.momento .kick{background:var(--blush);color:var(--brown);padding:4px 12px;border-radius:999px;font-size:13px}
:root[data-mode="dark"] .momento .kick{background:var(--brown);color:var(--on-brown)}

/* Testimonios reales (apagado mientras no haya) */
.testimonios{list-style:none;margin:32px 0 0;padding:0;display:grid;gap:16px}
@media (min-width:800px){ .testimonios{grid-template-columns:repeat(3,1fr);gap:24px} }
.testimonios li{background:var(--paper);border:1px solid var(--line);border-radius:28px;padding:28px 24px}
.testimonios blockquote{margin:0}
.testimonios blockquote p{font-size:clamp(18px,1.7vw,20px);line-height:1.55;color:var(--b-ink);margin:0}
.testimonios .quien{color:var(--muted);font-size:15px;margin:16px 0 0;font-weight:600}

/* Instagram: fotos propias de la web y el enlace al perfil */
.sec.instagram{padding-top:64px;padding-bottom:64px}
.insta{display:grid;gap:28px;align-items:center}
@media (min-width:900px){ .insta{grid-template-columns:4fr 7fr;gap:64px} }
.insta-tx h2{margin-bottom:12px}
.insta-tx p{color:var(--muted)}
.insta-fotos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.insta-fotos li{aspect-ratio:1;overflow:hidden;border-radius:16px;background:var(--pink)}
.insta-fotos li:nth-child(2){border-radius:50% 50% 16px 16px/50% 50% 16px 16px}
.insta-fotos img{width:100%;height:100%;object-fit:cover}

/* Preguntas (inicio): el título a un lado y la lista al otro */
@media (min-width:900px){
  .faq-lado{display:grid;grid-template-columns:4fr 7fr;gap:64px;align-items:start}
  .faq-lado .shead{position:sticky;top:calc(var(--cab-h) + 32px);margin:0}
}
.faq summary{font-weight:500;font-size:18px}

/* Pie: una llamada final y el contacto a un clic */
.pie-cta{max-width:1120px;margin:0 auto 48px;padding:0 var(--gutter) 40px;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:16px 32px;align-items:center;justify-content:space-between}
.pie-cta p{font:500 clamp(26px,3.2vw,38px)/1.12 var(--b-sans);letter-spacing:-.025em;color:var(--b-ink);margin:0;max-width:20ch}
.pie-contacto a{color:var(--b-ink)}

/* Ubicación (inicio) */
.ubic .where{font-size:clamp(20px,2vw,24px)}
@media (min-width:900px){ .ubic{grid-template-columns:1fr auto;align-items:end;gap:48px} }
/* Comunidad: vacío amable y publicaciones de Instagram (fachada: el embed solo al pulsar) */
.vacio-com{font-size:18px;color:var(--b-ink);background:var(--paper);border:1px solid var(--line);border-radius:28px;padding:24px 26px;margin:0;max-width:none}
.vacio-com a{font-weight:600}
.ig-post figure.con-embed{aspect-ratio:auto;background:var(--paper)}
.ig-embed{display:block;width:100%;min-height:560px;border:0;background:var(--paper)}
.ig-nota{font-size:14px;color:var(--muted);margin:12px 0 0}

/* =========================================================
   Correcciones del sitio publicado (9/11/2026)
   ========================================================= */
/* Reserva, paso «Lugar»: la franja con la
   leyenda, cuántos libres y «Continuar» queda fija abajo del diálogo */
.lugar-pie{position:sticky;bottom:0;z-index:3;margin:12px calc(-1 * var(--bk-px,20px)) calc(-1 * var(--bk-pb,24px));padding:12px var(--bk-px,20px) calc(16px + env(safe-area-inset-bottom,0px));background:var(--b-bg);border-top:1px solid var(--line);box-shadow:0 -10px 24px -18px rgba(46,39,35,.45)}
.lugar-pie .leyenda{margin:0 0 6px}
.lugar-pie .pick{margin:0 auto!important;max-width:none;text-align:center}
.lugar-pie .bkbtns{margin-top:10px}
/* La barra fija del teléfono no se ve con el diálogo de reserva abierto */
body:has(dialog[open]) .barra-movil{display:none}

/* Inicio, clases: si quedan impares, la última ocupa las dos columnas en horizontal (sin huecos) */
@media (min-width:900px){
  .cl-item:last-child:nth-child(odd){grid-column:1/-1;grid-template-columns:180px minmax(0,1fr)}
  .cl-item:last-child:nth-child(odd) .cl-tx{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);column-gap:48px;align-items:start}
  .cl-item:last-child:nth-child(odd) .cl-tx > :not(.cl-datos){grid-column:1}
  .cl-item:last-child:nth-child(odd) .cl-datos{grid-column:2;grid-row:1 / span 6;padding-top:6px}
}
.cl-datos{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
/* Inicio, precios: las tres alineadas por arriba, por el título y por el monto; el arco crece solo hacia arriba */
@media (min-width:800px){
  .pbreve{align-items:stretch;padding-top:48px}
  .pbreve .pblock.dest{position:relative;margin-top:-48px;padding-top:calc(28px + 48px)!important}
  .pbreve .pblock.dest .badge{position:absolute;top:30px;left:50%;transform:translateX(-50%)}
  .pbreve .pblock h3{min-height:1.3em}
}
/* El revelado nunca deja huecos: al imprimir, todo se ve */
@media print{ [data-reveal],[data-reveal].por-ver{opacity:1!important;transform:none!important} .member[data-reveal] .mph{clip-path:none!important} }
/* Te esperamos en balé: el mapa solo carga al tocarlo */
.ubic-mapa{position:relative;margin:0;border-radius:28px;overflow:hidden;border:1px solid var(--line);aspect-ratio:4/3;width:100%;
  background:radial-gradient(circle at 50% 44%,var(--brown) 0 8px,transparent 9px),repeating-linear-gradient(45deg,var(--paper) 0 18px,var(--blush) 18px 36px)}
.ubic-mapa{display:grid;place-items:center;padding-top:72px}
.ubic-mapa .btn{background:var(--b-bg)}
.ubic-mapa iframe{display:block;width:100%;height:100%;border:0}
.ubic-mapa .nota-mapa{position:absolute;left:0;right:0;bottom:12px;text-align:center;font-size:13px;color:var(--muted);margin:0;max-width:none}
@media (min-width:900px){ .ubic{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:56px} }
/* Comunidad: el botón de la tarjeta, a todo el ancho de la tarjeta y en una línea */
.momento > .acciones{grid-column:1/-1;margin:0;padding:0 20px 22px}
.momento > .acciones .btn{width:100%;font-size:15px;white-space:nowrap}
@media (min-width:900px){ .momento > .acciones{padding:0 24px 24px} }
.cl-datos p{margin:0;max-width:none}
/* Teléfono estrecho: los 7 días con 44 px de ancho (menos margen lateral del calendario) */
@media (max-width:479px){
  .horario{padding-left:12px;padding-right:12px}
  .cal{padding-left:4px;padding-right:4px;--dg:2px}
  .cal > :not(.dias){padding-left:10px;padding-right:10px}
  .dbtn{min-width:44px}
}
/* ---------- Entradas (9/11/2026): las de Comunidad, en todo el sitio ----------
   Cabecera de cada página (al abrirla): la foto en arco sube como un telón, el título hace un «relevé» (sube
   desde su línea), la cinta de satén se dibuja y la entradilla llega. Secciones (cada vez que entran en
   pantalla; las clases .a-* y .sec-anima/.sec-entra las pone sitio.js): título en relevé, el texto y las
   tarjetas escalonados 70 ms, las fotos suben como telón. Menos de 1 s; solo opacity, transform y clip-path;
   «backwards» para que al terminar mande otra vez el estilo normal (hover, :active). Sin JS o con
   movimiento reducido no se esconde nada. */
@keyframes com-arco{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0)}}
@keyframes com-releve{from{clip-path:inset(0 0 100% 0);transform:translateY(.35em)}to{clip-path:inset(-.2em -.1em -.3em -.1em);transform:none}}
@keyframes com-cinta{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes com-sube{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.js .pagina .phead-foto{animation:com-arco 700ms var(--ease-out) backwards}
.js .pagina .phead h1{animation:com-releve 560ms 80ms var(--ease-out) backwards}
.js .pagina .phead .cinta{transform-origin:0 50%;animation:com-cinta 480ms 280ms var(--ease-out) backwards}
.js .pagina .phead .lead{animation:com-sube 420ms 340ms var(--ease-out) backwards}
.js .com-entra #comunidad .csec:nth-child(-n+2) > h2,.js .com-entra #comunidad .vacio-com{animation:com-sube 420ms 380ms var(--ease-out) backwards}
.js .com-entra #comunidad .csec:nth-child(-n+2) li:nth-child(-n+2):not(.por-ver){animation:com-sube 460ms calc(440ms + var(--k,0) * 60ms) var(--ease-out) backwards}
.js .com-entra #comunidad .csec li:nth-child(2){--k:1}
/* Para repetirlas al volver con atrás/adelante (bfcache) */
.reinicia main.pagina *{animation:none!important}
/* Secciones: esperando (fuera de pantalla) quedan escondidas; al entrar, se animan */
.sec-anima:not(.sec-entra) :is(.a-titulo,.a-sube,.a-arco){opacity:0}
.sec-entra .a-titulo{animation:com-releve 560ms var(--ease-out) backwards}
.sec-entra .a-sube{animation:com-sube 460ms calc(160ms + var(--k,0) * 70ms) var(--ease-out) backwards}
.sec-entra .a-arco{animation:com-arco 760ms calc(80ms + var(--k,0) * 70ms) var(--ease-out) backwards}
@media (prefers-reduced-motion:reduce){
  .sec-anima :is(.a-titulo,.a-sube,.a-arco),.js .pagina .phead-foto,.js .pagina .phead h1,.js .pagina .phead .cinta,.js .pagina .phead .lead,.js .com-entra #comunidad .csec h2,.js .com-entra #comunidad .vacio-com,.js .com-entra #comunidad li{animation:none!important;clip-path:none!important;opacity:1!important;transform:none!important}
}
