/* Public Mesh — dirección visual "Manifiesto" (la misma de publicmesh.org)
   Tipos: Bricolage Grotesque (display) · Space Grotesk (texto) · Space Mono (etiquetas)
   Cada sección es un "panel" que define sus propios colores locales. */

:root {
  --font-display: 'Bricolage Grotesque', sans-serif;
  --font-body: 'Space Grotesk', sans-serif;
  --font-mono: 'Space Mono', monospace;
  --accent-brand: #FF3D11;
  --accent-on: #0E0E0C;
  --ink: #0E0E0C;
  --paper: #E9E5D7;
  --rdur: .6s;
  --rease: cubic-bezier(.16,1,.3,1);
  --rdist: 40px;
  --nav-pad: 22px;
  --gutter: clamp(24px,5vw,72px);
}

/* ---------- Paneles (paleta original) ---------- */
.pane--base   { --bg:#E9E5D7; --fg:#0E0E0C; --sub:#56524A; --line:#0E0E0C; --accent:#FF3D11; --tint:rgba(255,61,17,.08); }
.pane--deep   { --bg:#0E0E0C; --fg:#E9E5D7; --sub:#918E84; --line:#E9E5D7; --accent:#FF3D11; --tint:rgba(255,255,255,.05); }
.pane--warm   { --bg:#FF3D11; --fg:#0E0E0C; --sub:#3A0F05; --line:#0E0E0C; --accent:#0E0E0C; --tint:rgba(20,17,12,.07); --accent-on:#E9E5D7; }
.pane--nature { --bg:#14241A; --fg:#E9E5D7; --sub:#8FA792; --line:#E9E5D7; --accent:#C8FF3D; --tint:rgba(200,255,61,.06); }
.pane--night  { --bg:#0E0E0C; --fg:#E9E5D7; --sub:#8A867C; --line:#2A271F; --accent:#FF3D11; --tint:rgba(255,61,17,.06); }

.pane { position:relative; z-index:1; background:var(--bg); color:var(--fg); }

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing:border-box; }
html, body { margin:0; padding:0; }
html { scroll-behavior:smooth; }
body {
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  -webkit-font-smoothing:antialiased;
}
::selection { background:rgba(255,61,17,.26); }
img, svg { display:block; max-width:100%; }
a { color:inherit; }
h1, h2, h3, h4, p, dl, dd { margin:0; }

@keyframes pulseDot { 0%,100%{opacity:1;transform:scale(1);} 50%{opacity:.35;transform:scale(.7);} }

.wrap { max-width:1240px; margin:0 auto; padding:0 var(--gutter); }
.hl { font-style:italic; color:var(--accent); }

/* ---------- Progreso, cursor, raíl ---------- */
.progress {
  position:fixed; top:0; left:0; height:3px; width:100%;
  transform:scaleX(0); transform-origin:0 50%;
  background:var(--accent-brand); z-index:9500; transition:transform .12s linear;
}
.cursor-ring {
  position:fixed; top:0; left:0; z-index:9000; width:36px; height:36px; margin:-18px 0 0 -18px;
  border:1.5px solid var(--accent-brand); border-radius:50%; pointer-events:none; opacity:0;
  mix-blend-mode:difference; will-change:transform;
  transition:opacity .3s, width .25s, height .25s, margin .25s, background-color .25s;
}
.cursor-dot {
  position:fixed; top:0; left:0; z-index:9001; width:5px; height:5px; margin:-2.5px 0 0 -2.5px;
  border-radius:50%; background:var(--accent-brand); pointer-events:none; opacity:0; will-change:transform;
  transition:opacity .3s;
}
[data-magnetic] { will-change:transform; }

.rail {
  position:fixed; left:clamp(16px,2.2vw,30px); top:50%; transform:translateY(-50%);
  z-index:180; display:flex; flex-direction:column; gap:1px;
}
.rail a { display:flex; align-items:center; gap:11px; text-decoration:none; padding:6px 0; }
.rail__tick { width:16px; height:1px; background:var(--ink); opacity:.35; flex:none; transition:width .4s ease, opacity .4s, background-color .5s; }
.rail__num { font-family:var(--font-mono); font-size:10px; letter-spacing:.1em; color:var(--ink); opacity:.5; flex:none; transition:opacity .4s, color .5s; }
.rail__label { font-family:var(--font-mono); font-size:11px; letter-spacing:.03em; color:var(--ink); opacity:0; transform:translateX(-6px); white-space:nowrap; transition:opacity .4s, transform .4s, color .5s; }
.rail a:hover .rail__label { opacity:1 !important; transform:none !important; }
.rail a:hover .rail__tick { opacity:.85 !important; width:26px !important; }
@media (max-width:1340px) { .rail { display:none; } }

/* ---------- Navegación ---------- */
.nav {
  position:fixed; top:0; left:0; right:0; z-index:200;
  display:flex; align-items:center; justify-content:space-between;
  padding:var(--nav-pad) var(--gutter);
  border-bottom:1px solid transparent;
  transition:padding .4s ease, background-color .5s, backdrop-filter .5s, border-color .5s;
}
.nav__brand {
  display:flex; align-items:baseline; gap:10px; padding-block:10px; margin-block:-10px; text-decoration:none; color:var(--ink); white-space:nowrap;
  font-family:var(--font-display); font-weight:700; font-size:21px; letter-spacing:-.01em;
}
.nav__brand .dot { color:var(--accent-brand); }
.nav__press { font-family:var(--font-mono); font-weight:400; font-size:12px; letter-spacing:.24em; text-transform:uppercase; opacity:.75; }
.nav__links { display:flex; align-items:center; gap:clamp(14px,2vw,30px); }
.nav__link {
  font-family:var(--font-mono); font-size:12.5px; letter-spacing:.04em; color:var(--ink);
  text-decoration:none; opacity:.7; padding:6px 2px; transition:opacity .3s, color .5s;
}
.nav__ext {
  font-family:var(--font-mono); font-size:12px; letter-spacing:.08em; color:var(--ink); text-decoration:none; white-space:nowrap;
  border:1px solid rgba(14,14,12,.3); padding:7px 12px; transition:color .5s, border-color .5s;
}
.lang { display:inline-flex; border:1px solid rgba(14,14,12,.3); transition:border-color .5s; }
.lang button {
  font-family:var(--font-mono); font-size:12px; letter-spacing:.08em; color:inherit; background:transparent;
  border:0; padding:7px 9px; cursor:pointer; opacity:.45; transition:opacity .3s;
}
.lang button[aria-pressed="true"] { opacity:1; text-decoration:underline; text-underline-offset:3px; }
.lang a {
  font-family:var(--font-mono); font-size:12px; letter-spacing:.08em; color:inherit; text-decoration:none;
  padding:7px 9px; opacity:.45; transition:opacity .3s;
}
.lang a:hover { opacity:.8; }
.lang a[aria-current="true"] { opacity:1; text-decoration:underline; text-underline-offset:3px; }
.nav__link:hover { opacity:1; }
.nav__link[aria-current="page"] { opacity:1; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:6px; }
.skip {
  position:fixed; left:var(--gutter); top:10px; z-index:9600; transform:translateY(-200%);
  font-family:var(--font-mono); font-size:12px; letter-spacing:.06em; background:var(--ink); color:var(--paper); padding:10px 14px; text-decoration:none;
}
.skip:focus { transform:none; }
.nav__toggle-input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; margin:0; }
.nav__burger { display:none; }

@media (max-width:980px) {
  /* backdrop-filter convertiría la barra en el contenedor del panel fijo y lo recortaría */
  .nav { backdrop-filter:none !important; -webkit-backdrop-filter:none !important; }
  .nav__links {
    position:fixed; inset:0; flex-direction:column; align-items:flex-start; justify-content:center; gap:2px;
    padding:0 clamp(28px,8vw,48px); background:var(--paper);
    transform:translateX(100%); transition:transform .55s var(--rease); z-index:250;
  }
  .nav__toggle-input:checked ~ .nav__links { transform:none; }
  .nav__links .nav__link {
    display:block; font-family:var(--font-display); font-size:30px; line-height:1.25; padding:10px 0;
    opacity:1 !important; color:var(--ink) !important; letter-spacing:-.01em;
  }
  .nav__links .nav__ext { margin-top:30px; color:var(--ink) !important; border-color:var(--ink) !important; }
  .nav__links .lang { margin-top:14px; color:var(--ink) !important; border-color:var(--ink) !important; }
  .nav__links .nav__link[aria-current="page"] { color:var(--accent-brand) !important; text-decoration:none; }
  .nav__burger {
    display:flex; flex-direction:column; align-items:flex-end; justify-content:center; gap:5px;
    width:44px; height:44px; cursor:pointer; position:relative; z-index:300;
  }
  .nav__burger span { display:block; height:2px; width:26px; background:var(--ink); transition:transform .4s var(--rease), opacity .25s, background-color .5s; }
  .nav__toggle-input:checked ~ .nav__burger span { background:var(--ink) !important; }
  .nav__toggle-input:checked ~ .nav__burger span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
  .nav__toggle-input:checked ~ .nav__burger span:nth-child(2) { opacity:0; }
  .nav__toggle-input:checked ~ .nav__burger span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
}

/* ---------- Botones, etiquetas, estados ---------- */
.btn {
  display:inline-block; font-family:var(--font-mono); font-size:13.5px; letter-spacing:.04em;
  text-decoration:none; padding:17px 30px; border:1px solid var(--line);
  transition:transform .3s, background-color .3s, color .3s, border-color .3s;
}
.btn--accent { background:var(--accent); color:var(--accent-on); border-color:var(--accent); }
.btn--ghost { background:transparent; color:var(--fg); }
.btn--sm { font-size:13px; padding:15px 26px; }
.btn:hover { transform:translateY(-2px); }
.pane--deep .btn--ghost:hover, .pane--night .btn--ghost:hover, .pane--nature .btn--ghost:hover { background-color:rgba(255,255,255,.06); }
.row-ctas { display:flex; flex-wrap:wrap; gap:12px; margin-top:clamp(28px,4vh,40px); }

.tag {
  display:inline-block; font-family:var(--font-mono); font-size:12px; letter-spacing:.02em;
  color:var(--fg); border:1px solid var(--line); padding:7px 12px; opacity:.85;
}
.tags { display:flex; flex-wrap:wrap; gap:8px; }

.live-dot { width:8px; height:8px; border-radius:50%; background:var(--accent); display:inline-block; animation:pulseDot 2s infinite; flex:none; }
.live-dot[hidden] { display:none; }

.badge {
  display:inline-flex; align-items:center; gap:7px; width:fit-content;
  font-family:var(--font-mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase;
  padding:6px 10px; border:1px solid var(--line); color:var(--fg);
}
.badge--production { background:var(--accent-brand); border-color:var(--accent-brand); color:var(--ink); }
.badge--editing { background:var(--fg); border-color:var(--fg); color:var(--bg); }
.badge--live { border-color:var(--accent); }
.badge--galley { border-style:dashed; }
.badge--archived { border-style:dotted; }

/* ---------- Cabecera de capítulo ---------- */
.chap { padding:clamp(80px,12vh,150px) 0; }
.chap-head { display:flex; align-items:flex-end; gap:clamp(16px,2vw,28px); margin-bottom:clamp(34px,5vh,56px); }
.chap-num:empty { display:none; }
.chap-num { font-family:var(--font-display); font-weight:300; font-size:clamp(40px,7vw,104px); line-height:.78; color:var(--accent); flex:none; }
.chap-rule {
  flex:1; border-bottom:1px solid var(--line); padding-bottom:12px;
  display:flex; justify-content:space-between; align-items:baseline; gap:16px;
}
.chap-label { font-family:var(--font-mono); font-weight:400; font-size:12.5px; letter-spacing:.24em; text-transform:uppercase; color:var(--accent); }
.chap-meta { font-family:var(--font-mono); font-size:12px; letter-spacing:.1em; color:var(--sub); display:inline-flex; align-items:center; gap:8px; text-align:right; }

.title { font-family:var(--font-display); font-weight:600; font-size:clamp(34px,5.2vw,68px); line-height:1.0; letter-spacing:-.018em; }
.lede { font-size:clamp(16px,1.2vw,19px); line-height:1.6; color:var(--sub); }
.split { display:grid; grid-template-columns:1.15fr 1fr; gap:clamp(28px,5vw,72px); align-items:end; margin-bottom:clamp(40px,6vh,64px); }
.mini-label { font-family:var(--font-mono); font-weight:400; font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--accent); margin-bottom:18px; }

/* ---------- Hero ---------- */
.hero { min-height:100vh; min-height:100svh; display:flex; align-items:center; padding:148px 0 64px; overflow:hidden; }
.hero canvas { position:absolute; inset:0; width:100%; height:100%; z-index:0; pointer-events:none; }
.hero .wrap { position:relative; z-index:1; width:100%; }
.hero__kicker {
  display:flex; align-items:center; gap:16px; font-family:var(--font-mono); font-size:12.5px;
  letter-spacing:.26em; text-transform:uppercase; color:var(--accent); margin-bottom:clamp(26px,4.5vh,52px);
}
.hero__kicker::before { content:""; width:34px; height:1px; background:var(--accent); display:inline-block; }
.hero h1 {
  font-family:var(--font-display); font-weight:600; font-size:clamp(50px,9vw,138px);
  line-height:.94; letter-spacing:-.02em; max-width:15ch; text-wrap:balance;
}
.rotator { display:inline-block; font-style:italic; color:var(--accent); will-change:transform,opacity; }
.hero__sub { margin-top:clamp(30px,4.5vh,48px); max-width:52ch; font-size:clamp(17px,1.35vw,21px); line-height:1.58; color:var(--sub); }
.hero__ctas { display:flex; flex-wrap:wrap; gap:14px; margin-top:clamp(34px,5vh,56px); }
.hero__meta {
  position:absolute; bottom:32px; right:var(--gutter); z-index:1; font-family:var(--font-mono); font-size:12px;
  letter-spacing:.18em; color:var(--sub); text-transform:uppercase; text-align:right; line-height:1.6;
}
@media (max-width:600px) {
  .hero { padding-top:104px; padding-bottom:48px; }
  .hero h1 { font-size:clamp(38px,11vw,68px); }
  .hero__meta { display:none; }
}

/* ---------- Cubiertas tipográficas ---------- */
.book { position:relative; width:100%; aspect-ratio:2/3; container-type:inline-size; } /* las cubiertas se escalan con cqi */
.book::before { /* bloque de páginas */
  content:""; position:absolute; inset:0; transform:translate(10px,10px);
  border:1px solid var(--line); background:var(--bg);
}
.book--lg { width:min(100%,380px); margin:0 auto; }
.book--card::before { transform:translate(7px,7px); }

.cover {
  position:absolute; inset:0; overflow:hidden;
  border:1px solid var(--line); padding:9cqi 8cqi 8cqi;
  display:flex; flex-direction:column;
}
.cover::before { /* lomo */
  content:""; position:absolute; top:0; bottom:0; left:4cqi; width:1px; background:var(--fg); opacity:.18;
}
.cover__top { display:flex; justify-content:space-between; align-items:baseline; gap:8px; font-family:var(--font-mono); font-size:clamp(9px,3.4cqi,11px); letter-spacing:.1em; text-transform:uppercase; }
.cover__brand { font-family:var(--font-display); font-weight:700; text-transform:none; letter-spacing:-.02em; font-size:clamp(11px,5.4cqi,18px); }
.cover__brand .dot { color:var(--accent); }
.cover__kind { display:inline-flex; align-items:center; gap:.5em; color:var(--sub); }
.cover__kind .live-dot { width:.75em; height:.75em; }
.cover__mesh { flex:1; min-height:0; width:100%; margin:5cqi 0; }
.cover__lines { fill:none; stroke:var(--fg); stroke-opacity:.34; stroke-width:.8; }
.cover__node { fill:var(--sub); }
.cover__hot { fill:var(--accent); }
.cover__title { font-family:var(--font-display); font-weight:600; font-size:clamp(17px,13cqi,58px); line-height:.92; letter-spacing:-.02em; }
.cover__title--long { font-size:clamp(14px,9.6cqi,42px); line-height:.95; }
.cover__foot {
  display:flex; justify-content:space-between; gap:8px; margin-top:5cqi; padding-top:3.5cqi; border-top:1px solid var(--fg);
  font-family:var(--font-display); font-style:italic; font-size:clamp(10.5px,4.4cqi,16px);
}

.cover__bar { fill:var(--fg); opacity:.5; }
.cover__cell { fill:var(--fg); opacity:.14; }
.cover__cell--on { opacity:.55; }
.book--square { aspect-ratio:1/1; width:min(100%,440px); }

/* ---------- Tres puertas: leer · escuchar · aprender ---------- */
.doors { padding:0 0 clamp(70px,10vh,120px); }
.doors__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.door {
  display:flex; flex-direction:column; gap:14px; min-height:270px; padding:clamp(24px,2.6vw,40px);
  border-right:1px solid var(--line); border-bottom:1px solid var(--line);
  text-decoration:none; color:inherit; transition:background-color .4s;
}
.door:hover { background-color:var(--tint); }
.door__verb { font-family:var(--font-display); font-weight:600; font-size:clamp(36px,4vw,60px); line-height:.92; letter-spacing:-.025em; }
.lockup.lockup--door { font-size:19px; }
.lockup.lockup--door .lockup__sub { font-size:12px; }
.door--here, .door[aria-current="page"] { background-color:var(--tint); }
.lockup.lockup--xl { font-size:clamp(40px,6vw,92px); line-height:.92; letter-spacing:-.025em; gap:16px; }
.lockup.lockup--xl .lockup__sub { font-size:clamp(13px,1.3vw,18px); color:var(--accent); opacity:1; }
/* Public Mesh Media: Journal y, debajo, pódcast y agregadores */
.media-block + .media-block { margin-top:clamp(56px,9vh,96px); padding-top:clamp(36px,5vh,56px); border-top:1px solid var(--line); }
.media-block__head { margin-bottom:clamp(24px,4vh,36px); }
.media-block__head .mini-label { margin-bottom:12px; }
.media-block__head .lede { max-width:60ch; }
.learn__claim { font-family:var(--font-display); font-weight:500; font-size:clamp(24px,2.6vw,38px); line-height:1.08; letter-spacing:-.012em; margin-top:20px; max-width:20ch; }
.door__verb .dot { color:var(--accent); }
.door p { font-size:15.5px; line-height:1.55; color:var(--sub); max-width:34ch; }
.door__link { margin-top:auto; font-family:var(--font-mono); font-size:12.5px; letter-spacing:.04em; color:var(--accent); }

/* ---------- 03 · Pódcast ---------- */
.show { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(36px,6vw,96px); align-items:center; }
.show__imprint { display:block; font-family:var(--font-mono); font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--accent); margin-bottom:16px; }
.show__title { font-family:var(--font-display); font-weight:700; font-size:clamp(46px,6.4vw,96px); line-height:.9; letter-spacing:-.03em; }
.show__sub { font-family:var(--font-display); font-style:italic; font-size:clamp(19px,1.8vw,25px); line-height:1.3; margin:16px 0 26px; max-width:30ch; }
.platforms { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:24px; }
.platforms[hidden] { display:none; }
.platforms__label { font-family:var(--font-mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--sub); margin-right:6px; }
.chipl {
  font-family:var(--font-mono); font-size:12px; letter-spacing:.03em; color:var(--fg); text-decoration:none;
  border:1px solid var(--line); padding:7px 12px; transition:background-color .3s;
}
.chipl:hover { background-color:var(--tint); }
.episodes {
  list-style:none; margin:clamp(40px,6vh,64px) 0 0; padding:0;
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(6,auto); grid-auto-flow:column;
  column-gap:clamp(24px,4vw,64px); border-top:1px solid var(--line);
}
.episodes li { display:flex; gap:16px; align-items:baseline; padding:14px 0; border-bottom:1px solid var(--line); font-size:15.5px; line-height:1.4; }
.episodes li::before { content:attr(data-n); font-family:var(--font-display); font-weight:300; font-size:24px; line-height:1; color:var(--accent); min-width:32px; }
.episodes a, .pieces a { color:inherit; text-decoration:none; }
.episodes a:hover { text-decoration:underline; text-underline-offset:3px; }
.shows { display:grid; gap:clamp(80px,12vh,140px); }
.show-block--rev .show { grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); }
.show-block--rev .show__cover { order:2; }
.show__imprint { display:flex !important; flex-wrap:wrap; align-items:center; gap:12px; }
.show__more { display:inline-block; margin-top:18px; font-family:var(--font-mono); font-size:12.5px; letter-spacing:.04em; color:var(--accent); text-decoration:none; }
.show__more:hover { text-decoration:underline; text-underline-offset:3px; }
.badge--onair { border-color:var(--accent); }
.pieces__text { flex:1; }
.pieces__meta { font-family:var(--font-mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--sub); white-space:nowrap; padding-left:12px; }
.subhead { margin:clamp(70px,10vh,110px) 0 clamp(26px,4vh,40px); display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:12px 40px; border-bottom:1px solid var(--line); padding-bottom:14px; }
.subhead h3 { font-family:var(--font-display); font-weight:600; font-size:clamp(24px,2.4vw,32px); letter-spacing:-.012em; }
.subhead p { font-size:15px; color:var(--sub); max-width:52ch; }

/* ---------- 01 · Título destacado ---------- */
.feature { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(36px,6vw,96px); align-items:center; }
.feature__title { font-size:clamp(30px,4.4vw,56px); line-height:1.02; max-width:18ch; margin-bottom:16px; }
.feature__author { font-family:var(--font-display); font-style:italic; font-size:clamp(18px,1.6vw,22px); margin-bottom:22px; }
.feature__desc { font-size:clamp(16px,1.2vw,19px); line-height:1.6; max-width:54ch; margin-bottom:26px; }
.specs.specs--inline { display:flex; flex-wrap:wrap; gap:14px 34px; margin-top:0; padding-top:18px; border-top:1px solid var(--line); border-bottom:0; }
.specs--inline .specs__row { display:flex; flex-direction:column; gap:4px; padding:0; border-top:0; }
.specs--inline dt { font-family:var(--font-mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--sub); }
.specs--inline dd { font-size:15px; }

/* ---------- 02 · Catálogo ---------- */
.filters { display:grid; gap:12px; margin-bottom:clamp(36px,5vh,56px); }
.filters__row { display:flex; flex-wrap:wrap; gap:8px; }
.chipf {
  display:inline-flex; align-items:center; gap:8px; cursor:pointer;
  font-family:var(--font-mono); font-size:12px; letter-spacing:.04em; color:var(--fg);
  background:transparent; border:1px solid var(--line); padding:9px 14px; transition:background-color .3s, color .3s;
}
.chipf:hover { background:var(--tint); }
.chipf[aria-pressed="true"] { background:var(--fg); color:var(--bg); }
.chipf--quiet { font-size:12px; padding:7px 12px; border-color:rgba(14,14,12,.35); }
.swatch { width:11px; height:11px; border:1px solid var(--ink); display:inline-block; flex:none; }

.catalogue { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(36px,4vw,56px) clamp(20px,2.4vw,36px); }
.catalogue__empty { grid-column:1 / -1; font-family:var(--font-mono); font-size:13px; color:var(--sub); padding:30px 0; }
.tcard { display:flex; flex-direction:column; gap:10px; text-decoration:none; color:inherit; }
.tcard[hidden] { display:none; }
.tcard__price { font-family:var(--font-display); font-weight:600; font-size:20px; letter-spacing:-.01em; }
.tcard__price:empty { display:none; }
.tcard .book { margin-bottom:14px; transition:transform .4s var(--rease); }
.tcard:hover .book { transform:translateY(-4px); }
.tcard__title { font-family:var(--font-display); font-weight:600; font-size:clamp(19px,1.6vw,23px); line-height:1.08; letter-spacing:-.01em; }
.tcard:hover .tcard__title { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.tcard__sub { font-size:14px; line-height:1.45; color:var(--sub); }
.tcard .badge { margin-top:4px; }

/* ---------- 03 · Colecciones ---------- */
.tiles { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--ink); border-left:1px solid var(--ink); }
.tile { padding:clamp(22px,2.2vw,34px); border-right:1px solid var(--ink); border-bottom:1px solid var(--ink); display:flex; flex-direction:column; gap:14px; min-height:320px; }
.tile__head { display:flex; justify-content:space-between; align-items:baseline; gap:10px; }
.tile__count { font-family:var(--font-mono); font-size:12px; letter-spacing:.1em; color:var(--sub); }
.tile h3 { font-family:var(--font-display); font-weight:600; font-size:clamp(26px,2.5vw,36px); line-height:.98; letter-spacing:-.018em; }
.tile p { font-size:15px; line-height:1.55; color:var(--sub); }
.tile__link { margin-top:auto; display:inline-flex; align-items:center; min-height:44px; font-family:var(--font-mono); font-size:12px; letter-spacing:.06em; text-decoration:none; color:var(--fg); }
.tile__link:hover { text-decoration:underline; text-underline-offset:3px; }

/* ---------- 04 · Journal y 05 · Conversaciones ---------- */
.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,1.5vw,24px); }
.card {
  border:1px solid var(--line); padding:clamp(22px,2vw,32px); display:flex; flex-direction:column; min-height:240px;
  text-decoration:none; color:inherit; transition:background-color .4s, transform .4s;
}
a.card:hover, article.card:hover { background-color:rgba(255,255,255,.05); transform:translateY(-3px); }
.card__kicker { font-family:var(--font-mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--accent); margin-bottom:18px; }
.card h3 { font-family:var(--font-display); font-weight:600; font-size:clamp(19px,1.6vw,23px); line-height:1.12; margin-bottom:14px; letter-spacing:-.01em; }
.card p { font-size:14.5px; line-height:1.5; color:var(--sub); }
.card__date { margin-top:auto; padding-top:22px; font-family:var(--font-mono); font-size:12px; letter-spacing:.1em; color:var(--sub); opacity:.7; }
.cards--audio .card { min-height:200px; }

