/* Salvaguarda · "el informe al directorio"
   Source Serif 4 + Source Sans 3 (OFL-1.1), locales. */

@font-face{font-family:"Source Serif 4";src:url("fonts/source-serif-4-latin-600-normal.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url("fonts/source-serif-4-latin-700-normal.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url("fonts/source-sans-3-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url("fonts/source-sans-3-latin-600-normal.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}

:root{
  --papel:#F7F5F0;
  --superficie:#FFFFFF;
  --pizarra:#1E2A38;
  --texto-suave:#55606E;
  --burdeos:#7A1F2B;
  --laton:#D9B76A;
  --laton-texto:#7A5A1E;
  --gris-banda:#B9C2CE;
  --borde:#DAD5CA;
  --campo:#8A93A0;

  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --sans:"Source Sans 3",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:ui-monospace,"SFMono-Regular",Menlo,Consolas,"Liberation Mono",monospace;

  /* escala de espaciado (base 0,25rem) */
  --s1:.25rem; --s2:.5rem; --s3:.75rem; --s4:1rem; --s5:1.5rem;
  --s6:2rem; --s7:3rem; --s8:4.5rem; --s9:6rem;

  --gutter:clamp(1rem,4vw,2rem);
  --max:72rem;
  color-scheme:light;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:var(--s5)}
body{margin:0;background:var(--papel);color:var(--pizarra);font-family:var(--sans);font-size:1.0625rem;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-wrap:break-word}
img,svg{max-width:100%;height:auto}
h1,h2,h3,p,ol,ul,dl,dd,figure{margin:0}
ol,ul{padding:0;list-style:none}
[hidden]{display:none!important}

a{color:var(--burdeos);text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--burdeos);outline-offset:3px;border-radius:2px}

.wrap{width:min(100% - 2*var(--gutter),var(--max));margin-inline:auto}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:var(--s4);top:-4rem;z-index:20;background:var(--pizarra);color:var(--papel);padding:var(--s3) var(--s4);border-radius:2px}
.skip:focus{top:var(--s3);outline-color:var(--laton)}

.smallcaps{font-family:var(--serif);font-weight:600;font-variant-caps:all-small-caps;letter-spacing:.08em;font-size:1.0625rem;line-height:1.3}

/* ---------- Botones ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:2.875rem;padding:.65rem 1.4rem;background:var(--burdeos);color:#fff;border:2px solid var(--burdeos);border-radius:2px;font:600 1rem/1.2 var(--sans);text-decoration:none;cursor:pointer;transition:background-color .18s,color .18s,border-color .18s}
.btn:hover{background:var(--pizarra);border-color:var(--pizarra);color:#fff}
.btn--ghost{background:transparent;color:var(--burdeos)}
.btn--ghost:hover{background:var(--burdeos);border-color:var(--burdeos);color:#fff}
.btn--sm{white-space:nowrap;min-height:2.5rem;padding:.45rem 1rem;font-size:.95rem}
.btn:disabled{background:#E4E1D9;border-color:#C9C4B8;color:#4B5560;cursor:not-allowed}
.btn:disabled:hover{background:#E4E1D9;border-color:#C9C4B8;color:#4B5560}

/* ---------- Encabezado ---------- */
.site-header{background:var(--papel);border-bottom:1px solid var(--borde)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding-block:var(--s3)}
.brand{display:inline-flex;align-items:center;gap:var(--s3);color:var(--pizarra);text-decoration:none;font:600 1.375rem/1 var(--serif);letter-spacing:.005em}
.brand:hover{text-decoration:none;color:var(--burdeos)}
.brand img{display:block}

/* ---------- Hero ---------- */
.hero{padding-block:var(--s7) var(--s8)}
.hero-grid{display:grid;gap:var(--s7)}
.eyebrow{font-family:var(--serif);font-weight:600;font-variant-caps:all-small-caps;letter-spacing:.07em;font-size:1.0625rem;line-height:1.4;color:var(--burdeos);padding-top:var(--s3);border-top:1px solid var(--pizarra);max-width:34rem}
.hero h1{font-family:var(--serif);font-weight:700;font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.1;letter-spacing:-.01em;margin-top:var(--s5);text-wrap:balance}
.lead{margin-top:var(--s5);font-size:1.1875rem;line-height:1.65;max-width:38rem}
.actions{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s6)}
.trust{margin-top:var(--s6);padding-left:var(--s4);border-left:3px solid var(--laton);color:var(--texto-suave);font-size:.98rem;line-height:1.6;max-width:36rem}
.trust strong{color:var(--pizarra);font-weight:600}

