/* ==========================================================================
   RDN · Páginas comerciales (tienda, membresías, carrito, anúnciate, podcast,
   contacto, privacidad, términos). Todo lo nuevo lleva prefijo com-.
   Usa solo las variables de rdn.css. Un solo tema claro. Móvil primero.
   ÍNDICE
   1. Utilidades de página (subnavegación, avisos fijos, cabezas)
   2. Tienda: portadas apiladas, filtros, cuadrícula de ediciones, evento, para marcas
   3. Membresías: comparador, qué se desbloquea, preguntas
   4. Carrito: líneas, cantidades, resumen, confirmación
   5. Anúnciate: cifras, tarifario, diagramas de tamaño, planes, contacto de ventas
   6. Podcast: ficha del programa, episodios, pasos
   7. Contacto: datos con copiar
   8. Legal: índice lateral y texto editorial
   9. Formularios de demostración
   ========================================================================== */

/* ==========================================================================
   1. UTILIDADES DE PÁGINA
   ========================================================================== */
.com-hero__grid { align-items: center; row-gap: var(--sp-8); }
.com-hero h1 { margin: var(--sp-3) 0 var(--sp-5); }
.com-hero .dek { margin-bottom: var(--sp-6); }
.com-hero__actions { display: flex; flex-wrap: wrap; gap: var(--sp-3) var(--sp-4); align-items: center; }

/* Subnavegación de la página: fichas con anclas */
.com-subnav { background: var(--paper); border-bottom: var(--line); }
.com-subnav .chip-row { padding: 10px 0; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
.com-subnav .chip-row::-webkit-scrollbar { display: none; }
.com-subnav .chip { flex: none; }

/* Aviso fijo de demostración: franja de tinta bajo la cabecera de página */
.com-demo {
  display: flex; align-items: flex-start; gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-4);
  background: var(--ink); color: #fff;
  font-size: var(--fs-sm); line-height: 1.45;
  --focus: #fff;
}
.com-demo .icon { margin-top: 2px; color: #fff; }
.com-demo strong { font-family: var(--font-head); font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.com-demo a { color: #fff; text-underline-offset: 3px; }
.com-demo--inline { margin: 0; }

/* Dato grande con rótulo en columnas */
.com-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 768px) { .com-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.com-facts dd small { display: block; margin-top: 4px; font-family: var(--font-ui); font-size: var(--fs-sm); line-height: 1.3; color: var(--fg-mute); }

/* Cabecera de bloque con nota a la derecha */
.com-note { font-size: var(--fs-sm); color: var(--fg-mute); max-width: 62ch; }
.com-note strong { color: var(--fg); }
.com-lead { font-family: var(--font-text); font-size: var(--fs-md); line-height: 1.55; color: var(--fg-2); max-width: 56ch; }

/* ==========================================================================
   2. TIENDA
   ========================================================================== */
.com-stack { max-width: 420px; margin-inline: auto; width: 100%; }
@media (min-width: 900px) { .com-stack { margin-inline: 0 auto; } }
.com-stack .cover-stack { padding-right: 22%; padding-bottom: 12%; }
.com-stack .cover { box-shadow: var(--shadow-paper), inset 5px 0 0 rgb(255 255 255 / 0.18); }
.com-stack__tag { position: absolute; left: 0; right: 22%; top: 0; z-index: 2; }

/* Filtros de ediciones */
.com-filters { display: grid; gap: var(--sp-4); padding: var(--sp-4) 0 var(--sp-5); border-bottom: var(--line); margin-bottom: var(--sp-6); }
.com-filters__row { display: grid; gap: var(--sp-4); }
@media (min-width: 900px) { .com-filters__row { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) auto; align-items: end; gap: var(--sp-8); } }
.com-filters__label { margin-bottom: var(--sp-2); font-family: var(--font-head); font-weight: 700; font-size: var(--fs-xs); letter-spacing: 0.14em; text-transform: uppercase; color: var(--fg-mute); }
.com-filters .select { min-height: 44px; padding-top: 8px; padding-bottom: 8px; }
.com-filters__sort { min-width: 0; }
.com-filters__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-2) var(--sp-6); }
.com-filters__count { font-size: var(--fs-sm); color: var(--fg-2); }
.com-filters__count strong { color: var(--fg); }

