/* Tema Radar Patrimonial. Fuente única de valores: assets/marca/radar-tokens.css (cargar
   ANTES de este archivo). Este bloque solo TRADUCE los nombres que usan los componentes
   (heredados del patrón il-funnel-v2) a tokens --rp-*. Prohibido hex o rgba de marca aquí. */
:root {
  --bg: var(--rp-fondo);                 /* marfil: fondo por defecto (tema claro) */
  --bg-raise: var(--rp-marfil-2);        /* inputs, hover, activos */
  --bg-card: var(--rp-marfil-2);         /* tarjetas y bloques */
  --bone: var(--rp-texto);               /* texto principal (grafito) */
  --bone-mute: var(--rp-texto-secundario); /* texto secundario (azul secundario) */
  --accent: var(--rp-acento-texto);      /* dorado legible sobre marfil: eyebrow, foco, marcas */
  --accent-solid: var(--rp-boton-fondo); /* dorado: fondo del botón primario */
  --accent-velo: var(--rp-dorado-velo);
  --accent-ink: var(--rp-boton-texto);   /* AZUL sobre dorado (6,19:1); nunca blanco (2,34:1) */
  --line: var(--rp-borde);
  --alerta: var(--rp-error);
  --serif: var(--rp-display);
  --sans: var(--rp-texto-f);
  --space-1: var(--rp-s-2); --space-2: var(--rp-s-4); --space-3: var(--rp-s-5); --space-4: var(--rp-s-7); --space-5: var(--rp-s-9);
  --radius-0: var(--rp-radio-0); --radius-1: var(--rp-radio-1); --radius-2: var(--rp-radio-2);
  --w-content: var(--rp-ancho-max); --w-text: var(--rp-ancho-lectura);
  --trans: var(--rp-mov);
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { background: var(--bg); color: var(--bone); font-family: var(--sans);
  font-size: 17px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
.wrap { position: relative; z-index: 1; max-width: var(--w-content); margin: 0 auto; padding: 0 var(--space-3); }
.eyebrow { font-family: var(--sans); font-weight: 600; font-size: .75rem; letter-spacing: .18em;
  text-transform: uppercase; color: var(--accent); display: flex; align-items: center; gap: 10px; }
.eyebrow::before { content: ""; display: inline-block; width: 20px; height: 3px; background: var(--accent);
  border-radius: 2px; flex-shrink: 0; }
h1, .display { font-family: var(--serif); font-weight: 400; line-height: 1.04; letter-spacing: -.015em;
  font-size: clamp(38px, 7.5vw, 92px); }  /* serif regular — nunca bold, engordarla la abarata */
h2 { font-family: var(--serif); font-weight: 400; font-size: clamp(28px, 4.5vw, 54px); line-height: 1.1; }
.metric { font-family: var(--serif); font-weight: 400; font-size: clamp(48px, 7vw, 88px); letter-spacing: -.02em;
  color: var(--rp-titular); }  /* lo usa gracias.html; la landing v2 ya no */
.card { background: var(--bg-card); border: 1px solid var(--line); border-radius: var(--radius-1);
  padding: clamp(24px, 3vw, 40px); }
.btn-primary { display: inline-block; background: var(--accent-solid); color: var(--accent-ink);
  font-family: var(--sans); font-weight: 600; font-size: .95rem; letter-spacing: .01em;
  text-decoration: none; padding: 14px 28px; border-radius: var(--radius-1); border: 0;
  cursor: pointer; transition: background var(--trans), opacity var(--trans); }
.btn-primary:hover { opacity: .92; }
.btn-primary:focus-visible { box-shadow: var(--rp-foco); outline: none; }
/* .reveal lo siguen usando agenda.html, gracias.html y privacidad.html (fuera del alcance del Plan D);
   index.html ya no lo usa: el manual §3.4 prohíbe entradas por scroll. */
.reveal { opacity: 0; transition: opacity var(--trans); }
.reveal.in { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .reveal { transition: none; opacity: 1; } }

/* ============ Landing (index.html) — Plan D, v2 ============
   Marca institucional, hero con objeto (plomada), ritmo alternado marfil / marfil-2,
   cita destacada, cifras con fecha, viñetas de caso y FAQ. Breakpoint único: 720 px.
   Referencias con device nombrado: docs/landing-v2/PROMPT-landing-v2.md §2. */

/* Topbar: por defecto sobre claro (agenda, gracias, privacidad); variante --hero flota sobre el azul */
.topbar { padding: var(--rp-s-4) 0; border-bottom: 1px solid var(--rp-borde); position: relative; z-index: 1; }
.topbar .wrap { display: flex; align-items: center; justify-content: space-between; }
.brand-mark { font-family: var(--rp-display); font-weight: var(--rp-peso-display); letter-spacing: var(--rp-tracking-logotipo);
  text-transform: uppercase; display: inline-flex; align-items: center; gap: var(--rp-s-3); font-size: 1.375rem;
  color: var(--rp-titular); text-decoration: none; }
.brand-mark:hover { color: var(--rp-titular); }
.brand-mark img { width: 34px; height: 34px; }
.brand-mark small { font-family: var(--rp-display); font-weight: var(--rp-peso-medio); font-size: .62em; letter-spacing: var(--rp-tracking-logotipo-sub); }
.topbar--hero { position: absolute; top: 0; left: 0; right: 0; z-index: 3; padding: var(--rp-s-5) 0; border-bottom: 0; }
.topbar--hero .brand-mark, .topbar--hero .brand-mark:hover { color: var(--rp-texto-invertido); }
.top-link { font-family: var(--rp-texto-f); font-weight: var(--rp-peso-fuerte); font-size: var(--rp-t-chico); letter-spacing: .02em;
  color: var(--rp-dorado-suave); text-decoration: none; transition: color var(--rp-mov); }
.top-link:hover { color: var(--rp-texto-invertido); }

/* Hero: texto a la izquierda sobre azul, objeto a la derecha con veladura de unión */
.hero { position: relative; min-height: 100vh; min-height: 100svh; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  background: var(--rp-fondo-oscuro); color: var(--rp-texto-invertido); }
.hero-text { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center;
  padding: calc(var(--rp-s-9) + var(--rp-s-6)) var(--rp-s-5) var(--rp-s-9)
           max(var(--rp-s-5), calc((100vw - var(--rp-ancho-max)) / 2 + var(--rp-s-5))); }
.hero .eyebrow { color: var(--rp-dorado); margin-bottom: var(--rp-s-4); }
.hero h1 { color: var(--rp-texto-invertido); max-width: 18ch; margin-bottom: var(--rp-s-5); }
.hero-subhead { font-size: var(--rp-t-lead); line-height: var(--rp-interlinea-cuerpo); color: var(--rp-texto-secundario);
  max-width: 46ch; margin-bottom: var(--rp-s-6); }
.hero .hero-subhead { color: var(--rp-dorado-suave); }
.hero .btn-primary { align-self: flex-start; }
.micro-line { font-family: var(--rp-texto-f); font-size: var(--rp-t-chico); letter-spacing: .01em; color: var(--rp-dorado-suave); margin-top: var(--rp-s-4); }
.hero-img { position: relative; overflow: hidden; }
.hero-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-img::before { content: ""; position: absolute; inset: 0; z-index: 1; background: var(--rp-velo-hero-lateral); }

/* Secciones: ritmo alternado */
.section { padding: clamp(var(--rp-s-8), 8vw, var(--rp-s-9)) 0; position: relative; z-index: 1; }
.section--hundida { background: var(--rp-marfil-2); }
.section .eyebrow { margin-bottom: var(--rp-s-3); }
.section h2 { max-width: var(--rp-ancho-lectura); margin-bottom: var(--rp-s-6); }
.two-col { display: grid; grid-template-columns: 1fr; gap: var(--rp-s-6); align-items: start; }
.two-col h2 { margin-bottom: 0; }
.col-lead p { font-size: var(--rp-t-lead); line-height: var(--rp-interlinea-cuerpo); color: var(--rp-texto); max-width: var(--rp-ancho-lectura); }

/* Cita destacada (manual §6) usada como declaración institucional */
.cita { border-left: 3px solid var(--rp-dorado); padding-left: var(--rp-s-6); margin: 0; max-width: 34ch; }
.cita p { font-family: var(--rp-display); font-style: italic; font-weight: var(--rp-peso-medio); font-size: var(--rp-t-h2);
  line-height: var(--rp-interlinea-titular); color: var(--rp-titular); }
.cita footer { margin-top: var(--rp-s-4); font-family: var(--rp-texto-f); font-size: var(--rp-t-chico); color: var(--rp-texto-secundario); }

/* ¿Es para ti? (dos columnas, heredado y conservado) */
.fit-grid { display: grid; grid-template-columns: 1fr; gap: var(--rp-s-5); }
.fit-col { border: 1px solid var(--rp-borde); border-radius: var(--rp-radio-2); padding: var(--rp-s-5); background: var(--rp-fondo); }
.fit-title { font-family: var(--rp-texto-f); font-weight: var(--rp-peso-fuerte); font-size: var(--rp-t-eyebrow); letter-spacing: var(--rp-tracking-eyebrow);
  text-transform: uppercase; margin-bottom: var(--rp-s-5); color: var(--rp-titular); }
.fit-no .fit-title { color: var(--rp-texto-secundario); }
.fit-col ul { list-style: none; display: flex; flex-direction: column; gap: var(--rp-s-3); }
.fit-col li { display: flex; gap: var(--rp-s-3); align-items: flex-start; }
.fit-mark { font-family: var(--rp-texto-f); font-weight: var(--rp-peso-fuerte); flex-shrink: 0; color: var(--rp-titular); }
.fit-no { color: var(--rp-texto-secundario); }
.fit-no .fit-mark { color: var(--rp-texto-secundario); }

/* Cuatro frentes */
.pilares { display: grid; grid-template-columns: 1fr; gap: var(--rp-s-6); }
.pilar { border-top: 3px solid var(--rp-dorado); padding-top: var(--rp-s-4); }
.pilar h3 { font-family: var(--rp-display); font-weight: var(--rp-peso-fuerte); font-size: var(--rp-t-h3); color: var(--rp-titular); margin-bottom: var(--rp-s-2); }
.pilar p { color: var(--rp-texto-secundario); }

/* Cómo funciona */
.proceso { counter-reset: paso; display: grid; grid-template-columns: 1fr; gap: var(--rp-s-5); }
.paso { position: relative; padding-left: var(--rp-s-8); }
.paso::before { counter-increment: paso; content: "0" counter(paso); position: absolute; left: 0; top: 0; font-family: var(--rp-display);
  font-weight: var(--rp-peso-medio); font-size: var(--rp-t-h2); color: var(--rp-dorado-texto); line-height: 1; }
.paso h3 { font-family: var(--rp-display); font-weight: var(--rp-peso-fuerte); font-size: var(--rp-t-h3); color: var(--rp-titular); margin-bottom: var(--rp-s-2); }
.paso p { color: var(--rp-texto-secundario); max-width: var(--rp-ancho-lectura); }
.llamada { margin-top: var(--rp-s-6); padding: var(--rp-s-5); background: var(--rp-fondo); border: 1px solid var(--rp-borde);
  border-radius: var(--rp-radio-2); max-width: var(--rp-ancho-lectura); }
.llamada h3 { font-family: var(--rp-display); font-weight: var(--rp-peso-fuerte); font-size: var(--rp-t-h3); color: var(--rp-titular); margin-bottom: var(--rp-s-2); }
.llamada p { color: var(--rp-texto); }
.cta-inline { margin-top: var(--rp-s-6); }
.btn-secondary { display: inline-block; border: 1.5px solid var(--rp-boton-borde); color: var(--rp-boton-borde); font-family: var(--rp-texto-f);
  font-weight: var(--rp-peso-fuerte); font-size: .95rem; padding: 12px 26px; border-radius: var(--rp-radio-1); text-decoration: none;
  transition: background-color var(--rp-mov), color var(--rp-mov); }
.btn-secondary:hover { background: var(--rp-azul-velo); }

/* La firma: dos columnas (Pictet) + cifras con filete y nota de fecha (Rothschild) + viñetas */
.cifras { display: grid; grid-template-columns: 1fr; gap: var(--rp-s-5); margin-top: var(--rp-s-7); }
.cifra { border-left: 1px solid var(--rp-borde); padding-left: var(--rp-s-5); display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--rp-s-2) var(--rp-s-5); }
.cifra-n { display: block; font-family: var(--rp-display); font-weight: var(--rp-peso-medio); font-size: clamp(2.5rem, 5vw, 4rem); line-height: 1; color: var(--rp-titular); }
.cifra-u { display: block; font-family: var(--rp-texto-f); font-size: var(--rp-t-cuerpo); color: var(--rp-texto-secundario); max-width: 40ch; }
.cifras-nota { margin-top: var(--rp-s-4); font-size: var(--rp-t-chico); color: var(--rp-texto-secundario); }
.casos { display: grid; grid-template-columns: 1fr; gap: var(--rp-s-5); margin-top: var(--rp-s-7); }
.caso-card { background: var(--rp-marfil-2); border: 1px solid var(--rp-borde); border-radius: var(--rp-radio-2); padding: var(--rp-s-5); }
.caso-card h3 { font-family: var(--rp-display); font-weight: var(--rp-peso-fuerte); font-size: var(--rp-t-h3); color: var(--rp-titular); margin-bottom: var(--rp-s-2); }
.caso-card p { color: var(--rp-texto-secundario); }

/* Preguntas frecuentes: <details> nativo, indicador +/− sin rotación */
.faq { margin-top: var(--rp-s-6); border-top: 1px solid var(--rp-borde); max-width: var(--rp-ancho-lectura); }
.faq details { border-bottom: 1px solid var(--rp-borde); }
.faq summary { list-style: none; cursor: pointer; position: relative; padding: var(--rp-s-5) 40px var(--rp-s-5) 0;
  font-family: var(--rp-display); font-weight: var(--rp-peso-fuerte); font-size: var(--rp-t-h3); color: var(--rp-titular); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 0; top: var(--rp-s-5); font-family: var(--rp-display); font-size: var(--rp-t-h3);
  line-height: 1; color: var(--rp-texto-secundario); transition: color var(--rp-mov); }
.faq details[open] summary::after { content: "−"; }
.faq summary:hover::after { color: var(--rp-titular); }
.faq summary:focus-visible { box-shadow: var(--rp-foco); outline: none; }
.faq-a { padding: 0 0 var(--rp-s-5); color: var(--rp-texto-secundario); }

/* Cierre y pie */
.cta-final { background: var(--rp-fondo-oscuro); color: var(--rp-texto-invertido); text-align: center; padding: var(--rp-s-9) 0; }
.cta-final .display { color: var(--rp-texto-invertido); margin: 0 auto var(--rp-s-6); max-width: 16ch; }
.cta-final .micro-line { color: var(--rp-dorado-suave); }
.footer { padding: var(--rp-s-7) 0; border-top: 1px solid var(--rp-borde); position: relative; z-index: 1; }
.footer-in { display: flex; flex-direction: column; gap: var(--rp-s-2); font-family: var(--rp-texto-f); font-size: var(--rp-t-chico); color: var(--rp-texto-secundario); }
.footer a { color: var(--rp-texto-secundario); text-decoration: underline; }
.footer a:hover { color: var(--rp-titular); }

/* Breakpoint único */
@media (max-width: 720px) {
  .hero { grid-template-columns: 1fr; grid-template-rows: 26svh auto; }
  .hero-img { order: -1; min-height: 26svh; }
  .hero-img::before { background: var(--rp-velo-hero-vertical); }
  .hero-img img { object-position: center 30%; }
  .hero-text { padding: var(--rp-s-5) var(--rp-s-5) var(--rp-s-7); }
  .hero h1 { max-width: none; }
  .hero-subhead { font-size: var(--rp-t-cuerpo); }
  .hero .btn-primary { align-self: stretch; text-align: center; }
  .top-link { display: none; }
}
@media (min-width: 721px) {
  .two-col { grid-template-columns: 1fr 2fr; }
  .fit-grid, .pilares, .casos { grid-template-columns: 1fr 1fr; }
  .footer-in { flex-direction: row; justify-content: space-between; align-items: center; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .btn-primary, .btn-secondary, .top-link, .faq summary::after, .footer a, .brand-mark { transition: none; }
}

/* ============ Agenda (agenda.html) — Task 8 ============ */

.btn-primary[disabled] { background: var(--bg-card); color: var(--bone-mute); cursor: not-allowed; }
.btn-primary[disabled]:hover { background: var(--bg-card); }
.btn-ghost { display: inline-flex; align-items: center; background: transparent; border: 0; cursor: pointer;
  font-family: var(--sans); font-weight: 600; font-size: 14px; color: var(--bone-mute); padding: 10px 0;
  text-decoration: none; transition: color var(--trans); }
.btn-ghost:hover { color: var(--bone); }

.agenda-main { padding: clamp(48px, 6vw, 64px) 0 clamp(64px, 8vw, 96px); position: relative; z-index: 1; }
.agenda-card { max-width: 640px; margin: 0 auto; background: var(--bg-card); border: 1px solid var(--line);
  border-radius: var(--radius-1); padding: clamp(20px, 4vw, 36px); }

.stepper { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); margin-bottom: var(--space-3); }
.stepper-lbl { font-family: var(--sans); font-size: 12px; letter-spacing: .02em; color: var(--bone-mute); }
.stepper-bars { display: flex; gap: 6px; flex: none; }
.stepper-bars .s { width: 26px; height: 4px; border-radius: 4px; background: var(--line); }
.stepper-bars .s.done { background: var(--accent); }

.f-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-2); margin-bottom: var(--space-2); }
@media (max-width: 480px) { .f-row { grid-template-columns: 1fr; } }
.field label { display: block; font-family: var(--sans); font-weight: 600; font-size: 13px; color: var(--bone-mute); margin-bottom: 6px; }
.field input { width: 100%; height: 48px; font-family: var(--sans); font-size: 16px; color: var(--bone); background: var(--bg-raise);
  border: 1px solid var(--line); border-radius: var(--radius-1); padding: 0 14px; transition: border-color var(--trans); }
