/* El @import de calma-tokens.css de la entrega se retira en cada sincronización:
   en el tema los tokens los emite WordPress desde theme.json, y en la maqueta
   los pone maqueta/tokens.css, enlazado antes que esta hoja. Dejarlo solo
   producía un 404 silencioso en todas las páginas. */

/* ==========================================================================
   Calma de Ser — librería de componentes
   HTML semántico + CSS plano. Sin framework, sin build, sin CDN.
   Todos los valores salen de calma-tokens.css. Ningún literal.

   Cada patrón es una sección autocontenida: su raíz lleva la clase .cmp,
   que define contenedor, tipografía base y box-sizing propios. No depende
   de ningún reset global ni del padre. En WordPress, la raíz de cada
   block pattern lleva .cmp + la clase del componente.

   Mobile-first. El responsive se resuelve con @container, no con @media:
   así el patrón se adapta al ancho de la columna donde lo inserten, no al
   de la ventana.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Base del patrón
   -------------------------------------------------------------------------- */
.cmp {
  container-type: inline-size;
  box-sizing: border-box;
  font-family: var(--wp--preset--font-family--text);
  font-size: var(--wp--preset--font-size--medium);
  line-height: var(--wp--custom--typography--leading--body);
  letter-spacing: var(--wp--custom--typography--tracking--text);
  color: var(--wp--preset--color--contrast);
  background-color: var(--wp--preset--color--base);
}
.cmp *,
.cmp *::before,
.cmp *::after { box-sizing: border-box; }
.cmp :focus-visible {
  outline: var(--wp--custom--state--focus-width) solid var(--wp--custom--state--focus-color);
  outline-offset: var(--wp--custom--state--focus-offset);
}
.cmp img { display: block; max-width: 100%; height: auto; }

/* Regla tipográfica de la casa, H1–H6 -------------------------------------- */
/* En un titular, la negrita cambia de familia y va en versales; la cursiva va en
   GPro cursiva. No es énfasis semántico decorado: es el mecanismo con el que
   los titulares alternan las dos familias dentro de una misma frase. */
.cmp :is(h1, h2, h3, h4, h5, h6) strong,
.cmp :is(h1, h2, h3, h4, h5, h6) b {
  font-family: var(--wp--preset--font-family--text);
  font-weight: var(--wp--custom--typography--weight--medium);
  font-style: normal;
  text-transform: uppercase;
  letter-spacing: var(--wp--custom--typography--tracking--upper);
}
.cmp :is(h1, h2, h3, h4, h5, h6) em,
.cmp :is(h1, h2, h3, h4, h5, h6) i {
  font-family: var(--wp--preset--font-family--display);
  font-style: italic;
  font-weight: var(--wp--custom--typography--weight--regular);
  text-transform: none;
  letter-spacing: var(--wp--custom--typography--tracking--display);
}
.cmp .u-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.cmp a { color: var(--wp--preset--color--primary); }
.cmp a:hover { color: var(--wp--preset--color--primary-hover); }

.cmp__inner {
  width: 100%;
  max-width: var(--wp--custom--layout--content);
  margin-inline: auto;
  padding-inline: var(--wp--custom--space--gutter-sm);
  padding-block: var(--wp--custom--space--section-y);
}
@container (min-width: 48rem) {
  .cmp__inner { padding-inline: var(--wp--preset--spacing--60); }
}
@container (min-width: 75rem) {
  .cmp__inner { padding-inline: var(--wp--custom--space--gutter); }
}
.cmp__inner--flush { padding-block: 0; }
.cmp__inner--narrow { max-width: var(--wp--custom--layout--narrow); }

/* Cabecera de sección reutilizable ---------------------------------------- */
.cmp__head { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--30); }
.cmp__eyebrow {
  margin: 0;
  font-size: var(--wp--custom--typography--size--eyebrow);
  line-height: var(--wp--custom--typography--leading--tight);
  letter-spacing: var(--wp--custom--typography--tracking--eyebrow);
  text-transform: uppercase;
  color: var(--wp--preset--color--primary);
}
.cmp__title {
  margin: 0;
  font-family: var(--wp--preset--font-family--display);
  font-weight: var(--wp--custom--typography--weight--regular);
  font-size: var(--wp--preset--font-size--x-large);
  line-height: var(--wp--custom--typography--leading--h2);
  letter-spacing: var(--wp--custom--typography--tracking--display);
  color: var(--wp--preset--color--primary);
  text-wrap: pretty;
  max-width: 22ch;
}
.cmp__lead {
  margin: 0;
  max-width: var(--wp--custom--layout--measure);
  text-wrap: pretty;
}

/* Superficies alternas ----------------------------------------------------- */
.cmp--surface { background-color: var(--wp--preset--color--surface); }
.cmp--surface-alt { background-color: var(--wp--preset--color--surface-alt); }
.cmp--primary { background-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--base); }
.cmp--primary .cmp__title,
.cmp--primary .cmp__eyebrow { color: var(--wp--preset--color--base); }
/* Cualquier sección con fondo primary: los botones y enlaces pasan a on-primary.
   La regla cuelga del marcador de superficie, no del nombre del componente, para
   que una sección azul nueva la herede sin tener que añadirla a mano. El marcador
   se compone sobre .cmp para llegar a (0,3,0) y ganar a `.cmp .c-btn--ghost`
   independientemente del orden en el archivo. */
.cmp.cmp--primary a:not(.c-btn) { color: var(--wp--preset--color--on-primary); }
/* …salvo dentro de una tarjeta clara, donde el enlace vuelve al azul de marca. */
.cmp.cmp--primary :is(.c-card, .c-post, .c-program, .c-price, .c-need, .c-topic, .c-empty, .c-form--card) a:not(.c-btn) { color: var(--wp--preset--color--primary); }
.cmp.cmp--primary :is(.c-card, .c-post, .c-program, .c-price, .c-need, .c-topic, .c-empty, .c-form--card) a:not(.c-btn):hover { color: var(--wp--preset--color--primary-hover); }
.cmp.cmp--primary :is(.c-card, .c-post, .c-program, .c-price, .c-need, .c-topic, .c-empty, .c-form--card) .c-btn--ghost { color: var(--wp--preset--color--primary); border-color: var(--wp--preset--color--primary); }
.cmp.cmp--primary :is(.c-card, .c-post, .c-program, .c-price, .c-need, .c-topic, .c-empty, .c-form--card) .c-btn--ghost:hover { background-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--on-primary); }
.cmp.cmp--primary .c-btn--ghost { color: var(--wp--preset--color--on-primary); border-color: var(--wp--preset--color--on-primary); }
.cmp.cmp--primary .c-btn--ghost:hover { background-color: var(--wp--preset--color--on-primary); color: var(--wp--preset--color--primary); }

/* Regla de marca: el texto de párrafo va en azul, no en negro.
   Se declara con :where() (especificidad 0) para que cualquier párrafo que ya
   tenga color propio —metadatos en muted, texto legal, mensajes de error, texto
   sobre color— lo conserve sin necesidad de !important ni de reordenar nada. */
:where(.cmp) p { color: var(--wp--preset--color--primary); }
/* Sobre fondo de color, el párrafo hereda el color de su sección. El guardia
   apunta solo a párrafos sin clase (los que se apoyan directamente en el color);
   los de dentro de una tarjeta clara llevan clase y siguen en azul. */
.cmp--primary p:not([class]),
.c-footer p:not([class]),
.c-alert p,
.c-form__success p { color: inherit; }

/* Las tarjetas de superficie clara son autocontenidas: fijan su propio color de
   texto para no heredar el de una sección oscura que las aloje. */
.cmp .c-card,
.cmp .c-post,
.cmp .c-program,
.cmp .c-price,
.cmp .c-need,
.cmp .c-topic,
.cmp .c-empty,
.cmp .c-form--card,
.cmp .c-program-head__panel { color: var(--wp--preset--color--contrast); }

/* --------------------------------------------------------------------------
   Botones, enlaces y píldoras (compartidos)
   -------------------------------------------------------------------------- */
.c-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--wp--preset--spacing--30);
  min-height: var(--wp--custom--layout--control);
  padding: var(--wp--preset--spacing--20) var(--wp--custom--space--control-x);
  border: var(--wp--custom--border--width) solid transparent;
  border-radius: var(--wp--custom--radius--pill);
  font-family: inherit;
  font-size: var(--wp--custom--typography--size--button);
  line-height: var(--wp--custom--typography--leading--tight);
  letter-spacing: var(--wp--custom--typography--tracking--text);
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--wp--custom--motion--duration-fast) var(--wp--custom--motion--ease),
              color var(--wp--custom--motion--duration-fast) var(--wp--custom--motion--ease),
              border-color var(--wp--custom--motion--duration-fast) var(--wp--custom--motion--ease);
}
/* Los botones se escriben con .cmp por delante: si no, `.cmp a` (0,1,1) gana a
   `.c-btn--primary` (0,1,0) y un botón-enlace acaba con el texto del color del
   fondo. Los colores de texto salen de los tokens on-*. */
