/* =========================================================================
   WP Seguro — hoja principal del child theme (GeneratePress)
   Traducida 1:1 desde el handoff de Claude Design (_handoff-design/).
   Paleta VERDE seguridad (forest/green), tipografía IBM Plex.
   Mobile-first: estilos base = móvil; media queries añaden el desktop.
   ========================================================================= */

/* ------------------------------------------------------------------ TOKENS */
/* Color — desde tokens/colors.css. Incluye alias navy/blue -> forest/green
   (remap del build del sitio, partials/tokens-remap.css) por si algún estilo
   heredado los referencia; resuelven a los mismos valores verdes. */
:root{
  /* Brand forest-green */
  --forest-950:#04231A;
  --forest-900:#063D2C;
  --forest-800:#0A5138;
  --forest-700:#0F6244;
  --forest-600:#1B7350;

  /* Action emerald */
  --green-700:#075F3C;
  --green-600:#0B7A4E;
  --green-500:#12925E;
  --green-100:#C9EAD8;
  --green-050:#E9F6EF;

  /* Neutrals */
  --ink-900:#0D1420;
  --ink-700:#2A3646;
  --ink-500:#5A6676;
  --ink-400:#7C889A;
  --line-300:#D8DEE7;
  --line-200:#E7ECF2;
  --surface-100:#F4F6FA;
  --surface-050:#FAFBFD;
  --white:#FFFFFF;

  /* Severity (reservado a informes) */
  --sev-critical:#B4232A;   --sev-critical-bg:#FBEAEA;
  --sev-high:#C6621B;       --sev-high-bg:#FCEFE3;
  --sev-medium:#B08411;     --sev-medium-bg:#FBF3DC;
  --sev-low:#2F72E0;        --sev-low-bg:#EAF1FD;
  --sev-pass:#1F7A4D;       --sev-pass-bg:#E4F3EA;

  /* Semantic aliases */
  --brand:var(--forest-900);
  --brand-deep:var(--forest-950);
  --brand-surface:var(--forest-800);
  --action:var(--green-600);
  --action-green:var(--green-600);
  --action-hover:var(--green-700);
  --action-soft:var(--green-050);

  --text-strong:var(--ink-900);
  --text-body:var(--ink-700);
  --text-muted:var(--ink-500);
  --text-onbrand:var(--white);
  --text-onbrand-muted:#A9C6B9;

  --bg-page:var(--surface-100);
  --surface-card:var(--white);
  --surface-sunken:var(--surface-050);

  --border:var(--line-300);
  --border-subtle:var(--line-200);
  --focus-ring:var(--green-500);

  /* Alias navy/blue heredados -> forest/green (compatibilidad) */
  --navy-950:#04231A; --navy-900:#04231A; --navy-800:#063D2C; --navy-700:#0A5138; --navy-600:#0F6244; --navy-500:#1B7350;
  --blue-700:#075F3C; --blue-600:#0B7A4E; --blue-500:#22936A; --blue-100:#C4E7D5; --blue-050:#E6F4EC;

  /* Tipografía — tokens/typography.css */
  --font-sans:"IBM Plex Sans","Segoe UI",system-ui,-apple-system,sans-serif;
  --font-serif:"IBM Plex Serif",Georgia,"Times New Roman",serif;
  --font-mono:"IBM Plex Mono","SFMono-Regular",Menlo,Consolas,monospace;

  --fs-display:56px; --fs-h1:40px; --fs-h2:30px; --fs-h3:23px; --fs-h4:19px;
  --fs-lead:19px; --fs-body:16px; --fs-sm:14px; --fs-xs:12.5px; --fs-eyebrow:12px;
  --lh-tight:1.12; --lh-heading:1.22; --lh-body:1.6; --lh-relaxed:1.7;
  --fw-regular:400; --fw-medium:500; --fw-semibold:600; --fw-bold:700;
  --ls-eyebrow:0.14em; --ls-tight:-0.01em; --ls-display:-0.02em;

  /* Spacing — tokens/spacing.css */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:20px;
  --space-6:24px; --space-8:32px; --space-10:40px; --space-12:48px; --space-16:64px;
  --space-20:80px; --space-24:96px; --space-32:128px;
  --container-max:1200px; --container-narrow:760px; --gutter:24px; --section-y:96px;

  /* Efectos — tokens/effects.css */
  --radius-xs:3px; --radius-sm:5px; --radius-md:8px; --radius-lg:12px; --radius-pill:999px;
  --border-width:1px;
  --shadow-xs:0 1px 2px rgba(6,45,34,0.06);
  --shadow-sm:0 1px 3px rgba(6,45,34,0.08),0 1px 2px rgba(6,45,34,0.04);
  --shadow-md:0 4px 12px rgba(6,45,34,0.08),0 2px 4px rgba(6,45,34,0.04);
  --shadow-lg:0 12px 32px rgba(6,45,34,0.12),0 4px 8px rgba(6,45,34,0.05);
  --ease-standard:cubic-bezier(0.2,0,0,1);
  --dur-fast:120ms; --dur-base:180ms; --dur-slow:260ms;

  /* Layout responsive */
  --pad-x:20px;          /* gutter móvil */
  --header-h:60px;
}
@media (min-width:768px){ :root{ --pad-x:32px; } }

