/* =====================================================================
   VALAD · Landing
   Editorial médico + SaaS premium + instrumento clínico.
   Construida sobre tokens.css. Un solo acento (petróleo); la escala de
   riesgo se usa solo donde comunica riesgo.
   ===================================================================== */

html{ scroll-behavior:smooth; scroll-padding-top:84px; }
body{ background:var(--bg); overflow-x:clip; }
a{ color:inherit; }
img, svg{ display:block; }
.wrap{ width:100%; max-width:1320px; margin:0 auto; padding:0 clamp(16px,4vw,48px); }
.tnum{ font-variant-numeric:tabular-nums; }

/* Textura sutil fija (no repinta al hacer scroll) */
body::before{
  content:""; position:fixed; inset:0; z-index:0; pointer-events:none; opacity:.5;
  background:
    radial-gradient(1200px 600px at 85% -10%, color-mix(in srgb,var(--accent) 7%,transparent), transparent 60%),
    radial-gradient(900px 500px at -10% 30%, color-mix(in srgb,var(--accent) 4%,transparent), transparent 60%);
}
main, .site-nav, .site-foot{ position:relative; z-index:1; }

/* ---------- Botones ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px; height:50px; padding:0 22px; border-radius:var(--r-sm);
  font:inherit; font-size:15px; font-weight:600; text-decoration:none; white-space:nowrap; cursor:pointer; border:1px solid transparent;
  transition:background-color var(--d-fast) var(--ease-out), color var(--d-fast), border-color var(--d-fast), transform var(--d-instant) var(--ease-out);
}
.btn svg{ width:18px; height:18px; transition:transform var(--d-base) var(--ease-out); }
.btn:active{ transform:scale(.97); }
.btn-sm{ height:40px; padding:0 16px; font-size:14px; }
.btn-primary{ background:var(--ink); color:var(--bg); }
.btn-quiet{ color:var(--ink); border-color:var(--line-strong); background:transparent; }
@media (hover:hover){
  .btn-primary:hover{ background:var(--accent-strong); }
  .btn-primary:hover svg{ transform:translateX(3px); }
  .btn-quiet:hover{ border-color:var(--ink-2); background:var(--surface); }
}
:root[data-theme="dark"] .btn-primary:hover{ background:var(--accent); color:var(--accent-ink); }
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .btn-primary:hover{ background:var(--accent); color:var(--accent-ink); } }

/* ---------- Tipografía de secciones ---------- */
.eyebrow{ font-family:var(--font-mono); font-size:12.5px; color:var(--accent-strong); margin:0 0 20px; letter-spacing:0; }
.section-title{ font-size:var(--fs-3xl); line-height:1.04; letter-spacing:var(--track-display); font-weight:620; margin:0 0 18px; max-width:18ch; text-wrap:balance; }
.section-lead{ font-size:18px; line-height:1.55; color:var(--ink-2); max-width:56ch; margin:0; text-wrap:pretty; }

/* =====================================================================
   Navegación
   ===================================================================== */
.site-nav{ position:sticky; top:0; z-index:var(--z-bar); transition:background-color var(--d-base) var(--ease-out), border-color var(--d-base); border-bottom:1px solid transparent; }
.site-nav.scrolled{ background:color-mix(in srgb,var(--bg) 82%,transparent); backdrop-filter:saturate(1.5) blur(14px); -webkit-backdrop-filter:saturate(1.5) blur(14px); border-bottom-color:var(--line); }
.nav-row{ height:68px; display:flex; align-items:center; gap:24px; }
.nav-links{ display:flex; gap:4px; margin-left:auto; }
.nav-links a{ text-decoration:none; font-size:14.5px; color:var(--ink-2); padding:8px 12px; border-radius:var(--r-sm); transition:color var(--d-fast), background-color var(--d-fast); }
.nav-links a:hover{ color:var(--ink); background:var(--surface-2); }
.nav-links a.active{ color:var(--ink); }
.nav-end{ display:flex; align-items:center; gap:8px; }
.theme-toggle{ width:40px; height:40px; border-radius:var(--r-sm); border:1px solid var(--line); background:transparent; color:var(--ink-2); display:grid; place-items:center; cursor:pointer; transition:color var(--d-fast), border-color var(--d-fast); }
.theme-toggle svg{ width:18px; height:18px; }
.theme-toggle:hover{ color:var(--ink); border-color:var(--line-strong); }
.nav-menu{ display:none; width:44px; height:44px; border:0; background:transparent; cursor:pointer; position:relative; border-radius:var(--r-sm); }
.nav-menu span{ position:absolute; left:12px; right:12px; height:1.5px; background:var(--ink); border-radius:2px; transition:transform var(--d-base) var(--ease-out); }
.nav-menu span:first-child{ top:17px; } .nav-menu span:last-child{ top:25px; }
.nav-menu[aria-expanded="true"] span:first-child{ transform:translateY(4px) rotate(45deg); }
.nav-menu[aria-expanded="true"] span:last-child{ transform:translateY(-4px) rotate(-45deg); }
.nav-sheet{ display:flex; flex-direction:column; padding:8px clamp(16px,4vw,48px) 20px; background:var(--bg); border-bottom:1px solid var(--line); }
.nav-sheet[hidden]{ display:none; }
.nav-sheet a{ text-decoration:none; font-size:22px; font-weight:560; letter-spacing:-.02em; padding:12px 0; border-bottom:1px solid var(--line); }
.nav-sheet a:last-child{ border-bottom:0; }