/* ---------- 04 · Cursos ---------- */
.course { display:grid; grid-template-columns:minmax(150px,.55fr) 1fr 1fr; gap:clamp(28px,4vw,56px); align-items:start; border:1px solid var(--line); padding:clamp(28px,3vw,48px); }
.course__kicker { display:inline-flex; align-items:center; gap:8px; font-family:var(--font-mono); font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); margin-bottom:14px; }
.course__kicker::before { content:""; width:8px; height:8px; border-radius:50%; background:var(--accent); }
.course__links { display:flex; flex-wrap:wrap; gap:14px 32px; margin-top:26px; font-family:var(--font-mono); font-size:12.5px; letter-spacing:.04em; }
.course__links a { display:inline-flex; align-items:center; min-height:44px; color:var(--fg); text-decoration:underline; text-decoration-color:var(--line); text-underline-offset:5px; }
.course__links a:hover { color:var(--accent); text-decoration-color:var(--accent); }
.course h3 a { color:inherit; text-decoration:none; }
.course h3 a:hover { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; }
.course + .course { margin-top:clamp(28px,4vh,40px); }
.course h3 { font-family:var(--font-display); font-weight:700; font-size:clamp(26px,3vw,40px); line-height:1.0; letter-spacing:-.015em; margin-bottom:16px; }
.course p { font-size:clamp(16px,1.2vw,18px); line-height:1.6; color:var(--sub); margin-bottom:22px; max-width:46ch; }
.outcomes { list-style:none; margin:0; padding:0; }
.outcomes li { display:flex; gap:14px; align-items:baseline; padding:14px 0; border-top:1px solid var(--line); font-size:15.5px; line-height:1.5; }
.outcomes li:last-child { border-bottom:1px solid var(--line); }
.outcomes li::before { content:"→"; color:var(--accent); font-family:var(--font-mono); }
.outcomes li.is-no::before { content:"×"; }

