/* ============================================
   PÁGINAS DE VENTA + AFILIADOS (2026-10-27)
   /tienda/<producto> y /afiliados. Se carga después de styles.css
   y solo usa los tokens de variables.css.
   ============================================ */

/* Migas de pan */
.crumbs { font-size: var(--text-sm); color: var(--text-muted); margin-bottom: var(--space-6); }
.crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.crumbs li + li::before { content: '/'; margin-right: 6px; color: var(--text-muted); }
.crumbs a { color: var(--text-secondary); text-decoration: none; }
.crumbs a:hover { color: var(--orange-dark); }

/* ---------- Hero de venta ---------- */
.sale-hero { padding-top: 140px; padding-bottom: var(--space-16); position: relative; overflow: hidden; }
.sale-hero::before { content: ''; position: absolute; top: 0; right: -10%; width: 70%; max-width: 760px; height: 420px; background: radial-gradient(ellipse at center top, rgba(255, 117, 31, 0.22), transparent 70%); filter: blur(40px); pointer-events: none; }
.sale-hero-grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.sale-hero h1 { font-size: clamp(2.2rem, 1.5rem + 3vw, 4rem); line-height: 1.05; margin: var(--space-4) 0 var(--space-5); }
.sale-lead { font-size: var(--text-md); max-width: 54ch; }
.sale-promise { list-style: none; margin: var(--space-6) 0; padding: 0; display: grid; gap: 10px; }
.sale-promise li { display: flex; gap: 10px; align-items: baseline; color: var(--text-secondary); }
.sale-promise li::before { content: '✓'; color: var(--orange); font-weight: 700; flex-shrink: 0; }

/* Caja de precio */
.buy-box { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-4) var(--space-6); padding: var(--space-5) var(--space-6); border: 1px solid var(--border-default); border-radius: var(--radius-lg); background: var(--bg-elevated); }
.buy-price { display: flex; flex-direction: column; line-height: 1.1; }
.buy-price strong { font-family: var(--font-display); font-size: var(--text-3xl); font-weight: 600; color: var(--text-primary); letter-spacing: -.02em; }
.buy-price span { font-size: var(--text-xs); color: var(--text-muted); }
.buy-box .btn { min-height: 48px; }
.buy-trust { list-style: none; margin: var(--space-4) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: var(--text-xs); color: var(--text-muted); }
.buy-trust li { display: flex; align-items: center; gap: 6px; }
.buy-trust li::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--orange); }

/* Medios del hero: portada del ebook o imagen del kit */
.sale-media { position: relative; max-width: 440px; width: 100%; justify-self: center; }
.sale-media img { width: 100%; height: auto; border-radius: var(--radius-xl); border: 1px solid var(--border-default); }