.field input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 2px var(--rp-dorado-velo); }
.field.err input { border-color: var(--alerta); }
.field textarea { width: 100%; min-height: 112px; font-family: var(--sans); font-size: 16px; line-height: 1.5; color: var(--bone);
  background: var(--bg-raise); border: 1px solid var(--line); border-radius: var(--radius-1); padding: 12px 14px;
  transition: border-color var(--trans); resize: vertical; }
.field textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 2px var(--rp-dorado-velo); }
.field.err textarea { border-color: var(--alerta); }
.field textarea::placeholder { color: var(--bone-mute); opacity: .7; }
.field .msg { display: none; font-size: 12px; color: var(--alerta); margin-top: 5px; }
.field.err .msg { display: block; }
.field { margin-bottom: var(--space-2); }
.phone { display: flex; align-items: stretch; }
.phone .cc { display: flex; align-items: center; gap: 6px; border: 1px solid var(--line); border-right: none;
  border-radius: var(--radius-1) 0 0 var(--radius-1); padding: 0 12px; background: var(--bg-raise); font-size: 14px; color: var(--bone-mute);
  white-space: nowrap; }
.phone input { border-radius: 0 var(--radius-1) var(--radius-1) 0; }

.f-group { margin-bottom: var(--space-3); }
.f-group > p.q { display: block; font-family: var(--serif); font-weight: 400; font-size: 1.25rem; color: var(--bone);
  line-height: 1.3; margin-bottom: var(--space-2); }