.cmp .c-btn--primary {
  background-color: var(--wp--preset--color--primary);
  border-color: var(--wp--preset--color--base);
  color: var(--wp--preset--color--on-primary);
}
.cmp .c-btn--primary:hover { background-color: var(--wp--preset--color--primary-hover); color: var(--wp--preset--color--on-primary); }
.cmp .c-btn--lime {
  background-color: var(--wp--preset--color--secondary);
  color: var(--wp--preset--color--on-secondary);
}
.cmp .c-btn--lime:hover { background-color: var(--wp--preset--color--secondary-hover); color: var(--wp--preset--color--on-secondary); }
.cmp .c-btn--ghost {
  background-color: transparent;
  border-width: var(--wp--custom--border--width-strong);
  border-color: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--primary);
}
.cmp .c-btn--ghost:hover { background-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--on-primary); }
.cmp .c-btn--on-primary {
  background-color: var(--wp--preset--color--base);
  color: var(--wp--preset--color--primary);
}
.cmp .c-btn--on-primary:hover { background-color: var(--wp--preset--color--surface); color: var(--wp--preset--color--primary-hover); }
.c-btn--block { width: 100%; }
.c-btn[disabled],
.c-btn[aria-disabled="true"] { opacity: var(--wp--custom--state--disabled-opacity); cursor: not-allowed; }
.c-btn__icon { width: 1.25em; height: 1.25em; flex: none; }

.c-link {
  display: inline-block;
  font-size: var(--wp--custom--typography--size--button);
  line-height: var(--wp--custom--typography--leading--tight);
  color: var(--wp--preset--color--primary);
  text-decoration: none;
  border-bottom: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
  padding-bottom: var(--wp--preset--spacing--10);
  transition: color var(--wp--custom--motion--duration-fast) var(--wp--custom--motion--ease),
              border-color var(--wp--custom--motion--duration-fast) var(--wp--custom--motion--ease);
}
.c-link:hover { color: var(--wp--preset--color--primary-hover); border-bottom-color: var(--wp--preset--color--primary-hover); }

/* Ornamento de trazo (Mystical Symbols, recoloreado con máscara) ------------ */
.c-mark {
  display: block;
  width: var(--wp--preset--spacing--60);
  aspect-ratio: 1;
  background-color: var(--wp--preset--color--primary);
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.c-mark--wave { -webkit-mask-image: url("../mystical/thumb/88.png"); mask-image: url("../mystical/thumb/88.png"); }
.c-mark--spiral { -webkit-mask-image: url("../mystical/thumb/96.png"); mask-image: url("../mystical/thumb/96.png"); }
.c-mark--arch { -webkit-mask-image: url("../mystical/thumb/71.png"); mask-image: url("../mystical/thumb/71.png"); }
.c-mark--sun { -webkit-mask-image: url("../mystical/thumb/67.png"); mask-image: url("../mystical/thumb/67.png"); }
.c-mark--moon { -webkit-mask-image: url("../mystical/thumb/103.png"); mask-image: url("../mystical/thumb/103.png"); }
.c-mark--leaf { -webkit-mask-image: url("../mystical/thumb/68.png"); mask-image: url("../mystical/thumb/68.png"); }
.c-mark--stones { -webkit-mask-image: url("../mystical/thumb/146.png"); mask-image: url("../mystical/thumb/146.png"); }
.c-mark--bond { -webkit-mask-image: url("../mystical/thumb/154.png"); mask-image: url("../mystical/thumb/154.png"); }
.c-mark--accent { background-color: var(--wp--preset--color--accent); }
.c-mark--soft { background-color: var(--wp--preset--color--accent-soft); }

/* ==========================================================================
   GRUPO A · GLOBALES
   ========================================================================== */

/* A1 · Cabecera ------------------------------------------------------------ */
.c-header { position: sticky; top: 0; z-index: var(--wp--custom--z--header); }
.c-header--static { position: static; }
.c-header__bar {
  display: flex;
  align-items: center;
  gap: var(--wp--preset--spacing--40);
  max-width: var(--wp--custom--layout--wide);
  margin-inline: auto;
  padding: var(--wp--preset--spacing--30) var(--wp--custom--space--gutter-sm);
  background-color: var(--wp--preset--color--base);
  border-bottom: var(--wp--custom--border--width) solid transparent;
  transition: box-shadow var(--wp--custom--motion--duration-base) var(--wp--custom--motion--ease),
              padding var(--wp--custom--motion--duration-base) var(--wp--custom--motion--ease);
}
.c-header.is-stuck .c-header__bar {
  border-bottom-color: var(--wp--preset--color--border);
  box-shadow: var(--wp--custom--shadow--raised);
  padding-block: var(--wp--preset--spacing--20);
}
.c-header__logo { margin-right: auto; }
.c-header__logo img { width: 7.5rem; }
/* La navegación no vive en la barra: solo logo, idioma, CTAs y hamburguesa. */
.c-header__nav { display: none; }
.c-header__actions--desktop { display: flex; align-items: center; gap: var(--wp--preset--spacing--30); }
.c-header__actions--desktop .c-btn,
.c-header__actions--desktop .c-whatsapp { display: none; }
.c-header__burger {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--wp--preset--spacing--10);
  width: var(--wp--custom--layout--tap);
  height: var(--wp--custom--layout--tap);
  padding: 0;
  background: none;
  border: 0;
  cursor: pointer;
}
.c-header__burger span {
  display: block;
  height: var(--wp--custom--border--width-strong);
  background-color: var(--wp--preset--color--primary);
}
@container (min-width: 48rem) {
  .c-header__actions--desktop { gap: var(--wp--preset--spacing--40); }
  .c-header__actions--desktop .c-btn { display: inline-flex; }
  .c-header__actions--desktop .c-whatsapp { display: inline-flex; }
}

.c-header__menu {
  display: flex;
  align-items: center;
  gap: var(--wp--preset--spacing--40);
  margin: 0;
  padding: 0;
  list-style: none;
}
.c-header__item { position: relative; }
.c-header__link,
.c-header__toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--wp--preset--spacing--20);
  min-height: var(--wp--custom--layout--tap);
  padding: 0;
  background: none;
  border: 0;
  font-family: inherit;
  font-size: var(--wp--custom--typography--size--button);
  letter-spacing: var(--wp--custom--typography--tracking--text);
  color: var(--wp--preset--color--primary);
  text-decoration: none;
  cursor: pointer;
}
.c-header__link:hover,
.c-header__toggle:hover { color: var(--wp--preset--color--primary-hover); }
.c-header__link[aria-current="page"] {
  border-bottom: var(--wp--custom--border--width-strong) solid var(--wp--preset--color--primary);
}
.c-header__chevron { transition: transform var(--wp--custom--motion--duration-fast) var(--wp--custom--motion--ease); }
.c-header__toggle[aria-expanded="true"] .c-header__chevron { transform: rotate(180deg); }

.c-header__dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 17rem;
  margin: 0;
  padding: var(--wp--preset--spacing--30) 0;
  list-style: none;
  background-color: var(--wp--preset--color--surface);
  border: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
  border-radius: var(--wp--custom--radius--lg);
  box-shadow: var(--wp--custom--shadow--raised);
}
.c-header__toggle[aria-expanded="false"] + .c-header__dropdown { display: none; }
.c-header__dropdown a {
  display: block;
  padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50);
  font-size: var(--wp--custom--typography--size--button);
  color: var(--wp--preset--color--primary);
  text-decoration: none;
}
.c-header__dropdown a:hover { background-color: var(--wp--custom--state--overlay-hover); }
.c-header__dropdown-note {
  display: block;
  padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--50) var(--wp--preset--spacing--30);
  font-size: var(--wp--custom--typography--size--caption);
  line-height: var(--wp--custom--typography--leading--caption);
  color: var(--wp--preset--color--muted);
}

.c-langs { display: flex; align-items: center; gap: var(--wp--preset--spacing--20); margin: 0; padding: 0; list-style: none; }
.c-langs__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: var(--wp--custom--layout--tap);
  min-height: var(--wp--custom--layout--tap);
  font-size: var(--wp--custom--typography--size--button);
  color: var(--wp--preset--color--primary);
  text-decoration: none;
}
.c-langs__link[aria-current="true"] { text-decoration: underline; text-underline-offset: var(--wp--preset--spacing--10); }

.c-whatsapp {
  display: inline-flex;
  align-items: center;
  gap: var(--wp--preset--spacing--20);
  min-height: var(--wp--custom--layout--tap);
  font-size: var(--wp--custom--typography--size--button);
  color: var(--wp--preset--color--primary-hover);
  text-decoration: none;
}
.cmp .c-whatsapp { color: var(--wp--preset--color--primary-hover); }
.c-whatsapp:hover { color: var(--wp--preset--color--primary-hover); }