/* Portada provisional del ebook (reemplazar por <img> cuando exista la portada real) */
.cover { position: relative; aspect-ratio: 3 / 4; width: 100%; border-radius: 6px 16px 16px 6px; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; padding: 9% 10%; color: #fff; background: radial-gradient(120% 80% at 100% 0%, rgba(255, 117, 31, 0.55), transparent 60%), linear-gradient(160deg, #1E1E1E 0%, #111111 70%); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, 0.8), inset 6px 0 0 rgba(255, 255, 255, 0.06); border: 1px solid var(--border-default); }
.cover::after { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3.5%; background: linear-gradient(90deg, rgba(0, 0, 0, 0.35), transparent); }
.cover { container-type: inline-size; }
.cover-kicker { font-family: var(--font-mono); font-weight: 500; font-size: max(.6rem, 3.6cqi); letter-spacing: .08em; text-transform: uppercase; color: #FF9A57; }
.cover-title { font-family: var(--font-display); font-weight: 600; font-size: 17cqi; line-height: 1; letter-spacing: -.03em; margin: .5em 0 0; color: #fff; }
.cover-title em { font-family: var(--font-serif); font-weight: 400; color: #FF9A57; }
.cover-sub { font-size: max(.72rem, 5.4cqi); color: #D4D4D8; margin: .9em 0 0; max-width: 26ch; }
.cover-author { font-size: max(.68rem, 4cqi); color: #D4D4D8; display: flex; justify-content: space-between; gap: 8px; border-top: 1px solid rgba(255, 255, 255, .18); padding-top: .8em; }
.cover-author b { color: #fff; font-weight: 600; }
.cover--ig { background: radial-gradient(120% 80% at 0% 0%, rgba(255, 117, 31, 0.6), transparent 60%), linear-gradient(200deg, #1E1E1E 0%, #111111 70%); }
.cover-sm .cover-title { font-size: 15cqi; }

/* ---------- Secciones ---------- */
.sale-section .section-title { max-width: 26ch; }
.sale-head { margin-bottom: var(--space-10); }
.sale-head .section-subtitle { margin: 0; }

/* Para quién es / no es */
.fit-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); }
.fit-card { padding: var(--space-8); border-radius: var(--radius-xl); border: 1px solid var(--border-default); background: var(--bg-elevated); }
.fit-card h3 { font-size: var(--text-xl); margin: 0 0 var(--space-5); }
.fit-card ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.fit-card li { display: flex; gap: 10px; align-items: baseline; color: var(--text-secondary); }
.fit-card li::before { content: '✓'; color: var(--green-400); font-weight: 700; flex-shrink: 0; }
.fit-card.is-not li::before { content: '✕'; color: var(--text-muted); }

/* Capítulos / contenido */
.chapters { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); counter-reset: ch; }
.chapters li { counter-increment: ch; display: grid; grid-template-columns: auto 1fr; gap: 4px var(--space-4); padding: var(--space-5) var(--space-6); border-radius: var(--radius-lg); border: 1px solid var(--border-default); background: var(--bg-elevated); }
.chapters li::before { content: counter(ch, decimal-leading-zero); grid-row: span 2; font-family: var(--font-display); font-size: var(--text-xl); font-weight: 600; color: var(--orange); line-height: 1.2; }
.chapters strong { color: var(--text-primary); font-size: var(--text-md); font-weight: 600; }
.chapters span { color: var(--text-secondary); font-size: var(--text-sm); }
.chapters.no-num li { grid-template-columns: 1fr; }
.chapters.no-num li::before { display: none; }
.inc-meta { margin-top: var(--space-6); font-size: var(--text-sm); color: var(--text-muted); }

/* Bonos */
.bonus-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); }
.bonus-card { display: flex; flex-direction: column; gap: 8px; padding: var(--space-6); border-radius: var(--radius-lg); background: #111; border: 1px solid var(--border-default); }
.bonus-tag { align-self: flex-start; font-family: var(--font-mono); font-weight: 500; font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; color: #111; background: var(--orange); padding: 4px 10px; border-radius: 999px; }
.bonus-card strong { color: #fff; font-size: var(--text-md); font-weight: 600; }
.bonus-card span { color: #D4D4D8; font-size: var(--text-sm); }
.bonus-card small { margin-top: auto; padding-top: 6px; color: var(--text-muted); font-size: var(--text-xs); }

/* Sobre la autora */
.author-card { display: grid; grid-template-columns: 220px 1fr; gap: var(--space-8); align-items: center; padding: var(--space-8); border-radius: var(--radius-xl); border: 1px solid var(--border-default); background: var(--bg-elevated); }
.author-card img { width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; border-radius: var(--radius-lg); }
.author-card h2 { font-size: var(--text-2xl); margin: var(--space-3) 0; }
.author-role { font-family: var(--font-mono); font-weight: 500; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; color: var(--orange-dark); display: block; margin-bottom: var(--space-4); }
.author-card p:last-child { margin-bottom: 0; }

/* Opiniones: sin reseñas inventadas */
.reviews-empty { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-5); padding: var(--space-8); border-radius: var(--radius-xl); border: 1px dashed var(--border-strong); background: var(--orange-soft); }
.reviews-empty h2 { font-size: var(--text-2xl); margin: 0 0 var(--space-2); }
.reviews-empty p { margin: 0; max-width: 60ch; }

/* Botón con enlace pendiente (antes de pegar el link de Hotmart) */
.btn[data-pending="true"] { opacity: .75; }

/* ---------- Afiliados ---------- */
.aff-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); }
.aff-steps li { display: flex; flex-direction: column; gap: 6px; padding: var(--space-6); border-radius: var(--radius-lg); background: #111; border: 1px solid var(--border-default); }
.aff-steps .step-n { font-family: var(--font-display); font-size: var(--text-2xl); color: var(--orange); font-weight: 600; }
.aff-steps strong { color: #fff; font-size: var(--text-md); }
.aff-steps li > span:last-child { color: #D4D4D8; font-size: var(--text-sm); }
.aff-table-wrap { overflow-x: auto; border: 1px solid var(--border-default); border-radius: var(--radius-lg); }
.aff-table { width: 100%; border-collapse: collapse; font-size: var(--text-sm); min-width: 560px; }
.aff-table th, .aff-table td { padding: 14px 18px; text-align: left; border-bottom: 1px solid var(--border-subtle); }
.aff-table th { color: var(--text-muted); font-weight: 500; font-family: var(--font-mono); font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; background: var(--bg-elevated); }
.aff-table td { color: var(--text-secondary); }
.aff-table td:first-child a { color: var(--text-primary); font-weight: 600; }
.aff-table tr:last-child td { border-bottom: 0; }
.aff-table .pct { color: var(--orange-dark); font-weight: 700; font-family: var(--font-display); font-size: var(--text-md); }
.aff-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); }
.aff-card { display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-6); border-radius: var(--radius-xl); border: 1px solid var(--border-default); background: var(--bg-elevated); }
.aff-card-top { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-3); flex-wrap: wrap; }
.aff-card h3 { font-size: var(--text-xl); margin: 0; }
.aff-card h3 a { color: inherit; text-decoration: none; }
.aff-card h3 a:hover { color: var(--orange-dark); }
.aff-meta { font-size: var(--text-sm); color: var(--text-muted); }
.aff-meta b { color: var(--orange-dark); }
.copy-list { display: grid; gap: var(--space-3); }
.copy-item { position: relative; padding: var(--space-4) var(--space-4) var(--space-4) var(--space-5); border-radius: var(--radius-md); background: var(--bg-secondary); border: 1px solid var(--border-subtle); }
.copy-item-label { display: block; font-family: var(--font-mono); font-weight: 500; font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 6px; }
.copy-item p { margin: 0 0 var(--space-3); font-size: var(--text-sm); color: var(--text-secondary); white-space: pre-line; }
.copy-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--border-default); background: transparent; color: var(--text-primary); font: 500 var(--text-xs) var(--font-body); cursor: pointer; }
.copy-btn:hover, .copy-btn:focus-visible { border-color: var(--orange); color: var(--orange-dark); }
.copy-btn.is-done { border-color: var(--green-500); color: var(--green-400); }
.aff-card .btn { align-self: flex-start; min-height: 48px; }
.aff-rules { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); }

/* ---------- Tienda: sección de ebooks ---------- */
.product-media .cover { border-radius: 0; border: 0; height: 100%; aspect-ratio: auto; }
.product-media.is-cover { aspect-ratio: 1 / 1; }
.product-media.is-cover .product-badge { display: none; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
  .bonus-grid, .aff-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .sale-hero { padding-top: 120px; }
  .sale-hero-grid { grid-template-columns: 1fr; }
  .sale-media { max-width: 340px; order: -1; }
  .author-card { grid-template-columns: 160px 1fr; gap: var(--space-6); }
}
@media (max-width: 767px) {
  .fit-grid, .chapters, .bonus-grid, .aff-steps, .aff-grid, .aff-rules, .shop-ebooks .product-grid { grid-template-columns: 1fr; }
  .sale-media { max-width: 260px; }
  .buy-box { padding: var(--space-5); }
  .buy-box .btn { width: 100%; }
  .fit-card, .author-card, .reviews-empty { padding: var(--space-6); }
  .author-card { grid-template-columns: 1fr; text-align: left; }
  .author-card img { max-width: 180px; }
  .chapters li { padding: var(--space-4) var(--space-5); }
  .aff-card .btn { align-self: stretch; }
}

/* ============================================
   V2 (2026-10-28): sin huellas de IA + galería, calculadora y prompts
   ============================================ */
/* Palabra destacada: mismo tipo y mismo color, subrayada (no serif cursiva ni degradado) */
.hl { font: inherit; color: inherit; text-decoration: underline; text-decoration-color: var(--orange); text-decoration-thickness: .09em; text-underline-offset: .14em; -webkit-text-fill-color: currentColor; background: none; }
.sale-hero::before { display: none; }
/* Etiquetas en texto normal, sin mayúsculas espaciadas */
.author-role, .bonus-tag, .aff-table th, .copy-item-label { text-transform: none; letter-spacing: 0; font-family: var(--font-body); }
.author-role { font-size: var(--text-sm); }
/* Foto más chica */
.author-card { grid-template-columns: 112px 1fr; gap: var(--space-6); }
.author-card img { aspect-ratio: 1 / 1; border-radius: 18px; }

/* ---------- Galería ---------- */
.gal-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--space-3) var(--space-8); margin-bottom: var(--space-6); }
.gal-head .section-title { margin: 0; line-height: 1.08; }
.gal-note { margin: 0; color: var(--text-muted); font-size: var(--text-sm); max-width: 38ch; }
.gal-tabs { display: flex; flex-wrap: wrap; gap: 4px 24px; border-bottom: 1px solid var(--border-default); margin-bottom: var(--space-6); }
.gal-tabs button { appearance: none; background: none; border: 0; border-bottom: 3px solid transparent; margin-bottom: -1px; padding: 12px 2px; min-height: 44px; color: var(--text-secondary); font: 600 var(--text-md) var(--font-body); cursor: pointer; }
.gal-tabs button small { font-weight: 500; color: var(--text-muted); margin-left: 4px; }
.gal-tabs button[aria-selected="true"] { color: var(--text-primary); border-bottom-color: var(--orange); }
.gal-tabs button:focus-visible { outline: 2px solid var(--orange); outline-offset: 2px; }
.gal-item { appearance: none; display: block; width: 100%; padding: 0; border: 1px solid var(--border-default); background: #1a1a1a; cursor: zoom-in; overflow: hidden; break-inside: avoid; margin: 0 0 var(--space-4); }
.gal-item img { display: block; width: 100%; height: auto; transition: transform .35s ease; }
.gal-item:hover img { transform: scale(1.03); }
.gal-item:focus-visible { outline: 2px solid var(--orange); outline-offset: 3px; }
/* Kits: columnas tipo mosaico, cada pieza con su forma real */
.gal--kit .gal-panel { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); align-items: start; }
.gal--kit .gal-panel[hidden] { display: none; }
/* Mockups («Así se ve»): cuadrícula horizontal también en los ebooks */
.gal .gal-panel.gal-panel--mock { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); align-items: start; overflow: visible; }
.gal .gal-panel.gal-panel--mock[hidden] { display: none; }
.gal .gal-panel--mock .gal-item { flex: none; margin: 0; border-radius: 4px; }
.gal--kit .gal-item { margin: 0; }
.gal--kit .gal-item { border-radius: 4px; }
/* Ebooks: tira que se desliza, como pasar páginas */
.gal--ebook .gal-panel { display: flex; gap: var(--space-4); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: var(--space-4); scrollbar-width: thin; }
.gal--ebook .gal-panel[hidden] { display: none; }
.gal--ebook .gal-item { flex: 0 0 clamp(170px, 22vw, 240px); scroll-snap-align: start; margin: 0; border-radius: 2px 8px 8px 2px; }