/* -------------------------------------------------------------------- BASE */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font:var(--fw-regular) var(--fs-body)/var(--lh-body) var(--font-sans);
  color:var(--text-body);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--action); text-decoration:none; }
a:hover{ color:var(--action-hover); }
button{ font-family:inherit; }
h1,h2,h3,h4,p{ margin:0; }
ul{ margin:0; }

/* Foco visible accesible (WCAG AA) */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,
select:focus-visible,[tabindex]:focus-visible{
  outline:3px solid var(--focus-ring);
  outline-offset:2px;
  border-radius:var(--radius-xs);
}

.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0; }

.wps-container{ max-width:var(--container-max); margin:0 auto; padding-left:var(--pad-x); padding-right:var(--pad-x); }
.wps-eyebrow{ font:var(--fw-semibold) var(--fs-eyebrow)/1 var(--font-sans); letter-spacing:var(--ls-eyebrow);
  text-transform:uppercase; color:var(--action); }

@media (prefers-reduced-motion:reduce){
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

/* --------------------------------------------------------------- BOTONES */
.wps-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:10px 20px; font:var(--fw-semibold) var(--fs-body)/1 var(--font-sans);
  letter-spacing:.01em; border-radius:var(--radius-sm); border:1px solid transparent;
  cursor:pointer; text-align:center;
  transition:background var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard);
}
.wps-btn--sm{ padding:7px 14px; font-size:var(--fs-sm); gap:6px; }
.wps-btn--lg{ padding:14px 28px; font-size:var(--fs-h4); border-radius:var(--radius-md); gap:10px; }
.wps-btn--primary{ background:var(--action); color:#fff; border-color:var(--action); }
.wps-btn--primary:hover{ background:var(--action-hover); border-color:var(--action-hover); color:#fff; }
.wps-btn--secondary{ background:var(--brand); color:#fff; border-color:var(--brand); }
.wps-btn--secondary:hover{ background:var(--forest-950); border-color:var(--forest-950); color:#fff; }
.wps-btn--outline{ background:transparent; color:var(--brand); border-color:var(--border); }
.wps-btn--outline:hover{ background:var(--surface-sunken); color:var(--brand); }
.wps-btn--block{ display:flex; width:100%; }
@media (max-width:520px){ .wps-btn--hero{ display:flex; width:100%; } }

/* ---------------------------------------------------------------- TARJETAS */
.wps-card{
  background:var(--surface-card); border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); padding:24px;
}
.wps-card--accent{ border-top:3px solid var(--action); }
.wps-card--flush{ padding:0; overflow:hidden; }
a.wps-card{ color:inherit; display:block; transition:box-shadow var(--dur-base) var(--ease-standard),border-color var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-standard); }
a.wps-card:hover{ box-shadow:var(--shadow-md); border-color:var(--green-100); transform:translateY(-2px); }

/* ---------------------------------------------------------------- BADGES */
.sev-badge{
  display:inline-flex; align-items:center; gap:6px; padding:3px 10px 3px 8px;
  font:var(--fw-semibold) var(--fs-xs)/1 var(--font-sans); letter-spacing:.02em;
  text-transform:uppercase; border-radius:var(--radius-sm); white-space:nowrap;
}
.sev-badge__dot{ width:7px; height:7px; border-radius:50%; background:currentColor; flex:0 0 auto; }
.sev-badge--critical{ color:var(--sev-critical); background:var(--sev-critical-bg); }
.sev-badge--high{ color:var(--sev-high); background:var(--sev-high-bg); }
.sev-badge--medium{ color:var(--sev-medium); background:var(--sev-medium-bg); }
.sev-badge--low{ color:var(--sev-low); background:var(--sev-low-bg); }
.sev-badge--pass{ color:var(--sev-pass); background:var(--sev-pass-bg); }
/* el dot hereda el color de texto de la severidad salvo el fondo */
.sev-badge .sev-badge__dot{ color:inherit; }

.wps-tag{
  display:inline-flex; align-items:center; gap:6px; padding:4px 10px;
  font:var(--fw-medium) var(--fs-sm)/1 var(--font-sans); color:var(--text-body);
  background:var(--white); border:1px solid var(--border); border-radius:var(--radius-sm);
  white-space:nowrap;
}
.wps-badge{
  display:inline-flex; align-items:center; gap:5px; padding:3px 9px;
  font:var(--fw-semibold) var(--fs-xs)/1 var(--font-sans); letter-spacing:.01em;
  border-radius:var(--radius-sm); white-space:nowrap;
}
.wps-badge--brand{ background:var(--green-050); color:var(--green-700); border:1px solid var(--green-100); }

/* ---------------------------------------------------------------- ALERTAS */
.wps-alert{
  display:flex; gap:12px; padding:14px 16px; border-radius:var(--radius-md);
  border-left:3px solid var(--sev-low); background:var(--sev-low-bg);
}
.wps-alert[hidden]{ display:none; }
.wps-alert__title{ font:var(--fw-semibold) var(--fs-body)/1.4 var(--font-sans); color:var(--text-strong); }
.wps-alert__body{ font:var(--fw-regular) var(--fs-sm)/1.5 var(--font-sans); color:var(--text-body); margin-top:2px; }
.wps-alert--info{ border-left-color:var(--sev-low); background:var(--sev-low-bg); }
.wps-alert--success{ border-left-color:var(--sev-pass); background:var(--sev-pass-bg); }
.wps-alert--warning{ border-left-color:var(--sev-medium); background:var(--sev-medium-bg); }
.wps-alert--danger{ border-left-color:var(--sev-critical); background:var(--sev-critical-bg); }

/* ---------------------------------------------------------------- STATCARD */
.wps-stat{
  background:var(--surface-card); border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); padding:20px 24px;
  display:flex; flex-direction:column; gap:10px;
}
.wps-stat__label{ font:var(--fw-medium) var(--fs-xs)/1.2 var(--font-sans); letter-spacing:.06em;
  text-transform:uppercase; color:var(--text-muted); }
.wps-stat__value{ font:var(--fw-semibold) var(--fs-h1)/1 var(--font-sans); color:var(--text-strong); letter-spacing:-.01em; }
.wps-stat__trend{ font:var(--fw-medium) var(--fs-sm)/1 var(--font-sans); color:var(--text-muted); }

/* ---------------------------------------------------------------- SCORERING */
.score-ring{ position:relative; display:inline-flex; }
.score-ring svg{ transform:rotate(-90deg); }
.score-ring__label{ position:absolute; inset:0; display:flex; flex-direction:column;
  align-items:center; justify-content:center; }
.score-ring__num{ font:var(--fw-semibold) 30px/1 var(--font-sans); color:var(--text-strong); letter-spacing:-.02em; }
.score-ring__band{ font:var(--fw-medium) var(--fs-xs)/1 var(--font-sans); margin-top:2px; }

/* =========================================================================
   HEADER (sticky) — compartido
   ========================================================================= */
.site-header{
  position:sticky; top:0; z-index:30;
  background:rgba(255,255,255,0.92); backdrop-filter:blur(6px);
  border-bottom:1px solid var(--border-subtle);
}
.site-header__inner{
  max-width:var(--container-max); margin:0 auto; padding:12px var(--pad-x);
  display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.site-logo{ display:inline-flex; align-items:center; gap:9px; }
.site-logo__mark{ width:24px; height:28px; color:var(--action); display:inline-flex; flex:0 0 auto; }
.site-logo__text{ font:var(--fw-bold) 20px/1 var(--font-sans); letter-spacing:-.02em; color:var(--brand); }
.site-logo__text b{ color:var(--action); font-weight:700; }
.site-nav{ display:none; }
.site-nav a{ font:var(--fw-medium) var(--fs-sm)/1 var(--font-sans); color:var(--text-body); }
.site-nav a:hover,.site-nav a[aria-current="page"]{ color:var(--action); }
.site-header__cta{ display:none; }
.nav-toggle{
  display:inline-flex; flex-direction:column; justify-content:center; gap:5px;
  width:40px; height:40px; padding:8px; background:transparent; border:1px solid var(--border);
  border-radius:var(--radius-sm); cursor:pointer;
}
.nav-toggle span{ display:block; height:2px; width:100%; background:var(--brand); border-radius:2px;
  transition:transform var(--dur-base),opacity var(--dur-base); }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* Panel móvil desplegable */
.mobile-nav{
  display:none; position:fixed; inset:var(--header-h) 0 0; z-index:29;
  background:var(--white); padding:24px var(--pad-x);
  flex-direction:column; gap:4px; overflow-y:auto;
  border-top:1px solid var(--border-subtle);
}
.mobile-nav.is-open{ display:flex; }
.mobile-nav a{ font:var(--fw-medium) var(--fs-h4)/1 var(--font-sans); color:var(--text-strong);
  padding:16px 4px; border-bottom:1px solid var(--border-subtle); }
.mobile-nav a[aria-current="page"]{ color:var(--action); }
.mobile-nav .wps-btn{ margin-top:16px; }

@media (min-width:992px){
  .site-nav{ display:flex; gap:28px; align-items:center; }
  .site-header__cta{ display:inline-flex; }
  .nav-toggle{ display:none; }
  .mobile-nav{ display:none !important; }
}

/* =========================================================================
   FOOTER — compartido
   ========================================================================= */
.site-footer{ background:var(--brand-deep); color:var(--text-onbrand-muted); padding:48px var(--pad-x) 32px; }
.site-footer__grid{ max-width:var(--container-max); margin:0 auto; display:grid;
  grid-template-columns:1fr; gap:32px; }
.site-footer__brand-mark{ width:24px; height:28px; color:#46C88A; display:inline-flex; }
.site-footer__logo{ display:inline-flex; align-items:center; gap:9px; }
.site-footer__logo b{ font:var(--fw-bold) 20px/1 var(--font-sans); letter-spacing:-.02em; color:#fff; }
.site-footer__logo b span{ color:#46C88A; }
.site-footer__tagline{ font:var(--fw-regular) 14px/1.6 var(--font-sans); margin-top:14px; max-width:280px; }
.site-footer__col-title{ font:var(--fw-semibold) 12px/1 var(--font-sans); letter-spacing:.08em;
  text-transform:uppercase; color:#fff; margin-bottom:14px; }
.site-footer__col a,.site-footer__col div.footer-item{ display:block; font:var(--fw-regular) 14px/1 var(--font-sans);
  color:var(--text-onbrand-muted); padding:6px 0; }
.site-footer__col a:hover{ color:#fff; }
.site-footer__col a.mono{ font-family:var(--font-mono); }
.site-footer__legal{ max-width:var(--container-max); margin:32px auto 0; padding-top:20px;
  border-top:1px solid rgba(255,255,255,.12); display:flex; justify-content:space-between;
  gap:12px; flex-wrap:wrap; font:var(--fw-regular) 13px/1.4 var(--font-sans); }
.site-footer__legal a{ color:var(--text-onbrand-muted); }
.site-footer__legal a:hover{ color:#fff; }
@media (min-width:600px){ .site-footer__grid{ grid-template-columns:1fr 1fr; } }
@media (min-width:900px){ .site-footer__grid{ grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; } }

/* =========================================================================
   SECCIONES / LAYOUT COMÚN
   ========================================================================= */
.section{ padding:56px 0; }
@media (min-width:768px){ .section{ padding:72px 0; } }
@media (min-width:992px){ .section--lg{ padding:80px 0; } }
.section--tint{ background:var(--surface-100); border-top:1px solid var(--border-subtle); border-bottom:1px solid var(--border-subtle); }
.section-gradient{ background:linear-gradient(180deg,var(--surface-100),var(--white)); border-bottom:1px solid var(--border-subtle); }

.h1-serif{ font:var(--fw-semibold) 34px/1.15 var(--font-serif); letter-spacing:var(--ls-display); color:var(--brand); text-wrap:pretty; }
.h2-sans{ font:var(--fw-semibold) var(--fs-h2)/1.2 var(--font-sans); letter-spacing:var(--ls-tight); color:var(--brand); }
.h2-serif{ font:var(--fw-semibold) var(--fs-h2)/1.2 var(--font-serif); letter-spacing:var(--ls-tight); color:var(--brand); }
.lead{ font:var(--fw-regular) var(--fs-lead)/1.6 var(--font-sans); color:var(--text-body); }
@media (min-width:768px){
  .h1-serif{ font-size:var(--fs-h1); }
  .h1-serif--display{ font-size:52px; line-height:1.1; }
}

/* Grillas reutilizables (mobile-first: 1 col) */
.grid{ display:grid; gap:20px; grid-template-columns:1fr; }
.grid--gap-16{ gap:16px; }
@media (min-width:640px){ .grid--2{ grid-template-columns:1fr 1fr; } }
@media (min-width:768px){ .grid--3{ grid-template-columns:repeat(3,1fr); } }
@media (min-width:992px){ .grid--4{ grid-template-columns:repeat(4,1fr); } .grid--3-lg{ grid-template-columns:repeat(3,1fr); } }

/* ---------------------------------------------------------------- HERO HOME */
.hero{ }
.hero__grid{ display:grid; grid-template-columns:1fr; gap:40px; align-items:center;
  padding:48px 0 44px; }
@media (min-width:992px){ .hero__grid{ grid-template-columns:1.05fr .95fr; gap:56px; padding:76px 0 68px; } }
.hero__ctas{ display:flex; gap:12px; margin-top:32px; flex-wrap:wrap; }
.hero__stats{ display:flex; gap:24px; margin-top:36px; flex-wrap:wrap; }
.hero__stat b{ display:block; font:var(--fw-semibold) 15px/1.3 var(--font-sans); color:var(--brand); }
.hero__stat span{ display:block; font:var(--fw-regular) 13px/1.4 var(--font-sans); color:var(--text-muted); margin-top:3px; }
.hero__divider{ width:1px; background:var(--border-subtle); align-self:stretch; }
@media (max-width:640px){ .hero__divider{ display:none; } }

/* Tarjeta score del hero */
.score-card-row{ display:flex; align-items:center; gap:20px; }
.finding-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.finding-row__name{ font:var(--fw-medium) 14px/1.4 var(--font-sans); color:var(--text-body); }

/* Trust bar */
.trust-bar{ border-bottom:1px solid var(--border-subtle); background:var(--white); }
.trust-bar__inner{ display:flex; align-items:center; gap:24px; justify-content:center; flex-wrap:wrap;
  padding:22px var(--pad-x); }
.trust-bar__label{ font:var(--fw-medium) 13px/1 var(--font-sans); color:var(--text-muted); }
.trust-bar__item{ font:var(--fw-semibold) 15px/1 var(--font-sans); color:var(--ink-400); }

/* Icon tile */
.icon-tile{ width:40px; height:40px; border-radius:var(--radius-md); background:var(--green-050);
  color:var(--action); display:flex; align-items:center; justify-content:center; }
.icon-tile svg{ width:20px; height:20px; }

/* Card content helpers */
.card-num{ font:var(--fw-semibold) 13px/1 var(--font-mono); color:var(--action); }
.card-h3{ font:var(--fw-semibold) var(--fs-h4)/1.3 var(--font-sans); color:var(--brand); margin:14px 0 6px; }
.card-p{ font:var(--fw-regular) 14.5px/1.6 var(--font-sans); color:var(--text-body); }

/* CTA band */
.cta-band{ background:var(--brand-surface); border-radius:var(--radius-lg); padding:36px 28px;
  display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap; }
@media (min-width:768px){ .cta-band{ padding:56px; gap:40px; } }
.cta-band h2{ font:var(--fw-semibold) var(--fs-h2)/1.2 var(--font-serif); letter-spacing:var(--ls-tight); color:#fff; max-width:560px; }
.cta-band p{ font:var(--fw-regular) 17px/1.6 var(--font-sans); color:var(--text-onbrand-muted); margin-top:14px; max-width:520px; }
@media (max-width:640px){ .cta-band .wps-btn{ width:100%; } }

/* Sobre Francisco */
.about-grid{ display:grid; grid-template-columns:1fr; gap:40px; align-items:center; }
@media (min-width:992px){ .about-grid{ grid-template-columns:1fr 1fr; gap:56px; } }
.about-cards{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.about-card b{ display:block; font:var(--fw-semibold) 26px/1 var(--font-sans); color:var(--brand); letter-spacing:-.01em; }
.about-card span{ display:block; font:var(--fw-regular) 14px/1.5 var(--font-sans); color:var(--text-muted); margin-top:8px; }

/* ---------------------------------------------------------- EL ANÁLISIS */
.area-num{ font:var(--fw-semibold) 13px/1 var(--font-mono); color:var(--action); }
.entregable-row{ display:flex; gap:14px; padding:16px 0; border-bottom:1px solid var(--border-subtle); align-items:flex-start; }
.entregable-row__check{ width:22px; height:22px; flex:0 0 auto; color:var(--action); margin-top:1px; }
.entregable-row b{ font:var(--fw-semibold) var(--fs-body)/1.4 var(--font-sans); color:var(--brand); display:block; }
.entregable-row span{ font:var(--fw-regular) 14.5px/1.6 var(--font-sans); color:var(--text-body); margin-top:2px; display:block; }
.analisis-recibes{ display:grid; grid-template-columns:1fr; gap:32px; align-items:start; }
@media (min-width:992px){ .analisis-recibes{ grid-template-columns:1.1fr .9fr; gap:48px; } }
.sev-legend-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.sev-legend-row span{ font:var(--fw-regular) 13px/1.4 var(--font-sans); color:var(--text-muted); }
.steps{ display:grid; grid-template-columns:1fr; gap:28px; }
@media (min-width:768px){ .steps{ grid-template-columns:repeat(3,1fr); gap:32px; } }
.step__num{ font:var(--fw-semibold) 15px/1 var(--font-mono); color:var(--action); }
.step__rule{ height:1px; background:var(--border); margin:14px 0; }
.step h3{ font:var(--fw-semibold) var(--fs-h4)/1.3 var(--font-sans); color:var(--brand); margin-bottom:8px; }
.step p{ font:var(--fw-regular) 15px/1.6 var(--font-sans); color:var(--text-body); }

/* ---------------------------------------------------------- INFORME MUESTRA */
.report-head{ padding:24px; border-bottom:1px solid var(--border-subtle); display:flex;
  justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; }
.report-head__sub{ font:var(--fw-medium) 13px/1 var(--font-sans); color:var(--text-muted); }
.report-head h2{ font:var(--fw-semibold) 26px/1.2 var(--font-sans); letter-spacing:-.01em; color:var(--brand); margin:6px 0 0; }
.report-head__date{ font:var(--fw-regular) 13px/1 var(--font-mono); color:var(--text-muted); margin-top:8px; }
.report-kpis{ padding:24px; display:grid; grid-template-columns:1fr; gap:16px; align-items:stretch; }
@media (min-width:768px){ .report-kpis{ grid-template-columns:auto 1fr 1fr 1fr; } }
.report-score-box{ background:var(--surface-050); border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg); padding:16px 26px; display:flex; align-items:center; justify-content:center; }
.report-findings{ padding:0 24px 8px; }
.report-findings__title{ font:var(--fw-semibold) 12px/1 var(--font-sans); letter-spacing:.08em;
  text-transform:uppercase; color:var(--text-muted); padding:6px 0 14px; border-bottom:1px solid var(--border-subtle); }
.finding-item{ display:grid; grid-template-columns:1fr auto; gap:10px 16px; align-items:center;
  padding:14px 0; border-bottom:1px solid var(--border-subtle); }
@media (min-width:640px){ .finding-item{ grid-template-columns:1fr auto auto; } }
.finding-item__name{ font:var(--fw-semibold) 15px/1.35 var(--font-sans); color:var(--brand); }
.finding-item__area{ font:var(--fw-regular) 13px/1.35 var(--font-sans); color:var(--text-muted); margin-top:2px; }
.finding-item__ref{ font:var(--fw-regular) 13px/1 var(--font-mono); color:var(--text-muted); }
@media (min-width:640px){ .finding-item__ref{ text-align:right; min-width:120px; } }
.finding-item__ref--hide-sm{ display:none; }
@media (min-width:640px){ .finding-item__ref--hide-sm{ display:block; } }

/* ---------------------------------------------------------- CONTACTO */
.contact-grid{ display:grid; grid-template-columns:1fr; gap:40px; align-items:start; }
@media (min-width:992px){ .contact-grid{ grid-template-columns:1.05fr .95fr; gap:56px; } }
.field{ display:flex; flex-direction:column; gap:6px; }
.field label{ font:var(--fw-medium) 14px/1.3 var(--font-sans); color:var(--text-body); }
.field input,.field textarea{
  width:100%; padding:10px 12px; font:var(--fw-regular) var(--fs-body)/1.5 var(--font-sans);
  color:var(--text-strong); background:var(--white); border:1px solid var(--border);
  border-radius:var(--radius-sm); outline:none;
}
.field textarea{ resize:vertical; min-height:120px; }
.field input:focus,.field textarea:focus{ border-color:var(--focus-ring); box-shadow:0 0 0 3px var(--action-soft); }
.field__hint{ font:var(--fw-regular) 13px/1.4 var(--font-sans); color:var(--text-muted); }
.field__hint a{ color:var(--action); }
.contact-form{ display:flex; flex-direction:column; gap:18px; max-width:520px; }
/* Honeypot: fuera de pantalla (no display:none) para no delatarse a bots simples;
   oculto también a lectores de pantalla porque no debe ser percibido por nadie real. */
.wps-hp{ position:absolute; left:-9999px; top:-9999px; width:1px; height:1px; overflow:hidden; }
.next-step{ display:flex; gap:14px; padding:16px 0; border-bottom:1px solid var(--border-subtle); align-items:flex-start; }
.next-step:last-child{ border-bottom:none; }
.next-step__num{ font:var(--fw-semibold) 13px/1 var(--font-mono); color:var(--action); margin-top:3px; }
.next-step b{ font:var(--fw-semibold) 15px/1.4 var(--font-sans); color:var(--brand); display:block; }
.next-step span{ font:var(--fw-regular) 14px/1.6 var(--font-sans); color:var(--text-body); margin-top:2px; display:block; }

/* ---------------------------------------------------------- BLOG ÍNDICE */
.cluster{ }
.cluster + .cluster{ margin-top:48px; }
.cluster__head{ display:flex; align-items:baseline; gap:12px; padding-bottom:18px; margin-bottom:24px;
  border-bottom:1px solid var(--border-subtle); flex-wrap:wrap; }
.cluster__name{ font:var(--fw-semibold) 12px/1 var(--font-sans); letter-spacing:.12em; text-transform:uppercase; color:var(--action); }
.cluster__meta{ font:var(--fw-regular) 13px/1 var(--font-sans); color:var(--text-muted); }
.cluster__grid{ display:grid; grid-template-columns:1fr; gap:20px; align-items:stretch; }
@media (min-width:900px){ .cluster__grid{ grid-template-columns:1.4fr 1fr; } }
.pillar h2,.pillar h3{ font:var(--fw-semibold) 25px/1.25 var(--font-serif); letter-spacing:-.01em;
  color:var(--brand); margin:16px 0 10px; text-wrap:pretty; }
.pillar p{ font:var(--fw-regular) 15.5px/1.6 var(--font-sans); color:var(--text-body); margin-bottom:18px; }
.pillar__more{ margin-top:auto; font:var(--fw-semibold) 14px/1 var(--font-sans); color:var(--action);
  display:inline-flex; align-items:center; gap:6px; }
.pillar__inner{ display:flex; flex-direction:column; height:100%; }
.sats{ display:flex; flex-direction:column; gap:20px; }
.sat h3{ font:var(--fw-semibold) var(--fs-h4)/1.35 var(--font-sans); color:var(--brand); margin:14px 0 6px; text-wrap:pretty; }
.sat p{ font:var(--fw-regular) 14px/1.55 var(--font-sans); color:var(--text-body); }
.sat-empty{ border:1px dashed var(--border); border-radius:var(--radius-lg); padding:22px;
  display:flex; flex-direction:column; justify-content:center; min-height:120px;
  font:var(--fw-medium) 14px/1.5 var(--font-sans); color:var(--text-muted); }

/* Rejilla de posts simple (fallback / archive) */
.posts-grid{ display:grid; grid-template-columns:1fr; gap:24px; }
@media (min-width:640px){ .posts-grid{ grid-template-columns:1fr 1fr; } }
@media (min-width:960px){ .posts-grid{ grid-template-columns:repeat(3,1fr); } }
.post-card{ background:var(--surface-card); border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); overflow:hidden; display:flex; flex-direction:column; }
.post-card__thumb{ aspect-ratio:16/9; background:var(--surface-100); overflow:hidden; }
.post-card__thumb img{ width:100%; height:100%; object-fit:cover; }
.post-card__body{ padding:20px; display:flex; flex-direction:column; gap:8px; flex:1; }
.post-card__meta{ font:var(--fw-regular) 13px/1.4 var(--font-sans); color:var(--text-muted); display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.post-card__cat{ color:var(--action); font-weight:var(--fw-semibold); text-transform:uppercase; letter-spacing:.06em; font-size:12px; }
.post-card__title{ font:var(--fw-semibold) var(--fs-h4)/1.35 var(--font-sans); color:var(--brand); text-wrap:pretty; }
.post-card__title a{ color:inherit; }
.post-card__title a:hover{ color:var(--action); }
.post-card__excerpt{ font:var(--fw-regular) 14.5px/1.6 var(--font-sans); color:var(--text-body); }
.post-card__more{ margin-top:auto; font:var(--fw-semibold) 14px/1 var(--font-sans); color:var(--action); }

.pagination{ display:flex; gap:8px; justify-content:center; margin-top:48px; flex-wrap:wrap; }
.pagination .page-numbers{ display:inline-flex; align-items:center; justify-content:center; min-width:40px; height:40px;
  padding:0 12px; border:1px solid var(--border); border-radius:var(--radius-sm); color:var(--text-body);
  font:var(--fw-medium) 14px/1 var(--font-sans); background:var(--white); }
.pagination .page-numbers.current{ background:var(--action); color:#fff; border-color:var(--action); }
.pagination a.page-numbers:hover{ border-color:var(--action); color:var(--action); }

.no-posts{ text-align:center; padding:48px 0; }
.no-posts h2{ font:var(--fw-semibold) var(--fs-h3)/1.2 var(--font-sans); color:var(--brand); margin-bottom:8px; }
.no-posts p{ color:var(--text-muted); margin-bottom:20px; }

/* ---------------------------------------------------------- ARTÍCULO */
.article-head{ }
.article-head__inner{ max-width:var(--container-narrow); margin:0 auto; padding:48px var(--pad-x) 36px; }
.breadcrumb{ display:flex; align-items:center; gap:10px; font:var(--fw-medium) 13px/1 var(--font-sans); color:var(--text-muted); flex-wrap:wrap; }
.breadcrumb a{ color:var(--action); }
.article-head h1{ font:var(--fw-semibold) 32px/1.18 var(--font-serif); letter-spacing:var(--ls-display); color:var(--brand); margin:18px 0 0; text-wrap:pretty; }
@media (min-width:768px){ .article-head h1{ font-size:42px; } }
.article-head__lead{ font:var(--fw-regular) var(--fs-lead)/1.6 var(--font-sans); color:var(--text-body); margin:18px 0 24px; }
.author-line{ display:flex; align-items:center; gap:12px; padding-top:20px; border-top:1px solid var(--border-subtle); }
.author-avatar{ width:40px; height:40px; flex:0 0 auto; border-radius:50%; background:var(--brand); color:#fff;
  display:flex; align-items:center; justify-content:center; font:var(--fw-semibold) 15px/1 var(--font-sans); }
.author-line b{ font:var(--fw-semibold) 14px/1.3 var(--font-sans); color:var(--brand); display:block; }
.author-line span{ font:var(--fw-regular) 13px/1.3 var(--font-sans); color:var(--text-muted); }

.article-body{ max-width:1080px; margin:0 auto; padding:36px var(--pad-x) 24px;
  display:grid; grid-template-columns:1fr; gap:32px; align-items:start; }
@media (min-width:1024px){ .article-body{ grid-template-columns:220px 1fr; gap:48px; } }
.toc{ }
.toc__title{ font:var(--fw-semibold) 12px/1 var(--font-sans); letter-spacing:.1em; text-transform:uppercase;
  color:var(--text-muted); margin-bottom:14px; }
.toc__list{ list-style:none; padding:0; display:flex; flex-direction:column; gap:2px; border-left:2px solid var(--border-subtle); }
.toc__list a{ display:block; font:var(--fw-regular) 14px/1.4 var(--font-sans); color:var(--text-body);
  padding:6px 0 6px 14px; margin-left:-2px; border-left:2px solid transparent; }
.toc__list a:hover,.toc__list a.is-active{ color:var(--action); border-left-color:var(--action); }
@media (min-width:1024px){ .toc{ position:sticky; top:calc(var(--header-h) + 20px); } }

.prose{ max-width:680px; }
.prose h2{ font:var(--fw-semibold) 27px/1.3 var(--font-sans); letter-spacing:-.01em; color:var(--brand);
  margin:40px 0 14px; scroll-margin-top:calc(var(--header-h) + 20px); }
.prose h2:first-child{ margin-top:0; }
.prose h3{ font:var(--fw-semibold) var(--fs-h3)/1.3 var(--font-sans); color:var(--brand); margin:28px 0 12px; }
.prose p{ font:var(--fw-regular) 17px/1.75 var(--font-sans); color:var(--text-body); margin:0 0 16px; }
.prose ul,.prose ol{ font:var(--fw-regular) 17px/1.75 var(--font-sans); color:var(--text-body);
  margin:0 0 16px; padding-left:22px; display:flex; flex-direction:column; gap:8px; }
.prose a{ color:var(--action); text-decoration:underline; text-underline-offset:2px; }
.prose code,.prose .mono{ font:var(--fw-medium) 15px/1 var(--font-mono); color:var(--ink-700);
  background:var(--surface-100); padding:2px 6px; border-radius:var(--radius-xs); }
.prose img{ border-radius:var(--radius-md); margin:8px 0 20px; }
.prose blockquote{ border-left:3px solid var(--action); padding:4px 0 4px 18px; margin:0 0 16px; color:var(--text-body); }

.article-related{ margin-top:44px; padding-top:28px; border-top:1px solid var(--border-subtle); }
.article-related__title{ font:var(--fw-semibold) 12px/1 var(--font-sans); letter-spacing:.1em; text-transform:uppercase;
  color:var(--action); margin-bottom:16px; }
.article-related__grid{ display:grid; grid-template-columns:1fr; gap:16px; }
@media (min-width:640px){ .article-related__grid{ grid-template-columns:1fr 1fr; } }
.author-box{ margin-top:32px; }
.author-box__row{ display:flex; gap:16px; align-items:flex-start; }
.author-box__avatar{ width:52px; height:52px; flex:0 0 auto; border-radius:50%; background:var(--brand); color:#fff;
  display:flex; align-items:center; justify-content:center; font:var(--fw-semibold) 18px/1 var(--font-sans); }
.author-box b{ font:var(--fw-semibold) var(--fs-body)/1.3 var(--font-sans); color:var(--brand); display:block; }
.author-box p{ font:var(--fw-regular) 14.5px/1.6 var(--font-sans); color:var(--text-body); margin:6px 0 8px; max-width:520px; }
.article-cta{ max-width:1080px; margin:0 auto; padding:24px var(--pad-x) 0; }