/* A2 · Drawer móvil -------------------------------------------------------- */
.c-drawer[hidden] { display: none; }
.c-drawer {
  position: fixed;
  inset: 0;
  z-index: var(--wp--custom--z--overlay);
  display: flex;
  flex-direction: column;
  background-color: var(--wp--preset--color--base);
  overflow-y: auto;
  animation: c-fade var(--wp--custom--motion--duration-base) var(--wp--custom--motion--ease-out);
}
.c-drawer--inline { position: absolute; }
@keyframes c-fade { from { opacity: 0; } to { opacity: 1; } }
.c-drawer__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--wp--preset--spacing--40);
  padding: var(--wp--preset--spacing--30) var(--wp--custom--space--gutter-sm);
  border-bottom: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
}
.c-drawer__bar img { width: 6.5rem; }
.c-drawer__close {
  width: var(--wp--custom--layout--tap);
  height: var(--wp--custom--layout--tap);
  background: none;
  border: 0;
  color: var(--wp--preset--color--primary);
  cursor: pointer;
}
.c-drawer__body { padding: var(--wp--preset--spacing--50) var(--wp--custom--space--gutter-sm); }
.c-drawer__menu,
.c-drawer__sub { margin: 0; padding: 0; list-style: none; }
.c-drawer__item { border-bottom: var(--wp--custom--border--width) solid var(--wp--preset--color--border); }
.c-drawer__link,
.c-drawer__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--wp--preset--spacing--30);
  width: 100%;
  min-height: var(--wp--custom--layout--tap);
  padding: var(--wp--preset--spacing--40) 0;
  background: none;
  border: 0;
  font-family: var(--wp--preset--font-family--display);
  font-size: var(--wp--custom--typography--size--h3);
  line-height: var(--wp--custom--typography--leading--h3);
  letter-spacing: var(--wp--custom--typography--tracking--display);
  color: var(--wp--preset--color--primary);
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}
.c-drawer__toggle[aria-expanded="false"] + .c-drawer__sub { display: none; }
.c-drawer__sub { padding: 0 0 var(--wp--preset--spacing--40) var(--wp--preset--spacing--40); }
.c-drawer__sub a {
  display: block;
  min-height: var(--wp--custom--layout--tap);
  padding: var(--wp--preset--spacing--20) 0;
  font-size: var(--wp--preset--font-size--medium);
  color: var(--wp--preset--color--contrast);
  text-decoration: none;
}
.c-drawer__sub a:hover { color: var(--wp--preset--color--primary); }
.c-drawer__actions {
  display: flex;
  flex-direction: column;
  gap: var(--wp--preset--spacing--30);
  padding: var(--wp--preset--spacing--50) var(--wp--custom--space--gutter-sm) var(--wp--preset--spacing--70);
}

/* A3 · Pie ----------------------------------------------------------------- */
.c-footer { background-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--on-primary); }
.c-footer a { color: var(--wp--preset--color--on-primary); }
.c-footer__top {
  display: grid;
  gap: var(--wp--preset--spacing--60);
  align-items: end;
  padding-bottom: var(--wp--preset--spacing--70);
}
@container (min-width: 56rem) { .c-footer__top { grid-template-columns: 1fr 1fr; } }
.c-footer__claim {
  margin: 0;
  font-family: var(--wp--preset--font-family--display);
  font-weight: var(--wp--custom--typography--weight--regular);
  font-size: var(--wp--preset--font-size--x-large);
  line-height: var(--wp--custom--typography--leading--h2);
  letter-spacing: var(--wp--custom--typography--tracking--display);
  color: var(--wp--preset--color--on-primary);
  max-width: 16ch;
  text-wrap: pretty;
}
.c-footer__mark img { width: 100%; max-width: var(--wp--custom--layout--narrow); margin-left: auto; }
.c-footer__cols {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--wp--preset--spacing--60);
}
@container (min-width: 40rem) { .c-footer__cols { grid-template-columns: repeat(2, 1fr); } }
@container (min-width: 64rem) { .c-footer__cols { grid-template-columns: repeat(4, 1fr); } }
.c-footer__brand img { width: 8rem; }
.c-footer__title {
  margin: 0 0 var(--wp--preset--spacing--30);
  font-size: var(--wp--custom--typography--size--eyebrow);
  line-height: var(--wp--custom--typography--leading--tight);
  letter-spacing: var(--wp--custom--typography--tracking--eyebrow);
  text-transform: uppercase;
  font-weight: var(--wp--custom--typography--weight--regular);
  opacity: 0.7;
}
.c-footer__list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: var(--wp--preset--spacing--20); }
.c-footer__list a { min-height: var(--wp--custom--layout--tap); display: inline-flex; align-items: center; }
.c-footer__social { display: flex; gap: var(--wp--preset--spacing--30); margin: 0; padding: 0; list-style: none; }
.c-footer__social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--wp--custom--layout--tap);
  height: var(--wp--custom--layout--tap);
  border: var(--wp--custom--border--width) solid var(--wp--preset--color--base);
  border-radius: var(--wp--custom--radius--round);
  text-decoration: none;
}
.c-footer__legal {
  display: flex;
  flex-wrap: wrap;
  gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50);
  align-items: center;
  justify-content: space-between;
  padding-block: var(--wp--preset--spacing--40);
  border-top: var(--wp--custom--border--width) solid color-mix(in srgb, var(--wp--preset--color--base) 30%, transparent);
  font-size: var(--wp--preset--font-size--small);
}
.c-footer__legal ul { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--40); margin: 0; padding: 0; list-style: none; }

/* A4 · Miga de pan --------------------------------------------------------- */
.c-breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: var(--wp--preset--font-size--small);
  color: var(--wp--preset--color--muted);
}
.c-breadcrumb__list li { display: flex; align-items: center; gap: var(--wp--preset--spacing--30); }
.c-breadcrumb__sep { color: var(--wp--preset--color--muted); }
.c-breadcrumb__list [aria-current="page"] { color: var(--wp--preset--color--contrast); }

/* A5 · Barra CTA fija (móvil) ---------------------------------------------- */
.c-ctabar {
  position: fixed;
  inset: auto 0 0 0;
  z-index: var(--wp--custom--z--sticky);
  display: flex;
  gap: var(--wp--preset--spacing--30);
  padding: var(--wp--preset--spacing--30) var(--wp--custom--space--gutter-sm);
  padding-bottom: max(var(--wp--preset--spacing--30), env(safe-area-inset-bottom));
  background-color: var(--wp--preset--color--base);
  border-top: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
  box-shadow: var(--wp--custom--shadow--raised);
}
.c-ctabar--inline { position: absolute; }
.c-ctabar .c-btn { flex: 1; }
/* Única excepción a la regla de @container en toda la librería: la barra fija se
   sale del flujo y su propia raíz es el contenedor, y una container query nunca
   se evalúa contra el elemento que la declara. Aquí la pregunta es por el ancho
   de la ventana, que es justo lo que responde @media. */
@media (min-width: 48rem) { .c-ctabar { display: none; } }

/* A6 · Banner de cookies --------------------------------------------------- */
.c-cookies {
  position: fixed;
  inset: auto var(--wp--preset--spacing--40) var(--wp--preset--spacing--40) var(--wp--preset--spacing--40);
  z-index: var(--wp--custom--z--modal);
  max-width: 34rem;
  padding: var(--wp--preset--spacing--50);
  background-color: var(--wp--preset--color--surface);
  border: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
  border-radius: var(--wp--custom--radius--md);
  box-shadow: var(--wp--custom--shadow--overlay);
}
.c-cookies--inline { position: static; max-width: none; }
.c-cookies[hidden] { display: none; }
.c-cookies__title {
  margin: 0 0 var(--wp--preset--spacing--20);
  font-family: var(--wp--preset--font-family--display);
  font-weight: var(--wp--custom--typography--weight--regular);
  font-size: var(--wp--custom--typography--size--h3);
  line-height: var(--wp--custom--typography--leading--h3);
  color: var(--wp--preset--color--primary);
}
.c-cookies__text { margin: 0 0 var(--wp--preset--spacing--40); font-size: var(--wp--preset--font-size--small); }
.c-cookies__actions { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--30); }
@container (min-width: 34rem) { .c-cookies__actions .c-btn { flex: 0 1 auto; } }

/* ==========================================================================
   GRUPO B · BLOQUES DE CONTENIDO
   ========================================================================== */

/* B7 · Hero ---------------------------------------------------------------- */
.c-hero__inner { display: grid; gap: var(--wp--preset--spacing--60); align-items: center; }
@container (min-width: 56rem) {
  .c-hero__inner { grid-template-columns: 1fr 1fr; gap: var(--wp--preset--spacing--70); }
}
.c-hero__body { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--40); align-items: flex-start; }
.c-hero__title {
  margin: 0;
  font-family: var(--wp--preset--font-family--display);
  font-weight: var(--wp--custom--typography--weight--regular);
  font-size: var(--wp--preset--font-size--xx-large);
  line-height: var(--wp--custom--typography--leading--h1);
  letter-spacing: var(--wp--custom--typography--tracking--display);
  color: var(--wp--preset--color--primary);
  text-wrap: pretty;
  max-width: 18ch;
}
.c-hero__text { margin: 0; max-width: var(--wp--custom--layout--measure); }
.c-hero__actions { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--30); }
.c-hero__media img { width: 100%; }
.c-hero__trust { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: var(--wp--preset--spacing--30); }
.c-hero__trust li { display: flex; gap: var(--wp--preset--spacing--30); align-items: flex-start; }
.c-hero__note { margin: 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }

.c-tick { flex: none; width: 1.25em; height: 1.25em; margin-top: 0.2em; color: var(--wp--preset--color--success); }