/* =====================================================================
   Hero
   ===================================================================== */
.hero{ padding:clamp(28px,5vw,72px) 0 clamp(56px,8vw,112px); }
.hero-grid{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:clamp(32px,5vw,80px); align-items:center; min-height:calc(100dvh - 68px - 140px); }
.hero-title{ font-size:clamp(42px,5.4vw,76px); line-height:1.02; letter-spacing:-.04em; font-weight:620; margin:0 0 26px; text-wrap:balance; }
.hero-title em{ font-style:normal; color:var(--accent); }
.hero-sub{ font-size:clamp(17px,1.4vw,19px); line-height:1.55; color:var(--ink-2); max-width:44ch; margin:0 0 34px; }
.hero-ctas{ display:flex; flex-wrap:wrap; gap:12px; }

/* Entrada del hero: escalonada, solo transform y opacity */
.js [data-hero]{ opacity:0; transform:translateY(14px); }
.js .is-ready [data-hero]{ opacity:1; transform:none; transition:opacity .7s var(--ease-out), transform .7s var(--ease-out); }
.js .is-ready [data-hero]:nth-child(2){ transition-delay:.06s; }
.js .is-ready .hero-copy [data-hero]:nth-child(3){ transition-delay:.12s; }
.js .is-ready .hero-copy [data-hero]:nth-child(4){ transition-delay:.18s; }
.js .is-ready .instrument[data-hero]{ transition-delay:.22s; transition-duration:.9s; }

/* ---------- Instrumento en vivo ---------- */
.instrument{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:24px; box-shadow:var(--shadow-3);
  display:flex; flex-direction:column; gap:20px;
}
.inst-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; }
.inst-kicker{ margin:0 0 4px; font-family:var(--font-mono); font-size:11.5px; color:var(--muted); }
.inst-title{ margin:0; font-size:20px; font-weight:620; letter-spacing:-.02em; }
.inst-flow{ list-style:none; margin:0; padding:0; display:flex; gap:4px; flex-wrap:wrap; }
.inst-flow li{
  font-size:11.5px; font-weight:560; color:var(--muted); padding:5px 9px; border-radius:var(--r-xs); background:var(--surface-2);
  transition:background-color var(--d-base) var(--ease-out), color var(--d-base) var(--ease-out);
}
.inst-flow li.lit{ background:var(--accent-soft); color:var(--accent-strong); }

.inst-form{ display:grid; grid-template-columns:auto repeat(3,minmax(0,1fr)); gap:12px; align-items:end; }
.seg{ border:0; margin:0; padding:3px; display:inline-flex; background:var(--surface-3); border-radius:calc(var(--r-sm) + 3px); height:48px; align-self:end; }
.seg label{ position:relative; display:block; cursor:pointer; }
.seg input{ position:absolute; opacity:0; inset:0; margin:0; cursor:pointer; }
.seg span{ display:grid; place-items:center; height:42px; padding:0 14px; border-radius:var(--r-sm); font-size:14px; font-weight:560; color:var(--ink-2); transition:background-color var(--d-base) var(--ease-out), color var(--d-fast), box-shadow var(--d-base); }
.seg input:checked + span{ background:var(--surface); color:var(--ink); box-shadow:var(--shadow-1), 0 0 0 1px var(--line); }
.seg input:focus-visible + span{ outline:2px solid var(--focus); outline-offset:1px; }
.field label{ display:block; font-size:12.5px; font-weight:560; color:var(--ink-2); margin-bottom:6px; }
.in-unit{ display:flex; align-items:center; height:48px; border:1px solid var(--line-strong); border-radius:var(--r-sm); background:var(--bg); transition:border-color var(--d-fast), box-shadow var(--d-fast); }
.in-unit:focus-within{ border-color:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent); background:var(--surface); }
.in-unit input{ flex:1; min-width:0; height:100%; border:0; background:transparent; color:var(--ink); font:inherit; font-size:17px; font-weight:560; padding:0 0 0 12px; font-variant-numeric:tabular-nums; outline:none; }
.in-unit span{ font-size:12px; color:var(--muted); padding:0 10px 0 4px; white-space:nowrap; }
.field.invalid .in-unit{ border-color:var(--risk-vhigh); }
.field-err{ margin:4px 0 0; font-size:11.5px; color:var(--risk-vhigh); min-height:0; }
.field-err:empty{ display:none; }

