@font-face{font-family:"IBM Plex Sans";src:url("../fonts/IBMPlexSans-Regular.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url("../fonts/IBMPlexSans-Medium.woff2") format("woff2");font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url("../fonts/IBMPlexSans-SemiBold.woff2") format("woff2");font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:"Noto Sans Lao";src:url("../fonts/NotoSansLao-Regular.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap;unicode-range:U+0E80-0EFF,U+200B-200D,U+25CC}
@font-face{font-family:"Noto Sans Lao";src:url("../fonts/NotoSansLao-Medium.woff2") format("woff2");font-style:normal;font-weight:500;font-display:swap;unicode-range:U+0E80-0EFF,U+200B-200D,U+25CC}
@font-face{font-family:"Noto Sans Lao";src:url("../fonts/NotoSansLao-SemiBold.woff2") format("woff2");font-style:normal;font-weight:600;font-display:swap;unicode-range:U+0E80-0EFF,U+200B-200D,U+25CC}
/* Tokens (DESIGN-SPEC §4, 2026-09-13): palette unchanged; content shell 1240px, header/footer shell 1320px. */:root{--ink:#182128;--text:#2f3035;--muted:#53616c;--red:#bf2540;--red-dark:#991b31;--red-functional:var(--red-dark);--line:#d8dfe4;--line-dark:#bbbcc4;--paper:#fff;--surface:#f4f6f8;--surface-2:#ececef;--navy:#17232e;--max:1320px;--shell:1240px;--gutter:clamp(20px,3.2vw,52px);--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s6:24px;--s8:32px;--s12:48px;--s16:64px;--s20:80px;color-scheme:light}
*,:before,:after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:140px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.65 "IBM Plex Sans","Noto Sans Lao",Arial,sans-serif;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--red-dark);text-underline-offset:.19em;text-decoration-thickness:1px}
a:hover{color:var(--red)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--red-dark);outline-offset:5px}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
button,a.button{min-height:48px}
h1,h2,h3,h4{font-weight:500;line-height:1.15;letter-spacing:-.025em;margin:0 0 20px;text-wrap:balance;overflow-wrap:break-word}
h1{font-size:clamp(2.3rem,4.8vw,4.25rem);line-height:1.06}
h2{font-size:clamp(1.7rem,2.7vw,2.55rem)}
h3{font-size:1.35rem}
p,ul,ol,dl{margin:0 0 22px}
ul,ol{padding-left:1.4em}
li+li{margin-top:8px}
p:last-child{margin-bottom:0}
[hidden]{display:none!important}
.section{padding-block:80px}
.eyebrow{text-transform:uppercase;letter-spacing:.11em;font-weight:600;font-size:12px;line-height:1.4;color:var(--red-dark);margin-bottom:17px}
.lead{font-size:clamp(1.18rem,1.55vw,1.4rem);line-height:1.55;color:var(--muted);max-width:64ch}
.small{font-size:15px;line-height:1.55;color:var(--muted)}
.button{display:inline-flex;align-items:center;justify-content:center;background:var(--red);border:1px solid var(--red);color:#fff;font-size:15px;font-weight:500;line-height:1.35;padding:12px 22px;text-decoration:none;border-radius:2px}
.button:hover{color:#fff;background:var(--red-dark);border-color:var(--red-dark)}
.button.outline{background:#fff;color:var(--navy);border-color:var(--line-dark)}
.button.outline:hover{border-color:var(--red);color:var(--red-dark)}
.text-link{display:inline-block;font-weight:500;margin-top:26px}
.text-button{border:0;background:none;color:var(--red-dark);text-decoration:underline;padding:8px 0;font-weight:500}
.visually-hidden{position:absolute!important;height:1px;width:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;z-index:1000;top:10px;left:15px;transform:translateY(-200%);background:#fff;padding:12px 20px;border:2px solid var(--red)}
.skip-link:focus{transform:translateY(0)}
.site-header{border-top:3px solid var(--red);border-bottom:1px solid var(--line);background:rgba(255,255,255,.98);position:relative;z-index:20}
.breadcrumb{width:min(calc(100% - var(--gutter)*2),var(--max));margin:22px auto 0;font-size:13px;color:var(--muted)}
.breadcrumb ol{padding:0;list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0}
.breadcrumb li+li{margin:0}
.breadcrumb li+li:before{content:'/';color:#9aa5af;margin-right:12px}
.breadcrumb a{color:var(--muted);text-decoration:none}
/* The first screen shows the portfolio's packaging concepts, not the building site
   (owner decision 2026-09-12). The grid sits in the hero's right half and collapses to one
   column with the rest of the hero at 760px. */
.section-heading{max-width:820px;margin-bottom:34px}
.section-heading p:not(.eyebrow){color:var(--muted)}
.photo{margin:0}
.photo img{width:100%;aspect-ratio:1600/901;object-fit:cover}
.photo figcaption{padding-top:12px;font-size:14px;color:var(--muted);line-height:1.5}
.notice{border:1px solid #d5dee5;border-left:3px solid var(--red);padding:22px 26px;background:var(--surface);margin:0 0 32px;max-width:100%}
.notice p{font-size:17px;line-height:1.6}
.notice strong{display:block;margin-bottom:8px}
.notice.compact{margin-top:28px}
.catalogue-tools{margin-top:34px}
.filter-row{display:grid;grid-template-columns:1.8fr 1fr 1fr;gap:20px}
.filter-row label,.composer label{display:block;font-size:15px;font-weight:500;margin-bottom:8px}
.filter-row input,.filter-row select,.composer input,.composer textarea,.composer select{width:100%;min-width:0;background:#fff;border:1px solid #aebac4;border-radius:2px;padding:11px 13px;font-size:17px;min-height:48px}
.filter-summary{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:15px 0 24px;font-size:15px;color:var(--muted)}
.filter-summary p{margin:0}
.browse-links{display:flex;flex-wrap:wrap;gap:15px 30px;margin-top:35px;padding-top:25px;border-top:1px solid var(--line);font-size:16px}
.empty-results{background:var(--surface);padding:30px}
.az-section{display:grid;grid-template-columns:90px 1fr;gap:20px;padding-block:25px;border-top:1px solid var(--line)}
.index-list{list-style:none;padding:0;margin:0}
.index-list li{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-bottom:1px solid #edf0f3;margin:0}
.index-list li span{font-size:14px;color:var(--muted);white-space:nowrap}
.index-list a{font-size:17px}
.contents{border-top:3px solid var(--red);padding-top:20px;position:sticky;top:28px}
.contents nav{display:flex;flex-direction:column;align-items:flex-start;gap:0}
.contents nav a{display:block;padding:9px 0;text-decoration:none;color:var(--muted);font-size:16px;line-height:1.4}
.contents nav a:hover{color:var(--red-dark)}
.contents>.small{border-top:1px solid var(--line);padding-top:20px;margin-top:22px}
.dossier-content,.longform{min-width:0;font-size:18px}
.dossier-content>section,.longform>section{margin-bottom:44px}
.dossier-content h2,.longform h2{font-size:30px;line-height:1.2}
.dossier-content h3,.longform h3{font-size:23px;margin-top:28px}
.dossier-content p,.longform p,.dossier-content li,.longform li{color:#394853}
.dossier-content .eyebrow,.longform .eyebrow{color:var(--red-dark)}
.longform .photo{margin-bottom:40px}
.reference-detail{border:1px solid var(--line);margin-bottom:12px;background:#fff}
.reference-detail summary{cursor:pointer;position:relative;padding:20px 24px;font-size:19px;font-weight:500;line-height:1.4;min-height:64px;list-style-position:outside;margin-left:24px}
.reference-detail summary::marker{color:var(--red)}
.reference-detail[open] summary{border-bottom:1px solid var(--line);margin-bottom:0}
.reference-detail>div,.reference-detail>.index-list{padding:24px}
.reference-detail summary span{font-size:14px;font-weight:400;color:var(--muted);margin-left:14px}
.reference-detail p:last-child{margin-bottom:0}
.source-list{padding-left:1.25em;font-size:17px;line-height:1.55}
.source-list li{margin-bottom:12px;overflow-wrap:anywhere}
.inline-links{display:flex;flex-wrap:wrap;gap:15px 25px;font-size:16px;padding-top:10px}
.longform table{border-collapse:collapse;width:100%;font-size:16px;display:block;overflow-x:auto}
.longform th,.longform td{padding:12px;border:1px solid var(--line);vertical-align:top;text-align:left}
.longform th{background:var(--surface)}
.longform a{overflow-wrap:anywhere}
.resource-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:35px}
.resource-card{padding:30px;border:1px solid var(--line)}
.resource-card h2{font-size:28px}
.resource-card h2 a{color:var(--ink);text-decoration:none}
.resource-card p:not(.eyebrow){color:var(--muted)}
.resource-card .text-link{margin-top:0}
.contact-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:70px;padding-block:20px 70px}
.contact-layout h2{font-size:29px}
.contact-layout h3{margin-top:32px}
.contact-address{font-size:clamp(19px,2vw,26px);overflow-wrap:anywhere}
.composer{background:var(--surface);border:1px solid var(--line);padding:32px}
.composer label{margin-top:22px}
.composer>p{font-size:17px}
.composer textarea{resize:vertical}
.composer [role=status]{margin-top:15px;color:var(--red-dark)}
/* the real enquiry form: POST /api/contact, Turnstile, honeypot (restored 2026-09-12) */.contact-form{position:relative}
.contact-form .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}
.contact-form .form-grid>label.wide{grid-column:1/-1}
.contact-form .extra-field{position:absolute;left:-9999px;top:0;width:1px;height:1px;overflow:hidden}
.contact-form .cf-turnstile{margin-top:26px}
.contact-form button[type=submit]{margin-top:22px}
.form-note{font-size:15px;color:var(--muted);margin-top:18px;line-height:1.55}
.site-map-list{columns:3;column-gap:45px;list-style:none;padding:0}
.site-map-list li{break-inside:avoid;padding:8px 0;font-size:16px}
@media(max-width:1150px){.contact-layout{gap:40px}}
@media(max-width:960px){.filter-row{grid-template-columns:1fr 1fr}
.filter-row>div:first-child{grid-column:1/-1}
.contents{position:static}
.contents nav{flex-direction:row;flex-wrap:wrap;gap:5px 22px}
.contents>.small{border:0;padding:0;margin:15px 0 0}
.contents>.eyebrow{margin-bottom:8px}
.contact-layout{grid-template-columns:1fr 1.1fr;gap:28px}
.site-map-list{columns:2}}
@media(max-width:760px){html{scroll-padding-top:24px}
.section{padding-block:52px}
.section-heading{margin-bottom:26px}
.dossier-content h2,.longform h2{font-size:28px}
.contact-layout{grid-template-columns:1fr;gap:35px}
.composer{padding:26px}
.contact-form .form-grid{grid-template-columns:1fr}
.resource-grid{grid-template-columns:1fr}
.reference-detail summary{padding:18px 18px 18px 10px;margin-left:26px;font-size:18px}
.reference-detail>div,.reference-detail>.index-list{padding:22px}
.site-map-list{columns:1}}
@media(max-width:480px){body{font-size:17px}
.filter-row{grid-template-columns:1fr}
.filter-row>div:first-child{grid-column:auto}
.contents nav{gap:3px 20px}
.contents nav a{font-size:15px}
.az-section{grid-template-columns:1fr;gap:0}
.az-section h2{margin-bottom:12px}
.index-list li{gap:15px}
.index-list a{overflow-wrap:anywhere}
.notice{padding:20px}
.composer{padding:23px 20px}
.resource-card{padding:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*{transition:none!important;animation:none!important}}
@media print{body{font-family:Arial,sans-serif;font-size:11pt;color:#000;background:#fff}
.site-header,.contents,.filter-row,.filter-summary,.browse-links{display:none!important}
.reference-detail>div{display:block!important}
.reference-detail summary{border-bottom:1px solid #ccc;list-style:none;margin-left:0}
.reference-detail{break-inside:avoid}
h1{font-size:26pt}
h2{font-size:18pt}
a{color:#000}
.photo img{max-height:350px;object-fit:contain}}
.related-resources{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0;margin:36px 0}
.related-resources h2{font-size:24px;margin-bottom:14px}
.related-resources ul{margin:0;padding-left:1.2em}
.related-resources li{margin:7px 0}
.source-review{border-top:1px solid var(--line);padding-top:18px;margin-top:30px}
.glossary-list{margin:0}
.glossary-list dt{font-weight:600;color:var(--ink);margin-top:20px}
.glossary-list dd{margin:5px 0 0 0;color:#394853}
.site-search>label{display:block;font-weight:500;font-size:17px;margin-bottom:8px}
.site-search>input{width:min(100%,760px);min-height:50px;padding:12px 14px;font-size:18px;border:1px solid #aebac4;background:#fff}
.site-search .site-map-list{margin-top:28px}
.site-search .site-map-list li{display:block}
.site-search .site-map-list li span{display:block;font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.site-search [hidden]{display:none!important}
@media(max-width:760px){.related-resources{margin:28px 0}
.site-search>input{width:100%}}
/* B10: accessible progressive enhancement and stable print fallback. */.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
html:not(.js-enabled) .js-only{display:none!important}
@media print{details::details-content{content-visibility:visible!important;display:block!important;height:auto!important}
details>div,details>ul{display:block!important}
.reference-detail{break-inside:auto}
.composer .js-only{display:none!important}}
/* Long scientific labels must shrink within grid tracks, including 320px/text-resize views. */.dossier-content,.longform,.resource-card{min-width:0;overflow-wrap:anywhere}
.resource-grid{min-width:0}
@media(max-width:760px){.resource-grid{grid-template-columns:minmax(0,1fr)}}
/* R02: recovered Technical Editorial component rules only; system typography retained. */
.status-line{display:flex;gap:12px;margin-top:34px;padding-top:20px;border-top:1px solid var(--line);max-width:670px}
.status-line strong,.status-line span{display:block}
.status-line strong{font-size:15px}
.status-line span{font-size:13.5px;color:var(--muted);line-height:1.45;margin-top:3px}
.link-ledger{border-top:1px solid var(--ink)}
.link-ledger a{display:grid;grid-template-columns:minmax(160px,.7fr) minmax(0,1.5fr) 24px;gap:22px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.link-ledger a:hover span{color:var(--red-functional)}
.link-ledger span{font-weight:500}
.link-ledger small{font-size:14px;color:var(--muted)}
.link-ledger b{text-align:right;color:var(--red-functional)}
.table-wrap{width:100%;overflow-x:auto;border-top:1px solid var(--ink);margin:24px 0}
.technical-table{width:100%;border-collapse:collapse;font-size:15.5px;line-height:1.45}
.technical-table th,.technical-table td{text-align:left;vertical-align:top;padding:14px 14px;border-bottom:1px solid var(--line)}
.technical-table th{font-size:12px;text-transform:uppercase;letter-spacing:.075em;color:var(--muted);font-weight:600;background:var(--surface)}
.technical-table td:first-child{padding-left:0}
.technical-table th:first-child{padding-left:0}
.technical-table a{overflow-wrap:anywhere}
.evidence-facts>dl{margin:0}
.two-col-ledger{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--ink)}
.two-col-ledger>div{padding:25px 26px 10px 0}
.two-col-ledger>div+div{border-left:1px solid var(--line);padding-left:26px}
.two-col-ledger h3{font-size:19px}
.two-col-ledger li{font-size:15.5px}
.variant-table td:nth-child(2),.variant-table td:nth-child(3),.variant-table td:nth-child(4){white-space:nowrap}
.review-status{border-top:1px solid var(--ink);margin-top:28px;padding-top:18px}
.review-status p{font-size:14.5px;margin-bottom:7px}
@media (max-width:760px){.link-ledger a{grid-template-columns:1fr 22px;gap:5px 12px}
.link-ledger small{grid-column:1}
.link-ledger b{grid-column:2;grid-row:1/3;align-self:center}
.two-col-ledger{grid-template-columns:1fr}
.two-col-ledger>div+div{border-left:0;padding-left:0}
.two-col-ledger>div+div{border-top:1px solid var(--line)}
.variant-table{min-width:650px}}
@media (max-width:440px){.technical-table{font-size:14px}
.technical-table th,.technical-table td{padding:11px 9px}}
@media  print{.technical-table{display:table!important;font-size:9pt}
.table-wrap{overflow:visible}
.review-status,.status-line{display:block}}
.b05-callout{border-left:4px solid var(--accent);padding:18px 20px;background:var(--surface);margin:22px 0}
.b05-callout>strong{display:block;font-size:13px;letter-spacing:.04em;text-transform:uppercase;margin-bottom:7px}
.b05-callout p{margin:0}
.b05-status-ledger{border-top:2px solid var(--ink);margin:24px 0 30px}
.b05-status-ledger>div{display:grid;grid-template-columns:180px 220px 1fr;gap:24px;padding:18px 0;border-bottom:1px solid var(--line);align-items:start}
.b05-status-ledger span{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.b05-status-ledger strong{font-size:15px}
.b05-status-ledger p{margin:0}
.b05-evidence-chain{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:24px 0;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.b05-evidence-chain span{border:1px solid var(--line-dark);padding:9px 11px;font-size:12px;font-weight:500;background:white}
.b05-evidence-chain b{font-weight:500;color:var(--muted)}
.b05-link-ledger{border-top:2px solid var(--ink);margin:20px 0}
.b05-link-ledger a{display:grid;grid-template-columns:minmax(180px,.7fr) 1fr;gap:24px;padding:17px 0;border-bottom:1px solid var(--line);text-decoration:none}
.b05-link-ledger a:hover span{text-decoration:underline}
.b05-link-ledger span{font-weight:600}
.b05-link-ledger b{font-weight:400;color:var(--muted)}
@media (max-width:760px){.b05-status-ledger>div{grid-template-columns:1fr;gap:6px}
.b05-link-ledger a{grid-template-columns:1fr;gap:5px}
.b05-evidence-chain{align-items:flex-start;flex-direction:column}
.b05-evidence-chain b{transform:rotate(90deg);margin-left:12px}}
@media  print{.b05-status-ledger>div{grid-template-columns:35mm 42mm 1fr;break-inside:avoid}
.b05-callout,.b05-link-ledger{break-inside:avoid}
.b05-link-ledger a{display:grid;grid-template-columns:48mm 1fr}
.b05-evidence-chain{display:flex}}
.b06-filter-row{grid-template-columns:minmax(260px,1.65fr) minmax(160px,.8fr) minmax(160px,.8fr) minmax(190px,1fr)}
.b06-record-panel>strong{font-size:22px;line-height:1.28}
.b06-record-panel>span{display:block;border-top:1px solid var(--line);padding-top:12px;margin-top:16px;font-size:12px;color:var(--muted)}
.b06-boundary-grid{margin-top:26px}
.b06-variant-table{min-width:850px}
.b06-variant-table th:nth-child(1){width:75px}
.b06-variant-table td:nth-child(2),.b06-variant-table td:nth-child(3){white-space:normal}
.dossier-controls{display:flex;flex-wrap:wrap;gap:8px 20px;margin:24px 0 14px;padding:13px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.dossier-controls .text-button{font-size:13px}
.document-requirements{border-top:2px solid var(--ink);margin-top:26px}
.document-requirements>div{display:grid;grid-template-columns:48px minmax(0,1fr);gap:18px;padding:15px 0;border-bottom:1px solid var(--line);align-items:start}
.document-requirements span{font-size:12px;font-weight:600;letter-spacing:.1em;color:var(--red-functional)}
.document-requirements p{margin:0!important;font-size:15.5px;max-width:none!important}
.b06-review-status{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--red-functional);padding:18px 20px;margin-top:28px}
.b06-review-status p{margin:0 0 6px}
.b06-review-status p:last-child{margin-bottom:0}
.b06-source-table{min-width:760px}
.b06-source-table td:first-child{min-width:270px}
.b06-source-table td:first-child small{display:block;margin-top:5px;font-size:12px;color:var(--muted)}
.b06-related-ledger{margin-top:22px}
.b06-diagnostic .b06-record-panel{border-top-color:var(--ink)}
@media (max-width:1120px){.b06-filter-row{grid-template-columns:1fr 1fr}
.b06-filter-row .filter-search{grid-column:1/-1}}
@media (max-width:760px){/**//**/
.b06-filter-row{grid-template-columns:1fr}
.b06-filter-row .filter-search{grid-column:auto}
.b06-record-panel{padding:19px}
.b06-variant-table{min-width:720px}
.dossier-controls{display:grid;grid-template-columns:1fr 1fr}
.dossier-controls .text-button{text-align:left}
.b06-related-ledger a{grid-template-columns:1fr 24px}
.b06-related-ledger small{grid-column:1}
.b06-related-ledger b{grid-column:2;grid-row:1/3}}
@media (max-width:420px){.dossier-controls{grid-template-columns:1fr}}
@media  print{.dossier-controls{display:none!important}
.b06-record-panel{break-inside:avoid}
.b06-variant-table,.b06-source-table{min-width:0;font-size:8.5pt}
.document-requirements,.b06-review-status,.b06-related-ledger{break-inside:avoid}}
@media (max-width:800px){.b06-filter-row{grid-template-columns:1fr}
.b06-filter-row .filter-search{grid-column:auto}
.b06-boundary-grid{grid-template-columns:1fr}
.b06-boundary-grid>div+div{border-left:0;border-top:1px solid var(--line);padding-left:0}}
/* R02 reconciliation overrides. Keep these after recovered component rules. */.site-header{position:relative;background:#fff}
.contents{min-width:0}
.contents-disclosure{margin:0;padding:0;border:0}
.contents-disclosure>summary{font-size:17px;font-weight:600;min-height:44px;cursor:pointer;line-height:1.5;padding:8px 0;margin-bottom:10px}
.contents-disclosure>.eyebrow{display:none}
.contents-disclosure nav{max-width:100%}
.table-wrap{max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain}
.table-wrap:focus-visible{outline:3px solid var(--red-dark);outline-offset:4px}
.technical-table caption{text-align:left;font-size:14px;line-height:1.5;color:var(--muted);padding:12px 0;font-weight:500}
.technical-table th,.technical-table td{overflow-wrap:anywhere;max-width:36ch}
.archival-boundary{margin-top:22px}
.archival-boundary p{font-size:16px}
.two-col-ledger{min-width:0}
.two-col-ledger>div{min-width:0;overflow-wrap:anywhere}
.dossier-content,.longform,.resource-card{min-width:0;overflow-wrap:anywhere}
.b06-variant-table td,.b06-source-table td{white-space:normal!important}
.b06-source-table td:first-child{min-width:0}
html:not(.js-enabled) .js-only{display:none!important}
@media(max-width:960px){.contents-disclosure>summary{display:list-item}
.link-ledger a{grid-template-columns:minmax(0,1fr) 24px;gap:10px}
.link-ledger small{grid-column:1}
.link-ledger b{grid-column:2;grid-row:1/3}}
@media(max-width:760px){.b06-filter-row,.category-template-b06 .b06-filter-row{grid-template-columns:minmax(0,1fr)}
.two-col-ledger{grid-template-columns:minmax(0,1fr)}
.two-col-ledger>div+div{border-left:0;border-top:1px solid var(--line);padding-left:0}}
@media print{.site-header,.contents,.dossier-controls,.filter-row,.filter-summary,.browse-links{display:none!important}
details::details-content{content-visibility:visible!important;display:block!important;height:auto!important}
details>div,details>ul{display:block!important}
.reference-detail{break-inside:auto}
.composer .js-only{display:none!important}
.table-wrap{overflow:visible;border:0}
.technical-table,.b06-variant-table,.b06-source-table{min-width:0!important;width:100%;table-layout:fixed;font-size:9pt}
.technical-table th,.technical-table td{white-space:normal!important;overflow-wrap:anywhere;min-width:0!important;padding:5px}
.technical-table tr{break-inside:avoid}
.document-requirements,.b06-review-status,.b06-related-ledger{break-inside:auto}
.dossier-content>section{margin-bottom:9mm}}
/* R02: explicit contact treatment must override shared link/current-route colours. *//* Recovered component dependencies: source status, comparison/evidence ledgers and documentary grids. */.source-status{border-top:3px solid var(--red-dark);padding-top:19px;align-self:start;min-width:0;overflow-wrap:anywhere}
.source-status strong,.source-status span{display:block}
.source-status strong{font-size:20px;line-height:1.3;margin-bottom:8px}
.source-status span{font-size:14px;color:var(--muted);margin-bottom:18px}
.source-status>p:last-child{font-size:16px;color:var(--text)}
.construction-triptych{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.825fr) minmax(0,.825fr);gap:18px;align-items:start}
.construction-triptych .photo:first-child{grid-row:span 2}
.construction-triptych .photo img{aspect-ratio:4/3}
.documentary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 18px}
.documentary-grid .photo img{aspect-ratio:4/3}
.documentary-grid .photo:nth-child(1),.documentary-grid .photo:nth-child(8){grid-column:span 2}
.documentary-grid .photo:nth-child(1) img,.documentary-grid .photo:nth-child(8) img{aspect-ratio:2/1}
@media(max-width:1120px){.documentary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.construction-triptych,.documentary-grid{grid-template-columns:minmax(0,1fr)}
.construction-triptych .photo:first-child,.documentary-grid .photo:nth-child(1),.documentary-grid .photo:nth-child(8){grid-column:auto;grid-row:auto}
.construction-triptych .photo img,.documentary-grid .photo img,.documentary-grid .photo:nth-child(1) img,.documentary-grid .photo:nth-child(8) img{aspect-ratio:4/3}}
@media(max-width:440px){.source-status strong{font-size:19px}}
@media print{.source-status{margin-top:6mm;break-inside:avoid}
.source-table a:after{content:" (" attr(href) ")";font-size:8pt;overflow-wrap:anywhere}
.documentary-grid,.construction-triptych{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.documentary-grid .photo,.construction-triptych .photo{grid-column:auto!important;grid-row:auto!important}}
/* Product packaging concept imagery restored for catalogue presentation. */
.product-dossier-figure{margin:0;background:#f3f5f6;border:1px solid var(--line);overflow:hidden}
.product-dossier-figure img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain}
.product-dossier-figure figcaption{padding:10px 13px 12px;border-top:1px solid var(--line);font-size:12px;line-height:1.45;color:var(--muted);background:#fff}
.product-mockup{background:#f3f5f6}
@media(max-width:760px){.product-dossier-figure figcaption{font-size:12px}}
@media print{.product-dossier-figure{max-width:82mm}
.product-dossier-figure figcaption{font-size:8pt}}
/* Project roadmap and status band, fed by source/data/milestones.json (2026-09-13). */
.roadmap-step{font-size:13px;font-weight:600;color:var(--muted)}
.roadmap-events,.news-list{list-style:none;margin:14px 0 0;padding:0;border-top:1px solid var(--ink)}
.roadmap-events li{display:grid;grid-template-columns:minmax(130px,.4fr) minmax(0,1.6fr);gap:6px 22px;padding:14px 0;border-bottom:1px solid var(--line)}
.roadmap-events time{font-weight:600}
.roadmap-events small{grid-column:2;color:var(--muted);font-size:13.5px}
.news-list li{padding:20px 0;border-bottom:1px solid var(--line)}
.news-list h2{margin:6px 0 8px;font-size:22px}
@media(max-width:760px){.roadmap-events li{grid-template-columns:1fr}
.roadmap-events small{grid-column:1}}
/* Header and footer, sitewide (DESIGN-SPEC R8/R9, 2026-09-13): 96px masthead, 14px/500 navigation,
   red 2px current-route rule, one native disclosure menu below 1200px, navy footer. */.site-header{border-top:3px solid var(--red);border-bottom:1px solid var(--line);background:#fff;position:relative;z-index:30}
.topbar{background:var(--surface);border-bottom:1px solid var(--line);font-size:12px;line-height:1.4;color:var(--muted)}
.topbar-inner{width:min(calc(100% - var(--gutter)*2),var(--max));margin:auto;display:flex;justify-content:space-between;align-items:center;gap:4px 24px;flex-wrap:wrap;min-height:36px}
.topbar-inner p{margin:0;font-weight:600;letter-spacing:.03em}
.topbar-inner p a{color:var(--red-dark);text-decoration:none;font-weight:500;letter-spacing:0;margin-left:10px}
.topbar-inner a:hover{text-decoration:underline}
.utility-nav{display:flex;gap:20px}
.utility-nav a{min-height:36px;display:inline-flex;align-items:center;color:var(--navy);font-weight:500;text-decoration:none}
.masthead{width:min(calc(100% - var(--gutter)*2),var(--max));margin:auto;min-height:96px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand{flex:0 0 auto}
.brand img{display:block;width:176px;height:auto}
.desktop-nav{display:flex;align-items:center;gap:4px 16px}
.nav-item{position:relative}
.nav-item-line{display:flex;align-items:center}
.nav-parent{min-height:48px;display:flex;align-items:center;text-decoration:none;font-size:14px;font-weight:500;color:var(--navy);border-bottom:2px solid transparent;white-space:nowrap}
.nav-parent:hover{color:var(--red-dark)}
.nav-parent[aria-current]{border-color:var(--red);color:var(--red-dark)}
.nav-expander{background:transparent;border:0;width:24px;min-height:44px;padding:0;color:var(--muted);font-size:15px;line-height:1}
.nav-expander[aria-expanded="true"]{color:var(--red-dark)}
.nav-panel{position:absolute;top:100%;left:-12px;width:300px;max-width:calc(100vw - 36px);z-index:90;border:1px solid var(--line);border-top:2px solid var(--red);background:#fff}
.nav-item:nth-last-child(-n+3) .nav-panel{left:auto;right:0}
#nav-panel-capabilities{width:600px}
#nav-panel-capabilities ul{columns:2;column-gap:28px}
.nav-panel-inner{padding:16px 22px 18px}
.nav-panel-kicker{font-size:12px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.nav-panel ul{list-style:none;margin:0;padding:0}
.nav-panel li,.nav-panel li+li{margin:0;break-inside:avoid}
.nav-panel a{display:flex;align-items:center;min-height:40px;padding:6px 0;font-size:15px;line-height:1.35;color:var(--navy);text-decoration:none;border-bottom:1px solid var(--line)}
.nav-panel a:hover{color:var(--red-dark)}
.nav-contact{min-height:44px;display:inline-flex;align-items:center;padding:0 18px;background:var(--navy);color:#fff;text-decoration:none;font-size:14px;font-weight:500;margin-left:4px}
.nav-contact:hover,.nav-contact[aria-current]{background:var(--red-dark);color:#fff}
html:not(.js-enabled) .nav-expander{display:none}
.mobile-menu{display:none;position:relative}
.mobile-menu>summary{list-style:none;cursor:pointer;min-height:44px;display:flex;align-items:center;padding:0 18px;border:1px solid var(--line);font-size:14px;font-weight:500;color:var(--navy)}
.mobile-menu>summary::-webkit-details-marker,.mobile-group>summary::-webkit-details-marker{display:none}
.mobile-menu[open]>summary{border-color:var(--navy)}
.mobile-menu>nav{position:absolute;right:0;top:calc(100% + 12px);width:min(380px,calc(100vw - 40px));max-height:calc(100vh - 150px);overflow:auto;background:#fff;border:1px solid var(--line);border-top:2px solid var(--red);padding:6px 20px 20px;z-index:90}
.mobile-group{border-bottom:1px solid var(--line)}
.mobile-group>summary{min-height:48px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;list-style:none;font-size:16px;font-weight:500;color:var(--navy)}
.mobile-group>summary::after{content:"+";color:var(--red-dark);font-size:20px;font-weight:400}
.mobile-group[open]>summary::after{content:"−"}
.mobile-group ul{list-style:none;margin:0 0 10px;padding:0}
.mobile-group li,.mobile-group li+li{margin:0}
.mobile-group a{display:flex;align-items:center;min-height:44px;font-size:15px;line-height:1.35;color:var(--ink);text-decoration:none}
.mobile-contact{margin-top:16px;min-height:48px;display:flex;align-items:center;justify-content:center;background:var(--red);color:#fff;text-decoration:none;font-weight:500}
.mobile-contact:hover{background:var(--red-dark);color:#fff}
@media(max-width:1199px){.desktop-nav{display:none}
.mobile-menu{display:block}
.masthead{min-height:82px}}
@media(max-width:680px){.masthead{min-height:72px}
.brand img{width:146px}
.topbar-inner{padding-block:6px}
.topbar-inner p a{display:block;margin:2px 0 0}}
/* Footer (owner review of Release B, 13.09): a narrow navy band. Brand statement and four link groups in one row,
   13px links on 24px rows; copyright, notice and utility links in one thin strip beneath. */
.site-footer{background:var(--navy);color:#d8dfe4;padding:32px var(--gutter) 18px;font-size:13px;line-height:1.45}
.site-footer>div{max-width:var(--max);margin-inline:auto}
.footer-grid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(4,minmax(0,1fr));gap:28px;padding-bottom:22px}
.footer-brand{min-width:0;padding-right:12px;display:flex;flex-direction:column;align-items:flex-start}
.site-footer .eyebrow{color:#d8dfe4;font-size:11px;margin:0 0 8px}
.site-footer .footer-brand h2{color:#fff;font-size:18px;line-height:1.3;font-weight:500;letter-spacing:-.01em;max-width:24ch;margin:0 0 6px}
.footer-brand p:not(.eyebrow){font-size:13px;color:#c3ccd3;margin:0 0 10px}
.footer-email{display:inline-flex;align-items:center;min-height:24px;color:#fff;font-size:13px;font-weight:500;white-space:nowrap;border-bottom:1px solid var(--red);text-decoration:none}
.footer-email:hover{color:#fff;border-color:#fff}
.site-footer .footer-grid h3{font-size:11px;line-height:1.3;font-weight:600;letter-spacing:.085em;text-transform:uppercase;color:#fff;margin:0 0 6px}
.footer-group>summary{display:block;list-style:none;cursor:default}
.footer-note>summary{display:none}
.footer-group>summary::-webkit-details-marker{display:none}
.footer-grid ul{list-style:none;padding:0;margin:0}
.footer-grid li,.footer-grid li+li{margin:0}
.footer-grid nav a{display:flex;align-items:center;min-height:24px;padding:2px 0;color:#d8dfe4;font-size:13px;line-height:1.35;text-decoration:none}
.footer-grid nav a:hover{color:#fff;text-decoration:underline}
.footer-bottom{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:6px 28px;align-items:baseline;padding-top:14px;border-top:1px solid #53616c;font-size:12px;color:#c3ccd3}
.footer-bottom p{margin:0}
.footer-bottom .footer-notice{line-height:1.5;color:#aab6bf}
.footer-utility{white-space:nowrap}
.footer-bottom a{display:inline-flex;align-items:center;min-height:24px;color:#fff}
.footer-bottom a:hover{color:#fff}
.site-footer a:focus-visible,.site-footer summary:focus-visible{outline-color:#fff}
/* Fable ruling, Release B: footer headings are working disclosures at every width. A group or the portfolio notice
   closed at 681px and above shows its "+" marker and pointer, so it can always be reopened (also without script). */
@media(min-width:681px){.footer-group:not([open])>summary{cursor:pointer;display:flex;align-items:baseline;gap:8px;min-height:24px}.footer-group:not([open])>summary::after{content:"+";color:#fff;font-size:15px;font-weight:400;line-height:0}.footer-note:not([open])>summary{display:inline-flex;gap:6px;font-size:12px;color:#fff}}
@media(max-width:1100px){.footer-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px 24px}.footer-brand{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:4px 18px;padding:0 0 14px;border-bottom:1px solid #53616c}.footer-brand .eyebrow{flex-basis:100%}.footer-statement{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 18px}.site-footer .footer-brand h2{max-width:none;margin:0}.footer-brand p:not(.eyebrow){margin:0}.footer-bottom{grid-template-columns:auto minmax(0,1fr)}.footer-bottom .footer-note{grid-column:1/-1;grid-row:2}.footer-utility{justify-self:end}}
@media(max-width:680px){.site-footer{padding:14px var(--gutter) 10px;line-height:1.35}.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;padding-bottom:0;border-bottom:1px solid #53616c}.footer-brand{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:0 12px;padding:0 0 8px;border-bottom:1px solid #53616c}.site-footer .footer-brand .eyebrow{grid-column:1;grid-row:1;margin:0}.footer-email{grid-column:2;grid-row:1;display:flex;min-height:24px;margin:0;font-size:12px}.footer-statement{grid-column:1/-1;grid-row:2;display:block}.site-footer .footer-brand h2{display:inline;font-size:13px;line-height:1.35;max-width:none;margin:0}.footer-brand .footer-statement p{display:inline;font-size:12px;margin:0}.footer-group>summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:36px}.footer-group>summary::after{content:"+";color:#fff;font-size:15px;font-weight:400}.footer-group[open]>summary::after{content:"−"}.site-footer .footer-grid .footer-group h3{margin:0;font-size:10.5px;letter-spacing:.07em}.footer-grid>nav:has(.footer-group[open]){grid-column:1/-1}.footer-group ul{columns:2;column-gap:16px;padding:0 0 8px}.footer-grid nav a{min-height:30px;padding:0;font-size:13px;break-inside:avoid}.footer-bottom{display:flex;flex-wrap:wrap;align-items:center;gap:0 14px;padding-top:4px;border-top:0}.footer-bottom .footer-legal{order:1}.footer-note{order:2}.footer-note>summary{display:inline-flex;align-items:center;gap:6px;min-height:28px;font-size:12px;color:#fff;justify-content:flex-start}.footer-note>summary::after{font-size:13px}.footer-note[open]{flex-basis:100%;order:4}.footer-utility{order:3;white-space:normal}.footer-bottom .footer-notice{font-size:12px;line-height:1.4;margin:0 0 4px}}
@media print{.topbar,.desktop-nav,.mobile-menu,.site-footer,.section-index,.actions,.enquiry-band{display:none!important}}
/* Shared status, basis, table and figure components (sitewide) and the design-v2 template layer
   (body.design-v2, DESIGN-SPEC R9: eight templates in Release A, the rest in Release B). */.shell{width:min(calc(100% - var(--gutter)*2),var(--shell));margin-inline:auto}
.status{display:inline-flex;gap:8px;align-items:center;white-space:nowrap;padding:3px 9px;border:1px solid var(--red-dark);color:var(--red-dark);font-size:12px;line-height:1.4;text-transform:uppercase;letter-spacing:.075em;font-weight:600;background:#fff}
.status::before{content:"";width:5px;height:5px;background:currentColor;flex:none}
.basis{display:inline-flex;align-items:center;white-space:nowrap;padding:3px 9px;border:1px solid var(--line-dark);color:var(--navy);font-size:12px;line-height:1.4;letter-spacing:.02em;font-weight:500;background:var(--surface)}
.service-labels{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0}
.data-table{border-collapse:collapse;width:100%;text-align:left;line-height:1.55;font-size:15px}
.data-table caption{text-align:left;padding:14px 0;font-size:14px;color:var(--muted)}
.data-table th{font-size:12px;text-transform:uppercase;letter-spacing:.055em;background:var(--surface);color:var(--muted);font-weight:600}
.data-table th[scope="row"]{font-size:15px;text-transform:none;letter-spacing:normal;background:transparent;color:var(--navy);font-weight:500}
.data-table th,.data-table td{padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}
.data-table th:first-child,.data-table td:first-child{padding-left:0}
.data-table small{display:block;margin-top:4px;font-size:13px;color:var(--muted);font-weight:400}
.data-table a{text-underline-offset:4px}
.table-scroll{overflow-x:auto;border-top:1px solid var(--navy);max-width:100%;margin:24px 0}
.table-scroll:focus-visible{outline:3px solid var(--red-dark);outline-offset:4px}
.portfolio-table th[scope="row"]{min-width:200px}
.field-note{max-width:34ch}
.figure-s,.figure-m,.figure-h,.figure-p{margin:0;min-width:0;background:var(--surface);border:1px solid var(--line)}
.figure-s img,.figure-m img,.figure-h img,.figure-p img{display:block;width:100%;height:auto;aspect-ratio:auto}
.figure-s figcaption,.figure-m figcaption,.figure-h figcaption,.figure-p figcaption{padding:8px 10px;font-size:12px;line-height:1.45;color:var(--muted);border-top:1px solid var(--line);overflow-wrap:anywhere}
.figure-note{font-size:12px;line-height:1.5;color:var(--muted);margin:10px 0 0}
.presentation-table .figure-s{width:132px}
.design-v2{--gutter:32px}
.design-v2 main{overflow-x:clip}
.design-v2 .breadcrumb{width:min(calc(100% - var(--gutter)*2),var(--shell));margin-top:24px;font-size:13px}
/* zero-specificity defaults: every component rule below overrides them */:where(.design-v2 main) :is(h1,h2,h3,h4){font-weight:500;color:var(--navy);letter-spacing:-.03em}
:where(.design-v2 main) h2{font-size:clamp(30px,2.8vw,40px);line-height:1.12}
:where(.design-v2 main) h3{font-size:25px;line-height:1.22;letter-spacing:-.018em}
.design-v2 .hero{padding-block:48px 64px}
.design-v2 .hero-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:32px;align-items:start}
.design-v2 .hero-copy{grid-column:span 7;min-width:0;padding-right:32px;padding-top:12px}
.design-v2 .hero-copy h1{font-size:clamp(40px,4.1vw,58px);line-height:1.1;max-width:18ch;margin-bottom:24px}
.design-v2.home .hero-copy h1{font-size:clamp(42px,4.55vw,64px);max-width:17ch}
.design-v2 .hero-copy .lead{font-size:20px;line-height:1.6;max-width:58ch}
.design-v2 .hero-panel{grid-column:span 5;min-width:0}
.design-v2 .hero .actions{margin-top:28px}
.design-v2 .actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.design-v2 .button{gap:18px}
.design-v2 .hero .service-labels{margin-top:24px}
.design-v2 .status-line{max-width:620px}
.project-panel{background:var(--navy);padding:30px;color:#fff}
.project-panel h2{color:#fff;font-size:clamp(32px,3vw,42px);margin:14px 0}
.project-panel p{color:#fff}
.project-panel .panel-label{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #53616c;padding-bottom:16px;margin:0;font-size:12px;font-weight:600;letter-spacing:.075em;text-transform:uppercase}
.project-panel .panel-foot{border-top:1px solid #53616c;margin:24px 0 0;padding-top:16px;font-size:14px;color:#d8dfe4}
.project-panel .location{color:#d8dfe4}
.project-panel a{color:#fff}
.project-panel .status,.status-band .status,.section.dark .status,.record-review .status{color:#fff;border-color:#d8dfe4;background:transparent}
.panel-numeral{font-size:76px;line-height:1.05;font-weight:400;letter-spacing:-.06em;margin:18px 0 0}
.object-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}
.design-v2 .source-status{margin-top:20px;border-top:2px solid var(--red)}
.design-v2 .hero-panel .photo img{aspect-ratio:4/3;object-fit:cover}
.design-v2 .hero-panel .photo figcaption{font-size:13px}
.design-v2 .pack-figure .product-dossier-figure{max-width:300px;margin:0 0 16px}
.design-v2 .pack-figure figcaption{font-size:12px}
.record-review{background:var(--navy);padding:26px;color:#fff}
.record-review h2,.record-review h3{color:#fff;font-size:22px;line-height:1.3;margin:10px 0}
.record-review .eyebrow{color:#d8dfe4;margin:0}
.record-review p{color:#fff;font-size:15px}
.record-review .small,.record-review .small time{color:#d8dfe4}
.status-band{background:var(--navy);color:#fff}
.status-band .fact-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding-block:26px;margin:0}
.status-band .fact-grid>dl{margin:0;padding-inline:24px;border-left:1px solid #53616c;min-width:0}
.status-band .fact-grid>dl:first-child{padding-left:0;border-left:0}
.status-band dt{font-size:12px;line-height:1.4;text-transform:uppercase;letter-spacing:.085em;margin-bottom:8px;color:#d8dfe4;font-weight:600}
.status-band dd{margin:0;font-size:18px;line-height:1.4;font-weight:500;color:#fff;overflow-wrap:anywhere}
.status-band dd small{display:block;color:#d8dfe4;font-weight:400;font-size:13px;margin-top:6px}
.status-band .horizon{box-shadow:inset 0 2px 0 var(--red);padding-top:12px}
.status-band time{color:#fff}
.status-note{color:#d8dfe4;font-size:14px;margin:0;padding-bottom:20px}
.section-index{border-bottom:1px solid var(--line);background:#fff}
.section-index .shell{display:flex;flex-wrap:wrap;gap:0 28px;padding-block:8px}
.section-index a{display:flex;align-items:center;min-height:44px;font-size:13px;text-decoration:none;color:var(--muted)}
.section-index a:hover{color:var(--red-dark)}
.design-v2 .section{padding-block:80px;scroll-margin-top:12px}
.design-v2 .section.soft{background:var(--surface)}
.design-v2 .section.dark{background:var(--navy);color:#fff}
.design-v2 .section.dark h2,.design-v2 .section.dark h3,.design-v2 .section.dark p,.design-v2 .section.dark strong,.design-v2 .section.dark .section-heading p:not(.eyebrow){color:#fff}
.design-v2 .section.dark .eyebrow{color:#d8dfe4}
.design-v2 .section.dark a{color:#fff}
.design-v2 .section.dark .section-heading .eyebrow{border-color:var(--red)}
.design-v2 .section.dark .feature-record{border-color:#53616c}
.design-v2 .section-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:32px}
.design-v2 .section-heading{grid-column:span 4;padding-right:32px;max-width:none;margin:0}
.design-v2 .section-body{grid-column:span 8;min-width:0}
.design-v2 .section-heading .eyebrow{border-top:2px solid var(--red);padding-top:18px}
.design-v2 .section-heading h2{font-size:34px}
.design-v2 .section-heading p:not(.eyebrow){font-size:16px;color:var(--muted)}
.design-v2 .section-title{display:flex;justify-content:space-between;align-items:end;gap:28px;margin-bottom:32px}
.design-v2 .section-title h2{max-width:24ch;margin:0}
.design-v2 .section-title>p{max-width:44ch;font-size:16px;color:var(--muted);margin:0}
.design-v2 .section-title .eyebrow{border-top:2px solid var(--red);padding-top:18px;display:inline-block}
.design-v2 .section-body>p,.design-v2 .section-body li{max-width:68ch}
.design-v2 .subhead{font-size:24px;margin:40px 0 14px}
.design-v2 .section-body>.subhead:first-child{margin-top:0}
.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--navy)}
.module-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.module{padding:26px 26px 26px 0;min-width:0}
.module+.module{border-left:1px solid var(--line);padding-left:26px}
.module .module-id{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:24px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.module h3{font-size:24px;max-width:23ch}
.module p{font-size:16px;color:var(--muted)}
.design-v2 .ledger{border-top:1px solid var(--navy);margin:24px 0}
.design-v2 .ledger>dl{margin:0;display:grid;grid-template-columns:minmax(140px,.8fr) minmax(0,1.8fr);gap:28px;padding:16px 0;border-bottom:1px solid var(--line)}
.design-v2 .ledger dt{font-size:14px;color:var(--muted)}
.design-v2 .ledger dd{margin:0;line-height:1.6;overflow-wrap:anywhere}
.design-v2 .ledger dd small{display:block;margin-top:4px;font-size:14px;color:var(--muted)}
.design-v2 .notice{border:0;border-left:3px solid var(--red);background:var(--surface);padding:22px 26px;margin:28px 0;font-size:15px}
.design-v2 .section.soft .notice{background:#fff}
.design-v2 .notice h3{font-size:19px;margin:0 0 8px}
.design-v2 .notice p{font-size:15px}
.notice .text-link{display:inline;min-height:0;margin:0 0 0 4px;white-space:nowrap}
.feature-record .text-link{white-space:nowrap;margin-top:0}
.roadmap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;padding:0;margin:0;border-top:1px solid var(--navy)}
.roadmap li{padding:22px 22px 22px 0;margin:0;border-bottom:1px solid var(--line);min-width:0}
.roadmap li:not(:nth-child(4n+1)){border-left:1px solid var(--line);padding-left:22px}
.roadmap .roadmap-step{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:10px}
.roadmap .when{display:block;font-size:13px;color:var(--red-dark);font-weight:600;margin:12px 0 0}
.roadmap h3{font-size:19px;margin:12px 0 8px}
.roadmap p{font-size:14px;color:var(--muted)}
.roadmap .current{background:var(--surface);box-shadow:inset 0 2px 0 var(--red)}
.roadmap .roadmap-done .status{color:var(--navy);border-color:var(--navy)}
.design-v2 .section.soft .roadmap .current{background:#fff}
.source-note{font-size:13px;color:var(--muted);margin-top:20px;max-width:90ch}
.quality-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin:24px 0}
.quality-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.quality-cell{background:#fff;padding:24px;min-width:0}
.quality-cell .eyebrow{margin-bottom:12px}
.quality-cell h3{font-size:20px;margin:14px 0 10px}
.quality-cell p{font-size:15px;color:var(--muted)}
.flow{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;padding:0;margin:24px 0}
.flow li{border-top:2px solid var(--red);padding-top:16px;margin:0;min-width:0}
.flow span{font-size:12px;font-weight:600;color:var(--muted)}
.flow h3{font-size:19px;margin:10px 0 8px}
.flow p{font-size:15px;color:var(--muted)}
.feature-record{border:1px solid var(--line);padding:26px;display:flex;gap:32px;justify-content:space-between;align-items:center;margin:28px 0;background:#fff}
.section.dark .feature-record{background:transparent}
.feature-record h3{margin:10px 0}
.category-nav{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}
.category-nav a{padding:8px 12px;min-height:44px;display:inline-flex;align-items:center;border:1px solid var(--line);font-size:13px;text-decoration:none;color:var(--navy);background:#fff}
.category-nav a:hover{border-color:var(--red-dark)}
.portfolio-group,.scope-group{border-top:1px solid var(--navy);scroll-margin-top:16px;background:transparent}
.portfolio-group:last-of-type,.scope-group:last-of-type{border-bottom:1px solid var(--line)}
.portfolio-group>summary,.scope-group>summary{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:64px;padding:16px 0;cursor:pointer;list-style:none;font-size:21px;font-weight:500;color:var(--navy)}
.portfolio-group>summary::-webkit-details-marker,.scope-group>summary::-webkit-details-marker,.question>summary::-webkit-details-marker{display:none}
.portfolio-group>summary::after,.scope-group>summary::after,.question>summary::after{content:"+";color:var(--red-dark);font-size:26px;font-weight:400;flex:none}
.portfolio-group[open]>summary::after,.scope-group[open]>summary::after,.question[open]>summary::after{content:"−"}
.portfolio-group>summary small,.scope-group>summary small{display:block;font-size:13px;font-weight:400;color:var(--muted);margin-top:2px}
.portfolio-group>div,.scope-group>div{padding:0 0 28px}
.portfolio-group:target,.scope-group:target{outline:2px solid var(--red-dark);outline-offset:6px}
.scope-heading{display:grid;grid-template-columns:1fr 2fr;gap:40px;margin:8px 0 18px}
.scope-heading h3{font-size:25px;margin:0}
.scope-heading p{font-size:15px;color:var(--muted);margin:0}
.service-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.6fr) auto;gap:24px;border-top:1px solid var(--line);padding:16px 0;align-items:start}
.service-row h4{font-size:18px;margin:0;letter-spacing:-.012em}
.service-row p{font-size:14px;color:var(--muted);margin:0}
.service-row .service-labels{justify-content:flex-end}
.service-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:40px}
.service-summary a{padding:20px 22px;background:#fff;text-decoration:none;color:var(--navy);font-size:17px;line-height:1.4;font-weight:500}
.service-summary a small{display:block;margin-top:10px;font-size:12px;font-weight:600;color:var(--red-dark);text-transform:uppercase;letter-spacing:.08em}
.service-summary a:hover{background:var(--surface)}
.question{border-bottom:1px solid var(--line)}
.question:first-child{border-top:1px solid var(--navy)}
.question>summary{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:56px;padding:14px 0;cursor:pointer;list-style:none;font-size:17px;font-weight:500;color:var(--navy)}
.question>div{padding:0 0 20px}
.enquiry-band{background:var(--surface);padding-block:48px;border-top:1px solid var(--line)}
.enquiry-band .shell{display:flex;align-items:center;justify-content:space-between;gap:48px}
.enquiry-band h2{font-size:32px;margin:0 0 12px}
.enquiry-band p{font-size:16px;max-width:65ch;color:var(--text)}
.enquiry-band .button{flex-shrink:0;gap:18px}
.design-v2 .text-link{display:inline-flex;align-items:center;gap:12px;min-height:44px;margin-top:12px;font-size:15px;font-weight:500}
.design-v2 .link-ledger{margin:24px 0}
.design-v2 .browse-links{margin-top:28px}
.design-v2 .catalogue-tools{margin-top:24px}
.design-v2 .filter-row input,.design-v2 .filter-row select{background:#fff}
.design-v2 .archival-boundary{margin-block:0 28px}
.design-v2 .dossier-controls{margin-top:20px}
.design-v2 .reference-detail summary{font-weight:500}
/* Release B (DESIGN-SPEC §6.9): the secondary templates on the same hero, band, chapter and ledger
   components. Panel-less heroes widen their copy; notices keep one reading column. */.design-v2 .hero.no-panel .hero-copy{grid-column:span 9}
.design-v2 .hero.no-panel .hero-copy h1{max-width:22ch}
.design-v2 .hero .updated{margin:22px 0 0;font-size:14px;color:var(--muted)}
.status-band .fact-grid.cells-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.page-source{padding-block:14px 0}
.page-source .source-note{margin:0;max-width:96ch}
.design-v2 .section-heading>p:not(.eyebrow)+p{margin-top:12px}
.quality-cell ul{margin:0;padding-left:1.1em;font-size:15px;color:var(--muted)}
.quality-cell li{margin:6px 0}
.quality-cell .text-link{margin-top:8px}
.boundary-list{list-style:none;margin:24px 0 0;padding:0;columns:2;column-gap:32px;border-top:1px solid var(--navy)}
.boundary-list li{break-inside:avoid;position:relative;margin:0;padding:14px 0 14px 20px;border-bottom:1px solid var(--line);font-size:16px;color:var(--navy)}
.boundary-list li::before{content:"";position:absolute;left:0;top:23px;width:7px;height:7px;background:var(--red)}
.section-action{margin:28px 0 0}
.design-v2 .button.outline{background:#fff}
.figure-pair,.construction-triptych{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:0}
.construction-triptych{grid-template-columns:repeat(3,minmax(0,1fr))}
.design-v2 .documentary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.design-v2 .figure-pair .photo,.design-v2 .construction-triptych .photo,.design-v2 .documentary-grid .photo{margin:0;grid-column:auto;grid-row:auto;min-width:0}
.design-v2 .figure-pair .photo img,.design-v2 .construction-triptych .photo img,.design-v2 .documentary-grid .photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.design-v2 .figure-pair figcaption,.design-v2 .construction-triptych figcaption,.design-v2 .documentary-grid figcaption{position:static;background:transparent;color:var(--muted);font-size:13px;line-height:1.45;padding:10px 0 0}
.roadmap-events{list-style:none;margin:0;padding:0;border-top:1px solid var(--navy)}
.roadmap-events li{display:grid;grid-template-columns:180px minmax(0,1fr);gap:4px 28px;margin:0;padding:14px 0;border-bottom:1px solid var(--line)}
.roadmap-events time{font-size:14px;font-weight:600;color:var(--red-dark)}
.roadmap-events small{grid-column:2;font-size:13px;color:var(--muted)}
.design-v2 .ledger+.roadmap{margin-top:28px}
.doc-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:32px}
.design-v2 .doc-longform{grid-column:1/span 8;font-size:17px}
.design-v2 .doc-longform>.doc-chapter{margin:0;padding:36px 0 40px;border-top:1px solid var(--line);scroll-margin-top:12px}
.design-v2 .doc-longform>.doc-chapter:first-child{border-top:2px solid var(--red);padding-top:24px}
.design-v2 .doc-chapter>.eyebrow{margin:0 0 10px;color:var(--muted)}
.design-v2 .doc-longform h2{font-size:30px;line-height:1.2;margin:0 0 18px;max-width:30ch}
.design-v2 .doc-longform h3{font-size:21px;margin:28px 0 10px}
.design-v2 .doc-longform p,.design-v2 .doc-longform li,.design-v2 .doc-longform dd{color:var(--text);max-width:72ch}
.design-v2 .doc-longform ul,.design-v2 .doc-longform ol{padding-left:1.2em}
.design-v2 .doc-longform .roadmap{grid-template-columns:repeat(2,minmax(0,1fr));margin:24px 0}
.design-v2 .doc-longform .roadmap li:not(:nth-child(4n+1)){border-left:0;padding-left:0}
.design-v2 .doc-longform .roadmap li:nth-child(2n){border-left:1px solid var(--line);padding-left:22px}
.design-v2 .doc-longform>h2#references{margin-top:40px;padding-top:32px;border-top:1px solid var(--navy)}
.design-v2 .doc-longform .source-review{margin-top:28px;font-size:14px;color:var(--muted)}
.design-v2 .related-resources{border-top:1px solid var(--navy);border-bottom:0;padding:24px 0 0;margin:36px 0 0}
.design-v2 .related-resources h2{font-size:24px;margin:8px 0 12px}
.design-v2 .related-resources ul{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}
.design-v2 .related-resources li{margin:0;border-bottom:1px solid var(--line)}
.design-v2 .related-resources a{display:flex;align-items:center;min-height:48px;font-size:16px;font-weight:500;text-decoration:none;color:var(--navy)}
.design-v2 .related-resources a:hover{color:var(--red-dark)}
.design-v2 .resource-cards .resource-card{border:0;padding:26px}
.design-v2 .resource-cards .resource-card h2{font-size:22px;line-height:1.25;margin:12px 0 10px;letter-spacing:-.015em}
.design-v2 .resource-cards .resource-card h2 a{color:var(--navy)}
.design-v2 .resource-cards .resource-card h2 a:hover{color:var(--red-dark)}
.design-v2 .contact-section{padding-block:56px 80px}
.design-v2 .contact-layout{padding:0;gap:48px;align-items:start}
.design-v2 .contact-info h2,.design-v2 .composer h2{font-size:30px;margin-bottom:14px}
.design-v2 .contact-info h3{font-size:20px}
.design-v2 .composer{background:#fff;border:1px solid var(--line);border-top:2px solid var(--red);border-radius:0}
.design-v2 .composer input,.design-v2 .composer textarea{border-radius:0}
.design-v2 .alphabet-index .shell{gap:0 4px}
.design-v2 .alphabet-index a{min-width:36px;justify-content:center;font-size:14px;font-weight:500;color:var(--navy)}
.design-v2 .az-section{grid-template-columns:90px minmax(0,1fr);padding-block:22px;border-top:1px solid var(--line);scroll-margin-top:12px}
.design-v2 .az-section:first-child{border-top:1px solid var(--navy)}
.design-v2 .az-section h2{font-size:32px;margin:0}
.design-v2 .index-list li{border-bottom:1px solid var(--line);align-items:baseline}
.design-v2 .index-list a{font-size:16px;text-decoration:none;color:var(--navy)}
.design-v2 .index-list a:hover{color:var(--red-dark);text-decoration:underline}
.design-v2 .index-groups .portfolio-group>div{padding-bottom:20px}
.design-v2 .site-search input{max-width:560px;border-radius:0}
.design-v2 .site-map-list li{border-bottom:1px solid var(--line);padding:10px 0}
.design-v2 .site-map-list a{text-decoration:none;color:var(--navy);font-weight:500}
.design-v2 .site-map-list span{display:block;font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.design-v2 .news-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--navy)}
.design-v2 .news-list li{margin:0;padding:22px 0;border-bottom:1px solid var(--line)}
.design-v2 .b05-link-ledger a{border-color:var(--line)}
@media(max-width:1100px){.design-v2 .documentary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.design-v2 .doc-longform{grid-column:1/span 10}}
@media(max-width:900px){.design-v2 .hero.no-panel .hero-copy{grid-column:span 8}
.status-band .fact-grid.cells-3{grid-template-columns:repeat(2,minmax(0,1fr))}
.doc-layout{grid-template-columns:repeat(8,minmax(0,1fr))}
.design-v2 .doc-longform{grid-column:span 8}
.design-v2 .contact-layout{grid-template-columns:1fr;gap:36px}
.design-v2 .documentary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.construction-triptych{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.boundary-list{columns:1}
.figure-pair,.construction-triptych,.design-v2 .documentary-grid{grid-template-columns:1fr}
.status-band .fact-grid.cells-3{grid-template-columns:1fr}
.status-band .fact-grid.cells-3>dl:nth-child(2n){border-left:0;padding-left:0}
.status-band .fact-grid.cells-3>dl{border-bottom:1px solid #53616c}
.status-band .fact-grid[class*="cells-"]>dl:last-child{border-bottom:0}
.roadmap-events li{grid-template-columns:1fr}
.roadmap-events small{grid-column:1}
.design-v2 .doc-longform h2{font-size:26px}
.design-v2 .az-section{grid-template-columns:1fr;gap:6px}
.design-v2 .composer{padding:22px 18px}
.design-v2 .doc-longform .roadmap{grid-template-columns:1fr}
.design-v2 .doc-longform .roadmap li,.design-v2 .doc-longform .roadmap li:nth-child(2n){border-left:1px solid var(--line);padding:18px 16px}}
@media(max-width:1100px){.design-v2 .hero-copy{padding-right:8px}
.design-v2 .hero-grid,.design-v2 .section-grid{gap:24px}
.design-v2 .section-heading{padding-right:12px}
.design-v2 .section-heading h2{font-size:30px}
.status-band .fact-grid>dl{padding-inline:16px}
.roadmap{grid-template-columns:repeat(2,minmax(0,1fr))}
.roadmap li:not(:nth-child(4n+1)){border-left:0;padding-left:0}
.roadmap li:nth-child(2n){border-left:1px solid var(--line);padding-left:22px}}
@media(max-width:900px){.design-v2 .hero-grid,.design-v2 .section-grid{grid-template-columns:repeat(8,minmax(0,1fr))}
.design-v2 .hero-copy{grid-column:span 8;padding:0}
.design-v2 .hero-panel{grid-column:span 8;max-width:560px}
.design-v2 .section-heading{grid-column:span 8;padding:0}
.design-v2 .section-body{grid-column:span 8}
.status-band .fact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.status-band .fact-grid>dl{padding:14px 16px 14px 0;border-left:0}
.status-band .fact-grid>dl:nth-child(2n){border-left:1px solid #53616c;padding-left:16px}
.quality-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.flow{grid-template-columns:repeat(2,minmax(0,1fr))}
.service-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
.module-grid{grid-template-columns:1fr}
.module,.module+.module{border-left:0;border-bottom:1px solid var(--line);padding:22px 0}
.service-row{grid-template-columns:minmax(0,1fr) auto;gap:10px 16px}
.service-row p:not(.service-labels){grid-column:1/-1;grid-row:2}
.service-row .service-labels{grid-column:2;grid-row:1}
.scope-heading{grid-template-columns:1fr;gap:10px}}
@media(max-width:680px){.design-v2{--gutter:20px}
.design-v2 .hero{padding-block:32px 40px}
.design-v2 .hero-copy h1,.design-v2.home .hero-copy h1{font-size:38px;line-height:1.1;max-width:20ch}
.design-v2 .hero-copy .lead{font-size:18px}
.design-v2 .actions .button{flex:1 1 100%;justify-content:space-between}
.project-panel{padding:24px}
.panel-numeral{font-size:60px}
.object-strip{gap:8px}
.status-band .fact-grid{padding-block:8px}
.status-band dd{font-size:16px}
.status-band .fact-grid>dl{border-bottom:1px solid #53616c}
.status-band .fact-grid>dl:nth-last-child(-n+2){border-bottom:0}
.design-v2 .section{padding-block:52px}
.design-v2 .section-heading h2,.design-v2 .section-title h2{font-size:30px}
.design-v2 .section-title{display:block;margin-bottom:24px}
.design-v2 .section-title h2{margin-bottom:14px}
.module-grid.two{grid-template-columns:1fr}
.design-v2 .ledger>dl{grid-template-columns:1fr;gap:4px}
.design-v2 .ledger dt{font-size:12px;text-transform:uppercase;letter-spacing:.06em}
.quality-grid,.quality-grid.two,.flow,.roadmap{grid-template-columns:1fr}
.roadmap li,.roadmap li:nth-child(2n),.roadmap li:not(:nth-child(4n+1)){border-left:1px solid var(--line);padding:18px 16px}
.service-summary{grid-template-columns:1fr}
.feature-record{display:block;padding:22px}
.enquiry-band{padding-block:36px}
.enquiry-band .shell{display:block}
.enquiry-band h2{font-size:28px}
.enquiry-band .button{margin-top:22px;display:flex;justify-content:space-between}
.data-table{min-width:640px;font-size:14px}
.data-table.compact,.presentation-table{min-width:560px}
.portfolio-group>summary,.scope-group>summary{font-size:19px}
.design-v2 .notice{padding:20px}}
/* Release C (DESIGN-SPEC-2 §3–§5, 2026-09-14): CSS-only items — B3 roadmap rail, B4 evidence flowchart,
   D4 contact inputs, B2 connected steppers and process grid, C2 sticky variant column. Markup unchanged. */
/* B3 · roadmap: a rail through every row, a node per phase, state colours. --rm-x = the cell's left padding. */
.roadmap{border-top:0}
.roadmap li{position:relative;padding-top:34px;--rm-x:0px;--rm-rail:var(--line)}
.roadmap li:not(:nth-child(4n+1)){--rm-x:22px}
.roadmap li::before{content:"";position:absolute;top:5px;left:0;right:0;height:2px;background:var(--rm-rail)}
.roadmap li::after{content:"";position:absolute;top:0;left:var(--rm-x);width:12px;height:12px;border-radius:50%;box-sizing:border-box;background:#fff;border:2px solid var(--line-dark)}
.roadmap li:nth-child(4n)::before,.roadmap li:last-child::before{right:auto;width:calc(var(--rm-x) + 6px)}
.roadmap li.roadmap-done{--rm-rail:var(--navy)}
.roadmap li.roadmap-done::after{background:var(--navy);border-color:var(--navy)}
.roadmap li.roadmap-in-progress,.roadmap li.current{--rm-rail:linear-gradient(90deg,var(--red) 0 calc(var(--rm-x) + 6px),var(--line) 0)}
.roadmap li.roadmap-in-progress::after,.roadmap li.current::after{background:var(--red);border-color:var(--red);box-shadow:0 0 0 4px #f2d3d9}
.roadmap .current{box-shadow:inset 3px 0 0 var(--red)}
.roadmap .roadmap-planned h3{color:var(--navy)}
.design-v2 .doc-longform .roadmap li:not(:nth-child(4n+1)){--rm-x:0px}
.design-v2 .doc-longform .roadmap li:nth-child(2n){--rm-x:22px}
.design-v2 .doc-longform .roadmap li:nth-child(4n)::before{right:0;width:auto}
.design-v2 .doc-longform .roadmap li:nth-child(2n)::before,.design-v2 .doc-longform .roadmap li:last-child::before{right:auto;width:calc(var(--rm-x) + 6px)}
/* B4 · quality product-evidence chain: five numbered cards joined by chevrons. */
.design-v2 .b05-evidence-chain{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr) 28px minmax(0,1fr) 28px minmax(0,1fr) 28px minmax(0,1fr);align-items:stretch;gap:0;padding:0;border:0;counter-reset:evidence-step}
.design-v2 .b05-evidence-chain span{display:block;min-width:0;min-height:88px;padding:16px;background:#fff;border:1px solid var(--line-dark);border-top:3px solid var(--navy);font-size:16px;font-weight:500;line-height:1.3;color:var(--navy);overflow-wrap:normal}
.design-v2 .b05-evidence-chain span::before{counter-increment:evidence-step;content:counter(evidence-step,decimal-leading-zero);display:block;margin-bottom:8px;font-size:12px;font-weight:600;letter-spacing:.11em;color:var(--red-dark)}
.design-v2 .b05-evidence-chain b{display:flex;align-items:center;justify-content:center;font-size:0;line-height:0;color:var(--navy);transform:none;margin:0}
.design-v2 .b05-evidence-chain b::before{content:"";width:9px;height:9px;border-top:2px solid var(--navy);border-right:2px solid var(--navy);transform:translateX(-2px) rotate(45deg)}
/* D4 · contact inputs: filled field, 2px border (3.3:1 on the fill), navy focus ring. Form markup untouched. */
.design-v2 .contact-form .form-grid>label{font-size:14px;font-weight:600;color:var(--navy)}
.design-v2 .contact-form .form-grid input,.design-v2 .contact-form .form-grid textarea{margin-top:8px;border:2px solid #7d8a95;background:var(--surface);border-radius:0;min-height:52px;font-weight:400;color:var(--ink)}
.design-v2 .contact-form .form-grid input:hover,.design-v2 .contact-form .form-grid textarea:hover{border-color:var(--muted)}
.design-v2 .contact-form .form-grid input:focus-visible,.design-v2 .contact-form .form-grid textarea:focus-visible{outline:3px solid var(--navy);outline-offset:2px;border-color:var(--navy);background:#fff}
/* B2 · connected steppers: square node, navy rail, chevron into the next step (span::after draws it). */
.flow{gap:20px}
.flow.steps-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.flow li{position:relative;border-top:0;padding-top:28px}
.flow li::before{content:"";position:absolute;top:6px;left:0;right:-20px;height:2px;background:var(--navy)}
.flow li::after{content:"";position:absolute;top:0;left:0;width:14px;height:14px;box-sizing:border-box;background:#fff;border:2px solid var(--red)}
.flow li>span::after{content:"";position:absolute;top:2px;right:-18px;border-style:solid;border-width:5px 0 5px 7px;border-color:transparent transparent transparent var(--navy)}
.flow li:last-child::before,.flow li:last-child>span::after{display:none}
.process-grid .quality-cell{position:relative}
.process-grid .quality-cell::after{content:"›";position:absolute;z-index:1;top:50%;right:-13px;width:24px;height:24px;margin-top:-12px;box-sizing:border-box;border:1px solid var(--line-dark);border-radius:50%;background:#fff;color:var(--navy);font-size:20px;font-weight:500;line-height:20px;text-align:center}
.process-grid .quality-cell:nth-child(3n)::after,.process-grid .quality-cell:last-child::after{display:none}
@media(max-width:1280px){.design-v2 .b05-evidence-chain{grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr) 20px minmax(0,1fr) 20px minmax(0,1fr) 20px minmax(0,1fr)}
.design-v2 .b05-evidence-chain span{padding:12px 10px;font-size:14px}}
@media(max-width:1100px){.roadmap li:not(:nth-child(4n+1)){--rm-x:0px}
.roadmap li:nth-child(2n){--rm-x:22px}
.roadmap li:nth-child(4n)::before{right:0;width:auto}
.roadmap li:nth-child(2n)::before,.roadmap li:last-child::before{right:auto;width:calc(var(--rm-x) + 6px)}}
@media(max-width:900px){.flow.steps-5{grid-template-columns:repeat(2,minmax(0,1fr))}
.flow li:nth-child(2n)::before,.flow li:nth-child(2n)>span::after{display:none}
.process-grid .quality-cell:nth-child(3n)::after{display:block}
.process-grid .quality-cell:nth-child(2n)::after,.process-grid .quality-cell:last-child::after{display:none}
.design-v2 .b05-evidence-chain{grid-template-columns:minmax(0,1fr);max-width:420px}
.design-v2 .b05-evidence-chain span{min-height:0}
.design-v2 .b05-evidence-chain b{height:28px}
.design-v2 .b05-evidence-chain b::before{transform:translateY(-2px) rotate(135deg)}}
@media(max-width:760px){.b06-variant-table th:first-child,.b06-variant-table td:first-child{position:sticky;left:0;z-index:1;background:#fff;padding-right:12px;box-shadow:1px 0 0 var(--line)}
.b06-variant-table thead th:first-child{background:var(--surface)}}
@media(max-width:680px){.roadmap li,.roadmap li:nth-child(2n),.roadmap li:not(:nth-child(4n+1)),.design-v2 .doc-longform .roadmap li,.design-v2 .doc-longform .roadmap li:nth-child(2n){border-left:0;padding:18px 16px 18px 32px;--rm-x:0px}
.roadmap li::before,.roadmap li:nth-child(n)::before,.design-v2 .doc-longform .roadmap li:nth-child(n)::before{top:0;bottom:0;left:5px;right:auto;width:2px;height:auto}
.roadmap li:first-child::before,.design-v2 .doc-longform .roadmap li:first-child::before{top:24px}
.roadmap li:last-child::before,.design-v2 .doc-longform .roadmap li:last-child::before{bottom:auto;height:24px}
.roadmap li::after{top:18px;left:0}
.roadmap li.roadmap-in-progress,.roadmap li.current{--rm-rail:linear-gradient(180deg,var(--red) 0 24px,var(--line) 0)}
.roadmap .current{box-shadow:none}
.flow.steps-5{grid-template-columns:1fr}
.flow li{padding:0 0 0 30px}
.flow li::before,.flow li:nth-child(n)::before{display:block;top:14px;bottom:-20px;left:6px;right:auto;width:2px;height:auto}
.flow li>span::after,.flow li:nth-child(n)>span::after{display:block;top:auto;bottom:-20px;right:auto;left:2px;border-width:7px 5px 0 5px;border-color:var(--navy) transparent transparent transparent}
.flow li:last-child::before,.flow li:last-child>span::after{display:none}
.process-grid .quality-cell::after,.process-grid .quality-cell:nth-child(n)::after{display:block;top:auto;bottom:-13px;right:auto;left:50%;margin:0 0 0 -12px;transform:rotate(90deg)}
.process-grid .quality-cell:last-child::after{display:none}}
@media print{.roadmap li::before,.roadmap li::after,.flow li::before,.flow li::after,.flow li>span::after,.process-grid .quality-cell::after{display:none}
.roadmap li,.flow li{padding-top:12px}}
/* Release C step 5 (DESIGN-SPEC-2 §2–§5): template items — A1 hero figures, A2 LP-002 pack figure, A3 programme
   card figures, A4 panel pattern, B1 family icons, C1 portfolio register, C2 dossier ledger, C3 position ledger and
   workstream cards, C4 evidence table, D2 catalogue card, D4 navy contact band. */
.icon{display:block;flex:none;color:var(--navy);stroke-width:1.5}
.icon .accent{stroke:var(--red)}
/* A1 · A2 */
.design-v2 .hero-panel>.figure-h{margin:0 0 16px}
.figure-h img{aspect-ratio:3/2;object-fit:cover}
.design-v2 .pack-figure .figure-p{max-width:300px;margin:0 0 16px}
.figure-p img{aspect-ratio:4/3;object-fit:cover}
/* A3 · C3 workstream cards */
.module>.figure-m{margin:0 0 20px}
.module>.figure-m img{aspect-ratio:3/2;object-fit:cover}
.module-grid+.figure-note{margin-top:14px}
.module .module-id>span{display:inline-flex;align-items:center;gap:8px}
.module-icon{width:20px;height:20px}
.module-grid.tinted{gap:20px;border-top:0}
.module-grid.tinted .module,.module-grid.tinted .module+.module{background:#fff;border:1px solid var(--line);padding:22px}
/* A4 · /products/ count panel */
.pattern-panel{position:relative;overflow:hidden}
.pattern-panel>:not(.panel-pattern){position:relative;z-index:1}
.panel-pattern{position:absolute;right:-24px;bottom:-24px;width:62%;height:auto;pointer-events:none}
/* B1 · capability family cards */
.service-summary a{display:grid;grid-template-columns:32px minmax(0,1fr);gap:4px 14px;align-content:start;min-height:112px;padding:22px}
.service-summary a .icon{grid-row:1/span 2;width:28px;height:28px}
.service-summary a>span{font-size:17px;font-weight:500}
.service-summary a small{grid-column:2;margin-top:0}
.service-summary a:hover>span{color:var(--red-dark)}
/* C1 · portfolio register: open dense tables, sticky category bar */
@media(min-width:681px){.portfolio-group>summary{position:sticky;top:0;z-index:2;background:var(--surface);min-height:48px;padding:10px 14px;font-size:17px}
.portfolio-group>summary>span{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 14px}
.portfolio-group>summary small{display:inline;margin-top:0}
.portfolio-group>div{padding:0 0 22px}
.portfolio-group .portfolio-table{font-size:14px;table-layout:fixed}
.portfolio-group .portfolio-table caption{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.portfolio-group .portfolio-table th,.portfolio-group .portfolio-table td{padding:8px 12px}
.portfolio-group .portfolio-table th[scope="row"]{font-size:15px;min-width:0}
.portfolio-group .portfolio-table th[scope="row"] small{display:inline;margin:0 0 0 8px}
.portfolio-group .portfolio-table th:nth-child(1){width:28%}
.portfolio-group .portfolio-table th:nth-child(2){width:17%}
.portfolio-group .portfolio-table th:nth-child(3){width:20%}
.portfolio-group .portfolio-table th:nth-child(4){width:19%}
.portfolio-group .portfolio-table th:nth-child(5){width:16%}
.portfolio-group>div>.text-link{display:table;margin:12px 0 0 auto}}
@media(min-width:901px){.category-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.category-nav a{display:flex;justify-content:space-between;gap:10px}}
@media(min-width:681px) and (max-width:900px){.category-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.category-nav a{display:flex;justify-content:space-between;gap:10px}}
.category-nav small{font-size:inherit;color:var(--muted)}
/* C2 · LP-002 dossier technical notes as a two-column ledger (float: engine-safe on <details>) */
@media(min-width:901px){#context .reference-detail{display:flow-root}
#context .reference-detail>summary{float:left;box-sizing:border-box;width:32%;min-height:0;margin:0;padding:20px 24px 20px 40px;font-size:17px;list-style-position:inside;text-indent:-18px}
#context .reference-detail[open]>summary{border-bottom:0}
#context .reference-detail>div{overflow:hidden;border-left:1px solid var(--line);padding:20px 24px}}
/* C3 · company position ledger */
.position-ledger{margin-bottom:28px}
.position-ledger .eyebrow{margin-bottom:12px}
.position-ledger p:not(.eyebrow){max-width:62ch}
/* D2 · catalogue card inside the scope grid */
.module-grid.two .module-note{grid-column:1/-1;border-left:0;border-top:1px solid var(--line);background:#fff;box-shadow:inset 3px 0 0 var(--red);padding:24px 26px}
.module-grid.two .module-note h3{max-width:none}
/* D4 · navy band on the contact routes; eyebrow never red on navy */
.design-v2 .hero.hero-navy{background:var(--navy);box-shadow:inset 0 3px 0 var(--red)}
.design-v2 .hero.hero-navy h1{color:#fff}
.design-v2 .hero.hero-navy .lead,.design-v2 .hero.hero-navy .eyebrow{color:#d8dfe4}
/* C4 · related evidence routes */
.evidence-routes th[scope="row"] a{font-weight:500}
@media(max-width:900px){.module-grid.tinted{gap:14px}
.module-grid.tinted .module,.module-grid.tinted .module+.module{padding:20px}}
@media(min-width:901px){.module>.figure-m img{height:160px;aspect-ratio:auto}
.module>.figure-m figcaption{min-height:calc(2 * 1.45em + 16px);box-sizing:border-box}}
@media(max-width:900px){.service-summary a:last-child:nth-child(odd){grid-column:1/-1}}
@media(max-width:680px){.service-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
.service-summary a{grid-template-columns:22px minmax(0,1fr);gap:4px 10px;min-height:0;padding:14px}
.service-summary a .icon{width:22px;height:22px}
.service-summary a>span{font-size:15px}
.service-summary a small{font-size:11px}
.module>.figure-m img{max-height:220px}
.panel-pattern{right:-16px;bottom:-16px}
.module-grid.two .module-note{padding:20px}}
@media print{.status-band,.project-panel,.record-review,.design-v2 .section.dark{background:#fff;color:#000;border:1px solid #777}
.status-band *,.project-panel *,.record-review *,.design-v2 .section.dark *{color:#000!important}
.table-scroll{overflow:visible}
.data-table{min-width:0!important;font-size:9pt}
.design-v2 .hero-grid,.design-v2 .section-grid{display:block}
.design-v2 .section{padding:12px 0}
.portfolio-group>div,.scope-group>div,.question>div{display:block!important}
.status{border-color:#000}}
/* Lao tree (2026-09-16, R4): Noto Sans Lao carries Lao script beside Plex (unicode-range, so English pages load it
   only for the switcher label). Lao stacks vowels and tone marks above and below the line, so headings get more
   leading and no negative tracking; Lao has no spaces between words, so line breaks come from the browser's Lao
   dictionary (lang="lo") and overflow-wrap:anywhere, which would split words, is relaxed to break-word. */
.lang-switch{border-left:1px solid var(--line);padding-left:20px}
.lang-note{font-size:15px;color:var(--muted);border-left:3px solid var(--line);padding-left:12px;max-width:70ch}
html[lang=lo] body{line-height:1.8}
html[lang=lo] h1,html[lang=lo] h2,html[lang=lo] h3,html[lang=lo] h4{letter-spacing:0;line-height:1.4}
html[lang=lo] h1{line-height:1.3}
html[lang=lo] :where(.design-v2 main) h2{line-height:1.35}
html[lang=lo] .eyebrow{letter-spacing:0}
html[lang=lo] :where(.source-list li,.longform a,.contact-address,.index-list a,.technical-table th,.technical-table td,.two-col-ledger>div,.dossier-content,.longform,.resource-card,.data-table th,.data-table td){overflow-wrap:break-word}
