/* Sandalia Diseño · páginas interiores (usa los tokens de /propuesta/styles.css) */
body.sd-pagina { padding-top: 0; }
.sd-pagina main { padding-top: var(--bar-h); }
.btn-line { background: var(--negro-2); color: var(--blanco); }
.btn-sand-line { background: var(--blanco); color: var(--negro); }
.btn-sand-line:hover { background: var(--negro); color: var(--arena); }
.gh-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 40px; }

/* presentación */
.gema-hero { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 80px); align-items: center; min-height: calc(100svh - var(--bar-h)); padding-block: clamp(48px, 6vw, 96px); }
.gema-hero h1 { font-size: var(--step-display); color: var(--blanco); }
.gh-lead { margin-top: 32px; font-size: var(--step-lead); font-weight: 600; line-height: 1.25; letter-spacing: -0.02em; color: var(--arena); max-width: 34ch; }
.gh-meta { margin-top: 24px; color: #CFCAC2; max-width: 46ch; }
.gh-photo { margin: 0; align-self: stretch; }
.gh-photo img { width: 100%; height: 100%; max-height: 82svh; object-fit: cover; object-position: 50% 20%; }

/* capítulos de la biografía */
.gema-cap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.gc-photo { margin: 0; }
.gc-photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.gc-text h2 { font-size: var(--step-head); max-width: 14ch; }
.ch-brown .gc-text h2 { color: var(--arena); }
.gc-text p { margin-top: 24px; max-width: 60ch; }
.gc-text h3 { margin-top: 40px; font-size: var(--step-lead); letter-spacing: -0.02em; }
.gc-hitos { list-style: none; margin: 40px 0 0; padding: 0; display: grid; gap: 24px; }
.gc-hitos b { display: block; font-size: var(--step-lead); font-weight: 700; letter-spacing: -0.03em; color: var(--arena); line-height: 1.1; }
.gc-hitos span { display: block; margin-top: 4px; color: #E6DDD5; max-width: 50ch; }
.gc-lista { margin: 16px 0 40px; padding-left: 1.2em; display: grid; gap: 8px; }
.gc-lista li::marker { color: var(--marron); }

/* hoy */
.gema-hoy { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.gema-hoy h2 { font-size: var(--step-head); max-width: 11ch; }
.gh2-text p { max-width: 60ch; }
.gh2-text p + p { margin-top: 20px; }

@media (max-width: 900px) {
  .gema-hero, .gema-cap, .gema-hoy { grid-template-columns: minmax(0, 1fr); }
  .gema-hero { min-height: 0; }
  .gh-photo { order: -1; }
  .gh-photo img { max-height: 70svh; aspect-ratio: 3 / 4; height: auto; }
  .gema-psi .gc-photo { order: -1; }
  .gh-actions .btn { flex: 1 1 100%; }
}


/* psicoterapia */
.psi-motivos { display: flex; flex-direction: column; gap: clamp(32px, 4vw, 56px); }
.mot-head { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(24px, 4vw, 64px); align-items: end; }
.mot-head h2 { font-size: var(--step-head); max-width: 14ch; }
.mot-head p { color: var(--marron); max-width: 40ch; }
.muro { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; column-gap: 18px; row-gap: 6px; }
.muro li { padding: 2px 10px; margin-left: -10px; font-size: clamp(1.75rem, 1rem + 2.4vw, 2.875rem); line-height: 1.12; letter-spacing: -0.035em; font-weight: 700; color: var(--negro); transition: color 200ms var(--ease), background-color 200ms var(--ease), opacity 200ms var(--ease); }
.muro li:nth-child(even) { font-weight: 400; color: var(--marron); }
@media (hover: hover) {
  .muro:hover li { opacity: 0.55; }
  .muro li:hover { opacity: 1; background: var(--negro); color: var(--arena); }
}
.mot-pie { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.mot-pie > p { font-size: var(--step-lead); font-weight: 700; letter-spacing: -0.03em; }
.mot-cta { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; color: var(--marron); }

.psi-hero { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 96px); align-items: center; min-height: calc(100svh - var(--bar-h)); padding-block: clamp(48px, 6vw, 96px); }
.psi-hero h1 { font-size: var(--step-display); color: var(--blanco); max-width: 9ch; }
.voces { display: grid; min-height: 9em; align-content: center; }
.voces p { margin: 0; font-size: var(--step-lead); font-weight: 600; line-height: 1.25; letter-spacing: -0.02em; color: #E6DDD5; max-width: 22ch; }
.voces .voces-fin { color: var(--arena); }
.js .voces[data-listo] p { grid-area: 1 / 1; opacity: 0; visibility: hidden; transform: translateY(18px); transition: opacity 700ms var(--ease), transform 900ms var(--ease), visibility 0s 700ms; }
.js .voces[data-listo] p.on { opacity: 1; visibility: visible; transform: none; transition: opacity 700ms var(--ease), transform 900ms var(--ease), visibility 0s; }
.psi-modos, .psi-gema { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.psi-modos .gc-text h2 { color: var(--arena); }
.psi-puntos { margin: 24px 0 0; padding: 0 0 0 1.1em; display: grid; gap: 12px; color: #E6DDD5; }
.psi-puntos li::marker { color: var(--arena); }
.psi-celdas { list-style: none; margin: 32px 0 0; padding: 0; display: grid; gap: 8px; }
.psi-celdas li { background: var(--marron-2); padding: 18px 20px; }
.psi-celdas b { display: block; font-size: var(--step-lead); letter-spacing: -0.02em; color: var(--blanco); line-height: 1.15; }
.psi-celdas span { display: block; margin-top: 4px; color: #E6DDD5; }
.psi-modal { margin-top: 20px; font-weight: 600; color: var(--arena); }
.psi-cita { display: grid; place-items: center; text-align: left; }
.psi-cita blockquote { margin: 0; max-width: 48ch; }
.psi-cita p { font-size: var(--step-lead); font-weight: 600; line-height: 1.3; letter-spacing: -0.02em; color: var(--blanco); }
.psi-cita footer { margin-top: 20px; color: var(--arena); font-weight: 600; }
.psi-gema .gc-photo img { aspect-ratio: 4 / 5; object-position: 50% 20%; }
@media (max-width: 900px) {
  .psi-hero, .psi-modos, .psi-gema { grid-template-columns: minmax(0, 1fr); }
  .psi-hero { min-height: 0; }
  .voces { min-height: 7em; }
  .mot-head { grid-template-columns: minmax(0, 1fr); }
  .mot-cta .btn { flex: 1 1 100%; }
}

/* talleres */
.tal-hero { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 96px); align-items: center; min-height: calc(100svh - var(--bar-h)); padding-block: clamp(48px, 6vw, 96px); }
.tal-hero h1 { font-size: var(--step-display); color: var(--blanco); max-width: 9ch; }
.tal-muro { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.tal-muro .ficha-cartel:nth-child(even) { margin-top: 48px; margin-bottom: -48px; }
.ficha-cartel { display: block; overflow: hidden; background: var(--negro-2); }
.ficha-cartel img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: transform 500ms var(--ease); }
.ficha-cartel:hover img { transform: scale(1.04); }
.ficha-cartel:focus-visible, .cart-ask:focus-visible { outline: 3px solid var(--arena); outline-offset: 3px; }
.tal-head { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(24px, 4vw, 64px); align-items: end; margin-bottom: clamp(48px, 6vw, 96px); }
.tal-head h2 { font-size: var(--step-head); max-width: 14ch; }
.tal-curso .tal-head h2 { color: var(--arena); }
.tal-curso .tal-head p { color: #CFCAC2; max-width: 40ch; }
.tal-mes .tal-head p { color: var(--marron); max-width: 40ch; }
.cart-precio { font-weight: 600; }
.cart-ask { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; font-weight: 600; text-decoration: none; transition: background-color 200ms var(--ease), color 200ms var(--ease); }

/* cartelera: filas de nombres grandes */
.cartelera { list-style: none; margin: 0 calc(var(--m) * -1); padding: 0; }
.cart-fila { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 6.6fr) minmax(0, 3fr) 18.5rem; /* columna de acciones fija: con o sin cartel, todo alineado */ gap: clamp(16px, 2.4vw, 40px); align-items: baseline; padding: clamp(22px, 2.4vw, 34px) var(--m); scroll-margin-top: var(--bar-h); transition: background-color 300ms var(--ease); }
.cart-dia { font-weight: 600; color: var(--arena); font-variant-numeric: tabular-nums; }
.cart-nombre h3 { font-size: clamp(1.75rem, 0.9rem + 2.9vw, 3.75rem); font-weight: 700; letter-spacing: -0.04em; line-height: 0.98; color: var(--blanco); transition: color 300ms var(--ease), transform 500ms var(--ease); }
.cart-nombre h3 span { display: block; font-weight: 400; color: #B8B1A8; }
.cart-who { margin-top: 10px; font-weight: 600; color: var(--arena); }
.cart-info { list-style: none; margin: 0; padding: 0; color: #E6DDD5; display: grid; gap: 2px; }
.cart-acc { display: flex; align-items: center; justify-content: flex-end; gap: 12px; align-self: center; }
.tal-curso .cart-ask { background: var(--negro-2); color: var(--blanco); }
.tal-curso .cart-ask:hover { background: var(--arena); color: var(--negro); }
.cart-mini { white-space: nowrap; display: inline-flex; align-items: center; gap: 10px; background: none; color: var(--blanco); font-weight: 600; text-decoration: none; }
.cart-mini img { width: 44px; aspect-ratio: 4 / 5; height: auto; }
@media (hover: hover) and (pointer: fine) {
  .cart-fila:hover { background: var(--negro-2); }
  .cart-fila:hover .cart-nombre h3 { color: var(--arena); transform: translateX(12px); }
  .cart-fila:hover .cart-ask { background: var(--arena); color: var(--negro); }
  .cart-mini span { text-decoration: underline; text-underline-offset: 4px; }
}

/* una vez al mes: el día en grande, sus encuentros al lado */
.mes-dia { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(24px, 4vw, 64px); align-items: start; }
.mes-dia + .mes-dia { margin-top: clamp(56px, 7vw, 112px); }
.mes-d { position: sticky; top: calc(var(--bar-h) + 24px); font-size: clamp(3rem, 1rem + 6.4vw, 7.5rem); font-weight: 700; letter-spacing: -0.05em; line-height: 0.85; color: var(--negro); }
.mes-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.mes-item { display: grid; grid-template-columns: 112px minmax(0, 1fr) auto; gap: clamp(16px, 2vw, 28px); align-items: center; background: #F4CC8E; padding: 16px; scroll-margin-top: calc(var(--bar-h) + 16px); transition: background-color 300ms var(--ease); }
.mes-item:hover { background: var(--blanco); }
/* sin cartel: el texto sigue en su columna para que todo quede alineado */
.mes-txt { grid-column: 2; }
.mes-acc { grid-column: 3; grid-row: 1; }
.mes-txt > * { margin: 0; }
.mes-item h4 { font-size: var(--step-lead); font-weight: 700; letter-spacing: -0.03em; line-height: 1.05; }
.mes-item h4 span { font-weight: 400; }
.mes-who { margin-top: 4px; font-weight: 600; color: var(--marron); }
.mes-txt p + p { margin-top: 2px; }
.mes-who + p { margin-top: 8px; }
.tal-mes .cart-ask { background: var(--negro); color: var(--blanco); }
.tal-mes .cart-ask:hover { background: var(--marron); }
/* «¿Qué es?»: desplegable en cartelera y en una vez al mes */
.que-es { margin-top: 12px; }
.mes-item .que-es { grid-column: 2; margin-top: -8px; }
.que-es summary { list-style: none; display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-weight: 600; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.que-es summary::-webkit-details-marker { display: none; }
.que-es summary::after { content: "+"; display: inline-grid; place-items: center; width: 24px; height: 24px; font-size: 1.125rem; line-height: 1; text-decoration: none; border: 1px solid currentColor; }
.que-es[open] summary::after { content: "−"; }
.que-es summary:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.que-es p { margin: 6px 0 4px; max-width: 62ch; font-size: 1.0625rem; line-height: 1.6; }
.tal-curso .que-es summary { color: var(--blanco); }
.tal-curso .que-es p { color: #E6DDD5; }
.tal-mes .que-es summary, .tal-mes .que-es p { color: var(--negro); }
.tal-dialog .sa-close { display: block; margin: 0 0 10px auto; min-height: 44px; padding: 0 18px; border: 0; background: var(--arena); color: var(--negro); font: 600 1rem var(--font); cursor: pointer; }

@media (max-width: 900px) {
  .tal-hero, .tal-head, .mes-dia { grid-template-columns: minmax(0, 1fr); }
  .tal-hero { min-height: 0; }
  .tal-muro { gap: 10px; }
  .tal-muro .ficha-cartel:nth-child(even) { margin-top: 24px; margin-bottom: -24px; }
  .cart-fila { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 16px; padding-block: 40px; }
  .cart-fila:nth-child(even) { background: var(--negro-2); }
  .cart-acc .cart-ask { flex: 1; justify-content: center; min-height: 48px; background: var(--arena) !important; color: var(--negro) !important; }
  .cart-dia { display: none; } /* el día ya va en el horario de la fila */
  .cart-nombre, .cart-info { grid-column: 1 / -1; }
  .cart-info { margin-top: 6px; }
  .cart-acc { grid-column: 1 / -1; justify-content: space-between; margin-top: 10px; }
  .mes-d { position: static; }
  .mes-dia + .mes-dia { margin-top: 96px; }
  .mes-item { grid-template-columns: 88px minmax(0, 1fr); align-items: start; }
  .mes-acc { grid-column: 1 / -1; grid-row: auto; }
  .mes-item .que-es { grid-column: 1 / -1; margin-top: 0; }
  .mes-acc .cart-ask { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  .ficha-cartel img, .cart-nombre h3 { transition: none; }
  .cart-fila:hover .cart-nombre h3 { transform: none; }
}

/* menú: enlaces en la barra en escritorio; en pantallas medianas y móvil, botón Menú y telón a pantalla completa */
.bar-nav a[aria-current="page"] { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 2px; }
.bar-menu { display: none; min-height: 44px; padding: 0 18px; border: 0; background: var(--arena); color: var(--negro); font: 600 var(--step-small) var(--font); cursor: pointer; }
.bar[data-ink="sand"] .bar-menu { background: var(--negro); color: var(--blanco); }
.bar-menu:focus-visible { outline: 3px solid var(--arena); outline-offset: 3px; }
.hero-menu { display: inline-flex; align-items: center; position: absolute; top: 20px; right: 20px; z-index: 2; background: var(--arena); color: var(--negro); transition: transform 200ms var(--ease); }
.hero-menu:hover { transform: translateY(-2px); }
.menu { position: fixed; inset: 0; z-index: 40; display: grid; grid-template-rows: auto 1fr auto; gap: 32px; padding: env(safe-area-inset-top, 0px) var(--m) calc(24px + env(safe-area-inset-bottom, 0px)); background: var(--negro); color: var(--blanco); overflow-y: auto; }
.menu[hidden] { display: none; }
.menu-top { display: flex; align-items: center; justify-content: space-between; height: var(--bar-h); }
.menu-top .bar-logo img { width: 150px; display: block; }
.menu-cerrar { display: inline-flex; align-items: center; background: var(--arena); color: var(--negro); }
.menu-nav { display: flex; flex-direction: column; justify-content: center; gap: 4px; }
.menu-nav a { align-self: flex-start; font-size: clamp(2.25rem, 1.2rem + 4.6vw, 5rem); font-weight: 700; letter-spacing: -0.04em; line-height: 1.05; text-decoration: none; color: var(--blanco); transition: color 200ms var(--ease), transform 300ms var(--ease); }
.menu-nav a:hover, .menu-nav a:focus-visible { color: var(--arena); transform: translateX(10px); outline: none; }
.menu-nav a[aria-current="page"] { color: var(--arena); }
.menu-pie { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 20px; color: #CFCAC2; }
.menu-pie a:not(.btn) { color: var(--blanco); }
.menu.abierto { animation: menu-telon 600ms cubic-bezier(0.16, 1, 0.3, 1) both; }
.menu.abierto .menu-nav a { animation: menu-sube 700ms cubic-bezier(0.16, 1, 0.3, 1) both; }
.menu.abierto .menu-nav a:nth-child(2) { animation-delay: 50ms; }
.menu.abierto .menu-nav a:nth-child(3) { animation-delay: 100ms; }
.menu.abierto .menu-nav a:nth-child(4) { animation-delay: 150ms; }
.menu.abierto .menu-nav a:nth-child(5) { animation-delay: 200ms; }
.menu.abierto .menu-nav a:nth-child(6) { animation-delay: 250ms; }
.menu.abierto .menu-nav a:nth-child(7) { animation-delay: 300ms; }
@keyframes menu-telon { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0); } }
@keyframes menu-sube { from { opacity: 0; transform: translateY(40%); } to { opacity: 1; transform: none; } }
html.menu-on { overflow: hidden; }
@media (max-width: 1180px) {
  .bar-nav { display: none; }
  .bar-cta { margin-left: auto; }
  .bar-menu { display: inline-flex; align-items: center; }
}
@media (max-width: 480px) { .bar-cta { display: none; } .bar-menu { margin-left: auto; } }
@media (prefers-reduced-motion: reduce) { .menu.abierto, .menu.abierto .menu-nav a { animation: none; } }

/* teatro terapéutico */
.tea-hero { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 80px); align-items: center; min-height: calc(100svh - var(--bar-h)); padding-block: clamp(48px, 6vw, 96px); }
.tea-hero h1 { font-size: clamp(2.75rem, 0.6rem + 6.6vw, 7rem); color: var(--blanco); }
.tea-hero-foto img { aspect-ratio: 4 / 5; object-position: 40% 50%; }
.tea-escena { display: flex; flex-direction: column; gap: clamp(40px, 5vw, 72px); }
.tea-escena-head { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(24px, 4vw, 64px); align-items: end; }
.tea-escena-head h2 { font-size: var(--step-head); color: var(--arena); max-width: 12ch; }
.tea-escena-head blockquote { margin: 0; }
.tea-escena-head blockquote p { font-size: var(--step-lead); font-weight: 600; letter-spacing: -0.02em; line-height: 1.2; }
.tea-escena-head footer { margin-top: 10px; color: #CFCAC2; }
/* la línea irregular: alturas y anchos distintos, como en la web de siempre */
.tea-linea { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-rows: clamp(48px, 5.4vw, 84px); gap: clamp(8px, 1vw, 16px); }
.tea-linea figure { margin: 0; overflow: hidden; }
.tea-linea img { width: 100%; height: 100%; object-fit: cover; }
.tl-1 { grid-column: 1 / 6; grid-row: 1 / 6; }
.tl-2 { grid-column: 6 / 10; grid-row: 2 / 6; }
.tl-3 { grid-column: 10 / 13; grid-row: 1 / 5; }
.tl-4 { grid-column: 10 / 13; grid-row: 5 / 11; }
.tl-5 { grid-column: 1 / 5; grid-row: 6 / 10; }
.tl-6 { grid-column: 5 / 10; grid-row: 6 / 10; }
.tl-7 { grid-column: 1 / 5; grid-row: 10 / 14; }
.tl-8 { grid-column: 5 / 8; grid-row: 10 / 14; }
.tl-9 { grid-column: 8 / 10; grid-row: 10 / 14; }
.tl-10 { grid-column: 10 / 13; grid-row: 11 / 14; }
.tea-dia { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(12px, 1.4vw, 20px); }
.tea-dia li { background: #F4CC8E; padding: clamp(20px, 2.2vw, 32px); display: flex; flex-direction: column; gap: 14px; min-height: 280px; }
.tea-dia li:nth-child(2) { background: var(--negro); color: var(--blanco); }
.tea-dia b { font-size: var(--step-lead); letter-spacing: -0.03em; line-height: 1.05; }
.tea-dia li:nth-child(2) b { color: var(--arena); }
.tea-dia span { margin-top: auto; }
.tea-sesion .tal-head p { color: var(--marron); }
.tea-procesos { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.tea-procesos .gc-text p + p { margin-top: 20px; }
.tea-semillas { font-size: var(--step-lead); font-weight: 600; letter-spacing: -0.02em; line-height: 1.2; max-width: 40ch; }
.tea-para { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(24px, 4vw, 64px); align-items: start; }
.tea-para h2 { font-size: var(--step-head); color: var(--arena); max-width: 9ch; }
.tea-para-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.tea-para-lista li { font-size: var(--step-lead); font-weight: 600; letter-spacing: -0.02em; line-height: 1.2; }
.tea-para-nota { grid-column: 2; color: #CFCAC2; max-width: 52ch; }
.tea-grupo { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 96px); align-items: center; }
.tea-grupo h2 { font-size: var(--step-head); max-width: 10ch; }
.tea-datos { margin: 32px 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 32px; }
.tea-datos dt { color: var(--marron); }
.tea-datos dd { margin: 4px 0 0; font-size: var(--step-lead); font-weight: 700; letter-spacing: -0.03em; line-height: 1.1; }
.tea-gema .gc-photo img { aspect-ratio: 4 / 3; }
.tea-gema .gc-text h2 { color: var(--arena); }
@media (max-width: 900px) {
  .tea-hero, .tea-escena-head, .tea-procesos, .tea-para, .tea-grupo { grid-template-columns: minmax(0, 1fr); }
  .tea-hero { min-height: 0; }
  .tea-hero-foto { order: -1; }
  .tea-hero-foto img { aspect-ratio: 4 / 3; max-height: 50svh; }
  .tea-linea { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: auto; }
  .tea-linea figure { grid-column: auto; grid-row: auto; aspect-ratio: 1; }
  .tea-linea .tl-1, .tea-linea .tl-6, .tea-linea .tl-7, .tea-linea .tl-10 { grid-column: 1 / -1; aspect-ratio: 16 / 10; }
  .tea-dia { grid-template-columns: minmax(0, 1fr); }
  .tea-dia li { min-height: 0; }
  .tea-para-nota { grid-column: 1; }
  .tea-datos { grid-template-columns: minmax(0, 1fr); }
  .tea-cartel { max-width: 320px; }
}
.tea-sana { font-size: var(--step-lead); font-weight: 600; letter-spacing: -0.02em; line-height: 1.2; max-width: 34ch; }
.tea-propuesta .tea-sana + p { margin-top: 20px; }
.tea-fechas { grid-column: 1 / -1; }
.tea-muestra { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 96px); align-items: center; }
.tea-muestra-fecha { display: flex; flex-direction: column; color: var(--arena); font-weight: 700; letter-spacing: -0.05em; line-height: 0.85; }
.tea-muestra-fecha span:first-child { font-size: clamp(8rem, 3rem + 16vw, 18rem); }
.tea-muestra-fecha span:last-child { font-size: var(--step-head); letter-spacing: -0.03em; margin-top: 12px; }
.tea-muestra h2 { font-size: var(--step-head); color: var(--blanco); max-width: 14ch; }
.tea-muestra-txt p { margin-top: 20px; max-width: 46ch; }
.tea-muestra-nota { color: #CFCAC2; }
@media (max-width: 900px) {
  .tea-muestra { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .tea-muestra-fecha { flex-direction: row; align-items: baseline; gap: 16px; }
}

/* talleres: quién enseña */
.eq-lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(48px, 5vw, 80px) clamp(20px, 2.4vw, 40px); }
.eq-persona:nth-child(3n + 2) { margin-top: clamp(32px, 4vw, 72px); }
.eq-persona img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; background: var(--hueso); }
.eq-persona h3 { margin-top: 20px; font-size: var(--step-lead); font-weight: 700; letter-spacing: -0.03em; line-height: 1.05; }
.eq-taller { display: inline-block; margin-top: 6px; font-weight: 600; color: var(--marron); text-underline-offset: 4px; }
.eq-taller:hover { color: var(--negro); }
.eq-persona p { margin-top: 12px; max-width: 42ch; }
@media (max-width: 900px) {
  .eq-lista { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .eq-persona { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 4px 16px; align-content: start; }
  .eq-persona:nth-child(3n + 2) { margin-top: 0; }
  .eq-persona img { grid-row: 1 / 4; }
  .eq-persona h3 { margin-top: 0; }
  .eq-persona p { grid-column: 1 / -1; margin-top: 12px; }
}

/* alquiler de salas */
.alq-hero { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 80px); align-items: center; min-height: calc(100svh - var(--bar-h)); padding-block: clamp(48px, 6vw, 96px); }
.alq-hero h1 { font-size: var(--step-display); color: var(--blanco); }
.alq-hero-foto img { aspect-ratio: 4 / 5; object-position: 35% 50%; }
.alq-plano .tal-head p { color: var(--marron); max-width: 42ch; }
/* el plano del centro, a escala aproximada: 36 m² · servicio · 61 m² */
.plano { display: grid; grid-template-columns: 36fr 14fr 61fr; grid-template-rows: clamp(280px, 30vw, 460px) auto; gap: 8px; }
.pl-sala { display: flex; flex-direction: column; justify-content: space-between; padding: clamp(20px, 2.4vw, 36px); text-decoration: none; transition: background-color 300ms var(--ease), color 300ms var(--ease); }
.pl-sala b { font-size: var(--step-lead); letter-spacing: -0.03em; line-height: 1.05; }
.pl-sala span { font-size: clamp(3rem, 1rem + 6vw, 7.5rem); font-weight: 700; letter-spacing: -0.05em; line-height: 0.85; }
.pl-sec { background: var(--blanco); color: var(--negro); }
.pl-pri { background: var(--negro); color: var(--arena); }
.pl-sala:hover, .pl-sala:focus-visible { background: var(--marron); color: var(--arena); outline: none; }
.pl-servicio { display: grid; grid-template-rows: 2fr 1.2fr 1.2fr; gap: 8px; font-size: var(--step-small); font-weight: 600; line-height: 1.2; }
.pl-servicio span { display: flex; align-items: flex-end; padding: 12px; background: #F4CC8E; color: var(--marron); }
.pl-plaza { grid-column: 1 / -1; margin: 8px 0 0; padding-top: 12px; font-weight: 600; color: var(--marron); border-top: 3px dashed var(--marron); }
.alq-salas { display: grid; gap: clamp(72px, 9vw, 144px); }
.alq-sala { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 80px); align-items: center; scroll-margin-top: var(--bar-h); }
.alq-sala:nth-child(even) .gc-photo { order: 2; }
.alq-sala h2 { font-size: var(--step-head); }
.alq-sala-txt > p { margin-top: 20px; max-width: 40ch; }
.alq-datos { margin: 32px 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, auto)); justify-content: start; gap: 16px 40px; }
.alq-datos dt { color: var(--marron); }
.alq-datos dd { margin: 4px 0 0; font-size: var(--step-lead); font-weight: 700; letter-spacing: -0.03em; line-height: 1.1; }
.alq-tiene { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 96px); align-items: center; }
.alq-tiene h2 { font-size: var(--step-head); color: var(--arena); max-width: 10ch; margin-bottom: 40px; }
.alq-fotos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.alq-fotos figure { margin: 0; overflow: hidden; }
.alq-fotos img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.alq-fotos figure:first-child { grid-column: 1 / -1; }
.alq-fotos figure:first-child img { aspect-ratio: 16 / 9; }
.alq-tarifas .tal-head p { color: var(--marron); max-width: 42ch; }
.tarifas { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 12px; }
.tar-bloque { background: var(--blanco); padding: clamp(24px, 3vw, 48px); }
.tar-finde { background: var(--negro); color: var(--blanco); }
.tar-bloque h3 { font-size: var(--step-lead); letter-spacing: -0.03em; }
.tar-finde h3 { color: var(--arena); }
.tar-bloque dl { margin: 32px 0 0; display: grid; gap: 20px; }
.tar-bloque dl > div { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.tar-bloque dt { font-weight: 600; }
.tar-bloque dd { margin: 0; font-size: clamp(2.75rem, 1rem + 4.4vw, 5.5rem); font-weight: 700; letter-spacing: -0.05em; line-height: 0.9; font-variant-numeric: tabular-nums; }
.tar-finde dd { color: var(--arena); }
.alq-propuestas .gc-photo img { aspect-ratio: 16 / 9; }
@media (max-width: 900px) {
  .alq-hero, .alq-sala, .alq-tiene, .tarifas { grid-template-columns: minmax(0, 1fr); }
  .alq-hero { min-height: 0; }
  .alq-hero-foto { order: -1; }
  .alq-hero-foto img { aspect-ratio: 4 / 3; max-height: 50svh; }
  .alq-sala:nth-child(even) .gc-photo { order: 0; }
  .plano { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: auto; }
  .pl-pri { grid-column: 1 / -1; grid-row: 1; min-height: 240px; }
  .pl-sec { grid-row: 2; min-height: 200px; }
  .pl-servicio { grid-row: 2; }
  .alq-datos { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
}
@media (prefers-reduced-motion: reduce) { .pl-sala { transition: none; } }
.alq-tiene .tea-para-lista { margin-top: 40px; }

/* Alquiler: equipamiento y horario libre (2.6.3) */
.alq-equipo-t { margin: 48px 0 16px; font-size: var(--step-lead); color: var(--arena); letter-spacing: -0.02em; }
.alq-equipo { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 32px; }
.alq-equipo li { break-inside: avoid; padding: 6px 0; font-size: 1.0625rem; line-height: 1.4; }
.tar-horario { grid-column: 1 / -1; background: var(--arena); }
.tar-horario dl { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 24px 40px; }
.tar-horario dl > div { display: block; }
.tar-horario dd { font-size: var(--step-lead); letter-spacing: -0.03em; line-height: 1.15; margin-top: 6px; }
@media (max-width: 560px) { .alq-equipo { columns: 1; } }

/* El centro: presentación del proyecto (2.6.14) */
.gh-intro { max-width: 54ch; margin: 0 0 clamp(28px, 4vw, 48px); font-size: var(--step-body); line-height: 1.5; color: var(--hueso); }
.gh-intro b { color: var(--arena); font-weight: 700; }

/* Talleres: foto de la entrada y los cuatro caminos */
.tal-puerta img { aspect-ratio: 4 / 3; object-position: 30% 60%; }
.tal-hero .gh-meta a { color: var(--arena); text-underline-offset: 3px; }
/* Talleres, cuatro caminos: cuatro bloques de color de la paleta, juntos como en la portada */
.fr-b h2 { font-size: var(--step-head); line-height: 0.95; letter-spacing: -0.04em; max-width: 18ch; margin: 0; }
.fr-b ul { list-style: none; margin: clamp(36px, 5vw, 72px) 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.fr-b li { color: var(--blanco); display: flex; flex-direction: column; justify-content: space-between; gap: 48px; min-height: clamp(260px, 28vw, 400px); padding: clamp(22px, 2.4vw, 32px); }
.fr-b li:nth-child(1) { background: var(--marron); }
.fr-b li:nth-child(2) { background: var(--gris); }
.fr-b li:nth-child(3) { background: var(--marron-2); }
.fr-b li:nth-child(4) { background: var(--arena); color: var(--negro); }
.fr-b b { font-size: var(--step-lead); font-weight: 700; line-height: 1.05; letter-spacing: -0.03em; text-wrap: balance; }
.fr-b li > span { font-size: var(--step-body); line-height: 1.4; color: var(--arena); }
.fr-b li:nth-child(4) span { color: var(--negro); font-weight: 600; }
@media (max-width: 1100px) { .fr-b ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) {
  .fr-b ul { grid-template-columns: minmax(0, 1fr); }
  .fr-b li { min-height: 0; gap: 20px; }
  .tal-puerta { order: -1; }
}

/* Reseñas: piezas comunes (estrellas, Google, nota media, autor) */
.stars { display: inline-flex; gap: 3px; color: var(--arena-2); }
.stars svg { width: 20px; height: 20px; fill: currentColor; }
.g-logo { width: 1.1em; height: 1.1em; flex: none; }
.nota { display: flex; align-items: center; gap: 18px; }
.nota-num { font-size: clamp(3.5rem, 2rem + 4vw, 6rem); font-weight: 700; line-height: 0.85; letter-spacing: -0.04em; }
.nota-txt p { display: flex; align-items: center; gap: 8px; margin-top: 8px; font-weight: 600; }
.rev-quien { display: flex; align-items: center; gap: 12px; }
.rev-ini { flex: none; display: grid; place-items: center; width: 44px; height: 44px; background: var(--negro); color: var(--arena); font-weight: 700; font-size: 1.25rem; }
.rev-quien p { display: flex; flex-direction: column; line-height: 1.3; color: var(--negro); }
.rev-quien p span { font-size: var(--step-small); color: var(--texto-2); }
.rev-quien .g-logo { margin-left: auto; width: 22px; height: 22px; }

/* Reseñas: muro de bloques blancos sobre arena */
.rv-a .rv-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px 48px; margin-bottom: clamp(36px, 5vw, 64px); }
.rv-a h2 { font-size: var(--step-head); max-width: 12ch; }
.rv-muro { list-style: none; margin: 0; padding: 0; columns: 3 300px; column-gap: 8px; }
.rv-muro li { break-inside: avoid; margin-bottom: 8px; display: flex; flex-direction: column; gap: 20px; background: var(--blanco); padding: clamp(24px, 2.4vw, 36px); }
.rv-muro blockquote { margin: 0; }
.rv-muro blockquote p { font-size: clamp(1.125rem, 1rem + 0.5vw, 1.375rem); font-weight: 500; line-height: 1.4; letter-spacing: -0.01em; }
.rv-muro .rv-mas { background: var(--negro); padding: 0; }
.rv-a .nota .stars { color: var(--negro); }
.rv-mas a { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 96px; padding: clamp(24px, 2.4vw, 36px); color: var(--arena); text-decoration: none; font-size: var(--step-lead); letter-spacing: -0.02em; line-height: 1.1; transition: background-color 200ms var(--ease), color 200ms var(--ease); }
.rv-mas a:hover { background: var(--marron); color: var(--blanco); }


@media (max-width: 760px) {
  .nota-num { font-size: 3.5rem; }
}