.matriz{background:var(--superficie);border:1px solid var(--borde);padding:var(--s4);align-self:start;box-shadow:0 1px 0 var(--borde),0 14px 28px -22px rgba(30,42,56,.45)}
.matriz img{display:block;width:100%;height:auto}
.matriz-compact{display:none!important}
.riesgos{display:none;margin-top:var(--s4);font-family:var(--mono);font-size:.85rem;line-height:1.5;color:var(--pizarra)}
.riesgos li{display:flex;gap:var(--s3);padding-block:var(--s1);border-top:1px solid var(--borde)}
.riesgos b{flex:none;min-width:1.75rem;color:var(--burdeos)}
.matriz figcaption{margin-top:var(--s3);padding-top:var(--s3);border-top:1px solid var(--borde);font-family:var(--serif);font-weight:600;font-variant-caps:all-small-caps;letter-spacing:.08em;color:var(--texto-suave);font-size:1rem}

@media (max-width:39.99rem){
  .matriz-wide{display:none!important}
  .matriz-compact{display:block!important}
  .riesgos{display:block}
}
@media (min-width:60rem){
  .hero-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:var(--s8);align-items:center}
}

/* ---------- Índice ---------- */
.indice{border-block:1px solid var(--pizarra);background:var(--superficie);padding-block:var(--s5)}
.indice h2{color:var(--texto-suave);margin-bottom:var(--s3)}
.indice ol{display:grid;column-gap:var(--s7)}
.indice a{display:flex;align-items:baseline;gap:var(--s2);padding-block:var(--s2);color:var(--pizarra);text-decoration:none}
.indice a:hover .i-t{color:var(--burdeos);text-decoration:underline;text-underline-offset:.2em}
.indice a:hover .i-n{color:var(--burdeos)}
.i-n{flex:none;min-width:2.4rem;font-family:var(--serif);font-weight:700;color:var(--laton-texto)}
.i-t{font-weight:600}
.i-l{flex:1;min-width:1rem;border-bottom:1px dotted var(--texto-suave);transform:translateY(-.3em)}
.i-k{flex:none;font-family:var(--serif);font-variant-caps:all-small-caps;letter-spacing:.08em;font-size:.95rem;color:var(--texto-suave)}
@media (min-width:48rem){
  .indice ol{grid-template-columns:1fr 1fr}
}

/* ---------- Secciones ---------- */
.sec{padding-block:var(--s8);border-top:1px solid var(--borde)}
.indice + .sec{border-top:0}
.sec-grid{display:grid;gap:var(--s4)}
.sec-side{display:flex;align-items:baseline;gap:var(--s3)}
.rom{font-family:var(--serif);font-weight:700;font-size:clamp(2.4rem,6vw,3.4rem);line-height:1;color:var(--laton-texto)}
.kicker{color:var(--texto-suave)}
.sec h2{font-family:var(--serif);font-weight:600;font-size:clamp(1.65rem,3.2vw,2.3rem);line-height:1.2;letter-spacing:-.005em;max-width:40rem;text-wrap:balance}
.intro{margin-top:var(--s4);max-width:44rem;color:var(--pizarra)}
.prose{max-width:40rem}
.prose p+p{margin-top:var(--s4)}
.cols-note{display:grid;gap:var(--s5);margin-top:var(--s5)}
.nota{border-left:2px solid var(--laton);padding-left:var(--s4);font-size:.95rem;line-height:1.6;color:var(--texto-suave);align-self:start}
.nota h3{color:var(--laton-texto);margin-bottom:var(--s2)}
.nota p+p{margin-top:var(--s2)}

@media (min-width:56rem){
  .sec-grid{grid-template-columns:9.5rem minmax(0,1fr);column-gap:var(--s6)}
  .sec-side{flex-direction:column;align-items:flex-start;gap:var(--s2);padding-top:.2rem;border-top:1px solid var(--pizarra);padding-top:var(--s3)}
}
@media (min-width:64rem){
  .cols-note{grid-template-columns:minmax(0,1fr) 15rem;column-gap:var(--s6)}
}