/* B8 · Split texto + imagen ------------------------------------------------ */
.c-split__inner { display: grid; gap: var(--wp--preset--spacing--60); align-items: center; }
@container (min-width: 56rem) {
  .c-split__inner { grid-template-columns: 1fr 1fr; gap: var(--wp--preset--spacing--70); }
  .c-split--reverse .c-split__media { order: 2; }
}
.c-split__body { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--40); align-items: flex-start; }

/* B9 · Rejilla de tarjetas -------------------------------------------------- */
.c-grid { display: grid; grid-template-columns: 1fr; gap: var(--wp--custom--space--grid-gap); }
@container (min-width: 40rem) {
  .c-grid--2, .c-grid--3, .c-grid--4 { grid-template-columns: repeat(2, 1fr); }
}
@container (min-width: 64rem) {
  .c-grid--3 { grid-template-columns: repeat(3, 1fr); }
  .c-grid--4 { grid-template-columns: repeat(4, 1fr); }
}

/* B10 · Card de servicio ---------------------------------------------------- */
.c-card {
  display: flex;
  flex-direction: column;
  gap: var(--wp--preset--spacing--40);
  height: 100%;
  padding: var(--wp--custom--space--card-pad);
  background-color: var(--wp--preset--color--surface);
  border-radius: var(--wp--custom--radius--none);
}
.c-card__title {
  margin: 0;
  font-family: var(--wp--preset--font-family--display);
  font-weight: var(--wp--custom--typography--weight--regular);
  font-size: var(--wp--custom--typography--size--h3);
  line-height: var(--wp--custom--typography--leading--h3);
  letter-spacing: var(--wp--custom--typography--tracking--display);
  color: var(--wp--preset--color--primary);
  text-wrap: pretty;
}
.c-card__text { margin: 0; }
.c-card__link { margin-top: auto; align-self: flex-start; }
.c-card--center { align-items: center; text-align: center; }

/* B11 · Card clicable "entrada por necesidad" -------------------------------- */
.c-need {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--wp--preset--spacing--30);
  height: 100%;
  padding: var(--wp--custom--space--card-pad);
  background-color: var(--wp--preset--color--surface);
  transition: background-color var(--wp--custom--motion--duration-fast) var(--wp--custom--motion--ease),
              transform var(--wp--custom--motion--duration-fast) var(--wp--custom--motion--ease);
}
.c-need:hover { background-color: var(--wp--preset--color--surface-alt); }
.c-need:has(a:focus-visible) {
  outline: var(--wp--custom--state--focus-width) solid var(--wp--custom--state--focus-color);
  outline-offset: var(--wp--custom--state--focus-offset);
}
.c-need__title {
  margin: 0;
  font-family: var(--wp--preset--font-family--display);
  font-weight: var(--wp--custom--typography--weight--regular);
  font-size: var(--wp--custom--typography--size--h3);
  line-height: var(--wp--custom--typography--leading--h3);
  color: var(--wp--preset--color--primary);
}
/* Toda la tarjeta es clicable, pero el enlace real sigue siendo el titular */
.c-need__title a { text-decoration: none; color: inherit; }
.c-need__title a::after { content: ""; position: absolute; inset: 0; }
.c-need__title a:focus-visible { outline: none; }
.c-need__text { margin: 0; font-size: var(--wp--preset--font-size--small); }
.c-need__cue { margin-top: auto; font-size: var(--wp--custom--typography--size--button); color: var(--wp--preset--color--primary); }

/* B12 · Checklist de señales ------------------------------------------------ */
.c-checklist { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--wp--preset--spacing--40); }
@container (min-width: 48rem) { .c-checklist--2 { grid-template-columns: repeat(2, 1fr); } }
.c-checklist li { display: flex; gap: var(--wp--preset--spacing--30); align-items: flex-start; }

/* B13 · Pasos numerados ----------------------------------------------------- */
.c-steps { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--wp--preset--spacing--60); counter-reset: paso; }
.c-steps__item { display: flex; gap: var(--wp--preset--spacing--40); align-items: flex-start; counter-increment: paso; }
.c-steps__num {
  flex: none;
  display: grid;
  place-items: center;
  width: var(--wp--preset--spacing--70);
  height: var(--wp--preset--spacing--70);
  border: var(--wp--custom--border--width) solid var(--wp--preset--color--contrast);
  border-radius: var(--wp--custom--radius--round);
  font-size: var(--wp--preset--font-size--medium);
  line-height: 1;
}
.c-steps__title {
  margin: 0 0 var(--wp--preset--spacing--20);
  font-size: var(--wp--preset--font-size--large);
  line-height: var(--wp--custom--typography--leading--h4);
  color: var(--wp--preset--color--primary);
}
.c-steps__text { margin: 0; }
@container (min-width: 56rem) {
  .c-steps--h { grid-template-columns: repeat(4, 1fr); gap: var(--wp--preset--spacing--50); }
  .c-steps--h .c-steps__item { flex-direction: column; gap: var(--wp--preset--spacing--30); }
}

/* B14 · Acordeón ------------------------------------------------------------ */
.c-accordion { display: grid; gap: 0; }
.c-accordion__group { display: grid; gap: var(--wp--preset--spacing--40); }
.c-accordion__group-title {
  margin: var(--wp--preset--spacing--60) 0 0;
  font-size: var(--wp--custom--typography--size--eyebrow);
  letter-spacing: var(--wp--custom--typography--tracking--eyebrow);
  text-transform: uppercase;
  font-weight: var(--wp--custom--typography--weight--regular);
  color: var(--wp--preset--color--muted);
}
.c-accordion__item { border-top: var(--wp--custom--border--width) solid var(--wp--preset--color--border); }
.c-accordion__item:last-child { border-bottom: var(--wp--custom--border--width) solid var(--wp--preset--color--border); }
.c-accordion__heading { margin: 0; }
.c-accordion__trigger {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--wp--preset--spacing--40);
  width: 100%;
  min-height: var(--wp--custom--layout--tap);
  padding: var(--wp--preset--spacing--40) 0;
  background: none;
  border: 0;
  font-family: var(--wp--preset--font-family--display);
  font-size: var(--wp--custom--typography--size--h3);
  line-height: var(--wp--custom--typography--leading--h3);
  letter-spacing: var(--wp--custom--typography--tracking--display);
  color: var(--wp--preset--color--primary);
  text-align: left;
  cursor: pointer;
}
.c-accordion__sign { flex: none; font-family: var(--wp--preset--font-family--text); line-height: 1; }
/* El estado lo lleva el atributo hidden del panel, que gestiona el JS:
   el botón vive dentro del encabezado, así que no hay selector hermano fiable. */
.c-accordion__panel { padding-bottom: var(--wp--preset--spacing--50); }
.c-accordion__panel[hidden] { display: none; }
.c-accordion__panel p { margin: 0; max-width: var(--wp--custom--layout--measure); }

/* B15 · Banner CTA a ancho completo ----------------------------------------- */
.c-cta { background-color: var(--wp--preset--color--secondary); }
.c-cta--primary { background-color: var(--wp--preset--color--primary); }
.c-cta__inner { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--50); align-items: flex-start; }
@container (min-width: 56rem) {
  .c-cta__inner { flex-direction: row; align-items: center; justify-content: space-between; }
}
.c-cta__title {
  margin: 0;
  font-family: var(--wp--preset--font-family--display);
  font-weight: var(--wp--custom--typography--weight--regular);
  font-size: var(--wp--preset--font-size--x-large);
  line-height: var(--wp--custom--typography--leading--h2);
  letter-spacing: var(--wp--custom--typography--tracking--display);
  color: var(--wp--preset--color--primary-hover);
  max-width: 20ch;
  text-wrap: pretty;
}
.c-cta__text { margin: var(--wp--preset--spacing--30) 0 0; max-width: 48ch; color: var(--wp--preset--color--contrast); }
.c-cta__actions { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--30); }
/* Sobre lima, cualquier cosa azul baja a 4,0:1: los enlaces y el bot\u00f3n
   contorneado pasan a on-secondary. En la variante azul manda on-primary. */
.cmp.c-cta .c-btn--ghost,
.cmp.c-news .c-btn--ghost { color: var(--wp--preset--color--on-secondary); border-color: var(--wp--preset--color--on-secondary); }
.cmp.c-cta .c-btn--ghost:hover,
.cmp.c-news .c-btn--ghost:hover { background-color: var(--wp--preset--color--on-secondary); color: var(--wp--preset--color--on-primary); }
.cmp.c-cta a:not(.c-btn),
.cmp.c-news a:not(.c-btn) { color: var(--wp--preset--color--on-secondary); }
/* Las piezas de formulario dentro de .c-news se apoyan directamente en el lima:
   no hay superficie intermedia, as\u00ed que van a on-secondary. El error baja a
   contrast (error-text sobre lima da 3,9:1); el borde naranja del campo sigue
   siendo la se\u00f1al de error. */
.cmp.c-news .c-field__label,
.cmp.c-news .c-form__legal { color: var(--wp--preset--color--on-secondary); }
.cmp.c-news .c-field__error { color: var(--wp--preset--color--contrast); }
.cmp.c-cta--primary a:not(.c-btn) { color: var(--wp--preset--color--on-primary); }
.c-cta--primary .c-cta__title { color: var(--wp--preset--color--base); }
.c-cta--primary .c-cta__text { color: var(--wp--preset--color--base); }