.inst-result{ display:grid; grid-template-columns:auto auto 1fr; gap:24px; align-items:end; padding:18px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.inst-label{ display:block; font-size:11.5px; color:var(--muted); margin-bottom:6px; }
.inst-big{ display:block; font-size:clamp(56px,6vw,76px); font-weight:600; line-height:.9; letter-spacing:-.05em; font-variant-numeric:tabular-nums; }
.inst-unit{ display:block; font-size:12px; color:var(--muted); margin-top:8px; }
.inst-cell{ display:block; font-family:var(--font-mono); font-size:22px; font-weight:560; letter-spacing:-.02em; margin-bottom:10px; }
.risk-tag{
  display:inline-flex; align-items:center; height:26px; padding:0 10px; border-radius:var(--r-pill); font-size:12px; font-weight:620; white-space:nowrap;
  transition:background-color var(--d-base) var(--ease-out), color var(--d-base);
}
.risk-tag[data-risk="v"]{ background:var(--risk-low); color:var(--risk-low-ink); }
.risk-tag[data-risk="a"]{ background:var(--risk-mod); color:var(--risk-mod-ink); }
.risk-tag[data-risk="n"]{ background:var(--risk-high); color:var(--risk-high-ink); }
.risk-tag[data-risk="r"]{ background:var(--risk-vhigh); color:var(--risk-vhigh-ink); }
.risk-tag[data-risk="rr"]{ background:var(--risk-max); color:var(--risk-max-ink); }
.risk-tag[data-risk="na"]{ background:var(--surface-3); color:var(--muted); }

.heatmini{ justify-self:end; display:grid; grid-template-columns:repeat(3,22px); grid-auto-rows:14px; gap:3px; }
.heatmini i{ border-radius:3px; opacity:.32; transition:opacity var(--d-base) var(--ease-out), transform var(--d-base) var(--ease-spring), box-shadow var(--d-base); }
.heatmini i.on{ opacity:1; transform:scale(1.18); box-shadow:0 0 0 2px var(--surface), 0 0 0 3.5px var(--ink); }
.heatmini [data-c="v"]{ background:var(--risk-low); } .heatmini [data-c="a"]{ background:var(--risk-mod); } .heatmini [data-c="n"]{ background:var(--risk-high); }
.heatmini [data-c="r"]{ background:var(--risk-vhigh); } .heatmini [data-c="rr"]{ background:var(--risk-max); }

.inst-decision ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.inst-decision li{ position:relative; padding-left:18px; font-size:14.5px; line-height:1.45; color:var(--ink); animation:fadeIn var(--d-slow) var(--ease-out) both; }
.inst-decision li::before{ content:""; position:absolute; left:2px; top:.62em; width:7px; height:1.5px; background:var(--accent); }
.inst-decision li:nth-child(2){ animation-delay:40ms; } .inst-decision li:nth-child(3){ animation-delay:80ms; } .inst-decision li:nth-child(4){ animation-delay:120ms; }
.inst-decision li.ref-out{ font-weight:600; color:var(--risk-vhigh); }
@keyframes fadeIn{ from{ opacity:0; transform:translateY(4px); } to{ opacity:1; transform:none; } }
.inst-foot{ display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; font-size:12px; color:var(--muted); padding-top:2px; }
.inst-foot a{ color:var(--accent-strong); font-weight:600; text-decoration:none; }
.inst-foot a:hover{ text-decoration:underline; text-underline-offset:3px; }
.inst-result.is-empty .inst-big{ color:var(--line-strong); }

/* =====================================================================
   Flujo (fijado en escritorio con ScrollTrigger)
   ===================================================================== */
.flow{ padding:clamp(72px,10vw,140px) 0 clamp(40px,6vw,80px); border-top:1px solid var(--line); }
.flow .section-lead{ margin-bottom:clamp(40px,6vw,72px); }
.flow-stage{ position:relative; display:flex; flex-direction:column; gap:28px; }
.flow-rail{ display:none; }
.step{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(24px,5vw,72px); align-items:center; }
.step-copy h3{ font-size:clamp(30px,3.6vw,48px); letter-spacing:-.035em; line-height:1.04; font-weight:620; margin:0 0 12px; }
.step-copy p{ font-size:17px; color:var(--ink-2); max-width:40ch; margin:0; line-height:1.55; }

.panel{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:clamp(22px,3vw,34px); box-shadow:var(--shadow-2); min-height:230px; display:flex; flex-direction:column; gap:16px; }
.panel-label{ font-family:var(--font-mono); font-size:12px; color:var(--accent-strong); }
.panel-note{ margin:auto 0 0; font-size:12px; color:var(--muted); }
.chips{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.chips li{ font-size:15px; padding:9px 13px; border-radius:var(--r-sm); background:var(--bg); border:1px solid var(--line); color:var(--ink-2); }
.chips b{ color:var(--ink); font-weight:600; font-variant-numeric:tabular-nums; }
.formula{ font-family:var(--font-mono); font-size:clamp(13px,1.15vw,15px); line-height:1.7; color:var(--ink-2); margin:0; padding:14px 16px; background:var(--bg); border-radius:var(--r-sm); border:1px solid var(--line); overflow-wrap:anywhere; }
.formula sup{ font-size:.72em; }
.calc-out{ display:flex; align-items:baseline; gap:12px; margin-top:auto; }
.calc-out span:last-child{ font-size:14px; color:var(--muted); }
.calc-big{ font-size:clamp(64px,7vw,96px); font-weight:600; letter-spacing:-.05em; line-height:.9; font-variant-numeric:tabular-nums; }
.interp-row{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.interp-cell{ font-family:var(--font-mono); font-size:clamp(34px,4vw,48px); font-weight:560; letter-spacing:-.03em; }
.panel-interp p{ margin:0; font-size:15.5px; color:var(--ink-2); line-height:1.55; max-width:48ch; }
.decision-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.decision-list li{ display:flex; justify-content:space-between; gap:16px; padding:12px 0; border-top:1px solid var(--line); font-size:15px; color:var(--ink-2); }
.decision-list li:first-child{ border-top:0; padding-top:0; }
.decision-list b{ color:var(--ink); font-weight:620; }
.decision-list i{ font-style:normal; font-family:var(--font-mono); font-size:11.5px; color:var(--muted); white-space:nowrap; align-self:center; }

/* Modo fijado: lo activa landing.js solo en escritorio y sin movimiento reducido */
.flow-stage.pinned{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(24px,5vw,72px); min-height:calc(100dvh - 140px); align-items:center; }
.flow-stage.pinned .flow-rail{ display:block; position:absolute; left:calc(clamp(16px,4vw,48px) - 22px); top:12%; bottom:12%; width:2px; background:var(--line); border-radius:2px; }
.flow-stage.pinned .flow-rail span{ position:absolute; inset:0; background:var(--accent); transform-origin:top; transform:scaleY(0); border-radius:2px; }
.flow-stage.pinned .step{ display:contents; }
.flow-stage.pinned .step-copy{ grid-column:1; grid-row:1; opacity:0; transform:translateY(18px); transition:opacity var(--d-slow) var(--ease-out), transform var(--d-slow) var(--ease-out); pointer-events:none; }
.flow-stage.pinned .step-panel{ grid-column:2; grid-row:1; opacity:0; transform:translateY(24px) scale(.98); transition:opacity var(--d-slow) var(--ease-out), transform .5s var(--ease-out); pointer-events:none; }
.flow-stage.pinned .step.active .step-copy, .flow-stage.pinned .step.active .step-panel{ opacity:1; transform:none; pointer-events:auto; }
.flow-stage.pinned .step-panel .panel{ min-height:300px; }

/* =====================================================================
   Herramientas: índice editorial
   ===================================================================== */
.tools{ padding:clamp(72px,10vw,140px) 0; }
.tools-head{ margin-bottom:clamp(36px,5vw,64px); }
.tools-index{ border-top:1px solid var(--ink); }
.area-row{ display:grid; grid-template-columns:minmax(180px,.55fr) minmax(0,1.45fr); gap:24px; padding:26px 0 28px; border-bottom:1px solid var(--line); }
.area-name{ font-size:clamp(22px,2.2vw,30px); font-weight:600; letter-spacing:-.03em; line-height:1.1; margin:0; display:flex; align-items:baseline; gap:10px; }
.area-name span{ font-family:var(--font-mono); font-size:12px; color:var(--muted); letter-spacing:0; font-weight:450; }
.area-mods{ display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:4px 24px; }
.mod-link{
  display:flex; flex-direction:column; gap:3px; padding:10px 12px; margin:0 -12px; border-radius:var(--r-sm); text-decoration:none;
  transition:background-color var(--d-fast) var(--ease-out);
}
.mod-link b{ font-size:17px; font-weight:580; letter-spacing:-.01em; display:flex; align-items:center; gap:8px; }
.mod-link b svg{ width:15px; height:15px; color:var(--accent); opacity:0; transform:translateX(-4px); transition:opacity var(--d-fast), transform var(--d-base) var(--ease-out); }
.mod-link span{ font-family:var(--font-mono); font-size:12px; color:var(--muted); }
@media (hover:hover){ .mod-link:hover{ background:var(--surface); } .mod-link:hover b svg{ opacity:1; transform:none; } }

/* =====================================================================
   Evidencia: bento de tres celdas
   ===================================================================== */
.evidence{ padding:clamp(72px,10vw,140px) 0; border-top:1px solid var(--line); }
.ev-bento{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:14px; margin-top:clamp(32px,5vw,56px); }
.ev-cell{ border-radius:var(--r-lg); padding:clamp(22px,3vw,34px); border:1px solid var(--line); }
.ev-cell h3{ font-size:20px; letter-spacing:-.02em; font-weight:620; margin:0 0 18px; }
.ev-anatomy{ grid-column:span 7; grid-row:span 2; background:var(--surface); }
.ev-labels{ grid-column:span 5; background:var(--accent-soft); border-color:transparent; }
.ev-own{ grid-column:span 5; background:var(--ink); color:var(--bg); border-color:transparent; }
.ev-own h3{ color:var(--bg); }
.ev-own p{ color:color-mix(in srgb,var(--bg) 78%,transparent); font-size:15px; line-height:1.6; margin:0 0 14px; }
.ev-own .ev-rev{ font-family:var(--font-mono); font-size:12px; margin:0; }
.cite{ margin:0; }
.cite blockquote{ margin:0 0 26px; font-size:clamp(18px,1.8vw,23px); line-height:1.45; letter-spacing:-.015em; color:var(--ink); padding-left:18px; border-left:2px solid var(--accent); text-wrap:pretty; }
.cite-parts{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; margin:0; border-top:1px solid var(--line); }
.cite-parts div{ padding:14px 0 12px; border-bottom:1px solid var(--line); }
.cite-parts div:nth-child(odd){ padding-right:16px; }
.cite-parts dt{ font-size:12px; color:var(--muted); margin-bottom:4px; }
.cite-parts dd{ margin:0; font-size:15px; font-weight:560; font-family:var(--font-mono); letter-spacing:-.01em; overflow-wrap:anywhere; }
.cite-parts a{ color:var(--accent-strong); text-underline-offset:3px; }
.ev-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.ev-list li{ display:grid; grid-template-columns:118px 1fr; gap:12px; align-items:baseline; font-size:14.5px; color:var(--ink-2); line-height:1.45; }
.ev-tag{ font-family:var(--font-mono); font-size:11.5px; font-weight:560; padding:3px 8px; border-radius:var(--r-xs); justify-self:start; }
.ev-e{ background:var(--ok-bg); color:var(--ok-tx); box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ok-bd) 30%,transparent); }
.ev-i{ background:var(--info-bg); color:var(--info-tx); box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--info-bd) 30%,transparent); }
.ev-s{ background:var(--warn-bg); color:var(--warn-tx); box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--warn-bd) 30%,transparent); }
.ev-n{ background:var(--danger-bg); color:var(--danger-tx); box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--danger-bd) 30%,transparent); }