/* Cuadrícula de ediciones: 2 columnas en móvil, 3 y 4 después */
.com-eds { display: grid; gap: var(--sp-8) var(--gap); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.com-eds > li { min-width: 0; }
@media (min-width: 768px) { .com-eds { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .com-eds { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.com-ed.card-edition { gap: var(--sp-3); height: 100%; }
.com-ed .card-edition__cover { max-width: none; width: 100%; }
.com-ed:hover .card-edition__cover { transform: none; }
.com-ed .card-edition__body { flex: 1; gap: 4px; }
.com-ed .card-edition__body h3 { font-size: var(--fs-md); line-height: 1.1; }
.com-ed .kicker { font-size: var(--fs-xs); letter-spacing: 0.1em; }
.com-ed .price { font-size: var(--fs-lg); }
.com-ed__foot { margin-top: auto; padding-top: var(--sp-2); width: 100%; }
.com-ed__foot .btn { margin-top: 0; width: 100%; min-height: 44px; padding-left: 0.6rem; padding-right: 0.6rem; }
.com-ed .cintillo { letter-spacing: 0.22em; }
.price--free { color: var(--ok); }

.com-pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-3) var(--sp-6); margin-top: var(--sp-10); padding-top: var(--sp-3); border-top: var(--line-4); }
.com-pager .pagination ul { gap: 2px; }
.com-pager__info { font-size: var(--fs-sm); color: var(--fg-mute); }
.pagination button.pagination__link { background: none; }
.pagination button.pagination__link[aria-current="page"] { background: var(--ink); }
.pagination button.pagination__link[disabled] { color: var(--ink-mute); pointer-events: none; }

/* Evento con cartel */
.com-event { position: relative; display: grid; gap: var(--sp-4) var(--sp-6); grid-template-columns: 96px minmax(0, 1fr); padding: var(--sp-5) 0; border-top: var(--line-4); border-bottom: var(--line); }
.com-event__poster { width: 96px; align-self: start; }
.com-event__body { min-width: 0; display: grid; gap: var(--sp-2); align-content: start; }
.com-event__aside { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-3) var(--sp-6); padding-top: var(--sp-3); border-top: var(--line-soft); }
.com-event__status { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-3); }
@media (min-width: 768px) {
  .com-event { grid-template-columns: 160px minmax(0, 1fr) auto; align-items: center; }
  .com-event__poster { width: 160px; }
  .com-event__aside { grid-column: auto; flex-direction: column; align-items: flex-end; border-top: 0; padding-top: 0; }
}