/* B16 · Tira de logos ------------------------------------------------------- */
.c-logos__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--wp--preset--spacing--50);
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}
@container (min-width: 48rem) { .c-logos__list { grid-template-columns: repeat(5, 1fr); } }
.c-logos__list img { width: 100%; max-width: var(--wp--preset--spacing--80); margin-inline: auto; }
.c-logos__caption { margin: 0 0 var(--wp--preset--spacing--50); text-align: center; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }

/* B17 · Tabla comparativa --------------------------------------------------- */
.c-compare { width: 100%; border-collapse: collapse; text-align: left; }
.c-compare caption { text-align: left; padding-bottom: var(--wp--preset--spacing--40); color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.c-compare th,
.c-compare td {
  padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
  border-bottom: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
  vertical-align: top;
  font-weight: var(--wp--custom--typography--weight--regular);
}
.c-compare thead th {
  font-family: var(--wp--preset--font-family--display);
  font-size: var(--wp--preset--font-size--large);
  line-height: var(--wp--custom--typography--leading--h4);
  color: var(--wp--preset--color--primary);
}
.c-compare tbody th { color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.c-compare td { font-size: var(--wp--preset--font-size--small); }

/* B18 · Chips --------------------------------------------------------------- */
.c-chips { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--30); margin: 0; padding: 0; list-style: none; }
.c-chip {
  display: inline-flex;
  align-items: center;
  min-height: var(--wp--custom--layout--tap);
  padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
  border: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
  border-radius: var(--wp--custom--radius--pill);
  font-size: var(--wp--preset--font-size--small);
  color: var(--wp--preset--color--primary);
  text-decoration: none;
  background-color: transparent;
  cursor: pointer;
}
.c-chip:hover { border-color: var(--wp--preset--color--primary); background-color: var(--wp--custom--state--overlay-hover); }
.c-chip[aria-pressed="true"],
.c-chip[aria-current="true"] {
  background-color: var(--wp--preset--color--primary);
  border-color: var(--wp--preset--color--primary);
  color: var(--wp--preset--color--base);
}
.c-chip--static { cursor: default; }

/* B19 · Tarjeta de tarifa --------------------------------------------------- */
.c-price {
  display: flex;
  flex-direction: column;
  gap: var(--wp--preset--spacing--40);
  height: 100%;
  padding: var(--wp--custom--space--card-pad);
  background-color: var(--wp--preset--color--surface);
  border-top: var(--wp--preset--spacing--20) solid var(--wp--preset--color--secondary);
}
.c-price--featured { border-top-color: var(--wp--preset--color--accent); }
.c-price__title {
  margin: 0;
  font-family: var(--wp--preset--font-family--display);
  font-weight: var(--wp--custom--typography--weight--regular);
  font-size: var(--wp--custom--typography--size--h3);
  line-height: var(--wp--custom--typography--leading--h3);
  color: var(--wp--preset--color--primary);
}
.c-price__amount {
  font-size: var(--wp--preset--font-size--xx-large);
  line-height: var(--wp--custom--typography--leading--h1);
  color: var(--wp--preset--color--primary);
}
.c-price__meta { margin: 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.c-price__list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: var(--wp--preset--spacing--30); font-size: var(--wp--preset--font-size--small); }
.c-price__list li { display: flex; gap: var(--wp--preset--spacing--30); align-items: flex-start; }
.c-price__cta { margin-top: auto; }

/* ==========================================================================
   GRUPO C · FORMULARIOS  (estilos; el marcado llega en el catálogo)
   ========================================================================== */
.c-form { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--50); }
.c-form--card {
  padding: var(--wp--preset--spacing--50);
  background-color: var(--wp--preset--color--surface);
  border-radius: var(--wp--custom--radius--md);
}
.cmp--surface .c-form--card { background-color: var(--wp--preset--color--base); }
.c-form__title {
  margin: 0;
  font-family: var(--wp--preset--font-family--display);
  font-weight: var(--wp--custom--typography--weight--regular);
  font-size: var(--wp--custom--typography--size--h3);
  line-height: var(--wp--custom--typography--leading--h3);
  letter-spacing: var(--wp--custom--typography--tracking--display);
  color: var(--wp--preset--color--primary);
}
.c-form__row { display: grid; gap: var(--wp--preset--spacing--50); }
@container (min-width: 40rem) { .c-form__row--2 { grid-template-columns: repeat(2, 1fr); } }
.c-form__legal { margin: 0; font-size: var(--wp--custom--typography--size--caption); line-height: var(--wp--custom--typography--leading--caption); color: var(--wp--preset--color--muted); }

.c-field { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--20); }
.c-field__label { font-size: var(--wp--custom--typography--size--button); color: var(--wp--preset--color--primary); }
.c-field__hint { font-size: var(--wp--custom--typography--size--caption); color: var(--wp--preset--color--muted); }
.c-field__input,
.c-field__select,
.c-field__textarea {
  width: 100%;
  min-height: var(--wp--custom--layout--control);
  padding: var(--wp--preset--spacing--20) var(--wp--custom--space--control-x);
  background-color: var(--wp--preset--color--surface);
  border: var(--wp--custom--border--width) solid color-mix(in srgb, var(--wp--preset--color--primary) 40%, transparent);
  border-radius: var(--wp--custom--radius--sm);
  font-family: inherit;
  font-size: var(--wp--preset--font-size--medium);
  line-height: var(--wp--custom--typography--leading--body);
  letter-spacing: var(--wp--custom--typography--tracking--text);
  color: var(--wp--preset--color--contrast);
}
.c-field__textarea { min-height: var(--wp--preset--spacing--80); resize: vertical; }
.c-field__input:hover,
.c-field__select:hover,
.c-field__textarea:hover { border-color: var(--wp--preset--color--border-strong); }
.c-field__select { appearance: none; padding-right: var(--wp--preset--spacing--70); }
.c-field__select-wrap { position: relative; display: block; }
.c-field__select-arrow {
  position: absolute;
  right: var(--wp--custom--space--control-x);
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: var(--wp--preset--color--primary);
}
.c-field__error { display: none; margin: 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--error-text); }
.c-field--error .c-field__error { display: block; }
.c-field--error .c-field__label { color: var(--wp--preset--color--error-text); }
.c-field--error .c-field__input,
.c-field--error .c-field__select,
.c-field--error .c-field__textarea,
.c-field--error .c-field__check { border-color: var(--wp--preset--color--error); }
.c-field--success .c-field__input { border-color: var(--wp--preset--color--success); }

.c-field--check { display: grid; grid-template-columns: auto 1fr; gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30); align-items: start; }
.c-field--check .c-field__error { grid-column: 1 / -1; }
.c-field__check {
  appearance: none;
  width: var(--wp--preset--spacing--40);
  height: var(--wp--preset--spacing--40);
  margin: 0.2em 0 0;
  background-color: var(--wp--preset--color--surface);
  border: var(--wp--custom--border--width) solid var(--wp--preset--color--primary);
  border-radius: var(--wp--custom--radius--xs);
  cursor: pointer;
}
.c-field__check:checked {
  background-image: linear-gradient(var(--wp--preset--color--success), var(--wp--preset--color--success));
  background-size: 60% 60%;
  background-position: center;
  background-repeat: no-repeat;
}
.c-field__check-label { font-size: var(--wp--custom--typography--size--button); line-height: var(--wp--custom--typography--leading--caption); }

.c-fieldset { margin: 0; padding: 0; border: 0; display: flex; flex-direction: column; gap: var(--wp--preset--spacing--30); }
.c-fieldset__legend { padding: 0 0 var(--wp--preset--spacing--10); font-size: var(--wp--custom--typography--size--button); color: var(--wp--preset--color--primary); }
.c-option { display: flex; gap: var(--wp--preset--spacing--30); align-items: center; min-height: var(--wp--custom--layout--tap); cursor: pointer; }
.c-option input {
  appearance: none;
  flex: none;
  width: var(--wp--preset--spacing--40);
  height: var(--wp--preset--spacing--40);
  margin: 0;
  border: var(--wp--custom--border--width) solid color-mix(in srgb, var(--wp--preset--color--primary) 40%, transparent);
  cursor: pointer;
}
.c-option input[type="radio"] { border-radius: var(--wp--custom--radius--round); }
.c-option input[type="checkbox"] { border-radius: var(--wp--custom--radius--xs); }
.c-option input:checked { border-color: var(--wp--preset--color--primary); }
.c-option input[type="radio"]:checked { background: radial-gradient(var(--wp--preset--color--primary) 0 42%, transparent 44%); }
.c-option input[type="checkbox"]:checked {
  background-image: linear-gradient(var(--wp--preset--color--success), var(--wp--preset--color--success));
  background-size: 60% 60%;
  background-position: center;
  background-repeat: no-repeat;
}