/* =====================================================================
   En la consulta
   ===================================================================== */
.practice{ padding:clamp(72px,10vw,140px) 0; border-top:1px solid var(--line); }
.practice-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:clamp(32px,6vw,96px); align-items:start; }
.practice-grid .section-title{ position:sticky; top:110px; }
.practice-list{ margin:0; display:flex; flex-direction:column; }
.practice-list div{ display:grid; grid-template-columns:minmax(150px,.6fr) 1fr; gap:20px; padding:22px 0; border-top:1px solid var(--line); }
.practice-list div:last-child{ border-bottom:1px solid var(--line); }
.practice-list dt{ font-size:18px; font-weight:600; letter-spacing:-.015em; }
.practice-list dd{ margin:0; font-size:16px; color:var(--ink-2); line-height:1.55; }

/* =====================================================================
   Acerca de
   ===================================================================== */
.about{ padding:clamp(80px,12vw,170px) 0; background:var(--surface); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.about-title{ font-size:clamp(32px,4.4vw,60px); line-height:1.06; letter-spacing:-.04em; font-weight:600; margin:0 0 clamp(32px,5vw,56px); max-width:22ch; text-wrap:balance; }
.about-cols{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(24px,4vw,56px); max-width:1040px; margin-left:auto; }
.about-cols p{ margin:0; font-size:17px; line-height:1.6; color:var(--ink-2); }
.about-cols b{ color:var(--ink); font-weight:600; }

/* =====================================================================
   Acceso
   ===================================================================== */
.access{ padding:clamp(72px,10vw,140px) 0; }
.plans{ display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,1fr); gap:14px; margin-top:clamp(32px,5vw,56px); align-items:stretch; }
.plan{ border:1px solid var(--line); border-radius:var(--r-lg); padding:clamp(22px,2.6vw,30px); display:flex; flex-direction:column; gap:16px; background:transparent; }
.plan-current{ background:var(--surface); box-shadow:var(--shadow-2); border-color:color-mix(in srgb,var(--accent) 35%,var(--line)); }
.plan-top{ display:flex; justify-content:space-between; align-items:center; gap:12px; }
.plan h3{ margin:0; font-size:24px; letter-spacing:-.025em; font-weight:620; }
.plan-state{ font-family:var(--font-mono); font-size:11.5px; color:var(--accent-strong); background:var(--accent-soft); padding:4px 9px; border-radius:var(--r-xs); }
.plan-state.plan-soon{ color:var(--muted); background:var(--surface-2); }
.plan ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.plan li{ position:relative; padding-left:20px; font-size:15px; color:var(--ink-2); }
.plan li::before{ content:""; position:absolute; left:0; top:.55em; width:9px; height:5px; border-left:1.5px solid var(--accent); border-bottom:1.5px solid var(--accent); transform:rotate(-45deg); }
.plan p{ margin:0; font-size:15px; color:var(--ink-2); line-height:1.55; }
.plan .btn{ margin-top:auto; align-self:flex-start; }