.f-group .msg { display: none; font-size: 12px; color: var(--alerta); margin-top: 6px; }

.opts { display: flex; flex-direction: column; gap: 10px; }
.opt { display: flex; gap: 13px; align-items: flex-start; border: 1px solid var(--line); border-radius: var(--radius-1);
  padding: 14px 16px; min-height: 44px; cursor: pointer; background: var(--bg-raise);
  transition: border-color var(--trans), background var(--trans); }
.opt:hover { border-color: var(--rp-dorado-velo); }
.opt.sel { border-color: var(--accent); background: var(--accent-velo); box-shadow: 0 0 0 1px var(--accent) inset; }
.opt .rb { flex: none; width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--bone-mute);
  margin-top: 1px; position: relative; transition: border-color var(--trans); }
.opt.sel .rb { border-color: var(--accent); }
.opt.sel .rb::after { content: ""; position: absolute; inset: 3px; border-radius: 50%; background: var(--accent); }
.opt span:last-child { font-family: var(--sans); font-size: 14.5px; line-height: 1.45; color: var(--bone); }

.actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: var(--space-3);
  flex-wrap: wrap; }
@media (max-width: 480px) { .actions { flex-direction: column-reverse; align-items: stretch; } .actions .btn-primary { width: 100%; text-align: center; } }

