@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}
/* 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",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{margin:0;min-width:0;background:var(--surface);border:1px solid var(--line)}
.figure-s img,.figure-m img{display:block;width:100%;height:auto;aspect-ratio:auto}
.figure-s figcaption,.figure-m 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}}
@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}}
