/* ============ Tipografias auto-alojadas ============ */
/* Manrope e IBM Plex Sans (SIL Open Font License 1.1), servidas desde el
   propio dominio. No se cargan desde fonts.googleapis.com: eso enviaba la IP
   y la URL de cada visitante a un tercero y no admitia SRI. */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url('../assets/fonts/manrope-300-800-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url('../assets/fonts/manrope-300-800-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../assets/fonts/ibm-plex-sans-400-italic-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../assets/fonts/ibm-plex-sans-400-italic-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../assets/fonts/ibm-plex-sans-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../assets/fonts/ibm-plex-sans-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../assets/fonts/ibm-plex-sans-600-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../assets/fonts/ibm-plex-sans-600-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../assets/fonts/ibm-plex-sans-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../assets/fonts/ibm-plex-sans-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --navy: #001a4f;
  --blue: #006fc9;
  --gold: #ffb900;
  --red: #c91422;
  --ivory: #fbfaf6;
  --mist: #eef2f6;
  --line: #d7dee8;
  --graphite: #3a4150;
  --display: "Manrope", sans-serif;
  --body: "IBM Plex Sans", sans-serif;
}

/* Frozen print baseline for the 1.0.0 editorial edition. */
@page { size: A4; margin: 14mm; }

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--ivory); color: var(--navy); font-family: var(--body); line-height: 1.55; }
a { color: inherit; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }
.skip-link { position: fixed; z-index: 20; top: -4rem; left: 1rem; background: var(--gold); color: var(--navy); padding: .75rem 1rem; font-weight: 700; }
.skip-link:focus { top: 1rem; }
nav { margin-left: auto; display: flex; gap: 1rem; align-items: center; }
nav a { font: 700 .72rem var(--display); letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }
nav a:hover { color: var(--blue); }
.hero, .section { width: min(1200px, calc(100% - 2.5rem)); margin: 0 auto; }
.hero { min-height: 620px; padding: clamp(5rem, 10vw, 9rem) 0 clamp(4rem, 8vw, 7rem); display: grid; grid-template-columns: 1.08fr .92fr; align-items: center; gap: clamp(2rem, 7vw, 8rem); }
.compact-hero { min-height: auto; padding-bottom: 4rem; }
.eyebrow, .chapter-number, .card-label, .kit-number { margin: 0 0 .8rem; color: var(--blue); font: 800 .72rem var(--display); letter-spacing: .13em; text-transform: uppercase; }
h1, h2, h3, h4 { font-family: var(--display); line-height: 1.1; }
h1 { max-width: 780px; margin: 0; font-size: clamp(2.85rem, 6.2vw, 5.7rem); letter-spacing: -.055em; }
h2 { margin: 0; font-size: clamp(2.1rem, 4.2vw, 4rem); letter-spacing: -.045em; }
h3 { margin: 0; }
.lead { max-width: 680px; margin: 1.7rem 0 0; color: var(--graphite); font-size: clamp(1.05rem, 1.6vw, 1.32rem); }
.actions { margin-top: 2rem; display: flex; flex-wrap: wrap; gap: .8rem; }
/* Indice de secciones del Manual. Antes vivia en la barra superior propia;
   ahora la cabecera es la misma barra de navegacion del sitio principal, asi
   que el recorrido interno del documento baja al cuerpo de la portada. */