/* Visor a pantalla completa */
.gal-lb { border: 0; padding: 0; max-width: 100vw; max-height: 100vh; width: 100vw; height: 100vh; background: rgba(10, 10, 10, .94); color: #fff; }
.gal-lb::backdrop { background: rgba(0, 0, 0, .6); }
.gal-lb-in { position: relative; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; padding: 64px 72px; box-sizing: border-box; }
.gal-lb img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; box-shadow: none; }
.gal-lb button { position: absolute; min-width: 48px; min-height: 48px; border: 1px solid rgba(255,255,255,.25); background: #111; color: #fff; font-size: 22px; cursor: pointer; }
.gal-lb .lb-x { top: 14px; right: 14px; }
.gal-lb .lb-prev { left: 14px; top: 50%; transform: translateY(-50%); }
.gal-lb .lb-next { right: 14px; top: 50%; transform: translateY(-50%); }
.gal-lb .lb-n { position: absolute; bottom: 18px; left: 0; right: 0; text-align: center; font-size: var(--text-sm); color: #bbb; }

/* ---------- Calculadora ---------- */
.calc { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: start; }
.calc-intro p { color: var(--text-secondary); }
.calc-foot { font-size: var(--text-sm); color: var(--text-muted) !important; }
.calc-box { border: 1px solid var(--border-strong); background: var(--bg-elevated); padding: var(--space-6); }
.calc-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.calc-f, .calc-range, .pr-input { display: flex; flex-direction: column; gap: 6px; font-size: var(--text-sm); color: var(--text-secondary); }
.calc-f input, .pr-input input { min-height: 46px; padding: 0 14px; border: 1px solid var(--border-default); background: var(--bg-primary); color: var(--text-primary); font: 600 var(--text-md) var(--font-body); border-radius: 0; }
.calc-f input:focus, .pr-input input:focus { outline: 2px solid var(--orange); outline-offset: 0; }
.calc-range { margin-top: var(--space-5); }
.calc-range b { color: var(--orange-dark); font-family: var(--font-display); }
.calc-range input { accent-color: var(--orange); min-height: 32px; }
.calc-out { display: grid; grid-template-columns: 1fr 1.3fr 1fr; gap: 1px; background: var(--border-default); margin: var(--space-6) 0 0; border: 1px solid var(--border-default); }
.calc-out div { background: var(--bg-primary); padding: var(--space-4); }
.calc-out dt { font-size: var(--text-xs); color: var(--text-muted); }
.calc-out dd { margin: 4px 0 0; font-family: var(--font-display); font-size: var(--text-2xl); font-weight: 700; color: var(--text-primary); }
.calc-out .is-main { background: var(--orange); }
.calc-out .is-main dt, .calc-out .is-main dd { color: #111; }
.calc-warn { margin: var(--space-4) 0 0; font-size: var(--text-sm); color: var(--text-secondary); }

/* ---------- Prompts ---------- */
.pr { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: start; }
.pr-intro p { color: var(--text-secondary); }
.pr-input { margin-top: var(--space-5); max-width: 360px; }
.pr-box { border: 1px solid var(--border-strong); background: var(--bg-elevated); padding: var(--space-5) var(--space-6) var(--space-6); }
.pr-list[hidden] { display: none; }
.pr-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-4); }
.pr-list li { display: grid; grid-template-columns: 1fr auto; gap: var(--space-4); align-items: start; padding: var(--space-4); background: var(--bg-primary); border-left: 3px solid var(--orange); }
.pr-list p { margin: 0; color: var(--text-primary); }
.pr-list mark { background: rgba(255, 117, 31, .22); color: inherit; padding: 0 3px; }

/* ---------- Afiliados: portada en cada tarjeta ---------- */
.aff-cover { display: block; margin: calc(var(--space-6) * -1) calc(var(--space-6) * -1) 0; overflow: hidden; border-radius: var(--radius-xl) var(--radius-xl) 0 0; }
.aff-cover img { display: block; width: 100%; height: auto; }
.aff-dl { font-size: var(--text-sm); color: var(--orange-dark); text-decoration: underline; text-underline-offset: 3px; min-height: 44px; display: inline-flex; align-items: center; }

@media (max-width: 900px) {
  .calc, .pr { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .author-card { grid-template-columns: 1fr; }
  .author-card img { max-width: 96px; }
  .gal--kit .gal-panel { grid-template-columns: 1fr 1fr; gap: var(--space-3); }
  .gal .gal-panel.gal-panel--mock { grid-template-columns: 1fr 1fr; gap: var(--space-3); }
  .gal-head { display: block; }
  .gal-head .section-title { margin-bottom: var(--space-3); }
  .gal--ebook .gal-item { flex-basis: 62vw; }
  .calc-fields { grid-template-columns: 1fr 1fr; }
  .calc-out { grid-template-columns: 1fr 1fr; }
  .calc-out .is-main { grid-column: 1 / -1; order: -1; }
  .calc-box, .pr-box { padding: var(--space-5) var(--space-4); }
  .pr-list li { grid-template-columns: 1fr; }
  .gal-lb-in { padding: 64px 12px 72px; }
  .gal-lb .lb-prev, .gal-lb .lb-next { top: auto; bottom: 10px; transform: none; }
  .gal-lb .lb-n { bottom: 24px; }
}

/* Afiliados minimalista (2026-10-31): portadas enteras en marco fijo, textos plegados, tabla sin barra en celular */
.aff-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); }
.aff-card { gap: var(--space-3); padding: var(--space-5); }
.aff-cover { margin: calc(var(--space-5) * -1) calc(var(--space-5) * -1) var(--space-2); aspect-ratio: 4 / 3; background: #F4F2EE; display: flex; align-items: center; justify-content: center; }
.aff-cover img { width: 100%; height: 100%; object-fit: contain; }
.aff-card-top { flex-direction: column; align-items: flex-start; gap: 2px; }
.aff-card h3 { font-size: var(--text-lg); }
.aff-copy summary { list-style: none; cursor: pointer; min-height: 44px; display: flex; align-items: center; justify-content: space-between; font-size: var(--text-sm); color: var(--text-secondary); border-top: 1px solid var(--border-subtle); }
.aff-copy summary::-webkit-details-marker { display: none; }
.aff-copy summary::after { content: "+"; font-size: 1.3em; line-height: 1; color: var(--orange-dark); }
.aff-copy[open] summary::after { content: "−"; }
.aff-copy .copy-list { padding-top: var(--space-2); }
.aff-card .btn { margin-top: auto; }
.aff-table { min-width: 0; }
@media (max-width: 1100px) { .aff-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .aff-grid { grid-template-columns: 1fr; }
  .aff-table-wrap { overflow: visible; }
  .aff-table thead { display: none; }
  .aff-table, .aff-table tbody { display: block; }
  .aff-table tr { display: grid; grid-template-columns: 1fr auto; gap: 2px 12px; padding: 14px 16px; border-bottom: 1px solid var(--border-subtle); }
  .aff-table tr:last-child { border-bottom: 0; }
  .aff-table td { padding: 0; border: 0; }
  .aff-table td:nth-child(2) { grid-row: 2; font-size: .85em; color: var(--text-muted); }
  .aff-table td.pct { grid-row: 1 / 3; grid-column: 2; align-self: center; text-align: right; }
}

/* Recuadro «Nuevo en esta edición» en páginas de producto */
.sale-new { margin: 0 0 var(--space-5); padding: 16px 18px; border: 1px solid var(--orange); border-radius: 16px; background: var(--orange-soft); }
.sale-new-tag { display: inline-block; margin-bottom: 8px; padding: 3px 10px; border-radius: 999px; background: var(--orange); color: #111; font-size: .78rem; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; }
.sale-new ul { margin: 0; padding-left: 1.1em; display: grid; gap: 6px; }
.sale-new li { font-size: .95rem; line-height: 1.5; }