.step2-h { font-family: var(--serif); font-weight: 400; font-size: 1.375rem; color: var(--bone); margin-bottom: 4px; }
.step2-sub { font-family: var(--sans); font-size: 13.5px; color: var(--bone-mute); margin-bottom: var(--space-3); }
.pick { display: grid; grid-template-columns: 1.15fr .95fr; gap: var(--space-3); }
@media (max-width: 560px) { .pick { grid-template-columns: 1fr; } }
.cal-h { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--space-2); }
.cal-h .m { font-family: var(--serif); font-weight: 400; font-size: 1.15rem; color: var(--bone); text-transform: capitalize; }
.cal-nav { display: flex; gap: 6px; }
.cal-nav button { width: 36px; height: 36px; border-radius: var(--radius-1); border: 1px solid var(--line); background: var(--bg-raise);
  cursor: pointer; color: var(--bone-mute); font-size: 16px; display: flex; align-items: center; justify-content: center;
  transition: background var(--trans), color var(--trans); }
.cal-nav button:hover { background: var(--accent-velo); color: var(--accent); }
.cal-nav button[disabled] { opacity: .35; cursor: not-allowed; }
.dow { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; font-family: var(--sans); font-size: 10px;
  color: var(--bone-mute); text-align: center; margin-bottom: 7px; text-transform: uppercase; letter-spacing: .04em; }