.c-alert {
  padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
  border-radius: var(--wp--custom--radius--md);
  font-size: var(--wp--preset--font-size--small);
}
.c-alert[hidden] { display: none; }
.c-alert--error { background-color: var(--wp--preset--color--error-surface); color: var(--wp--preset--color--error-text); }
.c-alert--success { background-color: var(--wp--preset--color--success-surface); color: var(--wp--preset--color--success-text); }
.c-alert--warning { background-color: var(--wp--preset--color--warning-surface); color: var(--wp--preset--color--contrast); }
.c-alert__title { margin: 0 0 var(--wp--preset--spacing--10); font-size: var(--wp--preset--font-size--medium); font-weight: var(--wp--custom--typography--weight--medium); }
.c-alert p { margin: 0; }

.c-form__success {
  display: flex;
  flex-direction: column;
  gap: var(--wp--preset--spacing--30);
  align-items: flex-start;
  padding: var(--wp--preset--spacing--50);
  background-color: var(--wp--preset--color--success-surface);
  border-radius: var(--wp--custom--radius--md);
}
.c-form__success[hidden] { display: none; }
.c-form__success .c-form__title { color: var(--wp--preset--color--success-text); }
.c-form__success p { margin: 0; }

/* Newsletter corto ---------------------------------------------------------- */
.c-news { background-color: var(--wp--preset--color--secondary); }
.c-news__inner { display: grid; gap: var(--wp--preset--spacing--50); }
@container (min-width: 56rem) { .c-news__inner { grid-template-columns: 1fr 1fr; align-items: center; } }
.c-news__title {
  margin: 0 0 var(--wp--preset--spacing--30);
  font-family: var(--wp--preset--font-family--display);
  font-weight: var(--wp--custom--typography--weight--regular);
  font-size: var(--wp--preset--font-size--x-large);
  line-height: var(--wp--custom--typography--leading--h2);
  color: var(--wp--preset--color--primary-hover);
}
.c-news__text { margin: 0; color: var(--wp--preset--color--contrast); }
.c-news__form { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--30); }
.c-news__form .c-field { flex: 1 1 14rem; }
.c-news__form .c-field__input { border-color: var(--wp--preset--color--primary-hover); }

/* B20 · Mapa + datos de contacto -------------------------------------------- */
.c-contact__inner { display: grid; gap: var(--wp--preset--spacing--50); }
@container (min-width: 56rem) { .c-contact__inner { grid-template-columns: 3fr 2fr; align-items: start; } }
.c-contact__map { background-color: var(--wp--preset--color--surface-alt); }
.c-contact__map img { width: 100%; }
.c-contact__data { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--40); }
.c-contact__dl { margin: 0; display: grid; gap: var(--wp--preset--spacing--30); }
.c-contact__dl dt {
  font-size: var(--wp--custom--typography--size--caption);
  letter-spacing: var(--wp--custom--typography--tracking--eyebrow);
  text-transform: uppercase;
  color: var(--wp--preset--color--muted);
}
.c-contact__dl dd { margin: 0; }

/* ==========================================================================
   GRUPO D · EDITORIAL
   ========================================================================== */

/* D24 · Texto largo --------------------------------------------------------- */
.c-prose { max-width: var(--wp--custom--layout--narrow); }
.c-prose > * { max-width: var(--wp--custom--layout--measure); }
.c-prose p,
.c-prose ul,
.c-prose ol { margin: 0 0 var(--wp--custom--typography--flow--paragraph); font-size: var(--wp--preset--font-size--medium); line-height: var(--wp--custom--typography--leading--body); }
.c-prose h2,
.c-prose h3,
.c-prose h4 {
  font-family: var(--wp--preset--font-family--display);
  font-weight: var(--wp--custom--typography--weight--regular);
  letter-spacing: var(--wp--custom--typography--tracking--display);
  color: var(--wp--preset--color--primary);
  text-wrap: pretty;
}
.c-prose h2 {
  margin: var(--wp--custom--typography--flow--heading) 0 var(--wp--preset--spacing--30);
  font-size: var(--wp--preset--font-size--x-large);
  line-height: var(--wp--custom--typography--leading--h2);
}
.c-prose h3 {
  margin: calc(var(--wp--custom--typography--flow--heading) * 0.75) 0 var(--wp--preset--spacing--30);
  font-size: var(--wp--custom--typography--size--h3);
  line-height: var(--wp--custom--typography--leading--h3);
}
.c-prose h4 {
  margin: calc(var(--wp--custom--typography--flow--heading) * 0.6) 0 var(--wp--preset--spacing--20);
  font-family: var(--wp--preset--font-family--text);
  font-size: var(--wp--preset--font-size--large);
  line-height: var(--wp--custom--typography--leading--h4);
  letter-spacing: var(--wp--custom--typography--tracking--text);
  color: var(--wp--preset--color--contrast);
}
.c-prose__lead { font-size: var(--wp--preset--font-size--large) !important; line-height: var(--wp--custom--typography--leading--lead) !important; }
.c-prose ul,
.c-prose ol { padding-left: var(--wp--preset--spacing--50); }
.c-prose li { margin-bottom: var(--wp--custom--typography--flow--list-item); }
.c-prose li::marker { color: var(--wp--preset--color--primary); }
.c-prose a { color: var(--wp--preset--color--primary); text-decoration: underline; text-underline-offset: var(--wp--preset--spacing--10); }
.c-prose a:hover { color: var(--wp--preset--color--primary-hover); }
.c-prose strong { font-weight: var(--wp--custom--typography--weight--medium); }
.c-prose blockquote {
  margin: var(--wp--preset--spacing--60) 0;
  padding-left: var(--wp--preset--spacing--50);
  border-left: var(--wp--custom--border--width-strong) solid var(--wp--preset--color--accent);
}
.c-prose blockquote p {
  margin: 0;
  font-family: var(--wp--preset--font-family--display);
  font-size: var(--wp--custom--typography--size--quote) !important;
  line-height: 1.35 !important;
  letter-spacing: var(--wp--custom--typography--tracking--display);
  color: var(--wp--preset--color--primary);
}
.c-prose blockquote cite { display: block; margin-top: var(--wp--preset--spacing--30); font-style: normal; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.c-prose figure { margin: var(--wp--preset--spacing--60) 0; max-width: none; }
.c-prose figcaption { margin-top: var(--wp--preset--spacing--30); font-size: var(--wp--custom--typography--size--caption); line-height: var(--wp--custom--typography--leading--caption); color: var(--wp--preset--color--muted); }
.c-prose hr { margin: var(--wp--preset--spacing--70) 0; border: 0; border-top: var(--wp--custom--border--width) solid var(--wp--preset--color--border); }
.c-prose small { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }

/* D25 · Card de artículo ---------------------------------------------------- */
.c-post { display: flex; flex-direction: column; height: 100%; background-color: var(--wp--preset--color--surface); }
.c-post__media img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.c-post__body { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--30); padding: var(--wp--custom--space--card-pad); }
.c-post__meta { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--30); margin: 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.c-post__cat { color: var(--wp--preset--color--primary); }
.c-post__title {
  margin: 0;
  font-family: var(--wp--preset--font-family--display);
  font-weight: var(--wp--custom--typography--weight--regular);
  font-size: var(--wp--custom--typography--size--h3);
  line-height: var(--wp--custom--typography--leading--h3);
  letter-spacing: var(--wp--custom--typography--tracking--display);
  text-wrap: pretty;
}
.c-post__title a { color: var(--wp--preset--color--primary); text-decoration: none; }
.c-post__title a:hover { color: var(--wp--preset--color--primary-hover); }
.c-post__excerpt { margin: 0; font-size: var(--wp--preset--font-size--small); }

/* D26 · Cabecera de artículo ------------------------------------------------ */
.c-article-head__inner { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--40); max-width: var(--wp--custom--layout--narrow); }
.c-article-head__title {
  margin: 0;
  font-family: var(--wp--preset--font-family--display);
  font-weight: var(--wp--custom--typography--weight--regular);
  font-size: var(--wp--preset--font-size--xx-large);
  line-height: var(--wp--custom--typography--leading--h1);
  letter-spacing: var(--wp--custom--typography--tracking--display);
  color: var(--wp--preset--color--primary);
  text-wrap: pretty;
}
.c-article-head__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
  margin: 0;
  padding-top: var(--wp--preset--spacing--30);
  border-top: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
  font-size: var(--wp--preset--font-size--small);
  color: var(--wp--preset--color--muted);
}
.c-article-head__author { display: flex; align-items: center; gap: var(--wp--preset--spacing--30); color: var(--wp--preset--color--contrast); }
.c-article-head__author img { width: var(--wp--preset--spacing--70); height: var(--wp--preset--spacing--70); border-radius: var(--wp--custom--radius--round); object-fit: cover; }