/* Aviso de salida: formulario corto que despliega «Avisarme cuando salga» */
.notify { margin-top:22px; max-width:460px; }
.notify[hidden] { display:none; }
.notify label { display:block; font-family:var(--font-mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--sub); margin-bottom:9px; }
.notify__row { display:flex; }
.notify input {
  flex:1; min-width:0; background:transparent; border:1px solid var(--line); border-right:none; border-radius:0; color:var(--fg);
  font-family:var(--font-mono); font-size:16px; padding:14px;
}
.notify input::placeholder { color:var(--sub); opacity:.8; }
.notify input:focus { outline:1px solid var(--accent); outline-offset:0; }
.notify button {
  flex:none; cursor:pointer; font-family:var(--font-mono); font-size:13px; letter-spacing:.06em; text-transform:uppercase;
  background:var(--accent); color:var(--accent-on); border:1px solid var(--accent); padding:0 22px; min-height:50px;
}
.notify button:disabled { opacity:.6; cursor:wait; }
.notify__hint { margin-top:12px; font-size:13.5px; line-height:1.5; color:var(--sub); max-width:46ch; }

/* ---------- Línea editorial ---------- */
.line-title { font-family:var(--font-display); font-weight:600; font-size:clamp(40px,6.2vw,92px); line-height:.96; letter-spacing:-.02em; max-width:17ch; text-wrap:balance; }
.line-sub { font-size:clamp(17px,1.5vw,22px); line-height:1.5; color:var(--sub); margin-top:clamp(22px,3.5vh,34px); max-width:46ch; }
.questions { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:clamp(28px,5vw,72px); }
.questions li { display:grid; grid-template-columns:auto minmax(0,1fr); column-gap:18px; row-gap:10px; padding:clamp(22px,3vh,30px) 0; border-top:1px solid var(--line); }
.questions__n { font-family:var(--font-mono); font-size:12.5px; letter-spacing:.12em; color:var(--accent); padding-top:7px; }
.questions h3 { font-family:var(--font-display); font-weight:600; font-size:clamp(20px,1.9vw,26px); line-height:1.15; letter-spacing:-.01em; }
.questions p { grid-column:2; color:var(--sub); font-size:15.5px; line-height:1.55; }


/* ---------- 07 · Newsletter ---------- */
#newsletter { padding:clamp(90px,14vh,170px) 0; }
.subscribe-title { font-family:var(--font-display); font-weight:600; font-size:clamp(38px,5.6vw,78px); line-height:.98; letter-spacing:-.022em; margin-bottom:26px; max-width:14ch; }
.form { border:1px solid var(--line); padding:clamp(28px,3vw,40px); background:rgba(255,255,255,.03); }
.form label { display:block; font-family:var(--font-mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--sub); margin-bottom:9px; }
.form input {
  width:100%; background:transparent; border:1px solid var(--line); color:var(--fg);
  font-family:var(--font-mono); font-size:16px; padding:14px; margin-bottom:18px;
}
.form input:focus { outline:1px solid var(--accent); outline-offset:0; }
.form select, .form textarea {
  display:block; width:100%; background:transparent; border:1px solid var(--line); border-radius:0; color:var(--fg);
  font-family:var(--font-mono); font-size:16px; padding:14px; margin-bottom:18px;
}
.form select {
  appearance:none; -webkit-appearance:none; padding-right:44px; cursor:pointer;
  background-image:linear-gradient(45deg, transparent 50%, var(--fg) 50%), linear-gradient(135deg, var(--fg) 50%, transparent 50%);
  background-position:calc(100% - 22px) 50%, calc(100% - 16px) 50%; background-size:6px 6px; background-repeat:no-repeat;
}
.form select option { color:#0E0E0C; background:#E9E5D7; }
.form textarea { min-height:150px; resize:vertical; line-height:1.5; }
.form select:focus, .form textarea:focus { outline:1px solid var(--accent); outline-offset:0; }
.form .form__check {
  display:flex; align-items:flex-start; gap:12px; cursor:pointer;
  font-family:var(--font-body); font-size:14px; line-height:1.5; letter-spacing:0; text-transform:none; color:var(--sub); margin:4px 0 20px;
}
.form .form__check input { width:20px; height:20px; padding:0; margin:1px 0 0; flex:none; accent-color:var(--accent); }
.form__hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form button:disabled { opacity:.6; cursor:wait; transform:none; }
.form__status { margin-top:14px; font-family:var(--font-mono); font-size:13px; line-height:1.5; color:var(--fg); }
.form__status:empty { display:none; }
.form button {
  width:100%; cursor:pointer; font-family:var(--font-mono); font-size:13px; letter-spacing:.06em; text-transform:uppercase;
  background:var(--accent); color:var(--accent-on); border:none; padding:16px; margin-top:4px; transition:transform .3s;
}
.form button:hover { transform:translateY(-2px); }
.form__intro { font-family:var(--font-display); font-weight:600; font-size:22px; line-height:1.15; margin-bottom:8px; }
.form__hint { font-size:14px; line-height:1.5; color:var(--sub); margin-bottom:24px; }
.form__foot { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; margin-top:18px; font-family:var(--font-mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--sub); }
.journal-box { border-top:1px solid var(--line); margin-top:34px; padding-top:26px; max-width:46ch; }
.journal-box p { color:var(--sub); line-height:1.55; margin-bottom:18px; }

/* ---------- Ficha de título ---------- */
.book-head { padding:clamp(120px,16vh,170px) 0 clamp(60px,9vh,110px); }
.crumbs { display:flex; flex-wrap:wrap; gap:10px; font-family:var(--font-mono); font-size:12px; letter-spacing:.06em; color:var(--sub); margin-bottom:clamp(30px,5vh,56px); }
.crumbs a { text-decoration:none; padding-block:14px; margin-block:-14px; } /* área táctil mayor sin mover la línea */
.crumbs a:hover { color:var(--fg); text-decoration:underline; text-underline-offset:3px; }
.book-head__grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(36px,6vw,96px); align-items:start; }
.book-head__kicker { display:flex; flex-wrap:wrap; align-items:center; gap:14px; font-family:var(--font-mono); font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); margin-bottom:22px; }
.book-head__title { font-family:var(--font-display); font-weight:600; font-size:clamp(40px,5.6vw,80px); line-height:.96; letter-spacing:-.02em; max-width:14ch; }
.book-head__subtitle { font-size:clamp(17px,1.4vw,21px); line-height:1.45; color:var(--sub); margin-top:16px; max-width:40ch; }
.book-head__author { font-family:var(--font-display); font-style:italic; font-size:clamp(18px,1.6vw,22px); margin-top:20px; }
.book-head .row-ctas { margin-top:30px; }
.specs { margin-top:clamp(30px,4vh,44px); border-bottom:1px solid var(--line); }
.specs__row { display:grid; grid-template-columns:150px minmax(0,1fr); gap:16px; padding:12px 0; border-top:1px solid var(--line); align-items:baseline; }
.specs dt { font-family:var(--font-mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--sub); }
.specs dd { font-size:15px; line-height:1.5; }
.specs dd a { display:inline-block; padding-block:13px; margin-block:-13px; text-underline-offset:3px; }