.days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
/* .day es un <button> (I4, manual §6: cada día es un botón secundario navegable por
   teclado) — reset explícito de background/border/font con tokens para que no herede el
   chrome nativo del elemento (gris, borde 3D, tipografía del sistema). */
.day { aspect-ratio: 1; min-height: 40px; display: flex; align-items: center; justify-content: center; border-radius: var(--radius-1);
  font: inherit; font-family: var(--sans); font-size: 14px; color: var(--bone); background: none;
  border: 1px solid transparent; appearance: none; -webkit-appearance: none;
  transition: background var(--trans), border-color var(--trans); }
.day.off { color: color-mix(in srgb, var(--bone-mute) 35%, transparent); }
.day.off:disabled { cursor: not-allowed; }
.day.has { background: var(--bg-raise); color: var(--bone); cursor: pointer; border-color: var(--rp-boton-borde); }
.day.has:hover { background: var(--accent-velo); border-color: var(--rp-dorado-velo); }
.day.sel { background: var(--accent-velo); border-color: var(--accent); color: var(--bone); font-weight: 600; }
.slots-h { font-family: var(--sans); font-size: 11px; letter-spacing: .04em; text-transform: uppercase;
  color: var(--bone-mute); margin-bottom: 11px; }
.slot-group { margin-bottom: 16px; }
.slot-group:last-child { margin-bottom: 0; }
.slot-group-h { font-family: var(--sans); font-weight: 600; font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 9px; display: flex; align-items: center; gap: 8px; }
.slot-group-h::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.slot-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(70px, 1fr)); gap: 8px; }
.slot { border: 1px solid var(--line); border-radius: var(--radius-1); padding: 11px 6px; min-height: 44px; text-align: center;
  font-size: 14px; font-family: var(--sans); color: var(--bone); background: var(--bg-raise); cursor: pointer;
  transition: border-color var(--trans), background var(--trans), color var(--trans); }