/* ---------- Tablas de correspondencia ---------- */
.corr{width:100%;margin-top:var(--s5);border-collapse:collapse;background:var(--superficie);border-top:2px solid var(--pizarra);border-bottom:2px solid var(--pizarra);counter-reset:fila}
.corr caption{caption-side:top;text-align:left;color:var(--texto-suave);padding-bottom:var(--s2)}
.corr th,.corr td{padding:var(--s4);text-align:left;vertical-align:top;line-height:1.55}
.corr thead th{font-family:var(--serif);font-weight:600;font-variant-caps:all-small-caps;letter-spacing:.08em;font-size:1rem;color:var(--texto-suave);border-bottom:1px solid var(--pizarra);background:var(--papel)}
.corr tbody tr{border-top:1px solid var(--borde)}
.corr tbody tr:first-child{border-top:0}
.corr tbody th{font-weight:600;width:34%}
.corr tbody tr:hover{background:#FBFAF6}
.c-flecha{width:3rem;text-align:center!important;color:var(--burdeos);font-family:var(--serif);font-size:1.4rem;padding-inline:0!important}
.corr:not(.ejemplo) tbody th::before{counter-increment:fila;content:counter(fila) ". ";font-family:var(--mono);font-weight:400;color:var(--laton-texto);font-size:.9rem}

.ejemplo tbody th{width:auto}
.ejemplo thead th{white-space:nowrap}
.ejemplo td,.ejemplo th{font-size:.98rem}

@media (max-width:47.99rem){
  .corr,.corr tbody,.corr tr,.corr th,.corr td{display:block;width:100%!important}
  .corr{background:transparent;border:0}
  .corr thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .corr tbody tr{background:var(--superficie);border:1px solid var(--borde);border-top:3px solid var(--pizarra);margin-bottom:var(--s4);padding:var(--s2) 0}
  .corr tbody tr:first-child{border-top:3px solid var(--pizarra)}
  .corr th,.corr td{padding:var(--s2) var(--s4)}
  .corr caption{display:block;width:100%}
  .c-flecha{display:none!important}
  .corr tbody th{font-family:var(--serif);font-size:1.1rem;line-height:1.35}
  .corr td[data-label]::before{content:attr(data-label);display:block;font-family:var(--serif);font-variant-caps:all-small-caps;letter-spacing:.08em;font-weight:600;color:var(--laton-texto);font-size:.95rem}
  .ejemplo tbody th{font-size:1.15rem}
}

/* ---------- III. Límites ---------- */
.limites{display:grid;gap:var(--s5);margin-top:var(--s5);border:2px solid var(--laton);background:var(--superficie);padding:var(--s5)}
.limites article+article{border-top:1px solid var(--borde);padding-top:var(--s5)}
.limites h3{font-family:var(--serif);font-weight:600;font-size:1.35rem;line-height:1.25;color:var(--burdeos);margin-bottom:var(--s2)}
.limites .alt{margin-top:var(--s3);color:var(--pizarra)}
.limites .alt .smallcaps{display:block;color:var(--laton-texto);font-size:1rem}
@media (min-width:56rem){
  .limites{grid-template-columns:repeat(3,1fr);gap:0;padding:var(--s6) 0}
  .limites article{padding:0 var(--s5)}
  .limites article+article{border-top:0;border-left:1px solid var(--borde);padding-top:0}
}

/* ---------- IV. Línea de tiempo ---------- */
.linea{position:relative;margin-top:var(--s6);display:grid;gap:var(--s6);max-width:46rem}
.linea::before{content:"";position:absolute;left:.4rem;top:.5rem;bottom:.5rem;width:1px;background:var(--pizarra)}
.linea li{position:relative;padding-left:var(--s7)}
.linea li::before{content:"";position:absolute;left:0;top:.42rem;width:.85rem;height:.85rem;background:var(--papel);border:2px solid var(--burdeos);border-radius:50%}
.linea .dia{color:var(--laton-texto);font-size:1.125rem}
.linea h3{font-family:var(--serif);font-weight:600;font-size:1.3rem;line-height:1.3;margin-top:var(--s1)}
.linea li p:last-child{margin-top:var(--s2);max-width:36rem}
@media (min-width:48rem){
  .linea::before{left:9.4rem}
  .linea li{padding-left:11rem}
  .linea li::before{left:9rem}
  .linea .dia{position:absolute;left:0;top:.05rem;width:8rem;text-align:right}
}

/* ---------- V. Propuesta ---------- */
.propuesta{margin-top:var(--s5);background:var(--superficie);border:1px solid var(--pizarra);box-shadow:6px 6px 0 var(--borde);display:grid}
.prop-main{padding:var(--s5);border-bottom:1px solid var(--pizarra);background:var(--papel)}
.prop-tag{color:var(--laton-texto)}
.prop-price{white-space:nowrap;font-family:var(--serif);font-weight:700;font-size:clamp(2.6rem,7vw,4rem);line-height:1.05;color:var(--burdeos);margin-block:var(--s1) var(--s3);letter-spacing:-.01em}
.prop-desde{display:block;font-size:.4em;line-height:1.4;font-weight:600;font-variant-caps:all-small-caps;letter-spacing:.08em;color:var(--texto-suave)}
.prop-iva{font-size:.4em;font-weight:600;color:var(--texto-suave);letter-spacing:0}
.prop-plazo{margin-top:var(--s3)}
.prop-plazo .smallcaps{color:var(--laton-texto);margin-right:var(--s2)}
.prop-lines{padding:var(--s5)}
.prop-lines>div{padding-block:var(--s3);border-top:1px solid var(--borde)}
.prop-lines>div:first-child{border-top:0;padding-top:0}
.prop-lines dt{font-family:var(--serif);font-weight:600;font-variant-caps:all-small-caps;letter-spacing:.08em;color:var(--texto-suave);font-size:1.0625rem}
.prop-lines dd{margin-top:var(--s1)}
.prop-why{grid-column:1/-1;padding:var(--s5);background:var(--pizarra);color:var(--papel)}
.prop-why .smallcaps{display:block;color:var(--laton);margin-bottom:var(--s2)}
@media (min-width:56rem){
  .propuesta{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
  .prop-main{border-bottom:0;border-right:1px solid var(--pizarra);padding:var(--s6)}
  .prop-lines{padding:var(--s6)}
  .prop-why{padding:var(--s5) var(--s6)}
}

/* ---------- VI. Ejemplo ---------- */
.manual{margin-top:var(--s6);background:var(--superficie);border:1px solid var(--borde);border-top:3px solid var(--pizarra);padding:var(--s5);max-width:46rem}
.manual h3{color:var(--texto-suave);margin-bottom:var(--s3)}
.manual ol{counter-reset:cap;display:grid;column-gap:var(--s6)}
.manual li{counter-increment:cap;display:flex;gap:var(--s3);padding-block:var(--s2);border-top:1px solid var(--borde)}
.manual li::before{content:counter(cap) ".";flex:none;min-width:1.6rem;font-family:var(--mono);font-size:.95rem;color:var(--burdeos)}
@media (min-width:40rem){
  .manual ol{grid-template-columns:1fr 1fr}
}

/* ---------- VII. Preguntas ---------- */
.faq{margin-top:var(--s5);max-width:46rem;border-top:2px solid var(--pizarra)}
.faq details{border-bottom:1px solid var(--borde)}
.faq summary{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s4);padding:var(--s4) var(--s2);cursor:pointer;list-style:none;font-family:var(--serif);font-weight:600;font-size:1.15rem;line-height:1.35;transition:background-color .18s,color .18s}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;font-family:var(--sans);font-weight:400;font-size:1.6rem;line-height:1;color:var(--burdeos)}
.faq details[open] summary::after{content:"\2212"}
.faq summary:hover{background:var(--superficie);color:var(--burdeos)}
.faq summary:focus-visible{outline-offset:-3px}
.faq details p{padding:0 var(--s2) var(--s5);max-width:38rem}