/* =====================================================================
   Pie
   ===================================================================== */
.site-foot{ padding:56px 0 calc(48px + env(safe-area-inset-bottom,0px)); border-top:1px solid var(--line); }
.foot-grid{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:28px 48px; }
.foot-note{ margin:14px 0 0; font-size:14px; color:var(--muted); max-width:44ch; }
.foot-links{ display:flex; gap:22px; flex-wrap:wrap; align-items:flex-start; }
.foot-links a{ font-size:14px; color:var(--ink-2); text-decoration:none; }
.foot-links a:hover{ color:var(--accent-strong); }
.foot-legal{ grid-column:1 / -1; margin:0; padding-top:22px; border-top:1px solid var(--line); font-size:12.5px; color:var(--muted); line-height:1.6; max-width:none; }
.foot-legal b{ color:var(--ink-2); font-weight:600; }
.foot-copy{ display:inline-block; margin-left:6px; }

/* =====================================================================
   Revelado al hacer scroll (IntersectionObserver añade .in)
   ===================================================================== */
.js .reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s var(--ease-out), transform .7s var(--ease-out); }
.js .reveal.in{ opacity:1; transform:none; }

/* =====================================================================
   Responsive
   ===================================================================== */
@media (max-width:1100px){
  .hero-grid{ grid-template-columns:minmax(0,1fr); min-height:0; }
  .hero-copy{ max-width:720px; }
  .ev-anatomy{ grid-column:span 12; grid-row:auto; }
  .ev-labels, .ev-own{ grid-column:span 6; }
}
@media (max-width:860px){
  .nav-links, .theme-toggle{ display:none; }
  .nav-menu{ display:block; }
  .nav-end .btn-sm{ height:38px; padding:0 14px; font-size:13.5px; }
  .hero{ padding-top:20px; }
  .hero-title{ font-size:clamp(38px,10.5vw,56px); }
  .instrument{ padding:18px; border-radius:var(--r-md); gap:16px; }
  .inst-form{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .seg{ grid-column:1 / -1; justify-self:start; }
  .inst-result{ grid-template-columns:1fr 1fr; gap:16px; }
  .heatmini{ grid-column:1 / -1; justify-self:start; grid-template-columns:repeat(3,28px); grid-auto-rows:12px; }
  .step{ grid-template-columns:1fr; gap:18px; }
  .step + .step{ padding-top:28px; border-top:1px solid var(--line); }
  .panel{ min-height:0; }
  .area-row{ grid-template-columns:1fr; gap:12px; padding:22px 0; }
  .area-mods{ grid-template-columns:1fr; }
  .ev-labels, .ev-own{ grid-column:span 12; }
  .ev-list li{ grid-template-columns:1fr; gap:6px; }
  .cite-parts{ grid-template-columns:1fr; }
  .cite-parts div:nth-child(odd){ padding-right:0; }
  .practice-grid{ grid-template-columns:1fr; }
  .practice-grid .section-title{ position:static; }
  .practice-list div{ grid-template-columns:1fr; gap:6px; padding:18px 0; }
  .about-cols{ grid-template-columns:1fr; }
  .plans{ grid-template-columns:1fr; }
  .foot-grid{ grid-template-columns:1fr; }
  .section-lead{ font-size:16.5px; }
}
@media (max-width:420px){
  .inst-form{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .inst-form .field:last-child{ grid-column:1 / -1; }
  .hero-ctas .btn{ flex:1 1 100%; }
}

@media (prefers-reduced-motion:reduce){
  .js [data-hero], .js .reveal{ opacity:1!important; transform:none!important; }
}
@media print{
  .site-nav, .instrument, .flow, .site-foot{ display:none; }
  body::before{ display:none; }
}

/* ---------- Ajustes tras revisión visual ---------- */
.hero-grid{ min-height:min(780px, calc(100dvh - 160px)); }
.decision-list li > span{ flex:1; min-width:0; }
.flow-index{ display:none; }
.flow-stage.pinned .flow-index{
  display:flex; gap:6px; list-style:none; margin:0; padding:0; position:absolute; top:4%; left:clamp(16px,4vw,48px);
}
.flow-index li{ font-size:12px; font-weight:560; color:var(--muted); padding:5px 10px; border-radius:var(--r-xs); background:var(--surface-2); transition:background-color var(--d-base) var(--ease-out), color var(--d-base) var(--ease-out); }
.flow-index li.on{ background:var(--accent-soft); color:var(--accent-strong); }
.ev-inapp{ margin-top:28px; padding-top:20px; border-top:1px dashed var(--line-strong); }
.ev-inapp-label{ display:block; font-size:12px; color:var(--muted); margin-bottom:10px; }
.ev-inapp-row{ display:flex; flex-wrap:wrap; gap:6px; }
.ev-inapp-row span{ display:inline-flex; gap:6px; align-items:baseline; font-size:12.5px; padding:4px 9px; border:1px solid var(--line); border-radius:var(--r-xs); background:var(--bg); color:var(--ink-2); }
.ev-inapp-row i{ font-style:normal; font-family:var(--font-mono); font-size:11px; color:var(--muted); }
@media (max-width:1100px){ .hero-grid{ min-height:0; } }

/* ---------- Evidencia: cadena de trazabilidad ---------- */
.ev-chain{ grid-column:span 12; background:var(--surface); }
.ev-chain > p{ margin:0 0 18px; color:var(--ink-2); font-size:15px; max-width:60ch; }
.chain{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.chain li{ position:relative; font-size:14px; font-weight:560; padding:9px 14px; border-radius:var(--r-sm); background:var(--bg); border:1px solid var(--line); }
.chain li + li{ margin-left:22px; }
.chain li + li::before{ content:""; position:absolute; left:-19px; top:50%; width:12px; height:1.5px; background:var(--accent); }
.chain li + li::after{ content:""; position:absolute; left:-10px; top:calc(50% - 3.5px); width:6px; height:6px; border-top:1.5px solid var(--accent); border-right:1.5px solid var(--accent); transform:rotate(45deg); }
.chain li:last-child{ background:var(--accent-soft); border-color:transparent; color:var(--accent-strong); }

/* ---------- Planes ---------- */
.plan-en{ margin:-8px 0 0; font-family:var(--font-mono); font-size:12.5px; color:var(--muted); }
.plan-current .plan-state{ background:var(--ink); color:var(--bg); }
.plans{ grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,.9fr); }
.cmp-wrap{ margin-top:clamp(28px,4vw,48px); max-width:860px; }
.cmp{ width:100%; border-collapse:collapse; font-size:15px; }
.cmp thead th{ text-align:left; font-size:12.5px; font-weight:600; color:var(--muted); padding:0 12px 10px; border-bottom:1px solid var(--ink); }
.cmp thead th:not(:first-child), .cmp td{ text-align:center; width:120px; }
.cmp tbody th{ text-align:left; font-weight:500; padding:12px; border-bottom:1px solid var(--line); }
.cmp td{ padding:12px; border-bottom:1px solid var(--line); font-variant-numeric:tabular-nums; }
.cmp td.yes{ color:var(--accent-strong); font-weight:700; }
.cmp td.no{ color:var(--line-strong); font-weight:700; font-size:20px; line-height:1; }
.cmp td.part{ font-size:13px; color:var(--ink-2); }
.cmp tr.diff th{ font-weight:600; }
.cmp-note{ margin:14px 0 0; font-size:13px; color:var(--muted); max-width:70ch; }
@media (max-width:860px){
  .chain li + li{ margin-left:0; }
  .chain li + li::before, .chain li + li::after{ display:none; }
  .chain{ counter-reset:ch; }
  .chain li{ counter-increment:ch; }
  .chain li::before{ content:counter(ch); display:inline-block!important; position:static!important; width:auto!important; height:auto!important; background:none!important; margin-right:8px; font-family:var(--font-mono); color:var(--muted); }
  .plans{ grid-template-columns:1fr; }
  .cmp thead th:not(:first-child), .cmp td{ width:76px; }
  .cmp tbody th, .cmp td{ padding:11px 6px; font-size:14px; }
}
.nav-login{ font-size:14.5px; color:var(--ink-2); text-decoration:none; padding:8px 10px; border-radius:var(--r-sm); }
.nav-login:hover{ color:var(--ink); background:var(--surface-2); }

/* ---------- VALAD: acrónimo y quinto paso ---------- */
.step-letter{ display:inline-grid; place-items:center; width:1.05em; height:1.05em; margin-right:.28em; border-radius:var(--r-sm); background:var(--accent-soft); color:var(--accent-strong); font-size:.62em; vertical-align:.18em; }
.flow-index b, .acronym b{ color:var(--accent-strong); font-weight:700; }
.acronym{ list-style:none; margin:0 0 clamp(32px,5vw,56px); padding:0; display:flex; flex-wrap:wrap; gap:8px 28px; }
.acronym li{ font-size:clamp(18px,1.8vw,24px); letter-spacing:-.02em; color:var(--ink-2); }
.acronym b{ font-size:1.25em; }
.mini-chain{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:6px; }
.mini-chain li{ font-size:12.5px; font-weight:560; padding:6px 10px; border-radius:var(--r-sm); background:var(--bg); border:1px solid var(--line); }
.mini-chain li:last-child{ background:var(--accent-soft); border-color:transparent; color:var(--accent-strong); }
.source-list{ list-style:none; margin:auto 0 0; padding:0; display:flex; flex-direction:column; }
.source-list li{ display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; padding:11px 0; border-top:1px solid var(--line); font-size:14.5px; color:var(--ink-2); }
.source-list code{ font-family:var(--font-mono); font-size:12px; color:var(--accent-strong); }

/* ---------- Redes sociales (íconos Simple Icons, CC0) ---------- */
.social{ display:flex; align-items:center; gap:4px; }
.social-link{ width:36px; height:36px; border-radius:var(--r-sm); display:grid; place-items:center; color:var(--ink-2); transition:color var(--d-fast), background-color var(--d-fast); }
a.social-link:hover{ color:var(--accent-strong); background:var(--surface-2); }
.social-link.is-pending{ opacity:.45; cursor:help; }
.si{ width:17px; height:17px; background:currentColor; -webkit-mask:var(--si) center/contain no-repeat; mask:var(--si) center/contain no-repeat; }
.si-youtube{ --si:url("https://cdn.jsdelivr.net/npm/simple-icons@15.22.0/icons/youtube.svg"); }
.si-facebook{ --si:url("https://cdn.jsdelivr.net/npm/simple-icons@15.22.0/icons/facebook.svg"); }
.si-instagram{ --si:url("https://cdn.jsdelivr.net/npm/simple-icons@15.22.0/icons/instagram.svg"); }
.si-tiktok{ --si:url("https://cdn.jsdelivr.net/npm/simple-icons@15.22.0/icons/tiktok.svg"); }
.social-foot{ margin-top:16px; margin-left:-8px; }
@media (max-width:860px){ .site-nav .social{ display:none; } }

/* ---------- Facturación del plan Pro ---------- */
.billing{ display:inline-flex; padding:3px; background:var(--surface-3); border-radius:calc(var(--r-sm) + 3px); align-self:flex-start; }
.billing label{ position:relative; cursor:pointer; }
.billing input{ position:absolute; opacity:0; inset:0; margin:0; cursor:pointer; }
.billing span{ display:flex; align-items:center; gap:6px; height:36px; padding:0 12px; border-radius:var(--r-sm); font-size:13.5px; font-weight:560; color:var(--ink-2); transition:background-color var(--d-base), color var(--d-fast); }
.billing input:checked + span{ background:var(--surface); color:var(--ink); box-shadow:var(--shadow-1), 0 0 0 1px var(--line); }
.billing input:focus-visible + span{ outline:2px solid var(--focus); outline-offset:1px; }
.billing .save{ font:600 11px/1 var(--font-mono); color:var(--accent-strong); background:var(--accent-soft); padding:4px 6px; border-radius:var(--r-xs); }
.billing-note{ margin:-6px 0 0; font-size:13px; color:var(--muted); }