.slot:hover { border-color: var(--rp-dorado-velo); }
.slot.sel { background: var(--accent-velo); color: var(--bone); border-color: var(--accent); font-weight: 600; }
.slots .empty { font-size: 13.5px; color: var(--bone-mute); text-align: center; padding: 24px 8px; line-height: 1.6; }
.slots .empty a { color: var(--bone); text-decoration: underline; }

.note { font-family: var(--sans); font-size: 11.5px; color: var(--bone-mute); margin-top: var(--space-2); }
.spin { display: inline-block; width: 14px; height: 14px; border: 2px solid color-mix(in srgb, var(--accent-ink) 35%, transparent);
  border-top-color: var(--accent-ink); border-radius: 50%; animation: spin .7s linear infinite; vertical-align: -2px;
  margin-right: 6px; }
@keyframes spin { to { transform: rotate(360deg); } }
.err-box { display: none; background: var(--rp-dorado-velo); border: 1px solid var(--rp-dorado-velo);
  color: var(--alerta); font-size: 13.5px; border-radius: var(--radius-1); padding: 12px 14px; margin-top: var(--space-2); line-height: 1.5; }
.err-box.show { display: block; }
.err-box a { color: var(--bone); text-decoration: underline; }

/* ============ Gracias (gracias.html) — Task 9 ============ */

.gracias-hero { padding: clamp(64px, 8vw, 96px) 0 clamp(20px, 4vw, 32px); text-align: center; }
.check-badge { display: flex; justify-content: center; margin-bottom: var(--space-2); }
.check-svg circle, .check-svg path { stroke: var(--accent); }
.gracias-hero h1 { max-width: var(--w-text); margin: 0 auto var(--space-2); }
.gracias-hero .hero-subhead { max-width: var(--w-text); margin: 0 auto; margin-bottom: 0; }