/* Para marcas: dos bloques sobre tinta */
.com-brands { display: grid; gap: 0; grid-template-columns: minmax(0, 1fr); }
.com-brand { display: grid; gap: var(--sp-4); align-content: start; padding: var(--sp-8) 0; border-top: 1px solid rgb(255 255 255 / 0.28); }
.com-brand:first-child { border-top: 0; padding-top: 0; }
.com-brand h3 { font-family: var(--font-display); font-weight: 400; text-transform: uppercase; font-size: var(--fs-xl); line-height: 1; }
.com-brand p { color: #E4DEDE; max-width: 44ch; }
.com-brand__price { font-family: var(--font-head); font-weight: 700; font-size: var(--fs-lg); letter-spacing: 0.02em; }
.com-brand__price small { font-family: var(--font-ui); font-weight: 500; font-size: var(--fs-sm); color: #CFC8C8; }
@media (min-width: 900px) {
  .com-brands { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .com-brand, .com-brand:first-child { padding: 0 var(--sp-8) 0 0; border-top: 0; }
  .com-brand + .com-brand { padding: 0 0 0 var(--sp-8); border-left: 1px solid rgb(255 255 255 / 0.28); }
}

/* ==========================================================================
   3. MEMBRESÍAS
   ========================================================================== */
/* Preguntas frecuentes */
.com-faq { border-top: var(--line-4); }
.com-faq details { border-bottom: var(--line); }
.com-faq summary { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4); min-height: 60px; padding: var(--sp-3) 0; cursor: pointer; list-style: none; font-family: var(--font-head); font-weight: 700; font-size: var(--fs-lg); line-height: 1.15; }
.com-faq summary::-webkit-details-marker { display: none; }
.com-faq summary::after { content: ""; flex: none; width: 18px; height: 18px; background: var(--red); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform var(--t-fast) var(--ease); }
.com-faq details[open] summary::after { transform: rotate(180deg); }
.com-faq summary:hover { color: var(--red-deep); }
.com-faq__a { padding: 0 0 var(--sp-5); max-width: 62ch; color: var(--fg-2); font-family: var(--font-text); font-size: var(--fs-md); line-height: 1.6; }
.com-faq__a > * + * { margin-top: var(--sp-3); }

/* Cierre con llamada a la acción */
.com-cta { display: grid; gap: var(--sp-6); align-items: end; }
.com-cta h2 { max-width: 14em; }
@media (min-width: 900px) { .com-cta { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); } }
.com-cta__actions { display: grid; gap: var(--sp-3); }
.com-cta .com-note { color: #E4DEDE; }

/* ==========================================================================
   4. CARRITO
   ========================================================================== */
.com-cart { align-items: start; row-gap: var(--sp-8); }
.com-lines { border-top: var(--line-4); }
.com-line { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: var(--sp-2) var(--sp-4); padding: var(--sp-4) 0; border-bottom: var(--line); }
.com-line__thumb { width: 72px; aspect-ratio: 3 / 4; background: var(--paper-2); border: 1px solid rgb(29 29 27 / 0.35); display: grid; place-items: center; color: var(--ink-mute); overflow: hidden; }
.com-line__thumb img { width: 100%; height: 100%; object-fit: cover; }
.com-line__thumb .icon { width: 28px; height: 28px; }
.com-line__main { min-width: 0; display: grid; gap: 2px; align-content: start; }
.com-line__name { font-family: var(--font-head); font-weight: 700; font-size: var(--fs-lg); line-height: 1.1; overflow-wrap: anywhere; }
.com-line__unit { font-size: var(--fs-sm); color: var(--fg-mute); }
.com-line__ctrl { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-2) var(--sp-4); }
.com-line__total { font-family: var(--font-head); font-weight: 800; font-size: var(--fs-xl); line-height: 1; font-variant-numeric: lining-nums; }
.com-qty { display: inline-flex; align-items: center; border: 2px solid var(--ink); }
.com-qty button { display: grid; place-items: center; width: 44px; height: 44px; transition: background-color var(--t-fast); }
.com-qty button:hover { background: var(--paper-2); }
.com-qty button[disabled] { opacity: 0.35; pointer-events: none; }
.com-qty output { min-width: 40px; text-align: center; font-family: var(--font-head); font-weight: 800; font-size: var(--fs-lg); font-variant-numeric: lining-nums; }
.com-line__rm { min-height: 44px; padding: 0 var(--sp-2); font-weight: 600; font-size: var(--fs-sm); text-decoration: underline; text-decoration-color: var(--red); text-decoration-thickness: 2px; text-underline-offset: 3px; color: var(--ink-soft); }
.com-line__rm:hover { color: var(--red-deep); }
@media (min-width: 640px) {
  .com-line { grid-template-columns: 88px minmax(0, 1fr) auto auto auto; align-items: center; gap: var(--sp-4) var(--sp-6); }
  .com-line__thumb { width: 88px; }
  .com-line__ctrl { grid-column: auto; display: contents; }
  .com-line__total { min-width: 96px; text-align: right; }
}
.com-lines-foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--sp-3); margin-top: var(--sp-4); }