/* D27 · Caja de autora ------------------------------------------------------ */
.c-author {
  display: grid;
  gap: var(--wp--preset--spacing--40);
  max-width: var(--wp--custom--layout--narrow);
  padding: var(--wp--custom--space--card-pad);
  background-color: var(--wp--preset--color--surface-alt);
}
@container (min-width: 40rem) { .c-author { grid-template-columns: auto 1fr; align-items: start; } }
.c-author__photo { width: var(--wp--preset--spacing--80); height: var(--wp--preset--spacing--80); border-radius: var(--wp--custom--radius--round); object-fit: cover; }
.c-author__name {
  margin: 0 0 var(--wp--preset--spacing--10);
  font-family: var(--wp--preset--font-family--display);
  font-weight: var(--wp--custom--typography--weight--regular);
  font-size: var(--wp--custom--typography--size--h3);
  line-height: var(--wp--custom--typography--leading--h3);
  color: var(--wp--preset--color--primary);
}
.c-author__role { margin: 0 0 var(--wp--preset--spacing--30); font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.c-author__bio { margin: 0 0 var(--wp--preset--spacing--40); font-size: var(--wp--preset--font-size--small); }

/* D28 · Artículos relacionados --------------------------------------------- */
.c-related__head { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--40); align-items: baseline; justify-content: space-between; margin-bottom: var(--wp--preset--spacing--50); }

/* D29 · Filtros y paginación ------------------------------------------------ */
.c-filters { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--40); align-items: center; justify-content: space-between; }
.c-filters__count { margin: 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.c-pagination { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--20); align-items: center; justify-content: center; margin: 0; padding: 0; list-style: none; }
.c-pagination__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: var(--wp--custom--layout--tap);
  min-height: var(--wp--custom--layout--tap);
  padding: 0 var(--wp--preset--spacing--30);
  border: var(--wp--custom--border--width) solid transparent;
  border-radius: var(--wp--custom--radius--pill);
  font-size: var(--wp--custom--typography--size--button);
  color: var(--wp--preset--color--primary);
  text-decoration: none;
}
.c-pagination__link:hover { background-color: var(--wp--custom--state--overlay-hover); }
.c-pagination__link[aria-current="page"] { background-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--on-primary); }
.c-pagination__link[aria-disabled="true"] { opacity: var(--wp--custom--state--disabled-opacity); pointer-events: none; }
.c-pagination__gap { display: inline-flex; align-items: center; min-height: var(--wp--custom--layout--tap); padding: 0 var(--wp--preset--spacing--20); color: var(--wp--preset--color--muted); }

/* ==========================================================================
   GRUPO E · EQUIPO
   ========================================================================== */
.c-pro { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--30); height: 100%; background-color: var(--wp--preset--color--surface); padding-bottom: var(--wp--custom--space--card-pad); }
.c-pro__photo { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.c-pro__body { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--20); padding: var(--wp--custom--space--card-pad) var(--wp--custom--space--card-pad) 0; }
.c-pro__name {
  margin: 0;
  font-family: var(--wp--preset--font-family--display);
  font-weight: var(--wp--custom--typography--weight--regular);
  font-size: var(--wp--custom--typography--size--h3);
  line-height: var(--wp--custom--typography--leading--h3);
  letter-spacing: var(--wp--custom--typography--tracking--display);
  color: var(--wp--preset--color--primary);
}
.c-pro__role { margin: 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.c-pro__dl { display: grid; grid-template-columns: auto 1fr; gap: var(--wp--preset--spacing--10) var(--wp--preset--spacing--30); margin: var(--wp--preset--spacing--20) 0 0; font-size: var(--wp--preset--font-size--small); }
.c-pro__dl dt { color: var(--wp--preset--color--muted); }
.c-pro__dl dd { margin: 0; }
.c-pro__link { margin: auto var(--wp--custom--space--card-pad) 0; align-self: flex-start; }

.c-pro-head__inner { display: grid; gap: var(--wp--preset--spacing--60); align-items: start; }
@container (min-width: 56rem) { .c-pro-head__inner { grid-template-columns: 2fr 3fr; } }
.c-pro-head__body { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--40); align-items: flex-start; }
.c-pro-head__name {
  margin: 0;
  font-family: var(--wp--preset--font-family--display);
  font-weight: var(--wp--custom--typography--weight--regular);
  font-size: var(--wp--preset--font-size--xx-large);
  line-height: var(--wp--custom--typography--leading--h1);
  letter-spacing: var(--wp--custom--typography--tracking--display);
  color: var(--wp--preset--color--primary);
}
.c-pro-head__actions { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--30); }

/* ==========================================================================
   GRUPO F · UTILIDADES
   ========================================================================== */
.c-404__inner { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--40); align-items: flex-start; max-width: var(--wp--custom--layout--narrow); }
.c-404__code {
  margin: 0;
  font-family: var(--wp--preset--font-family--display);
  font-size: var(--wp--preset--font-size--xx-large);
  line-height: var(--wp--custom--typography--leading--h1);
  /* El rosa da 2,24:1 sobre crema: no llega ni al 3:1 de texto grande. La cifra
     va en primary y el rosa se queda como filete, que no es texto. */
  color: var(--wp--preset--color--primary);
  border-bottom: var(--wp--preset--spacing--10) solid var(--wp--preset--color--accent);
  padding-bottom: var(--wp--preset--spacing--10);
}
.c-404__title {
  margin: 0;
  font-family: var(--wp--preset--font-family--display);
  font-weight: var(--wp--custom--typography--weight--regular);
  font-size: var(--wp--preset--font-size--x-large);
  line-height: var(--wp--custom--typography--leading--h2);
  letter-spacing: var(--wp--custom--typography--tracking--display);
  color: var(--wp--preset--color--primary);
}
.c-404__links { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50); margin: 0; padding: 0; list-style: none; }

/* ==========================================================================
   GRUPO G · PROGRAMAS Y TEMAS
   ========================================================================== */

/* V4 · Indicador de plazas -------------------------------------------------- */
.c-seats {
  display: inline-flex;
  align-items: center;
  gap: var(--wp--preset--spacing--20);
  font-size: var(--wp--preset--font-size--small);
  line-height: var(--wp--custom--typography--leading--tight);
  color: var(--wp--preset--color--contrast);
}
.c-seats__dot { flex: none; width: var(--wp--preset--spacing--30); height: var(--wp--preset--spacing--30); border-radius: var(--wp--custom--radius--round); background-color: currentColor; }
.c-seats--open { color: var(--wp--preset--color--success-text); }
.c-seats--last { color: var(--wp--preset--color--error-text); }
.c-seats--full { color: var(--wp--preset--color--muted); }
.c-seats--soon { color: var(--wp--preset--color--primary); }
.c-seats--full .c-seats__dot { background-color: transparent; box-shadow: inset 0 0 0 var(--wp--custom--border--width-strong) currentColor; }
.c-seats--soon .c-seats__dot { background-color: transparent; box-shadow: inset 0 0 0 var(--wp--custom--border--width-strong) currentColor; }

/* Etiqueta de tipo de programa --------------------------------------------- */
.c-tag {
  display: inline-flex;
  align-items: center;
  padding: var(--wp--preset--spacing--10) var(--wp--preset--spacing--30);
  border-radius: var(--wp--custom--radius--pill);
  font-size: var(--wp--custom--typography--size--caption);
  line-height: var(--wp--custom--typography--leading--tight);
  letter-spacing: var(--wp--custom--typography--tracking--eyebrow);
  text-transform: uppercase;
}
.c-tag--formacion { background-color: var(--wp--preset--color--primary); color: var(--wp--preset--color--on-primary); }
.c-tag--grupal { background-color: var(--wp--preset--color--accent); color: var(--wp--preset--color--on-accent); }
.c-tag--soft { background-color: transparent; border: var(--wp--custom--border--width) solid var(--wp--preset--color--border); color: var(--wp--preset--color--muted); }

/* Enlace saliente ----------------------------------------------------------- */
.c-out { display: inline-flex; align-items: center; gap: var(--wp--preset--spacing--20); }
.c-out__icon { flex: none; width: 0.9em; height: 0.9em; }
.c-out__note { margin: var(--wp--preset--spacing--20) 0 0; font-size: var(--wp--custom--typography--size--caption); line-height: var(--wp--custom--typography--leading--caption); color: var(--wp--preset--color--muted); }

/* G34 · Tarjeta de programa ------------------------------------------------- */
.c-program {
  display: flex;
  flex-direction: column;
  gap: var(--wp--preset--spacing--40);
  height: 100%;
  padding: var(--wp--custom--space--card-pad);
  background-color: var(--wp--preset--color--surface);
  border-top: var(--wp--preset--spacing--20) solid var(--wp--preset--color--primary);
}
.c-program--grupal { border-top-color: var(--wp--preset--color--accent); }
.c-program--full { background-color: var(--wp--preset--color--surface-alt); border-top-color: var(--wp--preset--color--border); }
.c-program--soon { border-top-color: var(--wp--preset--color--secondary); }
.c-program__tags { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--20); margin: 0; padding: 0; list-style: none; }
.c-program__title {
  margin: 0;
  font-family: var(--wp--preset--font-family--display);
  font-weight: var(--wp--custom--typography--weight--regular);
  font-size: var(--wp--custom--typography--size--h3);
  line-height: var(--wp--custom--typography--leading--h3);
  letter-spacing: var(--wp--custom--typography--tracking--display);
  color: var(--wp--preset--color--primary);
  text-wrap: pretty;
}
.c-program__title a { color: inherit; text-decoration: none; }
.c-program__title a:hover { color: var(--wp--preset--color--primary-hover); }
.c-program__dl {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
  margin: 0;
  padding-top: var(--wp--preset--spacing--30);
  border-top: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
  font-size: var(--wp--preset--font-size--small);
}
.c-program__dl dt { color: var(--wp--preset--color--muted); }
.c-program__dl dd { margin: 0; }
.c-program__by { display: flex; align-items: center; gap: var(--wp--preset--spacing--30); font-size: var(--wp--preset--font-size--small); }
.c-program__by img { width: var(--wp--preset--spacing--60); height: var(--wp--preset--spacing--60); border-radius: var(--wp--custom--radius--round); object-fit: cover; flex: none; }
.c-program__foot {
  display: flex;
  flex-wrap: wrap;
  gap: var(--wp--preset--spacing--30);
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  padding-top: var(--wp--preset--spacing--30);
  border-top: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
}
.c-program__price { font-size: var(--wp--preset--font-size--large); line-height: var(--wp--custom--typography--leading--tight); color: var(--wp--preset--color--primary); }
.c-program__price small { display: block; font-size: var(--wp--custom--typography--size--caption); color: var(--wp--preset--color--muted); }