.steps-list { display: flex; flex-direction: column; gap: var(--space-4); margin-top: var(--space-4); }
.step-item { display: flex; gap: var(--space-3); align-items: flex-start; }
.step-num { flex: none; width: 74px; font-size: clamp(28px, 4vw, 40px); color: var(--bone-mute); }
.step-body h3 { font-family: var(--serif); font-weight: 400; font-size: clamp(20px, 2.4vw, 26px);
  line-height: 1.25; margin-bottom: var(--space-1); }
.step-body p { color: var(--bone-mute); margin-bottom: var(--space-2); }
.step-body p:last-child { margin-bottom: 0; }
.step-extra { font-style: italic; }
.step-body .btn-primary { margin-top: var(--space-1); font-size: 13px; padding: 14px 26px; }
@media (max-width: 480px) { .step-item { flex-direction: column; gap: var(--space-1); } .step-num { width: auto; } }

/* ============ Privacidad (privacidad.html) — Task 9 ============ */

.privacy-main { padding: clamp(48px, 6vw, 64px) 0 clamp(64px, 8vw, 96px); position: relative; z-index: 1; }
.privacy-wrap { position: relative; z-index: 1; max-width: var(--w-text); margin: 0 auto; padding: 0 var(--space-3); }
.privacy-wrap h1 { font-size: clamp(28px, 5vw, 44px); margin-top: var(--space-1); margin-bottom: var(--space-1); }
.privacy-updated { font-family: var(--sans); font-size: 12px; letter-spacing: .01em; color: var(--bone-mute);
  margin-bottom: var(--space-4); }
.privacy-wrap h2 { font-size: clamp(19px, 2.4vw, 23px); margin-top: var(--space-4); margin-bottom: var(--space-2); }
.privacy-wrap p { color: var(--bone-mute); margin-bottom: var(--space-2); }
.privacy-wrap ul { list-style: disc; padding-left: 22px; color: var(--bone-mute); margin-bottom: var(--space-2); }
.privacy-wrap li { margin-bottom: 8px; }
.privacy-wrap a { color: var(--bone); text-decoration: underline; }
.privacy-note { font-size: 13px; margin-top: var(--space-4); padding-top: var(--space-3); border-top: 1px solid var(--line); }

/* ============ Casos anónimos (gracias.html) ============
   Acordeón con <details> nativo: cero JS, accesible y funciona sin script.
   Sin acento adicional en las tarjetas: en gracias el dorado ya está gastado en la
   barra del eyebrow y en el botón de WhatsApp — 7 tarjetas más con acento romperían
   la regla 60/35/5. */

.casos-intro { color: var(--bone-mute); max-width: var(--w-text); margin-top: var(--space-2); }
.casos-list { margin-top: var(--space-4); border-top: 1px solid var(--line); }
.caso { border-bottom: 1px solid var(--line); }

.caso > summary { position: relative; cursor: pointer; list-style: none;
  padding: var(--space-3) 40px var(--space-3) 0; }
.caso > summary::-webkit-details-marker { display: none; }
.caso > summary:focus-visible { outline: 2px solid var(--bone); outline-offset: 4px; }

.caso-rubro { display: block; font-size: .8125rem; letter-spacing: .04em;
  color: var(--bone-mute); margin-bottom: var(--space-1); transition: color var(--trans); }
.caso-cifra { display: block; font-family: var(--serif); font-weight: 400;
  font-size: clamp(34px, 5vw, 52px); line-height: 1; letter-spacing: -.02em; }
.caso-linea { display: block; color: var(--bone-mute); font-size: 15px;
  margin-top: var(--space-1); max-width: 56ch; }

/* el "+" / "−" es el único indicador de estado; sin rotación (movimiento = opacidad/color) */
.caso > summary::after { content: "+"; position: absolute; right: 0; top: var(--space-3);
  font-family: var(--serif); font-size: 30px; line-height: 1; color: var(--bone-mute);
  transition: color var(--trans); }
.caso[open] > summary::after { content: "−"; }
.caso > summary:hover::after, .caso > summary:hover .caso-rubro { color: var(--bone); }