/* ---------- CTA final + formulario ---------- */
.cta{background:var(--pizarra);color:var(--papel);padding-block:var(--s8)}
.cta :focus-visible{outline-color:var(--laton)}
.cta-grid{display:grid;gap:var(--s7)}
.eyebrow--band{color:var(--laton);border-top-color:var(--gris-banda)}
.cta h2{font-family:var(--serif);font-weight:700;font-size:clamp(1.8rem,3.6vw,2.6rem);line-height:1.15;margin-top:var(--s4);text-wrap:balance}
.cta-copy>p:not(.eyebrow){margin-top:var(--s4);color:var(--gris-banda);max-width:30rem;font-size:1.125rem}
.cta-copy a{color:var(--laton)}
.cta-mail{font-size:1rem!important}

.formcard{background:var(--superficie);color:var(--pizarra);padding:var(--s5);border-top:4px solid var(--laton)}
.formcard :focus-visible{outline-color:var(--burdeos)}
.form-intro h3{font-family:var(--serif);font-weight:700;font-size:1.5rem;line-height:1.2}
.small{font-size:.9rem;line-height:1.55;color:var(--texto-suave)}
.form-intro .small{margin-top:var(--s2)}
form{margin-top:var(--s5);display:grid;gap:var(--s4)}
.form-pair{display:grid;gap:var(--s4)}
label{display:block;font-weight:600;font-size:.97rem;line-height:1.4}
label small{font-weight:400;color:var(--texto-suave)}
input[type=text],input[type=email],input[type=date],input:not([type]),textarea{display:block;width:100%;margin-top:var(--s1);min-height:2.75rem;padding:.6rem .75rem;background:#fff;color:var(--pizarra);border:1px solid var(--campo);border-radius:2px;font:400 1rem/1.5 var(--sans)}
textarea{resize:vertical}
input:focus,textarea:focus{border-color:var(--burdeos)}
::placeholder{color:#6B7482;opacity:1}
.check{display:flex;align-items:flex-start;gap:var(--s3);font-weight:400;font-size:.95rem}
.check input{flex:none;width:1.25rem;height:1.25rem;margin:.2rem 0 0;accent-color:var(--burdeos)}
form>.btn{justify-self:start}
.form-status{min-height:1.6em;font-size:.95rem;font-weight:600;color:var(--burdeos)}
.form-status:empty{min-height:0}
.review{border:1px solid var(--borde);background:var(--papel);padding:var(--s4);display:grid;gap:var(--s3)}
.review:focus{outline:3px solid var(--burdeos);outline-offset:2px}
.review h3{font-family:var(--serif);font-weight:600;font-size:1.2rem}
.review pre{margin:0;max-height:20rem;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:#fff;border:1px solid var(--borde);padding:var(--s3);font:400 .85rem/1.55 var(--mono)}
.review .actions{margin-top:0}
.hosted-step{display:grid;gap:var(--s3);padding-top:var(--s3);border-top:1px solid var(--borde)}
.hosted-step .btn{justify-self:start}

@media (min-width:40rem){
  .form-pair{grid-template-columns:1fr 1fr}
  .formcard{padding:var(--s6)}
}
@media (min-width:64rem){
  .cta-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--s8);align-items:start}
}

/* ---------- Pie ---------- */
.site-footer{background:var(--papel);border-top:3px double var(--pizarra);padding-block:var(--s7)}
.foot-grid{display:grid;gap:var(--s5)}
.foot-brand{display:flex;align-items:center;gap:var(--s3);font:600 1.25rem/1 var(--serif)}
.foot-legal{margin-top:var(--s2);font-size:.95rem;color:var(--texto-suave)}
.foot-note{font-size:.98rem}
.foot-note p:first-child{font-weight:600}
.foot-small{margin-top:var(--s2);font-size:.88rem;color:var(--texto-suave)}
.foot-nav{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s5);font-size:.95rem}
@media (min-width:56rem){
  .foot-grid{grid-template-columns:1.2fr 1.4fr auto;gap:var(--s7);align-items:start}
}

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