/* G35 · Cabecera de ficha de programa --------------------------------------- */
.c-program-head__inner { display: grid; gap: var(--wp--preset--spacing--60); align-items: start; }
@container (min-width: 56rem) { .c-program-head__inner { grid-template-columns: 3fr 2fr; gap: var(--wp--preset--spacing--70); } }
.c-program-head__body { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--40); align-items: flex-start; }
.c-program-head__title {
  margin: 0;
  font-family: var(--wp--preset--font-family--display);
  font-weight: var(--wp--custom--typography--weight--regular);
  font-size: var(--wp--preset--font-size--xx-large);
  line-height: var(--wp--custom--typography--leading--h1);
  letter-spacing: var(--wp--custom--typography--tracking--display);
  color: var(--wp--preset--color--primary);
  text-wrap: pretty;
}
.c-program-head__panel {
  display: flex;
  flex-direction: column;
  gap: var(--wp--preset--spacing--40);
  padding: var(--wp--preset--spacing--50);
  background-color: var(--wp--preset--color--surface);
  border-radius: var(--wp--custom--radius--md);
}
.c-program-head__panel--full { background-color: var(--wp--preset--color--surface-alt); }
.c-program-head__dl { display: grid; gap: var(--wp--preset--spacing--30); margin: 0; font-size: var(--wp--preset--font-size--small); }
.c-program-head__dl dt { color: var(--wp--preset--color--muted); }
.c-program-head__dl dd { margin: 0; font-size: var(--wp--preset--font-size--medium); }

/* G36 · Filtros de listado --------------------------------------------------- */
.c-facets { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--40); }
.c-facets__row { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--30); align-items: baseline; }
.c-facets__legend { flex: none; min-width: 8rem; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.c-facets__foot {
  display: flex;
  flex-wrap: wrap;
  gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
  align-items: center;
  justify-content: space-between;
  padding-top: var(--wp--preset--spacing--40);
  border-top: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
}
.c-facets__count { margin: 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.c-facets__clear {
  background: none;
  border: 0;
  padding: var(--wp--preset--spacing--20) 0;
  min-height: var(--wp--custom--layout--tap);
  font-family: inherit;
  font-size: var(--wp--preset--font-size--small);
  color: var(--wp--preset--color--primary);
  text-decoration: underline;
  text-underline-offset: var(--wp--preset--spacing--10);
  cursor: pointer;
}
.c-facets__clear:hover { color: var(--wp--preset--color--primary-hover); }
.c-empty {
  display: flex;
  flex-direction: column;
  gap: var(--wp--preset--spacing--30);
  align-items: flex-start;
  padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--50);
  background-color: var(--wp--preset--color--surface);
  border: var(--wp--custom--border--width) dashed var(--wp--preset--color--border);
}
.c-empty__title {
  margin: 0;
  font-family: var(--wp--preset--font-family--display);
  font-weight: var(--wp--custom--typography--weight--regular);
  font-size: var(--wp--custom--typography--size--h3);
  line-height: var(--wp--custom--typography--leading--h3);
  color: var(--wp--preset--color--primary);
}
.c-empty p { margin: 0; max-width: var(--wp--custom--layout--measure); }

/* G37 · Índice de temas ------------------------------------------------------ */
.c-topics { display: grid; grid-template-columns: 1fr; gap: var(--wp--custom--space--grid-gap); margin: 0; padding: 0; list-style: none; }
@container (min-width: 34rem) { .c-topics { grid-template-columns: repeat(2, 1fr); } }
@container (min-width: 56rem) { .c-topics { grid-template-columns: repeat(3, 1fr); } }
@container (min-width: 75rem) { .c-topics { grid-template-columns: repeat(4, 1fr); } }
.c-topic {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--wp--preset--spacing--20);
  height: 100%;
  min-height: var(--wp--preset--spacing--80);
  padding: var(--wp--preset--spacing--40);
  background-color: var(--wp--preset--color--surface);
  transition: background-color var(--wp--custom--motion--duration-fast) var(--wp--custom--motion--ease);
}
.c-topic:hover { background-color: var(--wp--preset--color--surface-alt); }
.c-topic:has(a:focus-visible) {
  outline: var(--wp--custom--state--focus-width) solid var(--wp--custom--state--focus-color);
  outline-offset: var(--wp--custom--state--focus-offset);
}
.c-topic__name {
  margin: 0;
  font-family: var(--wp--preset--font-family--display);
  font-weight: var(--wp--custom--typography--weight--regular);
  font-size: var(--wp--preset--font-size--large);
  line-height: var(--wp--custom--typography--leading--h4);
  letter-spacing: var(--wp--custom--typography--tracking--display);
  color: var(--wp--preset--color--primary);
  text-wrap: pretty;
}
.c-topic__name a { color: inherit; text-decoration: none; }
.c-topic__name a::after { content: ""; position: absolute; inset: 0; }
.c-topic__name a:focus-visible { outline: none; }
.c-topic__count { margin: auto 0 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.c-topics__group-title {
  margin: var(--wp--preset--spacing--60) 0 var(--wp--preset--spacing--40);
  font-size: var(--wp--custom--typography--size--eyebrow);
  letter-spacing: var(--wp--custom--typography--tracking--eyebrow);
  text-transform: uppercase;
  font-weight: var(--wp--custom--typography--weight--regular);
  color: var(--wp--preset--color--muted);
}

/* G38 · Cabecera de página de tema ------------------------------------------ */
.c-topic-head { background-color: var(--wp--preset--color--surface-alt); }
.c-topic-head__inner { display: grid; gap: var(--wp--preset--spacing--60); align-items: start; }
@container (min-width: 56rem) { .c-topic-head__inner { grid-template-columns: 3fr 2fr; gap: var(--wp--preset--spacing--70); } }
.c-topic-head__body { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--40); align-items: flex-start; }
.c-topic-head__title {
  margin: 0;
  font-family: var(--wp--preset--font-family--display);
  font-weight: var(--wp--custom--typography--weight--regular);
  font-size: var(--wp--preset--font-size--xx-large);
  line-height: var(--wp--custom--typography--leading--h1);
  letter-spacing: var(--wp--custom--typography--tracking--display);
  color: var(--wp--preset--color--primary);
  text-wrap: pretty;
  max-width: 16ch;
}
.c-topic-head__intro { margin: 0; max-width: var(--wp--custom--layout--measure); }
.c-topic-head__services {
  display: flex;
  flex-direction: column;
  gap: var(--wp--preset--spacing--30);
  padding: var(--wp--preset--spacing--50);
  background-color: var(--wp--preset--color--surface);
}
.c-topic-head__services h2 {
  margin: 0;
  font-size: var(--wp--custom--typography--size--eyebrow);
  letter-spacing: var(--wp--custom--typography--tracking--eyebrow);
  text-transform: uppercase;
  font-weight: var(--wp--custom--typography--weight--regular);
  color: var(--wp--preset--color--muted);
}
.c-topic-head__services ul { display: flex; flex-direction: column; gap: var(--wp--preset--spacing--20); margin: 0; padding: 0; list-style: none; }
.c-topic-head__services li a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--wp--preset--spacing--30);
  min-height: var(--wp--custom--layout--tap);
  padding: var(--wp--preset--spacing--20) 0;
  border-bottom: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
  font-size: var(--wp--preset--font-size--medium);
  color: var(--wp--preset--color--primary);
  text-decoration: none;
}
.c-topic-head__services li a:hover { color: var(--wp--preset--color--primary-hover); }

/* V1 · Roles de profesional --------------------------------------------------- */
.c-pro__roles { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--20); margin: 0 0 var(--wp--preset--spacing--10); padding: 0; list-style: none; }

/* V3 · Chips enlazables ------------------------------------------------------- */
.cmp a.c-chip { color: var(--wp--preset--color--primary); text-decoration: none; }
.cmp a.c-chip:hover { color: var(--wp--preset--color--on-primary); background-color: var(--wp--preset--color--primary); border-color: var(--wp--preset--color--primary); }
.cmp a.c-chip[aria-current="true"],
.cmp a.c-chip[aria-pressed="true"] { color: var(--wp--preset--color--on-primary); }
.cmp a.c-chip[aria-current="true"]:hover { background-color: var(--wp--preset--color--primary-hover); border-color: var(--wp--preset--color--primary-hover); }