@media (min-width: 760px) {
  .caso-cifra { display: inline-block; min-width: 270px; vertical-align: baseline; }
  .caso-linea { display: inline-block; width: calc(100% - 280px); margin-top: 0;
    vertical-align: baseline; }
}

.caso-body { padding-bottom: var(--space-4); max-width: var(--w-text); }
.caso-label { font-family: var(--sans); font-size: .75rem; letter-spacing: .18em;
  text-transform: uppercase; color: var(--bone-mute); margin-bottom: var(--space-1); }
.caso-partida { color: var(--bone-mute); margin-bottom: var(--space-3); }

.caso-cifras { list-style: none; display: grid; gap: var(--space-2); margin-bottom: var(--space-3); }
.caso-cifras li { display: grid; gap: 2px; padding-left: var(--space-2);
  border-left: 1px solid var(--line); }
.caso-cifras li > span:last-child { color: var(--bone-mute); font-size: 15px; }
.caso-n { font-family: var(--serif); font-size: 22px; line-height: 1.25; }
@media (min-width: 640px) {
  .caso-cifras li { grid-template-columns: 190px 1fr; gap: var(--space-2); align-items: baseline; }
}

.caso-quote { font-family: var(--serif); font-size: clamp(19px, 2.2vw, 24px); line-height: 1.35;
  border-left: 2px solid var(--line); padding-left: var(--space-3); margin-bottom: var(--space-2); }
.caso-quote cite { display: block; font-family: var(--sans); font-style: normal;
  font-size: .75rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--bone-mute); margin-top: var(--space-2); }
.caso-fuente { font-size: 13px; color: var(--bone-mute); opacity: .75; }

/* ---- Radar Patrimonial: overrides sobre el patrón ---- */
body { font-size: var(--rp-t-cuerpo); line-height: var(--rp-interlinea-cuerpo); }
h1, .display { font-weight: var(--rp-peso-display); letter-spacing: 0; line-height: var(--rp-interlinea-titular); font-size: var(--rp-t-hero); }
h2 { font-weight: var(--rp-peso-fuerte); font-size: var(--rp-t-h2); line-height: var(--rp-interlinea-titular); }
.eyebrow { letter-spacing: var(--rp-tracking-eyebrow); font-size: var(--rp-t-eyebrow); font-weight: var(--rp-peso-fuerte); }
.eyebrow::before { display: none; }                   /* la marca no lleva la rayita de acento heredada del patrón iL */
.btn-ghost { color: var(--rp-titular); }
.card { box-shadow: none; }
.check-svg circle, .check-svg path { stroke: var(--rp-dorado); }
.stepper-bars .s.done { background: var(--rp-dorado); }
.opt.sel, .slot.sel, .day.sel { border-color: var(--rp-titular); background: var(--rp-azul-velo); }
.field input:focus, .field textarea:focus { border-color: var(--rp-titular); box-shadow: 0 0 0 3px var(--rp-dorado-velo); }
.no-califica { text-align: center; padding: var(--rp-s-6) 0; }
.no-califica h2 { margin-bottom: var(--rp-s-4); }
.no-califica p { color: var(--rp-texto-secundario); max-width: var(--rp-ancho-lectura); margin: 0 auto var(--rp-s-4); }
/* Foco visible y estado deshabilitado (manual §6) */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { box-shadow: var(--rp-foco); outline: none; }
.opt:focus-visible, .day:focus-visible, .slot:focus-visible { box-shadow: var(--rp-foco); outline: none; }
.btn-primary[disabled] { background: var(--rp-disabled-fondo); color: var(--rp-disabled-texto); border: 1.5px solid var(--rp-borde); opacity: 1; }

/* Fix review C3: el foco heredado de .btn-primary (outline) tenía más especificidad que la regla global */
.btn-primary:focus-visible, .btn-ghost:focus-visible, .btn-secondary:focus-visible { box-shadow: var(--rp-foco); outline: none; }
.err-box { background: var(--rp-marfil-2); border-color: var(--rp-error); }

/* Foco sobre azul: el anillo estándar lleva filete azul y desaparece sobre el hero y el cierre.
   Esta regla debe quedar SIEMPRE al final del archivo para ganar la cascada sobre las reglas de foco de arriba. */
.hero a:focus-visible, .cta-final a:focus-visible, .topbar--hero a:focus-visible { box-shadow: var(--rp-foco-oscuro); outline: none; }