/* ---------- Impresión ---------- */
@media print{
  :root{--papel:#fff}
  html{font-size:11pt}
  body{background:#fff;color:#000;font-size:11pt;line-height:1.5}
  .site-header,.indice,.skip,.hero .actions,.formcard,.cta-mail{display:none!important}
  .hero{padding-block:var(--s5)}
  .hero-grid{grid-template-columns:1fr 1fr;gap:var(--s5)}
  .hero h1{font-size:24pt}
  .matriz{box-shadow:none}
  .sec{padding-block:var(--s5);break-inside:auto}
  .sec-grid{grid-template-columns:5rem minmax(0,1fr)}
  .sec-side{flex-direction:column;align-items:flex-start}
  .corr,.limites,.propuesta,.manual,.faq details{break-inside:avoid}
  .corr tbody tr{break-inside:avoid}
  .cta{background:#fff;color:#000;border-top:1px solid #000;padding-block:var(--s5)}
  .cta-grid{grid-template-columns:1fr}
  .cta-copy>p:not(.eyebrow){color:#000}
  .eyebrow--band{color:var(--burdeos);border-top-color:#000}
  .prop-why{background:#fff;color:#000;border-top:1px solid #000}
  .prop-why .smallcaps{color:var(--laton-texto)}
  .propuesta{box-shadow:none}
  .faq summary::after{content:none}
  .faq details>*:not(summary){display:block!important}
  .faq details::details-content{content-visibility:visible;display:block}
  a[href]:not([href^="#"]):not([href^="mailto:"])::after{content:" (" attr(href) ")";font-size:.85em;word-break:break-all}
  a[href^="mailto:"]::after{content:""}
  a{color:#000}
  .site-footer{border-top:1px solid #000}
}