.com-summary { border: var(--line-2); background: var(--paper); }
.com-summary__head { padding: var(--sp-4) var(--sp-5); background: var(--ink); color: #fff; font-family: var(--font-head); font-weight: 700; font-size: var(--fs-lg); letter-spacing: 0.1em; text-transform: uppercase; }
.com-summary__body { padding: var(--sp-4) var(--sp-5) var(--sp-5); display: grid; gap: var(--sp-3); }
.com-summary dl { display: grid; gap: var(--sp-2); }
.com-summary dl > div { display: flex; justify-content: space-between; gap: var(--sp-4); font-size: var(--fs-base); }
.com-summary dt { color: var(--fg-2); }
.com-summary dd { font-variant-numeric: tabular-nums lining-nums; font-weight: 600; text-align: right; }
.com-summary__total { padding-top: var(--sp-3); border-top: var(--line-2); }
.com-summary__total dt { font-family: var(--font-head); font-weight: 800; font-size: var(--fs-lg); letter-spacing: 0.08em; text-transform: uppercase; color: var(--fg); }
.com-summary__total dd { font-family: var(--font-display); font-weight: 400; font-size: var(--fs-xl); line-height: 1; }
.com-summary__fine { font-size: var(--fs-xs); color: var(--fg-mute); }
@media (min-width: 900px) { .com-cart .com-summary { position: sticky; top: calc(var(--header-h) + 24px); } }

.com-checkout { margin-top: var(--sp-10); }
.com-checkout h2 { margin-bottom: var(--sp-5); }
.com-done { display: grid; gap: var(--sp-4); padding: var(--sp-6); background: var(--ok-tint); border: 2px solid var(--ok); color: #0A5632; }
.com-done:focus { outline: 3px solid var(--focus); outline-offset: 3px; }
.com-done h3 { font-family: var(--font-display); font-weight: 400; text-transform: uppercase; font-size: var(--fs-xl); line-height: 1; color: #0A5632; }
.com-done p { max-width: 58ch; }
.com-done .row { margin-top: var(--sp-2); }

/* ==========================================================================
   5. ANÚNCIATE
   ========================================================================== */
.com-edition { display: grid; gap: var(--sp-2); padding: var(--sp-5); background: var(--paper); color: var(--ink); border: 0; --focus: var(--ink); }
.com-edition .kicker { color: var(--red-deep); }
.com-edition .com-edition__name { font-family: var(--font-display); font-weight: 400; text-transform: uppercase; font-size: var(--fs-2xl); line-height: 0.95; }
.com-edition p { font-size: var(--fs-sm); color: var(--fg-2); }
.com-edition .cintillo { color: #fff; font-size: var(--fs-sm); }
.com-edition .com-edition__name { font-size: var(--fs-2xl); color: var(--ink); }
.com-edition .cintillo { margin: calc(var(--sp-5) * -1) calc(var(--sp-5) * -1) var(--sp-3); }

.com-pending { display: grid; gap: var(--sp-3); padding: var(--sp-5); background: var(--paper); border: 2px dashed var(--ink); }
.com-pending h3 { font-size: var(--fs-lg); }
.com-pending p { font-size: var(--fs-sm); color: var(--fg-2); }

/* Tarifario */
.com-rates { align-items: start; row-gap: var(--sp-8); }
.com-rates .rate-table { table-layout: auto; }
.com-rates .rate-table__group:first-child th { padding-top: var(--sp-2); }
.com-rates .rate-table td { font-size: var(--fs-lg); }
.com-rates .rate-table th[scope="row"] { overflow-wrap: anywhere; }
.rate-table__more { display: block; margin-top: 2px; font-weight: 400; font-size: var(--fs-sm); color: var(--fg-mute); }
.com-rates__aside { display: grid; gap: var(--sp-4); }

/* Diagramas de tamaño: hoja a escala (1 cm = --u) con el anuncio sombreado */
.com-sizes { display: grid; gap: var(--sp-6) var(--sp-4); grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; --u: 4.2px; }
@media (min-width: 640px) { .com-sizes { grid-template-columns: repeat(4, minmax(0, 1fr)); --u: 5.2px; } }
@media (min-width: 900px) { .com-sizes--aside { grid-template-columns: repeat(2, minmax(0, 1fr)); --u: 5.4px; } }
.com-sz { display: grid; gap: var(--sp-2); justify-items: start; align-content: end; min-width: 0; }
.com-sz--wide { grid-column: 1 / -1; }
@media (min-width: 640px) { .com-sizes:not(.com-sizes--aside) .com-sz--wide { grid-column: span 2; } }
.com-sz__sheet {
  position: relative; flex: none;
  width: calc(var(--w) * var(--u)); height: calc(var(--h) * var(--u));
  max-width: 100%;
  background:
    repeating-linear-gradient(180deg, transparent 0 7px, var(--paper-3) 7px 8px),
    var(--paper);
  border: 1px solid var(--ink);
  box-shadow: var(--shadow-paper);
}
.com-sz__sheet--spread::after { content: ""; position: absolute; left: 50%; top: 0; bottom: 0; width: 1px; background: var(--ink); opacity: 0.35; }
.com-sz__ad {
  position: absolute; left: var(--l, 0); top: var(--t, 0); width: var(--aw, 100%); height: var(--ah, 100%);
  display: grid; place-items: center;
  background: repeating-linear-gradient(135deg, var(--red-tint) 0 6px, var(--paper) 6px 8px);
  border: 2px solid var(--red);
  z-index: 1;
}
.com-sz__ad--tbd { border-style: dashed; }
.com-sz figcaption { font-size: var(--fs-sm); line-height: 1.3; }
.com-sz figcaption strong { display: block; font-family: var(--font-head); font-weight: 700; font-size: var(--fs-base); }
.com-sz figcaption span { color: var(--fg-mute); }
.com-sizes__legend { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-4); font-size: var(--fs-sm); color: var(--fg-2); }
.com-sizes__key { display: inline-block; width: 22px; height: 14px; vertical-align: -2px; margin-right: 6px; background: repeating-linear-gradient(135deg, var(--red-tint) 0 4px, var(--paper) 4px 6px); border: 2px solid var(--red); }
.com-sizes__key--sheet { background: var(--paper); border: 1px solid var(--ink); }

/* Planes con podcast (mismo componente en anúnciate y en el podcast) */
.com-plan .price--lg { font-size: clamp(2.5rem, 2rem + 2vw, 3.5rem); }
.com-plan .price--lg small { display: block; margin-top: var(--sp-1); font-weight: 500; }
.com-plan .check-list li small { color: var(--fg-mute); }
.com-plan .btn { margin-top: auto; }
.com-plans-plus { display: grid; gap: var(--sp-3); margin-top: var(--sp-6); padding: var(--sp-5); background: var(--ink); color: #fff; --focus: #fff; }
.com-plans-plus strong { font-family: var(--font-head); font-weight: 700; font-size: var(--fs-lg); letter-spacing: 0.04em; }
.com-plans-plus p { color: #E4DEDE; max-width: 70ch; }

/* Contacto de ventas */
.com-sales { display: grid; gap: var(--sp-4); padding: var(--sp-5); border: var(--line-2); background: var(--paper); }
.com-sales__list { display: grid; gap: 0; }
.com-sales__list > div { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px var(--sp-4); padding: var(--sp-3) 0; border-bottom: var(--line-soft); }
.com-sales__list dt { font-family: var(--font-head); font-weight: 700; font-size: var(--fs-xs); letter-spacing: 0.14em; text-transform: uppercase; color: var(--fg-mute); }
.com-sales__list dd { font-weight: 600; overflow-wrap: anywhere; }
.com-sales__list a { text-decoration: underline; text-decoration-color: var(--red); text-decoration-thickness: 2px; text-underline-offset: 3px; }

/* ==========================================================================
   6. PODCAST
   ========================================================================== */
.com-show { display: grid; gap: var(--sp-5); align-content: start; padding: var(--sp-6); background: var(--paper); color: var(--ink); --focus: var(--ink); }
.com-show img { width: min(100%, 360px); height: auto; margin-inline: auto; }
.com-show .caption { margin-top: 0; }
.com-eps { display: grid; gap: var(--sp-8) var(--gap); grid-template-columns: minmax(0, 1fr); }
.com-eps > li { min-width: 0; }
@media (min-width: 640px) { .com-eps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .com-eps { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.com-ep.card-video { height: 100%; }
.com-ep .card-video__title { font-size: var(--fs-lg); }
.com-more { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-3) var(--sp-6); margin-top: var(--sp-10); padding-top: var(--sp-3); border-top: var(--line-4); }

/* ==========================================================================
   7. CONTACTO
   ========================================================================== */
.com-contact { align-items: start; row-gap: var(--sp-10); }
.com-data { border-top: var(--line-4); }
.com-data__row { display: grid; gap: var(--sp-1) var(--sp-4); padding: var(--sp-4) 0; border-bottom: var(--line); grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.com-data__label { grid-column: 1 / -1; font-family: var(--font-head); font-weight: 700; font-size: var(--fs-xs); letter-spacing: 0.14em; text-transform: uppercase; color: var(--fg-mute); }
.com-data__value { min-width: 0; font-size: var(--fs-md); font-weight: 600; line-height: 1.35; overflow-wrap: anywhere; font-style: normal; }
.com-data__value a { text-decoration: underline; text-decoration-color: var(--red); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.com-data__value a:hover { color: var(--red-deep); }
.com-data__value small { display: block; margin-top: 2px; font-weight: 400; font-size: var(--fs-sm); color: var(--fg-mute); }
.com-copy { flex: none; }
.com-quick { display: grid; gap: var(--sp-3); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .com-quick { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.com-quick .btn { width: 100%; }
.com-social { display: flex; flex-wrap: wrap; gap: var(--sp-2) var(--sp-3); }
.com-place { display: grid; gap: var(--sp-3); padding: var(--sp-5); background: var(--steel); color: var(--steel-ink); border: var(--line); }
.com-place .icon { color: var(--steel-ink); }
.com-place address { font-style: normal; font-weight: 600; font-size: var(--fs-md); line-height: 1.4; color: var(--ink); }

/* ==========================================================================
   8. LEGAL
   ========================================================================== */
.com-legal { align-items: start; row-gap: var(--sp-8); }
.com-toc { border-top: var(--line-4); padding-top: var(--sp-3); }
.com-toc__title { margin-bottom: var(--sp-2); font-family: var(--font-head); font-weight: 700; font-size: var(--fs-sm); letter-spacing: 0.14em; text-transform: uppercase; color: var(--fg-mute); }
.com-toc ol { display: grid; gap: 0; }
.com-toc a { display: block; padding: 9px 0 9px 12px; border-left: 3px solid var(--rule-soft); font-weight: 600; font-size: var(--fs-sm); line-height: 1.3; text-decoration: none; color: var(--ink-soft); }
.com-toc a:hover { color: var(--red-deep); border-left-color: var(--red); }
.com-toc a[aria-current="true"] { color: var(--ink); border-left-color: var(--red); background: var(--red-tint); }
.com-toc__note { margin-top: var(--sp-3); font-size: var(--fs-xs); color: var(--fg-mute); }
@media (min-width: 900px) { .com-toc { position: sticky; top: calc(var(--header-h) + 24px); max-height: calc(100vh - var(--header-h) - 48px); overflow-y: auto; } }
@media (max-width: 899.98px) { .com-toc ol { grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); column-gap: var(--sp-4); } }
.com-legal__meta { display: flex; flex-wrap: wrap; gap: var(--sp-1) var(--sp-4); margin-bottom: var(--sp-6); font-size: var(--fs-sm); color: var(--fg-mute); }
.com-legal .prose { font-size: 1.0625rem; max-width: 68ch; }
.com-legal .prose p { overflow-wrap: break-word; }
.com-legal__h { margin-top: var(--sp-10); padding-top: var(--sp-3); border-top: var(--line-4); font-family: var(--font-head); font-weight: 800; font-size: var(--fs-2xl); line-height: 1; text-transform: uppercase; letter-spacing: 0.01em; scroll-margin-top: calc(var(--header-h) + 16px); }
.com-legal .prose > .com-legal__h:first-child { margin-top: 0; }
.com-legal .prose p[id] { scroll-margin-top: calc(var(--header-h) + 16px); }
.com-legal .prose p.is-address { padding: var(--sp-3) var(--sp-4); background: var(--paper-2); border-left: 4px solid var(--ink); font-family: var(--font-ui); font-weight: 600; }
.com-status { padding: var(--sp-2) 0 var(--sp-2) var(--sp-3); border-left: 3px solid var(--red); font-size: var(--fs-sm); font-weight: 600; color: var(--ink-soft); }

/* ==========================================================================
   9. FORMULARIOS DE DEMOSTRACIÓN
   ========================================================================== */
.com-form { display: grid; gap: var(--sp-6); }
.com-form__legend { font-size: var(--fs-sm); color: var(--fg-mute); }
.com-form .field > label .opt { font-weight: 400; color: var(--fg-mute); }
.com-form .check { padding: 6px 0; }
.com-form .check a { text-decoration: underline; text-decoration-color: var(--red); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.com-form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-3) var(--sp-5); }
.com-form__fine { font-size: var(--fs-sm); color: var(--fg-mute); max-width: 52ch; }
.com-form .field__error { margin-top: 2px; }
.com-form-box { padding: var(--sp-5); background: var(--paper); border: var(--line-2); }
@media (min-width: 768px) { .com-form-box { padding: var(--sp-8); } }
.com-form-box h2, .com-form-box h3 { margin-bottom: var(--sp-2); }

/* Episodios: el botón de reproducir no tapa el título que trae la miniatura */
.com-ep .card-video__play { left: auto; top: var(--sp-2); right: var(--sp-2); translate: none; width: 40px; height: 40px; border-width: 2px; }
.com-ep .card-video__play .icon { width: 16px; height: 16px; margin-left: 2px; }
.com-data__value address { font-style: normal; }

/* Filas de planes: el destacado es más ancho y sobresale; contenidos alineados */
.com-planrow { display: grid; gap: var(--gap); grid-template-columns: minmax(0, 1fr); }
.com-planrow > .card-plan { position: relative; min-width: 0; }
.com-planrow .card-plan__flag { position: absolute; top: 0; left: 0; right: 0; margin: 0; }
.com-planrow > .card-plan--featured { padding-top: calc(var(--sp-6) + 34px); }
.com-planrow .price--lg { font-size: clamp(2.5rem, 2rem + 2vw, 3.5rem); }
.com-planrow .price--lg small { display: block; margin-top: var(--sp-1); font-weight: 500; }
.com-planrow .check-list li small { color: var(--fg-mute); }
.com-planrow .btn { margin-top: auto; }
@media (min-width: 960px) {
  .com-planrow { align-items: stretch; }
  .com-planrow--last { grid-template-columns: 1fr 1fr 1.25fr; }
  .com-planrow > .card-plan { margin-top: 34px; }
  .com-planrow > .card-plan--featured { margin-top: 0; }
}

/* Piezas de texto que antes eran estilos en línea */
.com-h3-xl { font-size: var(--fs-2xl); }
.com-h3-lg { font-size: var(--fs-xl); }
.com-h2-md { font-size: var(--fs-xl); margin-bottom: var(--sp-5); }
.com-lead--lg { font-size: clamp(1.25rem, 1.05rem + 0.9vw, 1.625rem); line-height: 1.45; color: var(--ink); }
.com-note--on-ink { color: #CFC8C8; }
.com-filters__label--block { display: block; }
.com-lines--flush { margin-top: var(--sp-3); border-top: 0; }

/* Una cifra grande con pie (por qué anunciarte) */
.com-big { display: grid; gap: var(--sp-3); align-content: start; padding-top: var(--sp-3); border-top: var(--line-4); }
.com-big__n { font-family: var(--font-display); font-size: clamp(5rem, 3rem + 9vw, 10rem); line-height: 0.9; letter-spacing: 0.004em; }
.com-big figcaption { font-size: var(--fs-sm); color: var(--fg-mute); max-width: 34ch; }

/* Módulo de membresías (assets/js/membresias.js): ajustes de página */
.com-mb-actions { display: flex; flex-wrap: wrap; gap: var(--sp-3); align-items: center; }
.com-mb-actions .btn { max-width: 100%; text-align: center; white-space: normal; line-height: 1.15; }
.com-lead .mb-res li + li { margin-top: var(--sp-2); }
.mb-res { font-family: var(--font-text); font-size: var(--fs-md); line-height: 1.5; color: var(--fg-2); }
.mb-res strong { color: var(--fg); }
.mb-card__list li, .mb-table { overflow-wrap: anywhere; }
@media (min-width: 901px) { .mb-cards { grid-template-columns: 1fr 1fr 1.25fr; } }
.mb-table-wrap { position: relative; }
.mb-table-wrap:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.mb-table thead th small { opacity: 1; }
@media (max-width: 640px) { .mb-table { min-width: 560px; } }