.book-body { padding:0 0 clamp(80px,12vh,140px); }
.book-body__grid { display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(36px,6vw,96px); align-items:start; border-top:1px solid var(--line); padding-top:clamp(40px,6vh,64px); }
.book-body__desc p { font-family:var(--font-display); font-weight:400; font-size:clamp(19px,1.8vw,26px); line-height:1.38; letter-spacing:-.005em; max-width:34ch; }
.book-body__author { margin-top:clamp(40px,6vh,64px); max-width:52ch; }
.book-body__author p { font-size:15.5px; line-height:1.6; color:var(--sub); }

.pieces { list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.pieces li { display:flex; gap:14px; padding:12px 0; border-bottom:1px solid var(--line); font-size:15.5px; line-height:1.4; }
.pieces li::before { content:attr(data-n); font-family:var(--font-mono); font-size:12px; color:var(--sub); padding-top:3px; flex:none; min-width:18px; }
.pieces a { display:block; padding-block:12px; margin-block:-12px; text-decoration:none; }
.pieces a:hover { text-decoration:underline; text-underline-offset:3px; }
.pieces .next { color:var(--sub); font-style:italic; }
.pieces .next::before { content:"→"; color:var(--accent); font-style:normal; }

.catalogue--related { grid-template-columns:repeat(4,minmax(0,1fr)); }

.aula-block { padding:0 0 clamp(80px,12vh,140px); }
.aula-block__grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,72px); border-top:1px solid var(--line); padding-top:clamp(40px,6vh,64px); }
.aula-list { margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }
.aula-list li { padding:12px 0; border-bottom:1px solid rgba(14,14,12,.2); font-size:15.5px; line-height:1.5; }
.aula-gap { margin-top:clamp(48px,7vh,76px); }
.aula-sec { border-top:1px solid var(--line); }
.aula-sec:last-of-type { border-bottom:1px solid var(--line); }
.aula-sec summary { display:flex; justify-content:space-between; gap:18px; padding:16px 0; cursor:pointer; font-family:var(--font-display); font-weight:600; font-size:clamp(18px,1.7vw,22px); line-height:1.2; }
.aula-rows { margin:0; padding:0 0 12px; list-style:none; }
.aula-row { display:flex; justify-content:space-between; gap:18px; padding:9px 0; border-top:1px solid rgba(14,14,12,.15); font-size:15px; line-height:1.4; }
.aula-time { font-family:var(--font-mono); font-size:12px; font-weight:400; color:var(--sub); white-space:nowrap; padding-top:2px; }
.aula-open { font-family:var(--font-mono); font-size:12px; color:var(--accent); margin-left:6px; white-space:nowrap; }
.aula-score { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 14px; }
.aula-score b { font-family:var(--font-display); font-weight:600; font-size:clamp(44px,5vw,64px); line-height:1; letter-spacing:-.02em; }
.aula-score span:last-child { font-family:var(--font-mono); font-size:12px; color:var(--sub); }
.aula-stars { font-family:var(--font-mono); color:var(--accent); letter-spacing:.08em; white-space:nowrap; }
.aula-quotes { display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:clamp(20px,3vw,40px); margin-top:clamp(24px,4vh,40px); }
.aula-quote { margin:0; padding-top:14px; border-top:1px solid var(--line); }
.aula-quote p { margin:10px 0; font-size:15.5px; line-height:1.5; }
.aula-quote footer { font-family:var(--font-mono); font-size:12px; color:var(--sub); }
@media (max-width:760px) { .aula-block__grid, .aula-quotes { grid-template-columns:minmax(0,1fr); } }

/* ---------- Pie ---------- */
.footer { padding:clamp(56px,8vh,90px) 0 clamp(28px,4vh,40px); border-top:1px solid var(--line); color:var(--sub); }
.footer__grid { display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:clamp(28px,5vw,72px); padding-bottom:clamp(40px,6vh,64px); }
.lockup { display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; font-family:var(--font-display); font-weight:700; font-size:clamp(24px,2.4vw,32px); letter-spacing:-.015em; line-height:1; color:var(--fg); }
.lockup .dot { color:var(--accent); }
.lockup__sub { font-family:var(--font-mono); font-weight:400; font-size:clamp(11px,.9vw,13px); letter-spacing:.24em; text-transform:uppercase; opacity:.8; }
.lockup--sm { font-size:24px; margin-bottom:20px; }
.footer__about p { font-size:15px; line-height:1.6; max-width:48ch; }
.footer__col h4, .footer__h { font-family:var(--font-mono); font-weight:400; font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--accent); margin-bottom:16px; }
.footer__col ul { list-style:none; margin:0; padding:0; display:grid; gap:0; }
.footer__col a { display:inline-flex; align-items:center; min-height:40px; color:var(--fg); text-decoration:none; font-size:15px; }
.footer__col a:hover { text-decoration:underline; text-underline-offset:3px; }
.footer__col li[hidden] { display:none; }
.footer__bottom {
  display:flex; flex-wrap:wrap; gap:18px; justify-content:space-between; align-items:center;
  border-top:1px solid var(--line); padding-top:22px; font-family:var(--font-mono); font-size:12px; letter-spacing:.04em;
}