.manual-index { margin: 2.2rem 0 0; padding-top: 1.1rem; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; }
.manual-index a { color: var(--graphite); text-decoration: none; font: 600 .72rem var(--display); letter-spacing: .1em; text-transform: uppercase; padding: .35rem 0; border-bottom: 1px solid transparent; }
.manual-index a:hover, .manual-index a:focus-visible { color: var(--blue); border-bottom-color: var(--blue); }
.button { display: inline-block; cursor: pointer; border: 1px solid var(--navy); padding: .83rem 1rem; background: transparent; text-decoration: none; font: 800 .76rem var(--display); letter-spacing: .07em; text-transform: uppercase; }
.button.primary { background: var(--navy); color: var(--ivory); }
.button:hover, .button.secondary:hover { background: var(--gold); border-color: var(--gold); color: var(--navy); }
.hero-network { margin: 0; }
.hero-network svg { width: 100%; overflow: visible; }
.hero-network figcaption { max-width: 430px; margin: 1rem auto 0; color: var(--graphite); font-size: .88rem; text-align: center; }
.edge { fill: none; stroke: var(--navy); stroke-width: 2; opacity: .45; }
.edge.muted { stroke: var(--blue); stroke-width: 1; opacity: .35; }
.node { stroke: var(--ivory); stroke-width: 7; }
.node.navy { fill: var(--navy); } .node.blue { fill: var(--blue); } .node.yellow { fill: var(--gold); } .node.red { fill: var(--red); }
.network-label { fill: var(--ivory); font: 600 12px var(--body); text-anchor: middle; }
.notice { max-width: 100%; padding: 1.1rem clamp(1.25rem, 8vw, 10rem); background: var(--gold); color: var(--navy); font-size: .92rem; }
.section { padding: clamp(4.5rem, 9vw, 8rem) 0; border-bottom: 1px solid var(--line); }
.section-heading { max-width: 840px; }
.section-heading > p:last-child { max-width: 700px; margin: 1rem 0 0; color: var(--graphite); }
.decision-start { padding-top: clamp(4rem, 8vw, 7rem); }
.decision-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 2.6rem; }
.decision-question { min-width: 0; margin: 0; padding: 1.25rem; border: 1px solid var(--line); background: white; }
.decision-question legend { max-width: 100%; padding: 0; font: 800 1rem var(--display); }
.choice { display: inline-flex; align-items: center; gap: .55rem; min-width: 7.5rem; margin: 1rem .6rem 0 0; padding: .8rem 1rem; border: 1px solid var(--line); cursor: pointer; font-weight: 700; }
.choice:hover, .choice:has(input:checked) { border-color: var(--blue); background: #eaf3fb; }
.choice input { width: 1.15rem; height: 1.15rem; accent-color: var(--blue); }
.decision-form > .button { grid-column: 1 / -1; justify-self: start; }
.decision-result { position: relative; margin-top: 1.2rem; padding: 1.5rem 1.5rem 1.5rem 4.4rem; border: 2px solid var(--blue); background: white; min-height: 130px; }
#decision-result:empty { display: none; }
.decision-result::before { position: absolute; left: 1.4rem; top: 1.4rem; font: 800 1.7rem var(--display); }
.decision-result h3 { margin: 0; font-size: 1.65rem; }
.decision-result p { margin: .5rem 0 0; color: var(--graphite); }
.decision-result .eyebrow { margin-bottom: .45rem; }
.decision-result .text-link { margin-top: 1rem; color: var(--blue); }
.outcome-reject { border-color: var(--red); } .outcome-reject::before { content: "X"; color: var(--red); }
.outcome-defer { border-color: #8a6200; } .outcome-defer::before { content: "II"; color: #8a6200; }
.outcome-conditions { border-color: var(--gold); } .outcome-conditions::before { content: "!"; color: #8a6200; }
.outcome-authorize { border-color: var(--blue); } .outcome-authorize::before { content: "OK"; color: var(--blue); }
.editorial-note { color: var(--graphite); font-size: .86rem; }
.chapter-list, .case-list { display: grid; gap: 1.2rem; margin-top: 2.8rem; }
.chapter-card, .case-card { break-inside: avoid; border: 1px solid var(--line); background: white; }
.manual-block { max-width: 960px; margin: 0 auto; padding: clamp(2rem, 5vw, 5rem); background: white; }
.block-header { max-width: 760px; }
.block-kicker { margin: 0 0 .65rem; color: var(--blue); font: 800 .82rem/1 var(--body); letter-spacing: .08em; text-transform: uppercase; }
.legal-label { display: inline-flex; align-items: center; gap: .4rem; padding: .3rem .55rem; border: 1px solid currentColor; border-radius: 999px; font-size: .78rem; font-weight: 800; line-height: 1.1; }
.legal-label::before { content: "Etiqueta:"; font-weight: 600; }
.legal-label.obligatoria { color: #7a2e00; background: #fff1e8; }
.legal-label.aplicable { color: #004b70; background: #e8f5fb; }
.legal-label.orientacion { color: #5e4a00; background: #fff8cf; }
.legal-label.comparada { color: #3c3c64; background: #f0effb; }
.editorial-table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.editorial-table th, .editorial-table td { padding: .7rem; border: 1px solid var(--line); text-align: left; vertical-align: top; }
.editorial-table th { background: var(--mist); font-family: var(--display); }
.printable-tool { padding: 1.2rem; border: 2px solid var(--navy); background: white; }
.printable-tool label { display: grid; gap: .35rem; margin: .75rem 0; font-weight: 700; }
.printable-tool input, .printable-tool textarea, .printable-tool select { box-sizing: border-box; width: 100%; min-height: 2.5rem; border: 1px solid var(--navy); border-radius: 0; padding: .45rem; background: white; color: var(--navy); font: inherit; }
.printable-tool textarea { min-height: 6rem; resize: vertical; }
.printable-tool label.check-option { display: flex; grid-template-columns: none; align-items: flex-start; gap: .55rem; margin: .7rem 0; }
.printable-tool label.check-option input[type="checkbox"] { width: 1.1rem; min-height: 1.1rem; flex: 0 0 auto; margin-top: .12rem; }
.manual-page { min-height: 257mm; padding: 2mm 0 8mm; break-after: page; }
.manual-page:last-child { break-after: auto; }
.manual-page h2 { margin-top: .35rem; }
.manual-page h3 { margin-top: 1.15rem; }
.manual-page p { max-width: 78ch; }
.callout { margin: 1.2rem 0; padding: 1rem 1.15rem; border-left: 5px solid var(--blue); background: var(--mist); }
.callout-gold { border-color: var(--gold); background: #fff8dc; }
.callout-red { border-color: var(--red); background: #fff0f1; }
.callout-blue { border-color: var(--blue); background: #eef7ff; }
.editorial-grid { display: grid; gap: 1.2rem; margin: 1.4rem 0; }
.two-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fact-list { display: grid; grid-template-columns: 7rem 1fr; gap: .35rem .8rem; margin: 0; }
.fact-list dt { font-weight: 800; } .fact-list dd { margin: 0; }
.compact-list, .check-list { padding-left: 1.25rem; } .compact-list li, .check-list li { margin: .55rem 0; }
.scope-card, .status-grid > div, .decision-cards > div, .responsibility-table > div { padding: 1rem; border: 1px solid var(--line); background: white; }
.scope-card-muted { background: var(--mist); }
.scope-card h3, .status-grid strong, .decision-cards strong, .responsibility-table strong { display: block; margin: 0 0 .45rem; font-family: var(--display); }
.labels-table td:first-child { min-width: 10rem; }
.status-grid, .decision-cards, .responsibility-table { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin: 1.2rem 0; }
.status-grid p, .decision-cards span, .responsibility-table span { margin: 0; color: var(--graphite); }
.decision-flow { display: grid; gap: .8rem; padding: 0; margin: 1.5rem 0; list-style: none; }
.decision-flow li { display: grid; grid-template-columns: 2.2rem 1fr; gap: .85rem; align-items: start; }
.decision-flow h3 { margin: 0 0 .25rem; } .decision-flow p { margin: 0; }
.flow-number { display: grid; place-items: center; width: 2.1rem; height: 2.1rem; border-radius: 50%; background: var(--navy); color: white; font-weight: 800; }
.decision-cards strong { color: var(--navy); } .decision-cards span { display: block; }
.timeline { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .5rem; padding: 0; list-style: none; }
.timeline li { min-height: 7rem; padding: .75rem; border-top: 4px solid var(--blue); background: var(--mist); }
.timeline strong, .timeline span { display: block; } .timeline span { margin-top: .35rem; font-size: .9rem; }
.printable-tool { margin-top: 1rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.choice-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; align-items: center; margin: 1rem 0; }
.choice-grid .form-label { grid-column: 1 / -1; margin: 0; font-weight: 800; }
.choice-grid label { display: flex; align-items: center; gap: .45rem; margin: 0; font-weight: 700; }
.choice-grid input[type="radio"] { width: 1.05rem; min-height: 1.05rem; flex: 0 0 auto; padding: 0; }
.block-footer { margin-top: 2rem; color: var(--graphite); font-size: .85rem; font-weight: 700; }
.editorial-figure { margin: 1.2rem 0; padding: .75rem; border: 1px solid var(--line); background: white; }
.editorial-figure img { display: block; width: 100%; height: auto; }
.editorial-figure figcaption { margin-top: .45rem; color: var(--graphite); font-size: .86rem; }
.chapter-heading, .case-heading { padding: 1.5rem 1.5rem 1.2rem; border-bottom: 1px solid var(--line); }
.chapter-heading h3, .case-heading h3 { font-size: clamp(1.35rem, 2.3vw, 2rem); }
.chapter-decision { margin: .9rem 0 0; font: 700 1.05rem var(--display); }
.chapter-summary { margin: .65rem 0 0; color: var(--graphite); }
.chapter-card details { border-bottom: 1px solid var(--line); }
.chapter-card summary { cursor: pointer; padding: 1rem 1.5rem; list-style: none; font: 800 .88rem var(--display); }
.chapter-card summary::-webkit-details-marker { display: none; }
.chapter-card summary::after { float: right; content: "+"; font-size: 1.2rem; }
.chapter-card details[open] summary::after { content: "-"; }
.chapter-card details > ul, .chapter-card details > p { margin: 0; padding: 0 1.5rem 1.15rem 2.6rem; color: var(--graphite); }
.chapter-links { display: flex; flex-wrap: wrap; gap: 1.3rem; padding: 1.2rem 1.5rem; }
.chapter-links .text-link, .text-link { color: var(--blue); }
.case-card { padding-bottom: 1.4rem; }
.case-field { display: grid; grid-template-columns: 230px 1fr; gap: 1rem; padding: 1rem 1.5rem; border-bottom: 1px solid var(--line); }
.case-field h4 { margin: 0; font-size: .92rem; }
.case-field p, .case-field ul { margin: 0; color: var(--graphite); }
.case-field ul { padding-left: 1.2rem; }
.case-outcome { margin: 1.3rem 1.5rem 0; padding: .8rem 1rem; border-left: 4px solid var(--gold); background: #fff8da; font-weight: 700; }
.appendix-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 2.6rem; }
.appendix-card { display: block; padding: 1.3rem; border: 1px solid var(--line); background: white; text-decoration: none; }
.appendix-card h3 { font-size: 1rem; }
.appendix-card span { display: block; margin-top: 1.8rem; color: var(--blue); font: 800 .72rem var(--display); text-transform: uppercase; }
.appendix-card:hover { border-color: var(--blue); }
.kit { width: 100%; padding-left: max(1.25rem, calc((100% - 1200px) / 2)); padding-right: max(1.25rem, calc((100% - 1200px) / 2)); background: var(--blue); color: var(--ivory); border: 0; }
.kit .eyebrow { color: var(--gold); } .kit .section-heading > p:last-child { color: rgba(251,250,246,.82); }
.kit-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 2.8rem; }
.kit-card { min-height: 210px; padding: 1.3rem; border-top: 1px solid rgba(251,250,246,.45); border-left: 1px solid rgba(251,250,246,.45); text-decoration: none; }
.kit-card:last-child { border-right: 1px solid rgba(251,250,246,.45); }
.kit-card h3 { margin: 2rem 0 .7rem; font-size: 1.05rem; }
.kit-card > span:last-child { color: rgba(251,250,246,.82); font: 700 .72rem var(--display); text-transform: uppercase; }
.kit-card:hover { background: var(--navy); }
.governance-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; margin-top: 2.7rem; }
.governance-grid p { margin: 0; padding-top: 1rem; border-top: 3px solid var(--gold); color: var(--graphite); }
.governance-grid strong { display: block; color: var(--navy); font-family: var(--display); }
.framework-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 2.6rem; }
.level-card { min-height: 190px; padding: 1.3rem; border: 1px solid var(--line); background: white; }
.level-card p { margin: 0 0 2rem; color: var(--blue); font: 800 1.7rem var(--display); }
.level-card h3 { font-size: 1.05rem; }
.level-card span { display: block; margin-top: .7rem; color: var(--graphite); font-size: .86rem; }
.source-list { display: grid; grid-template-columns: repeat(2, 1fr); margin-top: 2.7rem; border-top: 1px solid var(--line); }
.source-card { display: flex; justify-content: space-between; gap: 1rem; padding: 1.3rem 0; border-bottom: 1px solid var(--line); }
.source-card:nth-child(odd) { padding-right: 1.4rem; } .source-card:nth-child(even) { padding-left: 1.4rem; }
.source-card h3 { margin: 0; font-size: 1.05rem; }
.source-card p:not(.card-label) { margin: .45rem 0 0; color: var(--graphite); font-size: .86rem; }
.source-card .card-label { margin: 0 0 .35rem; font-size: .62rem; }
.source-card a { align-self: flex-start; flex: 0 0 auto; color: var(--blue); font: 800 .66rem var(--display); letter-spacing: .05em; text-transform: uppercase; }
.source-note { color: var(--graphite); font-size: .85rem; } .source-note a { color: var(--blue); }
.source-list-simple { margin: .8rem 0; padding-left: 1.25rem; color: var(--graphite); }
.source-list-simple li { margin: .35rem 0; }
.source-list-simple a { color: var(--blue); }
.compact-table { font-size: .86rem; }
.case-page h1, .case-page h2 { max-width: 760px; }
.case-page .lead { max-width: 760px; }
.case-decision-legend { display: flex; flex-wrap: wrap; gap: .45rem; margin: 1rem 0 .4rem; padding: .65rem .75rem; border: 1px solid var(--line); background: var(--mist); }
.case-decision-legend span { padding: .28rem .55rem; border: 1px solid currentColor; border-radius: 999px; font: 800 .72rem var(--display); }
.case-decision-legend span[data-decision="autorizar"] { color: #075e83; background: #eef8ff; }
.case-decision-legend span[data-decision="autorizar con condiciones"] { color: #806000; background: #fff8dc; }
.case-decision-legend span[data-decision="aplazar"] { color: #735300; background: #fff4d0; }
.case-decision-legend span[data-decision="rechazar"] { color: #9b1823; background: #fff0f1; }
footer { padding: 3rem max(1.25rem, calc((100% - 1200px) / 2)); background: var(--navy); color: var(--ivory); }
footer img { width: 160px; filter: brightness(0) invert(1); } footer p { margin: .8rem 0 0; color: rgba(251,250,246,.75); font-size: .85rem; }

@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; min-height: auto; }
  .hero-network { max-width: 510px; }
  .kit-grid, .governance-grid { grid-template-columns: repeat(2, 1fr); }
  .kit-card:nth-child(even) { border-right: 1px solid rgba(251,250,246,.45); }
  .appendix-list, .framework-grid { grid-template-columns: repeat(2, 1fr); }
  .governance-grid { row-gap: 1.8rem; }
}

@media (max-width: 680px) {
  nav { display: none; flex-basis: 100%; order: 3; margin: 0; flex-direction: column; align-items: flex-start; padding: .6rem 0 .2rem; }
  nav.is-open { display: flex; }
  .hero, .section { width: min(100% - 2rem, 1200px); }
  .hero { padding-top: 4.4rem; } h1 { font-size: clamp(2.5rem, 14vw, 4rem); }
  .decision-form, .appendix-list, .kit-grid, .governance-grid, .framework-grid, .source-list { grid-template-columns: 1fr; }
  .choice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .decision-form > .button { width: 100%; } .case-field { grid-template-columns: 1fr; gap: .4rem; }
  .source-card, .source-card:nth-child(odd), .source-card:nth-child(even) { padding: 1.2rem 0; }
  .source-card { flex-direction: column; } .source-card a { align-self: flex-start; }
  .kit-card { min-height: 170px; border-right: 1px solid rgba(251,250,246,.45); }
  .kit { padding-left: 1rem; padding-right: 1rem; }
}

@media print {
  @page { size: A4; margin: 14mm; }
  body { background: white; color: #111; font-family: "IBM Plex Sans", Arial, sans-serif; font-size: 10pt; line-height: 1.45; }
  h1, h2, h3, h4 { font-family: Manrope, Arial, sans-serif; break-after: avoid-page; }
  h1 { font-size: 28pt; } h2 { font-size: 20pt; } h3 { font-size: 14pt; } h4 { font-size: 11pt; }
  .topbar, .menu-toggle, nav, .skip-link, .actions, .decision-form { display: none !important; }
  .hero, .section { width: 100%; padding: 12mm 0; } .hero { min-height: auto; grid-template-columns: 1.1fr .9fr; gap: 8mm; }
  .hero h1 { font-size: 34pt; } .hero-network, .chapter-card, .case-card, .appendix-card { break-inside: avoid; }
  .notice { padding: 4mm; } .kit, footer { background: white !important; color: #111 !important; }
  .kit .section-heading > p:last-child, footer p { color: #444 !important; } .kit .eyebrow { color: var(--blue); }
  .decision-result { break-inside: avoid; } .chapter-list, .case-list { gap: 5mm; }
  .chapter-card details > *:not(summary), .chapter-card details:not([open]) > *:not(summary) { display: block; }
  .chapter-card summary::after { display: none; } .chapter-card details { break-inside: avoid; }
  .chapter-links, .case-outcome, .source-note { break-inside: avoid; }
  .case-field { grid-template-columns: 38mm 1fr; } .appendix-list, .kit-grid, .framework-grid { grid-template-columns: repeat(2, 1fr); }
  .manual-block, .printable-tool { max-width: none; padding: 0; border: 0; }
  .manual-page { min-height: 257mm; padding: 0 0 6mm; }
  .manual-page { font-size: 9pt; line-height: 1.3; }
  .manual-page h2 { font-size: 18pt; margin: .15rem 0 .45rem; }
  .manual-page h3 { font-size: 10.5pt; margin-top: .65rem; }
  .manual-page p { margin-top: .45rem; margin-bottom: .45rem; }
  .manual-page .callout { margin: .65rem 0; padding: .6rem .75rem; }
  .manual-page .editorial-grid { gap: .65rem; margin: .7rem 0; }
  .manual-page .editorial-figure { margin: .65rem 0; padding: .35rem; }
  .manual-page .editorial-figure figcaption { margin-top: .25rem; font-size: 7.5pt; }
  .manual-page .status-grid, .manual-page .decision-cards, .manual-page .responsibility-table { gap: .45rem; margin: .7rem 0; }
  .manual-page .status-grid > div, .manual-page .decision-cards > div, .manual-page .responsibility-table > div { padding: .55rem; }
  .manual-page .decision-flow { gap: .4rem; margin: .8rem 0; }
  .manual-page .decision-flow li { grid-template-columns: 1.65rem 1fr; gap: .55rem; }
  .manual-page .flow-number { width: 1.55rem; height: 1.55rem; font-size: 8pt; }
  .manual-page .timeline { gap: .3rem; margin: .55rem 0; }
  .manual-page .timeline li { min-height: 4.3rem; padding: .45rem; font-size: 7.5pt; }
  .manual-page .timeline span { margin-top: .2rem; font-size: 7pt; }
  .manual-page .printable-tool label { margin: .35rem 0; gap: .2rem; }
  .manual-page .printable-tool input, .manual-page .printable-tool textarea { min-height: 1.65rem; padding: .25rem; }
  .manual-page .printable-tool textarea { min-height: 3.4rem; }
  .manual-page .form-grid { gap: .45rem; }
  .manual-page .choice-grid { gap: .3rem; margin: .55rem 0; }
  .manual-page .choice-grid label { display: flex; align-items: center; gap: .3rem; margin: 0; }
  .manual-page .choice-grid input[type="radio"] { width: .9rem; min-height: .9rem; }
  .manual-page .block-footer { margin-top: .8rem; }
  .manual-page[aria-labelledby="b1-salidas"] { font-size: 8.1pt; line-height: 1.22; }
  .manual-page[aria-labelledby="b1-salidas"] h2 { font-size: 16pt; }
  .manual-page[aria-labelledby="b1-salidas"] h3 { margin-top: .35rem; }
  .manual-page[aria-labelledby="b1-salidas"] .decision-cards { gap: .25rem; margin: .45rem 0; }
  .manual-page[aria-labelledby="b1-salidas"] .decision-cards > div { padding: .35rem; }
  .manual-page[aria-labelledby="b1-salidas"] .compact-list { margin-top: .35rem; margin-bottom: .35rem; }
  .manual-page[aria-labelledby="b1-salidas"] .compact-list li { margin: .22rem 0; }
  .manual-page[aria-labelledby="b1-salidas"] .callout { margin: .35rem 0; padding: .35rem .5rem; }
  /* B1.07 shares the preceding page with the initial risk classification.
     It must not reserve a full page after starting mid-page, or B1.08 is
     pushed halfway down the following sheet. */
  .manual-page[aria-labelledby="b1-salidas"] { min-height: 0; }
  .manual-page[aria-labelledby="b1-salidas"] { break-after: auto; }
  .manual-page[aria-labelledby="b1-evidencia"] { font-size: 8.1pt; line-height: 1.22; }
  .manual-page[aria-labelledby="b1-evidencia"] h2 { font-size: 16pt; }
  .manual-page[aria-labelledby="b1-evidencia"] h3 { margin-top: .35rem; }
  .manual-page[aria-labelledby="b1-evidencia"] .editorial-table th, .manual-page[aria-labelledby="b1-evidencia"] .editorial-table td { padding: .35rem; }
  .manual-page[aria-labelledby="b1-evidencia"] .check-list { margin-top: .3rem; margin-bottom: .3rem; }
  .manual-page[aria-labelledby="b1-evidencia"] .check-list li { margin: .2rem 0; }
  .manual-page[aria-labelledby="b1-evidencia"] { break-after: page; }
  .manual-page[aria-labelledby="b1-caso"] { break-after: page; }
  .manual-page[aria-labelledby="b1-lienzo"] { font-size: 8.1pt; line-height: 1.22; }
  .manual-page[aria-labelledby="b1-lienzo"] h2 { font-size: 16pt; }
  .manual-page[aria-labelledby="b1-lienzo"] .printable-tool { margin-top: .35rem; }
  .manual-page[aria-labelledby="b1-lienzo"] .printable-tool label { margin: .25rem 0; }
  .manual-page[aria-labelledby="b1-lienzo"] .printable-tool textarea { min-height: 2.3rem; }
  .manual-page[aria-labelledby="b1-lienzo"] .printable-tool input { min-height: 1.4rem; }
  .manual-page[aria-labelledby="b1-lienzo"] .callout { margin: .35rem 0; padding: .35rem .5rem; }
  /* El lienzo es una hoja imprimible completa: mantenerlo en una sola página. */
  .manual-page[aria-labelledby="b1-lienzo"] { zoom: .88; }
  .manual-page[aria-labelledby="b1-lienzo"] { min-height: 0; }
  .manual-page[aria-labelledby="b1-lienzo"] { break-after: auto !important; page-break-after: auto !important; }
  .manual-block > section:last-of-type { break-after: auto !important; page-break-after: auto !important; }
  .manual-page[aria-labelledby="b1-lienzo"] .source-note { display: none; }
  .manual-page[aria-labelledby="b1-lienzo"] .callout { display: none; }
  .manual-page[aria-labelledby="b1-lienzo"] .block-footer { display: none; }
  .manual-page[aria-labelledby="b3-ficha"] { font-size: 8.1pt; line-height: 1.2; }
  .manual-page[aria-labelledby="b3-ficha"] h2 { font-size: 16pt; }
  .manual-page[aria-labelledby="b3-ficha"] h3 { margin-top: .35rem; }
  .manual-page[aria-labelledby="b3-ficha"] .printable-tool { margin-top: .35rem; }
  .manual-page[aria-labelledby="b3-ficha"] .printable-tool label { margin: .22rem 0; }
  .manual-page[aria-labelledby="b3-ficha"] .printable-tool textarea { min-height: 2.1rem; }
  .manual-page[aria-labelledby="b3-ficha"] .callout { margin: .35rem 0; padding: .35rem .5rem; }
  .manual-page[aria-labelledby="b3-ficha"] .source-list-simple,
  .manual-page[aria-labelledby="b3-ficha"] .source-note,
  .manual-page[aria-labelledby="b3-ficha"] .block-footer { display: none; }
  .manual-page[aria-labelledby="b4-ficha"] { font-size: 8.1pt; line-height: 1.2; }
  .manual-page[aria-labelledby="b4-ficha"] h2 { font-size: 16pt; }
  .manual-page[aria-labelledby="b4-ficha"] h3 { margin-top: .35rem; }
  .manual-page[aria-labelledby="b4-ficha"] .printable-tool { margin-top: .35rem; }
  .manual-page[aria-labelledby="b4-ficha"] .printable-tool label { margin: .22rem 0; }
  .manual-page[aria-labelledby="b4-ficha"] .printable-tool textarea { min-height: 2.1rem; }
  .manual-page[aria-labelledby="b4-ficha"] .callout { margin: .35rem 0; padding: .35rem .5rem; }
  .manual-page[aria-labelledby="b4-ficha"] .source-list-simple,
  .manual-page[aria-labelledby="b4-ficha"] .source-note,
  .manual-page[aria-labelledby="b4-ficha"] .block-footer { display: none; }
  .editorial-table { font-size: 8.5pt; } .editorial-table tr, .printable-tool, .legal-label { break-inside: avoid; }
  p, li { orphans: 3; widows: 3; }
  .kit-card { color: #111; border-color: var(--line); } .kit-card > span:last-child, .kit-number { color: var(--blue); }
  .source-list { grid-template-columns: 1fr; } .source-card:nth-child(odd), .source-card:nth-child(even) { padding-left: 0; padding-right: 0; }
  .source-card p:not(.card-label), .source-note, .level-card span { color: #444; } .source-card a { color: var(--blue); }
  footer { padding: 8mm 0; border-top: 1px solid var(--line); } footer img { filter: none; }
}