/* ---------- Responsive ---------- */
@media (max-width:1080px) {
  .catalogue, .catalogue--related { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .tiles { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .course { grid-template-columns:180px minmax(0,1fr); }
  .course > :last-child { grid-column:1 / -1; }
}
@media (max-width:820px) {
  .split, .cards, .course, .feature, .show, .doors__grid, .book-head__grid, .book-body__grid, .footer__grid { grid-template-columns:minmax(0,1fr); }
  .episodes { grid-template-columns:1fr; grid-template-rows:none; grid-auto-flow:row; }
  .door { min-height:0; }
  .course__cover .book { width:min(60%,220px); }
  .show .book--square { width:min(calc(100% - 12px),360px); }
  .show-block--rev .show { grid-template-columns:minmax(0,1fr); }
  .show-block--rev .show__cover { order:0; }
  .episodes { grid-template-rows:none !important; }
  .split { align-items:start; }
  .catalogue, .catalogue--related { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .feature .book { width:min(100%,320px); }
  .book-head__grid .book--lg { width:min(78%,320px); margin:0; }
  .specs__row { grid-template-columns:120px minmax(0,1fr); }
}
@media (max-width:520px) {
  .tiles { grid-template-columns:1fr; }
  .tile { min-height:0; }
}

/* ---------- Móvil y pantallas táctiles ---------- */
@media (max-width:820px), (pointer:coarse) {
  .chipf { min-height:44px; }
  .chipl { display:inline-flex; align-items:center; min-height:44px; }
  .footer__col a { min-height:44px; }
}
@media (max-width:820px) {
  /* Filtros: una fila deslizable por grupo en lugar de seis filas apiladas */
  .filters__row {
    flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch;
    margin-inline:calc(-1 * var(--gutter)); padding-inline:var(--gutter); scroll-padding-inline:var(--gutter);
    -webkit-mask-image:linear-gradient(90deg, #000 calc(100% - 28px), transparent);
            mask-image:linear-gradient(90deg, #000 calc(100% - 28px), transparent);
  }
  .filters__row::-webkit-scrollbar { display:none; }
  .chipf { flex:none; }
  .feature .book { width:min(72%,280px); margin:0 auto 0 0; }
  .feature { gap:44px; }
  .lockup.lockup--xl { font-size:clamp(30px,9vw,92px); }
  /* Índices: el dato (duración, fecha) bajo el título para no estrecharlo */
  .pieces li, .episodes li { display:grid; grid-template-columns:auto minmax(0,1fr); column-gap:14px; row-gap:4px; }
  .pieces__meta { grid-column:2; padding-left:0; white-space:normal; }
  .nav__links .lang button { min-width:48px; min-height:44px; padding:12px 14px; font-size:13px; }
  .nav__links .nav__ext { padding:14px 20px; font-size:12.5px; }
  .questions { grid-template-columns:minmax(0,1fr); }
}
/* Tableta en vertical: tres columnas de catálogo y las tres ramas en fila */
@media (min-width:601px) and (max-width:820px) {
  .catalogue, .catalogue--related { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:600px) {
  .hero__kicker { font-size:12px; letter-spacing:.14em; gap:12px; }
  .hero__kicker::before { width:22px; }
  .chap-rule { flex-wrap:wrap; row-gap:6px; }
  .chap-label { letter-spacing:.16em; }
  .chap-meta { white-space:normal; text-align:left; }
  .tile { padding:24px; }
  /* Aviso de salida: correo y botón apilados, ambos a todo el ancho */
  .notify__row { flex-direction:column; }
  .notify input { border-right:1px solid var(--line); border-bottom:none; }
}

/* ---------- Cabecera de Editions, Media, Learning y Tienda ---------- */
.page-head { padding:clamp(130px,19vh,190px) 0 clamp(56px,8vh,96px); overflow:hidden; }
.page-head canvas { position:absolute; inset:0; width:100%; height:100%; z-index:0; pointer-events:none; }
.page-head .wrap { position:relative; z-index:1; }
.page-head__split { margin-bottom:0; align-items:end; }
.page-head__title { font-size:clamp(38px,5.6vw,80px); line-height:.98; max-width:15ch; text-wrap:balance; }
.page-head .lede { max-width:52ch; }
.page-head .course__links { margin-top:18px; }
.chap--tight { padding-top:clamp(48px,7vh,90px); }
.media-block__lede { max-width:62ch; margin-bottom:clamp(28px,4vh,44px); }
.footer__legal { display:inline-flex; flex-wrap:wrap; gap:6px 20px; }
.footer__legal a { color:var(--fg); text-decoration:none; display:inline-flex; align-items:center; min-height:32px; }
.footer__legal a:hover { text-decoration:underline; text-underline-offset:3px; }

/* ---------- Compra (ficha, tienda y escuela) ---------- */
.buys { display:grid; gap:14px; margin-top:28px; }
.buy { border:1px solid var(--line); padding:clamp(18px,2vw,26px); display:grid; gap:12px; max-width:560px; }
.buy__head { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 14px; }
.buy__head { justify-content:space-between; }
.buy__type { font-family:var(--font-mono); font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); }
.buy__amount { display:inline-flex; align-items:baseline; gap:10px; }
.buy__price { font-family:var(--font-display); font-weight:600; font-size:clamp(26px,2.4vw,34px); line-height:1; letter-spacing:-.015em; }
.buy__vat { font-family:var(--font-mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--sub); }
.buy__format { font-size:14.5px; line-height:1.45; color:var(--sub); }
.buy__zones { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.buy__label { font-family:var(--font-mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--sub); margin-right:4px; }
.chipz {
  display:inline-flex; align-items:center; min-height:40px; font-family:var(--font-mono); font-size:12px; letter-spacing:.03em;
  color:var(--fg); text-decoration:none; border:1px solid var(--line); padding:7px 12px; transition:background-color .3s, color .3s;
}
.chipz:hover { background:var(--tint); }
.chipz[aria-current="true"] { background:var(--fg); color:var(--bg); }
.buy .btn { justify-self:start; }
.buy__note { font-size:13.5px; line-height:1.5; color:var(--sub); }
.buy__soon { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.buy__also { font-family:var(--font-mono); font-size:12px; letter-spacing:.04em; color:var(--fg); text-underline-offset:4px; justify-self:start; display:inline-flex; align-items:center; min-height:36px; }
.buy__also:hover { color:var(--accent); }
.buy__test { font-family:var(--font-mono); font-size:12px; line-height:1.5; border:1px dashed var(--accent); color:var(--fg); padding:8px 12px; }
.buy__test--banner { margin-top:28px; max-width:620px; }
.course .buys { margin-top:22px; }
.book-head__text > .buy, .course .buy, .dl .buy { margin-top:26px; }

.pcards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(36px,4vw,56px) clamp(28px,3vw,48px); }
.pcard { display:grid; grid-template-columns:minmax(110px,.48fr) minmax(0,1fr); gap:clamp(20px,2.4vw,32px); align-items:start; border-top:1px solid var(--line); padding-top:clamp(22px,3vh,30px); }
.pcard__cover { display:block; }
.pcard__body { display:grid; gap:10px; }
.pcard__body .tcard__title a { color:inherit; text-decoration:none; }
.pcard__body .tcard__title a:hover { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.pcard .buy { margin-top:8px; }

.infogrid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.infogrid__cell { padding:clamp(22px,2.2vw,32px); border-right:1px solid var(--line); border-bottom:1px solid var(--line); display:grid; align-content:start; gap:14px; }
.infogrid__cell h3 { font-family:var(--font-display); font-weight:600; font-size:clamp(20px,1.8vw,26px); letter-spacing:-.01em; }
.infogrid__cell p { font-size:15px; line-height:1.55; color:var(--sub); }
.infogrid__cell a { color:var(--fg); text-underline-offset:4px; font-family:var(--font-mono); font-size:12.5px; }
.ship { width:100%; border-collapse:collapse; font-size:14.5px; }
.ship th, .ship td { text-align:left; padding:9px 10px 9px 0; border-top:1px solid var(--line); font-weight:400; vertical-align:baseline; }
.ship tr:last-child th, .ship tr:last-child td { border-bottom:1px solid var(--line); }
.ship td { font-family:var(--font-mono); font-size:12.5px; }
.ship td:nth-child(2) { white-space:nowrap; }

/* ---------- Aviso legal ---------- */
.legal { padding-bottom:0; }
.legal:last-of-type { padding-bottom:clamp(80px,12vh,140px); }
.legal__grid { display:grid; grid-template-columns:minmax(0,.55fr) minmax(0,1.45fr); gap:clamp(24px,5vw,72px); border-top:1px solid var(--line); padding-top:clamp(30px,4vh,44px); }
.legal__text { display:grid; gap:16px; max-width:68ch; }
.legal__text p { font-size:16px; line-height:1.65; }
.legal__text .ship { max-width:520px; }
.legal__id { margin-top:0; margin-bottom:10px; }
.pending { background:var(--accent-brand); color:var(--ink); font-family:var(--font-mono); font-size:.85em; padding:1px 6px; }

/* ---------- Gracias, raíz y 404 ---------- */
.thanks .line-title { margin-bottom:8px; }
.order { margin:clamp(18px,3vh,28px) 0 clamp(24px,4vh,40px); }
.order .row-ctas { margin-top:22px; }
.order .row-ctas[hidden], .order__hint[hidden] { display:none; }
.order__hint { margin-top:14px; font-size:14.5px; color:var(--sub); max-width:52ch; }
.order__help { font-size:15px; line-height:1.55; color:var(--sub); max-width:52ch; }
.root-pick { min-height:100vh; min-height:100svh; display:flex; align-items:center; }
.root-pick__list { list-style:none; margin:clamp(30px,5vh,56px) 0; padding:0; border-top:1px solid var(--line); max-width:820px; }
.root-pick__list a { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 18px; padding:18px 0; border-bottom:1px solid var(--line); text-decoration:none; color:var(--fg); }
.root-pick__list strong { font-family:var(--font-display); font-weight:600; font-size:clamp(24px,2.6vw,34px); letter-spacing:-.012em; }
.root-pick__list span { font-family:var(--font-mono); font-size:12px; letter-spacing:.06em; color:var(--sub); }
.root-pick__list a:hover strong { color:var(--accent); }
.root-pick .lede { max-width:62ch; }

@media (max-width:1080px) {
  .infogrid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pcards { grid-template-columns:minmax(0,1fr); }
  .pcard { grid-template-columns:minmax(140px,220px) minmax(0,1fr); }
}
@media (max-width:820px) {
  .pcards, .legal__grid { grid-template-columns:minmax(0,1fr); }
  .page-head { padding-top:120px; }
}
@media (max-width:520px) {
  .infogrid { grid-template-columns:minmax(0,1fr); }
  .pcard { grid-template-columns:minmax(0,1fr); }
  .pcard__cover .book { width:min(56%,200px); }
}

/* ---------- Cesta, ofertas y descarga gratuita ---------- */
.nav__cart { color:var(--accent-brand) !important; opacity:1 !important; white-space:nowrap; }
.nav__cart[hidden] { display:none; }
.cart__grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr); gap:clamp(28px,4vw,56px); align-items:start; margin-top:clamp(28px,4vh,44px); }
.cart__items { list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.cart__item { display:grid; grid-template-columns:minmax(0,1fr) auto auto auto; gap:10px 20px; align-items:center; padding:18px 0; border-bottom:1px solid var(--line); }
.cart__info { display:grid; gap:4px; }
.cart__name { font-family:var(--font-display); font-weight:600; font-size:clamp(18px,1.6vw,22px); line-height:1.15; color:var(--fg); text-decoration:none; }
.cart__name:hover { text-decoration:underline; text-underline-offset:4px; }
.cart__meta { font-size:13.5px; color:var(--sub); line-height:1.45; }
.cart__offer { font-family:var(--font-mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); }
.cart__qty { display:inline-flex; align-items:center; gap:8px; font-family:var(--font-mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--sub); }
.cart__qty select, .cart__ship select {
  appearance:none; -webkit-appearance:none; background:transparent; border:1px solid var(--line); border-radius:0; color:var(--fg);
  font-family:var(--font-mono); font-size:15px; padding:9px 34px 9px 12px; cursor:pointer;
  background-image:linear-gradient(45deg, transparent 50%, var(--fg) 50%), linear-gradient(135deg, var(--fg) 50%, transparent 50%);
  background-position:calc(100% - 18px) 50%, calc(100% - 12px) 50%; background-size:6px 6px; background-repeat:no-repeat;
}
.cart__qty select:focus, .cart__ship select:focus { outline:1px solid var(--accent); outline-offset:0; }
.cart__price { font-family:var(--font-display); font-weight:600; font-size:20px; white-space:nowrap; text-align:right; }
.cart__price s { font-family:var(--font-body); font-weight:400; font-size:14px; color:var(--sub); }
.cart__remove { background:none; border:0; padding:8px 0; cursor:pointer; font-family:var(--font-mono); font-size:11.5px; letter-spacing:.04em; color:var(--sub); text-decoration:underline; text-underline-offset:3px; min-height:40px; }
.cart__remove:hover { color:var(--accent); }
.cart__empty a { color:var(--fg); text-underline-offset:4px; }
.cart__summary { border:1px solid var(--line); padding:clamp(22px,2.4vw,32px); display:grid; gap:18px; position:sticky; top:100px; }
.cart__summary[hidden], .cart__ship[hidden] { display:none; }
.cart__ship { display:grid; gap:10px; }
.cart__ship label { font-family:var(--font-mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--sub); }
.cart__ship select { width:100%; }
.cart__shipinfo { font-size:13.5px; line-height:1.5; color:var(--sub); }
.cart__totals { margin:0; display:grid; gap:8px; border-top:1px solid var(--line); padding-top:16px; }
.cart__totals div { display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
.cart__totals dt { font-family:var(--font-mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--sub); }
.cart__totals dd { margin:0; font-size:16px; }
.cart__total dd { font-family:var(--font-display); font-weight:600; font-size:28px; letter-spacing:-.015em; }
.cart__total small { font-family:var(--font-mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--sub); }
.cart__pay { width:100%; text-align:center; cursor:pointer; }
.cart__pay:disabled { opacity:.6; cursor:wait; transform:none; }
.cart__note { font-size:13.5px; line-height:1.5; color:var(--sub); }
.cart__note:empty { display:none; }
.cart__upsells { display:grid; gap:14px; margin-top:24px; }
.upsell { border:1px dashed var(--accent); padding:clamp(18px,2vw,24px); display:grid; gap:10px; justify-items:start; background:var(--tint); }
.upsell__text { font-family:var(--font-display); font-weight:600; font-size:clamp(18px,1.6vw,22px); line-height:1.2; }
.upsell__note { font-size:13.5px; color:var(--sub); }
.xcard__link { display:flex; flex-direction:column; gap:10px; color:inherit; text-decoration:none; }
.xcard__link .book { margin-bottom:14px; }
.xcard__link:hover .tcard__title { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.xcard .btn { justify-self:start; align-self:flex-start; margin-top:6px; }
.xcard[hidden], [data-cross-block][hidden], .dl[hidden] { display:none; }
.buy__form { margin-top:4px; max-width:none; }
.buy__form .form__check { display:flex; align-items:flex-start; gap:10px; margin-top:12px; font-family:var(--font-body); font-size:13.5px; letter-spacing:0; text-transform:none; color:var(--sub); cursor:pointer; line-height:1.45; }
.buy__form .form__check input { width:18px; height:18px; flex:none; margin:1px 0 0; padding:0; accent-color:var(--accent); border:0; }
.buy__form .notify__hint a { color:var(--fg); text-underline-offset:3px; }
.buy__form .form__status { margin-top:10px; font-family:var(--font-mono); font-size:13px; line-height:1.5; }
.dl { margin-top:clamp(26px,4vh,40px); }
.dl__grid { display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:clamp(30px,5vw,72px); align-items:start; }
.dl .book-head__title { font-size:clamp(34px,4.4vw,60px); }
.dl .row-ctas { margin-top:26px; }
.dl .buy__note { margin-top:12px; }
.dl__upsell { margin-top:clamp(30px,5vh,44px); margin-bottom:0; }
@media (max-width:820px) {
  .cart__grid, .dl__grid { grid-template-columns:minmax(0,1fr); }
  .cart__summary { position:static; }
  .cart__item { grid-template-columns:minmax(0,1fr) auto; }
  .cart__qty { grid-column:1; }
  .cart__price { grid-column:2; grid-row:1; }
  .cart__remove { grid-column:2; justify-self:end; }
  .dl .book--lg { width:min(60%,240px); margin:0; }
}

/* ---------- Tienda: libros y cursos de un vistazo ----------
   Libro: papel, cubierta vertical y etiqueta con un cuadrado coral. Curso: verde noche, pantalla 16:9 con ▶ lima.
   El botón de comprar es coral en los dos. */
.kick { display:inline-flex; align-items:center; gap:8px; font-family:var(--font-mono); font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--fg); }
.kick--book::before { content:""; width:9px; height:9px; background:var(--accent-brand); flex:none; }
.kick--course::before { content:""; width:0; height:0; border-style:solid; border-width:5px 0 5px 9px; border-color:transparent transparent transparent var(--play,#14241A); flex:none; }
.pane--nature { --play:#C8FF3D; }

.sdoors { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(14px,2vw,24px); margin-top:clamp(36px,6vh,64px); }
.sdoor { display:grid; gap:10px; padding:clamp(22px,2.6vw,34px); border:1px solid var(--line); text-decoration:none; color:var(--fg); transition:transform .3s; }
.sdoor:hover { transform:translateY(-3px); }
.door__name { font-family:var(--font-display); font-weight:600; font-size:clamp(34px,4.4vw,60px); line-height:.95; letter-spacing:-.02em; }
.door__count { font-family:var(--font-mono); font-size:12px; letter-spacing:.06em; color:var(--sub); }
.sdoor--book { border-color:var(--ink); }
.door__arrow { display:inline-block; transition:transform .25s var(--rease); }
.sdoors .sdoor { transition:background-color .2s, border-color .2s; }
.sdoors .sdoor:hover { background-color:var(--bg); transform:none; }
.sdoors .sdoor:focus-visible { --fg:var(--ink); --sub:var(--ink); --play:var(--ink); --accent-brand:var(--ink); background-color:var(--accent); border-color:var(--accent); }
@media (hover:hover) {
  /* Tienda: al pasar, cada puerta se llena de su color, Libros en naranja y Cursos en lima; el texto pasa a tinta */
  .sdoors .sdoor:hover { --fg:var(--ink); --sub:var(--ink); --play:var(--ink); --accent-brand:var(--ink); background-color:var(--accent); border-color:var(--accent); }
  .sdoors .sdoor:hover .door__arrow { transform:translateY(4px); }
}

.bcards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(40px,5vw,64px) clamp(28px,3vw,48px); }
.bcard { display:grid; grid-template-columns:minmax(120px,.5fr) minmax(0,1fr); gap:clamp(22px,2.6vw,36px); align-items:start; border-top:1px solid var(--line); padding-top:clamp(24px,3vh,32px); }
.bcard__cover { display:block; }
.bcard__body { display:grid; gap:10px; align-content:start; }
.bcard__title, .ccard__title { font-family:var(--font-display); font-weight:600; font-size:clamp(24px,2.2vw,32px); line-height:1.02; letter-spacing:-.015em; }
.bcard__title a, .ccard__title a { color:inherit; text-decoration:none; }
.bcard__title a:hover, .ccard__title a:hover { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; }
.bcard__sub, .ccard__sub { font-size:15px; line-height:1.5; color:var(--sub); max-width:46ch; }
.bcard .buy, .ccard .buy { border:0; padding:0; max-width:none; margin-top:8px; }

.ccards { display:grid; gap:clamp(40px,6vh,64px); }
.ccard { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr) minmax(250px,.72fr); gap:clamp(24px,3vw,48px); align-items:start; border-top:1px solid var(--line); padding-top:clamp(24px,3vh,32px); }
.ccard__screen { display:block; }
.ccard__body { display:grid; gap:12px; align-content:start; }
.ccard .tags { margin-top:4px; }
.ccard .outcomes { margin-top:8px; }
.ccard .outcomes li { font-size:14.5px; padding:11px 0; }
.ccard__buy { border:1px solid var(--line); padding:clamp(20px,2vw,28px); }
.ccard .btn--accent, .buy--course .btn--accent { background:var(--accent-brand); border-color:var(--accent-brand); color:var(--ink); }
.screen { position:relative; aspect-ratio:16/9; overflow:hidden; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; }
.screen .cover__mesh { position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:.55; }
.screen__brand { position:absolute; top:12px; left:14px; font-family:var(--font-display); font-weight:700; font-size:16px; letter-spacing:-.02em; color:var(--fg); }
.screen__brand .dot { color:var(--accent); }
.screen__play { position:relative; width:clamp(56px,7vw,84px); aspect-ratio:1; border-radius:50%; background:var(--accent); display:flex; align-items:center; justify-content:center; transition:transform .3s; }
.screen__play svg { width:38%; height:38%; fill:var(--ink); margin-left:6%; }
.screen .cover__mesh { transition:opacity .3s; }
.ccard__screen:hover .screen__play { transform:scale(1.06); }
.ccard__screen:hover .cover__mesh { opacity:1; }
.bcard__cover .book { transition:transform .4s var(--rease); }
.bcard__cover:hover .book { transform:translateY(-4px); }
/* Botones de compra: al pasar se invierten, como el formato elegido, y no se mueven de sitio */
@media (hover:hover) {
  .buy .btn:hover, .opanel .btn:not(:disabled):hover { transform:none; background-color:var(--fg); border-color:var(--fg); color:var(--bg); }
}

/* Formatos de un título: segmentos con su precio; debajo, el botón del elegido */
.pick { border:0; margin:0 0 4px; padding:0; display:flex; flex-wrap:wrap; gap:8px; min-width:0; }
.pick__legend { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.pick__fmt { position:relative; display:inline-flex; align-items:baseline; gap:10px; min-height:46px; padding:11px 16px; border:1px solid var(--line); cursor:pointer; transition:background-color .25s, color .25s; }
.pick__fmt input { position:absolute; opacity:0; width:1px; height:1px; }
.pick__name { font-family:var(--font-mono); font-size:12.5px; letter-spacing:.04em; }
.pick__price { font-family:var(--font-display); font-weight:600; font-size:19px; letter-spacing:-.01em; }
.pick__fmt:hover { background:var(--tint); }
.pick__fmt:has(input:checked) { background:var(--fg); color:var(--bg); }
.pick__fmt:has(input:focus-visible) { outline:2px solid var(--accent-brand); outline-offset:3px; }
.buy__pane { display:grid; gap:12px; }
.buy__pane[hidden] { display:none; }
.buy__acts { display:flex; flex-wrap:wrap; align-items:center; gap:10px 20px; }
.buy__alt { font-family:var(--font-mono); font-size:12px; letter-spacing:.03em; color:var(--fg); text-underline-offset:4px; display:inline-flex; align-items:center; min-height:44px; }
.buy__alt:hover { color:var(--accent-brand); }

.pack { margin-top:18px; padding-top:18px; border-top:1px dashed var(--line); display:grid; gap:8px; justify-items:start; }
.pack__label { font-family:var(--font-mono); font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); }
.pack__what { font-family:var(--font-display); font-weight:600; font-size:18px; line-height:1.2; }
.pack__price { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 12px; }
.pack__price s { color:var(--sub); font-size:15px; }
.pack__price strong { font-family:var(--font-display); font-weight:600; font-size:26px; letter-spacing:-.015em; }
.pack__price span { font-family:var(--font-mono); font-size:12px; letter-spacing:.08em; color:var(--sub); }

/* ---------- Panel de compra: compra rápida y cesta (de lado, o en /shop/cart/) ---------- */
html.is-drawer { overflow:hidden; }
.drawer { position:fixed; inset:0; z-index:1000; }
.drawer[hidden] { display:none; }
.drawer__veil { position:absolute; inset:0; background:rgba(14,14,12,.6); opacity:0; transition:opacity .3s; }
.drawer__panel { position:absolute; top:0; right:0; bottom:0; width:min(520px,100%); display:flex; flex-direction:column; border-left:1px solid var(--line);
  transform:translateX(100%); transition:transform .35s var(--rease); overflow:hidden; }
.drawer.is-open .drawer__veil { opacity:1; }
.drawer.is-open .drawer__panel { transform:none; }
.opanel__head { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px clamp(20px,3vw,32px); border-bottom:1px solid var(--line); }
.opanel__title { font-family:var(--font-mono); font-weight:400; font-size:12.5px; letter-spacing:.22em; text-transform:uppercase; }
.opanel__close { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; margin-right:-10px; background:none; border:0; color:var(--fg); cursor:pointer; }
.opanel__close svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; }
.steps { list-style:none; margin:0; padding:14px clamp(20px,3vw,32px); display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; border-bottom:1px solid rgba(14,14,12,.2);
  font-family:var(--font-mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--sub); }
.steps li { display:flex; flex-direction:column; gap:8px; }
.steps li::before { content:""; height:3px; background:rgba(14,14,12,.2); }
.steps li[aria-current="step"] { color:var(--fg); }
.steps li[aria-current="step"]::before, .steps--done li::before { background:var(--fg); }
.steps--done { padding:0; border:0; margin:0 0 28px; max-width:620px; color:var(--fg); }
.steps[hidden] { display:none; }
.opanel__body { flex:1; overflow:auto; padding:22px clamp(20px,3vw,32px); display:grid; align-content:start; gap:20px; }
.opanel__note { font-family:var(--font-mono); font-size:12.5px; letter-spacing:.03em; padding:10px 12px; background:var(--tint); border-left:3px solid var(--accent-brand); }
.opanel__empty { font-size:16px; color:var(--sub); }
.opanel__empty a { color:var(--fg); text-underline-offset:4px; }
.olines { list-style:none; margin:0; padding:0; display:grid; }
.oline { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:16px; align-items:start; padding:14px 0; border-bottom:1px solid rgba(14,14,12,.2); }
.oline:first-child { padding-top:0; }
.oline__info { display:grid; gap:4px; min-width:0; }
.oline__name { font-family:var(--font-display); font-weight:600; font-size:18px; line-height:1.15; color:var(--fg); text-decoration:none; }
.oline__name:hover { text-decoration:underline; text-underline-offset:4px; }
.oline__meta { font-size:13px; line-height:1.4; color:var(--sub); }
.oline__ctl { display:flex; flex-wrap:wrap; align-items:center; gap:6px 16px; margin-top:6px; }
.oline__remove { background:none; border:0; padding:0; min-height:36px; cursor:pointer; font-family:var(--font-mono); font-size:11.5px; color:var(--sub); text-decoration:underline; text-underline-offset:3px; }
.oline__remove:hover { color:var(--accent-brand); }
.oline__price { font-family:var(--font-display); font-weight:600; font-size:19px; white-space:nowrap; }
.stepper { display:inline-flex; align-items:center; border:1px solid var(--line); }
.stepper button { width:38px; height:36px; background:none; border:0; color:var(--fg); font-size:18px; cursor:pointer; }
.stepper button:disabled { opacity:.3; cursor:default; }
.stepper output { min-width:26px; text-align:center; font-family:var(--font-mono); font-size:13px; }

.thumb { position:relative; flex:none; display:flex; overflow:hidden; border:1px solid var(--ink); }
.thumb--book { width:46px; aspect-ratio:2/3; flex-direction:column; justify-content:space-between; padding:5px; box-shadow:3px 3px 0 var(--paper), 4px 4px 0 var(--ink); }
.thumb--book b { font-family:var(--font-display); font-weight:700; font-size:8px; letter-spacing:-.02em; }
.thumb--book b i { font-style:normal; color:var(--accent); }
.thumb--book span { font-family:var(--font-display); font-weight:600; font-size:7.5px; line-height:.95; overflow:hidden; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; }
.thumb--course { width:84px; aspect-ratio:16/9; background:#14241A; align-items:center; justify-content:center; }
.thumb__play { width:22px; height:22px; border-radius:50%; background:#C8FF3D; position:relative; }
.thumb__play::after { content:""; position:absolute; left:8px; top:6px; border-style:solid; border-width:5px 0 5px 8px; border-color:transparent transparent transparent var(--ink); }

.sugg, .hilo { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:16px; align-items:center; padding:16px; border:1px solid var(--line); }
.sugg__text, .hilo__text { display:grid; gap:3px; min-width:0; }
.sugg__head { font-family:var(--font-mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--sub); }
.sugg__name { font-family:var(--font-display); font-weight:600; font-size:17px; line-height:1.15; color:var(--fg); text-decoration:none; }
.sugg__name:hover { text-decoration:underline; text-underline-offset:4px; }
.sugg__why { font-size:13px; line-height:1.4; color:var(--sub); }
.sugg__side, .hilo__buy { display:grid; justify-items:end; gap:8px; }
.sugg__price { font-family:var(--font-display); font-weight:600; font-size:18px; white-space:nowrap; }
.sugg .btn, .hilo .btn { padding:11px 16px; font-size:12px; white-space:nowrap; }

.seg { border:0; margin:0; padding:0; min-width:0; display:grid; gap:10px; }
.seg legend { font-family:var(--font-mono); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--sub); margin-bottom:10px; padding:0; }
.seg__opts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid var(--line); }
.seg__opt { position:relative; display:grid; gap:2px; padding:10px 12px; cursor:pointer; border-right:1px solid var(--line); }
.seg__opt:last-child { border-right:0; }
.seg__opt input { position:absolute; opacity:0; width:1px; height:1px; }
.seg__opt span { font-size:13.5px; line-height:1.25; }
.seg__opt small { font-family:var(--font-mono); font-size:12px; color:var(--sub); }
.seg__opt:has(input:checked) { background:var(--fg); color:var(--bg); }
.seg__opt:has(input:checked) small { color:inherit; opacity:.75; }
.seg__opt:has(input:focus-visible) { outline:2px solid var(--accent-brand); outline-offset:-4px; }
.seg__info { font-size:13px; line-height:1.5; color:var(--sub); }

.bump { display:grid; grid-template-columns:22px auto minmax(0,1fr); gap:14px; align-items:start; padding:16px; border:1px dashed var(--accent-brand); cursor:pointer; transition:background-color .25s; }
.bump.is-on { background:var(--tint); border-style:solid; }
.bump input { width:20px; height:20px; margin:2px 0 0; accent-color:var(--accent-brand); cursor:pointer; }
.bump__text { display:grid; gap:5px; }
.bump__kick { font-family:var(--font-mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase; }
.bump__title { font-family:var(--font-display); font-weight:600; font-size:17px; line-height:1.2; }
.bump__title s { font-family:var(--font-body); font-weight:400; font-size:13.5px; color:var(--sub); }
.bump__why { font-size:13px; line-height:1.45; color:var(--sub); }

.opanel .sugg { grid-template-columns:auto minmax(0,1fr); }
.opanel .sugg__side { grid-column:2; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.opanel .cart__totals { padding-top:16px; }
.opanel .cart__totals dt small { font-size:9.5px; letter-spacing:.08em; color:var(--sub); margin-left:6px; }
.opanel__foot { padding:18px clamp(20px,3vw,32px) 22px; border-top:1px solid var(--line); display:grid; gap:10px; }
.opanel__pay { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; min-height:56px; cursor:pointer; background:var(--accent-brand); border-color:var(--accent-brand); color:var(--ink); }
.opanel__pay svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.8; }
.opanel__pay:disabled { opacity:.6; cursor:wait; transform:none; }
.opanel__fine { font-size:12.5px; line-height:1.5; color:var(--sub); text-align:center; }
.opanel .form__status { margin-top:0; text-align:center; }
.opanel--page { display:grid; grid-template-columns:minmax(0,1fr); max-width:760px; margin-top:clamp(24px,4vh,40px); border:1px solid var(--line); }
.opanel--page .steps { border-bottom-color:var(--line); }

/* Barra de la cesta en el móvil */
.cartbar { display:none; }
@media (max-width:820px) {
  .cartbar:not([hidden]) { position:fixed; left:12px; right:12px; bottom:12px; z-index:190; display:flex; align-items:center; justify-content:space-between; gap:12px;
    padding:14px 16px; background:var(--ink); color:var(--paper); text-decoration:none; font-family:var(--font-mono); font-size:12.5px; letter-spacing:.03em; border:1px solid var(--paper); }
  .cartbar__sum { color:#918E84; flex:1; }
  .cartbar__go { color:var(--accent-brand); white-space:nowrap; }
  html.has-cartbar body { padding-bottom:76px; }
  html.is-drawer .cartbar { display:none; }
}

/* ---------- Gracias: entregas y «Sigue el hilo» ---------- */
.delivers { display:grid; gap:12px; margin-top:24px; max-width:720px; }
.delivers[hidden] { display:none; }
.deliver { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:16px; align-items:center; padding:16px 18px; border:1px solid var(--line); }
.deliver__text { display:grid; gap:3px; }
.deliver__kick { font-family:var(--font-mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); }
.deliver__name { font-family:var(--font-display); font-weight:600; font-size:19px; line-height:1.15; }
.order__hint a { color:var(--fg); text-underline-offset:3px; }
.hilos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(14px,2vw,24px); }
.hilo { padding:clamp(18px,2vw,26px); }
.pane--deep .thumb--book { box-shadow:3px 3px 0 var(--ink), 4px 4px 0 var(--paper); border-color:var(--paper); }
[data-thread][hidden] { display:none; }

@media (max-width:1080px) {
  .ccard { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .ccard__buy { grid-column:1 / -1; }
  .bcards { grid-template-columns:minmax(0,1fr); }
  .bcard { grid-template-columns:minmax(140px,220px) minmax(0,1fr); }
}
@media (max-width:820px) {
  .ccard { grid-template-columns:minmax(0,1fr); }
  .hilos { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:520px) {
  .sdoors { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10px; }
  .sdoor { padding:16px; }
  .door__name { font-size:30px; }
  .bcard { grid-template-columns:minmax(0,1fr); }
  .bcard__cover .book { width:min(52%,190px); }
  .sugg, .hilo, .deliver { grid-template-columns:auto minmax(0,1fr); }
  .sugg__side, .hilo__buy, .deliver .btn { grid-column:1 / -1; justify-items:start; justify-self:start; }
  .sugg__side, .hilo__buy { display:flex; align-items:center; gap:14px; }
  .seg__opt { padding:10px 8px; }
  .opanel .sugg__side { grid-column:1 / -1; }
}

@media print {
  .nav, .rail, .progress, .cursor-ring, .cursor-dot, .hero canvas, .page-head canvas, .skip { display:none !important; }
  [data-reveal], [data-reveal-item] { opacity:1 !important; transform:none !important; }
}

/* ---------- Holgura: lo que quedaba apretado en cada ancho ---------- */
/* Índices de capítulos: la fecha siempre bajo el título, para que el título no se quede en una columna estrecha */
.pieces li { display:grid; grid-template-columns:auto minmax(0,1fr); column-gap:14px; row-gap:4px; }
.pieces__meta { grid-column:2; padding-left:0; white-space:normal; }
.door__link { text-wrap:balance; }
.buy__also { display:inline-flex; align-items:center; min-height:44px; }
.xcard .btn { width:100%; box-sizing:border-box; padding-inline:14px; text-align:center; }

/* Tienda: la raya de la cabecera ya separa, sin una segunda raya en la primera tarjeta */
.bcard:first-child, .ccard:first-child { border-top:0; padding-top:0; }
@media (min-width:821px) { .bcard:nth-child(2) { border-top:0; padding-top:0; } }
/* Un solo libro: ocupa la fila y su formulario respira */
.bcards:has(> .bcard:only-child) { grid-template-columns:minmax(0,1fr); }
@media (min-width:521px) { .bcard:only-child { grid-template-columns:minmax(160px,250px) minmax(0,600px); } }
.ccard__buy .btn { padding-inline:20px; white-space:nowrap; }
@media (max-width:1180px) and (min-width:821px) {
  .ccard { grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); }
  .ccard__buy { grid-column:1 / -1; }
}
/* Envíos: la tabla necesita más ancho que los otros textos */
.infogrid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.ship td:nth-child(3) { white-space:nowrap; }
@media (max-width:820px) { .infogrid { grid-template-columns:minmax(0,1fr); } }
@media (max-width:520px) {
  .ship, .ship tbody { display:block; }
  .ship tr { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:12px; padding:10px 0; border-top:1px solid var(--line); }
  .ship tr:last-child { border-bottom:1px solid var(--line); }
  .ship th, .ship td, .ship tr:last-child th, .ship tr:last-child td { padding:0; border:0; }
  .ship td:nth-child(2) { text-align:right; }
  .ship td:nth-child(3) { grid-column:1 / -1; margin-top:4px; color:var(--sub); }
}

/* Escuela: portada y presentación arriba; lo que se aprende y la compra debajo, en dos columnas */
.course { grid-template-columns:minmax(170px,.4fr) minmax(0,1.6fr); }
.course > :last-child { grid-column:1 / -1; }
@media (min-width:821px) {
  .course > :last-child { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(24px,3vw,44px); align-items:start; }
  .course > :last-child > .row-ctas { grid-column:1 / -1; margin-top:0 !important; }
  .course > :last-child > .buy { margin-top:0; }
}
@media (max-width:820px) { .course { grid-template-columns:minmax(0,1fr); } }

@media (max-width:600px) {
  .form__foot { justify-content:flex-start; gap:6px 18px; }
}
/* Móvil: el título y sus datos junto a una portada pequeña, en lugar de dos columnas de texto estrechas */
@media (max-width:520px) {
  .catalogue, .catalogue--related { grid-template-columns:minmax(0,1fr); gap:24px; }
  .tcard { display:grid; grid-template-columns:112px minmax(0,1fr); column-gap:18px; row-gap:6px; align-content:start; justify-items:start; }
  .tcard .book { grid-column:1; grid-row:1 / span 6; margin:0; }
  .tcard > :not(.book), .xcard__link > :not(.book) { grid-column:2; }
  .xcard__link { display:contents; }
  .tcard__title { font-size:20px; }
  /* Portada pequeña: basta con el monograma, el dibujo y el título */
  .tcard .cover__kind, .tcard .cover__foot { display:none; }
  /* Los botones de cada bloque, a todo el ancho y con el texto en una línea */
  .hero__ctas .btn, .row-ctas .btn, .buy__acts .btn, .buy__soon .btn { flex:1 1 100%; width:100%; box-sizing:border-box; padding-inline:14px; text-align:center; }
  .specs__row { grid-template-columns:minmax(0,1fr); gap:3px; }
  .hero h1 { line-height:1; }
  .lang a { display:inline-flex; align-items:center; justify-content:center; min-width:48px; min-height:44px; }
  .row-ctas .btn { font-size:12.5px; letter-spacing:.02em; }
  /* Cesta: el nombre del producto a todo el ancho; el precio, debajo */
  .oline { grid-template-columns:auto minmax(0,1fr); }
  .oline__price { grid-column:2; }
  .opanel__pay { padding-inline:12px; white-space:nowrap; }
}
@media (max-width:360px) {
  .tcard { grid-template-columns:88px minmax(0,1fr); column-gap:14px; }
  .tcard__title { font-size:18px; }
  .btn { letter-spacing:.01em; }
  .hero__ctas .btn, .row-ctas .btn, .buy__acts .btn, .buy__soon .btn { font-size:12px; padding-inline:8px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { transition:none !important; animation:none !important; }
}

/* About: en escritorio el título se queda a la vista mientras se lee; en móvil, texto seguido a mayor cuerpo */
.about-split { align-items:start; margin-bottom:0; }
.about-text .lede { color:var(--fg); }
.about-text .lede + .lede { margin-top:1.1em; }
@media (min-width:821px) { .about-split > .title { position:sticky; top:110px; } }
@media (max-width:820px) { .about-text .lede { font-size:17px; } }

/* ---------- Reorganización: escritorio sin vacíos; móvil con composición propia ---------- */
.home-shop { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); gap:clamp(36px,6vw,96px); align-items:start; }
.home-shop .lede { margin-top:clamp(18px,3vh,26px); max-width:44ch; }
.home-shop .row-ctas { margin-top:clamp(22px,3.5vh,32px); }
.home-shop .catalogue { grid-template-columns:repeat(2,minmax(0,1fr)); }

.nl-band { padding-block:clamp(56px,10vh,110px); }
.nl-band__grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:clamp(28px,5vw,72px); align-items:center; }
.nl-band__title { font-family:var(--font-display); font-weight:600; font-size:clamp(30px,3.8vw,54px); line-height:1.02; letter-spacing:-.018em; margin-bottom:14px; }
.nl-band .lede { max-width:44ch; }
.nl-band__form { margin-top:0; max-width:none; }
.nl-band__alt { margin-top:14px; font-size:14.5px; }
.nl-band__alt a { color:var(--sub); text-underline-offset:3px; }
.nl-band__alt a:hover { color:var(--fg); }

/* Plegables: en escritorio, su título es un título normal */
.plegable > summary { list-style:none; }
.plegable > summary::-webkit-details-marker { display:none; }
.plegable > summary h2, .plegable > summary h3 { display:inline; }

.chap, .legal, [id="publica"] { scroll-margin-top:72px; }

@media (min-width:821px) {
  .plegable > summary { cursor:default; }
  .plegable--specs > summary, .plegable--form > summary { display:none; }
  .plegable > summary h2.mini-label { display:block; }
  .plegable > summary h3 { display:block; }
  /* Ficha: la cubierta acompaña mientras se lee la columna de datos */
  .book-head__grid .book--lg { position:sticky; top:96px; }
  /* Ficha sin índice: descripción y autor ocupan el ancho, sin media pantalla vacía */
  .book-body__grid:not(:has(> :nth-child(2))) { grid-template-columns:minmax(0,1fr); }
  .book-body__grid:not(:has(> :nth-child(2))) > div { display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(36px,6vw,96px); align-items:start; }
  .book-body__grid:not(:has(> :nth-child(2))) .book-body__author { margin-top:0; }
}
@media (min-width:521px) {
  /* Pocos títulos: tarjeta ancha, con la cubierta al lado del texto */
  .catalogue--ancha { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .catalogue--ancha .tcard { display:grid; grid-template-columns:minmax(120px,.8fr) minmax(0,1fr); column-gap:clamp(18px,2.4vw,36px); row-gap:10px; align-content:start; justify-items:start; }
  .catalogue--ancha .tcard .book { grid-column:1; grid-row:1 / span 6; width:100%; margin:0; }
  .catalogue--ancha .tcard > :not(.book) { grid-column:2; }
  .catalogue--ancha .tcard__title { font-size:clamp(24px,2.6vw,36px); line-height:1.02; }
}

@media (max-width:820px) {
  .home-shop, .nl-band__grid { grid-template-columns:minmax(0,1fr); }
  .chap { padding-block:clamp(52px,8vh,72px); }

  /* Puertas: una fila por rama */
  .door { padding:16px; gap:6px; }
  .door p { display:none; }
  .door__verb { font-size:30px; }

  /* Portada, newsletter completa: título, formulario y, al final, el Journal */
  #newsletter .split > div:first-child { display:contents; }
  #newsletter .journal-box { order:4; margin-top:0; }
  #newsletter .split > .form { order:3; }
  #newsletter .form__foot, #newsletter [data-i18n="sub.motto"] { display:none; }

  /* Pie: dos columnas de enlaces */
  .footer__grid { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:20px; }
  .footer__about { grid-column:1 / -1; }

  /* Plegables */
  .plegable > summary { display:flex; justify-content:space-between; align-items:center; gap:14px; min-height:52px; cursor:pointer; border-top:1px solid var(--line); border-bottom:1px solid var(--line); font-family:var(--font-mono); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--sub); }
  .plegable > summary::after { content:"+"; font-size:18px; line-height:1; color:var(--accent); flex:none; }
  .plegable[open] > summary::after { content:"−"; }
  .plegable > summary h2, .plegable > summary h3 { margin:0; font:inherit; letter-spacing:inherit; text-transform:inherit; color:inherit; }
  .plegable[open] > summary { margin-bottom:14px; }
  .plegable + .plegable > summary { border-top:0; }
  .plegable--form > summary { display:flex; justify-content:center; min-height:48px; border:0; font-size:12.5px; color:var(--ink); }
  .plegable--form > summary::after { color:inherit; }
  .plegable--specs { margin-top:8px; }
  .plegable--specs .specs { margin-top:0; }
  .infogrid__cell.plegable { padding:0 16px; }
  .infogrid__cell.plegable > summary { border:0; }
  .infogrid__cell.plegable[open] { padding-bottom:16px; }
  .aula-block__grid { gap:0; }

  /* Ficha: cubierta al lado del título y la compra lo primero; lo demás, debajo */
  .book-head__grid { grid-template-columns:minmax(0,132px) minmax(0,1fr); column-gap:18px; row-gap:8px; }
  .book-head__text { display:contents; }
  .book-head__grid .book--lg { grid-column:1; grid-row:1 / span 4; width:100%; margin:0; align-self:start; }
  .book-head__grid .book--lg .cover__kind, .book-head__grid .book--lg .cover__foot { display:none; }
  .book-head__kicker, .book-head__title, .book-head__subtitle, .book-head__author { grid-column:2; margin-block:0; }
  .book-head__title { font-size:clamp(24px,6.8vw,34px); line-height:1.04; hyphens:auto; }
  .book-head__subtitle { font-size:14.5px; line-height:1.4; }
  .book-head__author { font-size:15px; }
  .book-head__text > :not(.book-head__kicker):not(.book-head__title):not(.book-head__subtitle):not(.book-head__author) { grid-column:1 / -1; }
  .book-head__text > .row-ctas:empty { display:none; }
  .book-body { padding-bottom:clamp(44px,7vh,64px); }

  /* Curso en Learning: portada y título arriba, el precio enseguida y el detalle después */
  .course { grid-template-columns:minmax(0,110px) minmax(0,1fr); column-gap:16px; row-gap:14px; padding:18px; }
  .course > div:not(.course__cover) { display:contents; }
  .course__cover { grid-column:1; grid-row:1 / span 2; }
  .course__kicker { grid-column:2; grid-row:1; }
  .course h3 { grid-column:2; grid-row:2; margin:0; font-size:clamp(22px,6.2vw,28px); }
  .course .buy { grid-column:1 / -1; order:1; }
  .course p:not(.buy p) { grid-column:1 / -1; order:2; }
  .course .tags { grid-column:1 / -1; order:3; }
  .course .outcomes { grid-column:1 / -1; order:4; }
  .course .row-ctas { grid-column:1 / -1; order:5; margin-top:0 !important; }

  /* Curso en la tienda: lo esencial; el detalle está en su ficha */
  .ccard .outcomes, .ccard .tags { display:none; }

  /* Portada: cubierta y título del próximo libro, juntos */
  .feature { grid-template-columns:minmax(0,120px) minmax(0,1fr); column-gap:18px; row-gap:12px; align-items:start; }
  .feature > div:first-child { grid-column:1; grid-row:1 / span 2; }
  .feature .book { width:100%; margin:0; }
  .feature .book .cover__kind, .feature .book .cover__foot { display:none; }
  .feature__text { display:contents; }
  .feature__title { grid-column:2; grid-row:1; font-size:clamp(22px,6vw,30px); margin:0; }
  .feature__author { grid-column:2; grid-row:2; margin:0; font-size:16px; }
  .feature__text > :not(.feature__title):not(.feature__author) { grid-column:1 / -1; margin-block:0; }
}

@media (max-width:600px) {
  /* Carril: se desliza con el pulgar y la tarjeta siguiente asoma para indicarlo */
  .carril { display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x proximity; margin-inline:calc(var(--gutter) * -1); padding-inline:var(--gutter); padding-bottom:6px; scroll-padding-inline:var(--gutter); scrollbar-width:none; }
  .carril::-webkit-scrollbar { display:none; }
  .carril > * { flex:0 0 min(58vw,230px); scroll-snap-align:start; }
  .cards.carril > *, .aula-quotes.carril > * { flex-basis:min(82vw,330px); }
  .carril .tcard { display:flex; flex-direction:column; gap:8px; }
  .carril .tcard .book { width:100%; margin:0 0 4px; }
  .carril .tcard .cover__kind, .carril .tcard .cover__foot { display:initial; }
  .carril .tcard__title { font-size:18px; }

  /* Colecciones de la portada: dos por dos, solo el nombre y el enlace */
  #colecciones .tiles { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #colecciones .tile { padding:16px; min-height:150px; gap:8px; }
  #colecciones .tile p { display:none; }
  #colecciones .tile h3 { font-size:22px; }
}
.home-shop .title { font-size:clamp(32px,3.9vw,56px); }
.nl-band__title { text-wrap:balance; }
@media (max-width:820px) and (min-width:601px) {
  .book-head__grid { grid-template-columns:minmax(0,190px) minmax(0,1fr); column-gap:28px; }
  .feature { grid-template-columns:minmax(0,190px) minmax(0,1fr); column-gap:28px; }
  .course { grid-template-columns:minmax(0,170px) minmax(0,1fr); }
}
@media (max-width:520px) {
  .home-shop .catalogue { grid-template-columns:minmax(0,1fr); }
  .course__cover .cover__kind, .course__cover .cover__foot { display:none; }
}
.bcard > *, .notify__row > * { min-width:0; }
@media (min-width:521px) and (max-width:820px) { .bcard:only-child { grid-template-columns:minmax(120px,190px) minmax(0,1fr); } }
@media (max-width:820px) { .aula-block__grid { border-top:0; padding-top:0; } .book-body__grid { min-width:0; } }
@media (max-width:360px) { .line-title { font-size:36px; } }
body[data-page="about"] .line-title { max-width:26ch; }
@media (max-width:820px) { .bcard .notify__row { flex-direction:column; } }
@media (min-width:601px) and (max-width:820px) { .book-head__title { font-size:clamp(34px,5.6vw,46px); } .feature__title { font-size:clamp(28px,4.6vw,38px); } }
@media (max-width:360px) {
  .book-head__grid { grid-template-columns:minmax(0,96px) minmax(0,1fr); column-gap:14px; }
  .book-head__title { font-size:22px; overflow-wrap:anywhere; }
}
