:root {
  --paper: #f6f5ef;
  --paper-2: #eeeee7;
  --white: #fffefa;
  --ink: #173a35;
  --ink-2: #34534a;
  --muted: #687871;
  --line: #d9ddd5;
  --green: #2f7059;
  --green-soft: #e1eee4;
  --orange: #c4774f;
  --orange-soft: #f2e5da;
  --blue-soft: #e2ebec;
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --wrap: 1240px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 15px; line-height: 1.62; }
img { max-width: 100%; display: block; }
a { color: inherit; }
button { font: inherit; }
::selection { background: #c4dccb; color: var(--ink); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: 10px; left: 10px; z-index: 100; transform: translateY(-160%); background: var(--ink); color: white; padding: 10px 14px; border-radius: 4px; }
.skip-link:focus { transform: translateY(0); }
.section-wrap { width: min(var(--wrap), calc(100% - 64px)); margin-inline: auto; }
.site-header { position: sticky; top: 0; z-index: 30; background: rgba(250,250,247,.96); border-bottom: 1px solid rgba(23,58,53,.08); backdrop-filter: blur(12px); }
.header-inner { width: min(1380px, calc(100% - 56px)); height: 76px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 26px; }
.brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; min-width: 220px; }
.brand-mark { display: grid; width: 34px; height: 34px; color: #2e735d; }
.brand-mark svg { width: 100%; height: 100%; }
.brand-name { font-size: 11px; letter-spacing: .18em; font-weight: 750; line-height: 1.18; color: var(--ink); }
.brand-name b { display: block; font-size: 9px; letter-spacing: .32em; font-weight: 600; color: #6b7a72; margin-top: 4px; }
.main-nav { display: flex; align-items: center; gap: clamp(14px, 2vw, 32px); height: 100%; }
.main-nav a { position: relative; display: flex; align-items: center; height: 100%; text-decoration: none; color: #68766e; font-size: 12px; transition: color .18s ease; }
.main-nav a:hover, .main-nav a.active { color: var(--ink); }
.main-nav a.active::after { content: ""; position: absolute; bottom: 17px; left: 0; width: 100%; height: 2px; background: var(--green); }
.watch-link { display: flex; align-items: center; gap: 9px; text-decoration: none; white-space: nowrap; color: var(--ink); font-size: 11px; font-weight: 650; }
.live-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #3b9a6a; box-shadow: 0 0 0 4px rgba(59,154,106,.12); }
.watch-link .arrow { color: #79857e; font-size: 14px; margin-left: 1px; }
.menu-toggle { display: none; }
.freshness-bar { background: #e9eee7; color: #5b6d63; }
.freshness-inner { width: min(1380px, calc(100% - 56px)); height: 38px; margin: 0 auto; display: flex; align-items: center; justify-content: center; gap: 16px; font-size: 9px; letter-spacing: .08em; }
.freshness-inner b { color: #3d5d50; font-weight: 750; margin-right: 6px; }
.freshness-inner a { text-decoration: underline; text-underline-offset: 3px; color: #53675d; }
.freshness-divider { width: 1px; height: 15px; background: #cdd7ce; }
.hero { min-height: 586px; display: grid; grid-template-columns: 1fr .96fr; align-items: center; gap: 52px; padding-block: 64px 60px; }
.hero-copy { max-width: 650px; }
.eyebrow { margin: 0 0 20px; color: #56766a; font-size: 10px; line-height: 1.4; font-weight: 750; letter-spacing: .19em; }
.eyebrow-line { display: inline-block; width: 19px; height: 1px; margin: 0 8px 3px 0; background: var(--orange); }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: var(--serif); font-weight: 400; letter-spacing: -.055em; }
h1 { margin-bottom: 23px; max-width: 710px; font-size: clamp(44px, 5.45vw, 72px); line-height: .99; }
h1 em, h2 em { color: #38755d; font-weight: 400; }
.hero-lede { max-width: 560px; margin-bottom: 25px; color: #61716a; font-size: 16px; line-height: 1.75; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 19px; gap: 10px; border: 1px solid var(--ink); text-decoration: none; font-size: 11px; font-weight: 700; transition: transform .18s ease, background .18s ease; }
.button:hover { transform: translateY(-2px); }
.button-dark { background: var(--ink); color: #fff; }
.button-dark:hover { background: #265347; }
.button-light { background: transparent; color: var(--ink); border-color: #c9d0c8; }
.button-light:hover { background: #fffefa; }
.hero-meta { margin-top: 25px; display: flex; flex-wrap: wrap; gap: 9px 24px; color: #77827c; font-size: 9px; }
.hero-meta span::before { content: "•"; color: var(--orange); margin-right: 7px; }
.hero-art { position: relative; min-width: 0; padding: 8px 8px 33px 0; }
.hero-art > img { width: 100%; border-radius: 4px; box-shadow: 0 18px 45px rgba(31,59,49,.1); }
.hero-note { position: absolute; left: -40px; bottom: 58px; display: flex; align-items: center; gap: 12px; background: var(--white); padding: 15px 19px; box-shadow: 0 9px 30px rgba(35,61,51,.12); border: 1px solid rgba(23,58,53,.08); }
.note-icon { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 50%; background: var(--green-soft); color: #38755d; font-size: 18px; }
.hero-note b, .hero-note span { display: block; }
.hero-note b { font-family: var(--serif); font-size: 15px; font-weight: 400; }
.hero-note span:last-child { color: #77827c; font-size: 10px; margin-top: 2px; }
.art-caption { position: absolute; bottom: 0; right: 5px; color: #75837b; letter-spacing: .15em; font-size: 9px; }
.art-caption-dot { display: inline-block; width: 6px; height: 6px; margin: 0 8px 1px 0; border-radius: 50%; background: var(--orange); }
.signal-strip { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin-bottom: 0; }
.signal-item { display: flex; align-items: flex-start; gap: 16px; padding: 21px 22px 21px 0; min-height: 87px; }
.signal-item + .signal-item { border-left: 1px solid var(--line); padding-left: 24px; }
.signal-num { font-family: var(--serif); color: #2d584c; font-size: 24px; line-height: 1.2; letter-spacing: -.04em; min-width: 47px; }
.signal-item b, .signal-item span { display: block; }
.signal-item b { font-size: 11px; font-weight: 700; }
.signal-item div span { margin-top: 4px; color: #748078; font-size: 10px; line-height: 1.4; }
.status-section { padding-block: 104px 94px; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 40px; margin-bottom: 36px; }
.section-heading .eyebrow { margin-bottom: 18px; }
h2 { font-size: clamp(36px, 4vw, 52px); line-height: 1.02; margin-bottom: 0; }
.section-intro { max-width: 380px; margin-bottom: 5px; color: #687871; font-size: 13px; line-height: 1.75; }
.layer-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; }
.layer-card { position: relative; display: flex; flex-direction: column; min-height: 345px; padding: 24px 24px 22px; background: var(--white); border: 1px solid var(--line); }
.layer-law { border-top: 3px solid #438460; }
.layer-system { border-top: 3px solid #8c9fa0; }
.layer-textile { border-top: 3px solid var(--orange); }
.layer-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 32px; }
.layer-index { font-family: var(--serif); color: #a1aaa3; font-size: 20px; }
.status-badge { padding: 5px 9px; border-radius: 3px; font-size: 9px; letter-spacing: .05em; font-weight: 750; }
.status-inforce { background: #e1eee4; color: #2b684a; }
.status-progress { background: #e3ebeb; color: #476266; }
.status-pending { background: #f4e6db; color: #8a4e2f; }
.layer-kicker { margin-bottom: 8px; color: #77847c; font-size: 9px; letter-spacing: .15em; font-weight: 750; }
.layer-card h3 { margin-bottom: 13px; font-family: var(--serif); font-size: 22px; line-height: 1.14; font-weight: 400; letter-spacing: -.025em; }
.layer-card > p:not(.layer-kicker) { margin-bottom: 11px; color: #697770; font-size: 11px; line-height: 1.65; }
.layer-card .layer-note { margin-top: auto; padding: 10px 12px; background: #f2f3ee; color: #52675d !important; font-size: 10px !important; }
.text-link { margin-top: 10px; text-decoration: none; color: #2d7258; font-size: 10px; font-weight: 750; }
.text-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.status-caption { display: flex; align-items: flex-start; gap: 11px; max-width: 940px; margin-top: 20px; color: #748078; }
.caption-mark { display: grid; place-items: center; flex: 0 0 auto; width: 20px; height: 20px; border: 1px solid #b7c6ba; border-radius: 50%; color: #51765f; font-family: var(--serif); font-size: 12px; font-style: italic; }
.status-caption p { margin: 0; font-size: 10px; line-height: 1.6; }
.status-caption b { color: #495e54; }
.timeline-section { position: relative; overflow: hidden; background: #173a35; color: #f4f3eb; }
.timeline-section::before { content: ""; position: absolute; inset: 0; opacity: .12; background: repeating-linear-gradient(124deg, transparent 0 72px, rgba(235,238,222,.28) 73px 74px, transparent 75px 142px); pointer-events: none; }
.timeline-shell { position: relative; padding-block: 93px 86px; }
.section-heading-light .eyebrow { color: #b6c8b8; }
.section-heading-light .eyebrow-line { background: #d9956b; }
.section-heading-light h2 { color: #f7f5ec; }
.section-heading-light h2 em { color: #a6c9ae; }
.section-heading-light .section-intro { color: #c0cec4; }
.timeline-tools { display: flex; align-items: center; gap: 18px; margin-bottom: 25px; }
.filter-label { color: #adc0b4; font-size: 9px; letter-spacing: .15em; font-weight: 750; }
.filter-row { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.filter-chip { display: inline-flex; align-items: center; justify-content: center; min-height: 31px; padding: 0 12px; border: 1px solid #cfd6ce; border-radius: 99px; background: transparent; color: #53665e; cursor: pointer; font-size: 9px; font-weight: 650; transition: background .16s ease, color .16s ease, border-color .16s ease; }
.filter-chip:hover { border-color: #5d8b70; color: var(--green); }
.filter-chip.active { background: var(--ink); border-color: var(--ink); color: #fff; }
.timeline-section .filter-chip { color: #d8e0d9; border-color: rgba(225,237,225,.29); }
.timeline-section .filter-chip:hover { border-color: #a5c8b0; color: #fff; }
.timeline-section .filter-chip.active { background: #d8e7d8; border-color: #d8e7d8; color: #173a35; }
.timeline-list { position: relative; display: grid; gap: 0; }
.timeline-list::before { content: ""; position: absolute; top: 11px; bottom: 14px; left: 145px; width: 1px; background: rgba(219,233,220,.33); }
.timeline-entry { position: relative; display: grid; grid-template-columns: 123px 25px 1fr; gap: 17px; padding: 0 0 25px; }
.timeline-date { padding-top: 2px; text-align: right; color: #b5c8bc; font-size: 9px; letter-spacing: .08em; font-weight: 750; }
.timeline-node { position: relative; z-index: 1; display: block; width: 11px; height: 11px; margin: 3px auto 0; border: 2px solid #a7c5ae; border-radius: 50%; background: #173a35; box-shadow: 0 0 0 4px rgba(168,200,176,.1); }
.timeline-entry.is-future .timeline-node { border-color: #d9946b; box-shadow: 0 0 0 4px rgba(217,148,107,.11); }
.timeline-content { max-width: 825px; }
.timeline-meta { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 5px; }
.timeline-status { padding: 3px 7px; border-radius: 2px; background: rgba(218,235,222,.13); color: #d8e9d9; font-size: 8px; text-transform: uppercase; letter-spacing: .08em; font-weight: 750; }
.timeline-entry.is-future .timeline-status { color: #ffe1ca; background: rgba(214,143,97,.19); }
.timeline-category { color: #9eb5a9; font-size: 8px; letter-spacing: .12em; text-transform: uppercase; }
.timeline-content h3 { margin-bottom: 4px; color: #fcfaf3; font-family: var(--serif); font-size: 21px; line-height: 1.2; font-weight: 400; letter-spacing: -.025em; }
.timeline-content p { max-width: 800px; margin: 0 0 6px; color: #c1cec5; font-size: 10px; line-height: 1.6; }
.inline-sources { display: flex; gap: 5px; flex-wrap: wrap; }
.inline-sources a { color: #b9d1bd; text-decoration: underline; text-underline-offset: 3px; font-size: 8px; font-weight: 700; }
.timeline-footnote { display: flex; align-items: flex-start; gap: 12px; margin: 13px 0 0 165px; max-width: 800px; padding: 14px 16px; border: 1px solid rgba(229,240,225,.24); background: rgba(245,247,235,.055); color: #c9d5cc; }
.footnote-icon { display: grid; place-items: center; flex: 0 0 auto; width: 21px; height: 21px; border: 1px solid rgba(201,219,204,.5); border-radius: 50%; color: #dba47f; font-size: 12px; }
.timeline-footnote p { margin: 0; font-size: 9px; line-height: 1.6; }
.timeline-footnote b { color: #f2f3e9; }
.updates-section { padding-block: 99px 78px; }
.update-aside { display: flex; gap: 13px; align-items: flex-start; max-width: 310px; padding: 13px 16px; background: #ecefe8; border-left: 2px solid #4f9a6e; }
.update-aside .live-dot { margin-top: 4px; flex: 0 0 auto; }
.update-aside p { margin: 0; color: #6e7a73; font-size: 10px; line-height: 1.55; }
.update-aside b { color: var(--ink); font-size: 11px; }
.updates-controls { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 18px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.updates-controls > p { margin: 0; color: #77847b; font-size: 9px; letter-spacing: .14em; font-weight: 750; }
.update-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 14px; }
.update-card { position: relative; min-height: 202px; padding: 22px 23px 18px; background: var(--white); border: 1px solid var(--line); transition: transform .18s ease, box-shadow .18s ease; }
.update-card:hover { transform: translateY(-3px); box-shadow: 0 11px 27px rgba(26,54,43,.07); }
.update-card::before { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 3px; background: #668d72; }
.update-card.category-watch::before { background: var(--orange); }
.update-card.category-standards::before { background: #819a9a; }
.update-card.category-research::before { background: #b19268; }
.update-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.update-date { color: #748179; font-size: 9px; letter-spacing: .1em; font-weight: 750; }
.update-status { padding: 4px 7px; background: #edf1e9; color: #557260; font-size: 8px; font-weight: 750; letter-spacing: .04em; }
.category-watch .update-status { background: var(--orange-soft); color: #874f32; }
.category-standards .update-status { background: var(--blue-soft); color: #4d6569; }
.category-research .update-status { background: #eee8dc; color: #796447; }
.update-label { margin-bottom: 6px; color: #7a8780; font-size: 8px; letter-spacing: .15em; font-weight: 750; text-transform: uppercase; }
.update-card h3 { margin-bottom: 8px; font-family: var(--serif); font-size: 22px; line-height: 1.13; font-weight: 400; letter-spacing: -.02em; }
.update-card p { margin-bottom: 12px; color: #6b7871; font-size: 10px; line-height: 1.58; }
.update-card .inline-sources a { color: #327156; }
.update-foot { display: flex; align-items: center; gap: 12px; margin-top: 21px; padding-top: 18px; border-top: 1px solid var(--line); }
.small-spark { color: var(--orange); font-size: 18px; }
.update-foot p { flex: 1; margin: 0; color: #718078; font-size: 10px; }
.update-foot a { color: #327156; text-decoration: none; font-size: 9px; font-weight: 750; white-space: nowrap; }
.update-foot a:hover { text-decoration: underline; text-underline-offset: 3px; }
.data-section { position: relative; overflow: hidden; padding-block: 95px 82px; background: #213e38; color: #f8f6ed; }
.data-section::after { content: ""; position: absolute; width: 400px; height: 400px; right: -100px; top: -210px; border: 1px solid rgba(220,232,218,.12); border-radius: 50%; box-shadow: 0 0 0 55px rgba(220,232,218,.035), 0 0 0 110px rgba(220,232,218,.025); pointer-events: none; }
.data-section .section-heading { position: relative; z-index: 1; }
.data-disclaimer { display: flex; align-items: center; gap: 10px; max-width: max-content; margin: -4px 0 21px; padding: 8px 11px; border: 1px solid rgba(230,237,224,.25); color: #dbe8dc; font-size: 9px; }
.data-disclaimer-icon { display: grid; place-items: center; width: 17px; height: 17px; border-radius: 50%; background: #dfa076; color: #213e38; font-family: var(--serif); font-weight: bold; }
.data-disclaimer b { color: #f3c09a; text-transform: uppercase; letter-spacing: .1em; font-size: 8px; }
.data-disclaimer span { color: #b8c8bd; border-left: 1px solid rgba(229,239,228,.28); padding-left: 10px; }
.data-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: rgba(224,235,221,.2); border: 1px solid rgba(224,235,221,.2); }
.data-card { min-height: 167px; padding: 20px 21px; background: #213e38; }
.data-card-number { display: block; margin-bottom: 12px; color: #d89168; font-family: var(--serif); font-size: 16px; }
.data-card h3 { margin-bottom: 8px; color: #fbf8ef; font-family: var(--serif); font-size: 19px; font-weight: 400; line-height: 1.15; }
.data-card p { margin: 0; color: #c3d0c5; font-size: 9px; line-height: 1.6; }
.data-bottom { display: grid; grid-template-columns: 100px 1fr auto; align-items: center; gap: 18px; margin-top: 20px; padding: 17px 18px; background: rgba(9,36,30,.35); }
.data-bottom-number { color: #a8c4ad; font-family: var(--serif); font-size: 26px; }
.data-bottom p { margin: 0; color: #c7d3c9; font-size: 9px; line-height: 1.6; }
.data-bottom a { color: #d2e1d2; font-size: 9px; font-weight: 700; text-underline-offset: 3px; white-space: nowrap; }
.prepare-section { padding-block: 99px 92px; }
.prepare-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 13px; }
.prepare-card { position: relative; min-height: 232px; padding: 21px 20px; background: #eeefe8; border: 1px solid #dfe2da; }
.prepare-step { position: absolute; top: 17px; right: 17px; color: #9aa69c; font-family: var(--serif); font-size: 16px; }
.prepare-icon { width: 41px; height: 41px; margin: 4px 0 22px; color: #3d7b60; }
.icon-lines { display: flex; flex-direction: column; justify-content: center; gap: 5px; }
.icon-lines i { display: block; height: 3px; background: currentColor; border-radius: 5px; }
.icon-lines i:nth-child(1) { width: 26px; }
.icon-lines i:nth-child(2) { width: 37px; }
.icon-lines i:nth-child(3) { width: 20px; }
.icon-nodes { position: relative; }
.icon-nodes::before, .icon-nodes::after { content: ""; position: absolute; border: 1px solid #80a98b; }
.icon-nodes::before { width: 24px; height: 24px; border-radius: 50%; top: 7px; left: 7px; }
.icon-nodes::after { width: 8px; height: 8px; border-radius: 50%; top: 16px; left: 30px; background: #d9946b; box-shadow: -23px -13px 0 -1px #eeefe8, -23px -13px 0 0 #80a98b, -23px 13px 0 -1px #eeefe8, -23px 13px 0 0 #80a98b; }
.prepare-icon i { display: block; }
.icon-people { display: flex; align-items: flex-end; gap: 3px; }
.icon-people::before { content: ""; width: 11px; height: 11px; border-radius: 50%; background: #d9946b; box-shadow: 14px -5px 0 #477b62, 26px 2px 0 #94b39a; }
.icon-people::after { content: ""; position: absolute; margin-top: 16px; width: 35px; height: 16px; border-radius: 14px 14px 4px 4px; background: #a9c5ad; box-shadow: 12px -4px 0 -1px #3f765f; }
.icon-refresh { display: grid; place-items: center; border: 1px solid #8eb19a; border-radius: 50%; font-size: 29px; }
.prepare-card h3 { margin-bottom: 8px; font-family: var(--serif); font-size: 19px; line-height: 1.12; font-weight: 400; }
.prepare-card p { margin: 0; color: #6b7971; font-size: 9px; line-height: 1.6; }
.prepare-callout { display: flex; align-items: center; gap: 14px; margin-top: 17px; padding: 15px 17px; border-left: 3px solid var(--orange); background: #f0e9df; }
.callout-mark { display: grid; place-items: center; flex: 0 0 auto; width: 29px; height: 29px; border: 1px solid #d4b69e; border-radius: 50%; color: #b06d48; }
.prepare-callout p { margin: 0; color: #596d61; font-size: 10px; line-height: 1.6; }
.prepare-callout b { color: var(--ink); }
.open-questions-section { padding-block: 77px; background: #e9ede6; border-block: 1px solid #d9e0d7; }
.questions-wrap { display: grid; grid-template-columns: .72fr 1.28fr; gap: 66px; align-items: start; }
.questions-lead .eyebrow { margin-bottom: 17px; }
.questions-lead h2 { margin-bottom: 18px; font-size: clamp(35px, 3.7vw, 47px); }
.questions-lead p:last-child { max-width: 320px; color: #6d7972; font-size: 11px; }
.question-list { border-top: 1px solid #cbd5cb; }
.question-list details { border-bottom: 1px solid #cbd5cb; }
.question-list summary { display: grid; grid-template-columns: 32px 1fr 18px; gap: 12px; align-items: center; min-height: 56px; list-style: none; cursor: pointer; color: var(--ink); font-family: var(--serif); font-size: 17px; }
.question-list summary::-webkit-details-marker { display: none; }
.question-index { color: #b66f4b; font-family: var(--sans); font-size: 9px; font-weight: 750; }
.plus { color: #668575; font-family: var(--sans); font-size: 18px; text-align: center; transition: transform .18s ease; }
.question-list details[open] .plus { transform: rotate(45deg); }
.question-list details p { margin: -2px 27px 16px 44px; color: #687770; font-size: 10px; line-height: 1.65; }
.sources-section { padding-block: 98px 88px; }
.source-legend { display: flex; gap: 20px; margin-bottom: 15px; color: #76827a; font-size: 9px; }
.source-legend span { display: flex; align-items: center; gap: 7px; }
.legend-dot { width: 7px; height: 7px; border-radius: 50%; background: #4b8b61; }
.legend-plan { background: #c47a50; }
.legend-tech { background: #879b9b; }
.source-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; background: #d8ddd5; border: 1px solid #d8ddd5; }
.source-card { display: grid; grid-template-columns: 42px 1fr 20px; gap: 13px; align-items: start; min-height: 106px; padding: 17px 17px 14px; background: var(--white); text-decoration: none; transition: background .18s ease; }
.source-card:hover { background: #f0f4ec; }
.source-id { color: #b16c48; font-family: var(--serif); font-size: 18px; }
.source-kind { display: block; margin-bottom: 4px; color: #809087; font-size: 8px; text-transform: uppercase; letter-spacing: .11em; font-weight: 750; }
.source-card h3 { margin-bottom: 4px; color: var(--ink); font-family: var(--serif); font-size: 16px; line-height: 1.15; font-weight: 400; }
.source-card p { margin: 0; color: #748078; font-size: 9px; line-height: 1.5; }
.source-arrow { color: #638372; font-size: 15px; }
.source-note { display: flex; align-items: center; gap: 12px; margin-top: 16px; color: #718077; }
.source-note-mark { display: grid; place-items: center; width: 25px; height: 25px; flex: 0 0 auto; border: 1px solid #d4bdab; color: #a76846; font-family: var(--serif); }
.source-note p { margin: 0; font-size: 9px; }
.method-section { padding-block: 91px 88px; background: #e7ebe4; }
.method-wrap { display: grid; grid-template-columns: 1fr .92fr; gap: 72px; align-items: start; }
.method-left h2 { font-size: clamp(38px, 4vw, 51px); }
.method-intro { max-width: 450px; margin: 18px 0 28px; color: #66766d; font-size: 12px; line-height: 1.7; }
.status-key { display: grid; gap: 13px; }
.status-key > div { display: grid; grid-template-columns: 128px 1fr; gap: 14px; align-items: start; }
.key-pill { display: inline-flex; align-items: center; justify-content: center; max-width: max-content; min-width: 102px; padding: 5px 8px; border-radius: 3px; font-size: 8px; letter-spacing: .06em; text-transform: uppercase; font-weight: 750; }
.key-inforce { background: #d6e8d9; color: #2f6849; }
.key-plan { background: #f0dfd1; color: #86502f; }
.key-prep { background: #dce7e6; color: #4f6767; }
.key-open { background: #e6e6df; color: #626c64; }
.status-key p { margin: 1px 0 0; color: #65756d; font-size: 9px; line-height: 1.6; }
.method-card { padding: 24px 24px 19px; background: #173a35; color: #f9f7ee; box-shadow: 0 18px 40px rgba(31,55,45,.11); }
.method-card-top { display: flex; justify-content: space-between; align-items: center; padding-bottom: 14px; border-bottom: 1px solid rgba(230,240,229,.2); color: #b5c8bb; font-size: 8px; letter-spacing: .15em; font-weight: 750; }
.review-stamp { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(226,238,225,.5); border-radius: 50%; color: #e3ede1; font-family: var(--serif); font-size: 8px; letter-spacing: 0; }
.method-card h3 { margin: 17px 0 20px; color: #fffdf4; font-family: var(--serif); font-size: 25px; line-height: 1.12; font-weight: 400; }
.method-steps { position: relative; display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.method-steps::before { content: ""; position: absolute; top: 17px; bottom: 18px; left: 12px; width: 1px; background: rgba(218,233,219,.24); }
.method-steps li { position: relative; display: grid; grid-template-columns: 25px 1fr; gap: 12px; }
.method-steps li > span { position: relative; z-index: 1; display: grid; place-items: center; width: 25px; height: 25px; border: 1px solid #6d9b7a; border-radius: 50%; background: #173a35; color: #d1e2d1; font-family: var(--serif); font-size: 11px; }
.method-steps b { display: block; color: #f7f7ed; font-size: 10px; }
.method-steps p { margin: 2px 0 0; color: #b9c9bd; font-size: 9px; line-height: 1.5; }
.method-card-foot { display: flex; align-items: center; gap: 9px; margin-top: 18px; padding-top: 13px; border-top: 1px solid rgba(230,240,229,.2); color: #c5d4c8; font-size: 8px; letter-spacing: .06em; }
.method-card-foot .live-dot { width: 6px; height: 6px; box-shadow: 0 0 0 3px rgba(59,154,106,.13); }
.disclaimer { display: grid; grid-template-columns: 36px 1fr; gap: 17px; align-items: start; padding-block: 27px 32px; border-top: 1px solid #d9ded7; }
.disclaimer-icon { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #e8ded2; color: #945a3d; font-family: var(--serif); font-weight: bold; }
.disclaimer .eyebrow { margin-bottom: 7px; color: #9a6244; font-size: 8px; }
.disclaimer h2 { margin-bottom: 7px; font-family: var(--sans); font-size: 12px; font-weight: 750; letter-spacing: 0; }
.disclaimer p:last-child { max-width: 1000px; margin-bottom: 0; color: #758078; font-size: 9px; line-height: 1.65; }
.site-footer { background: #fdfcf7; border-top: 1px solid #dce1d9; }
.footer-main { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding-block: 25px; }
.brand-footer { min-width: auto; }
.footer-main > p { margin: 0; color: #718078; font-size: 9px; line-height: 1.55; }
.footer-companion { color: #377559; text-decoration: none; font-size: 9px; font-weight: 750; }
.footer-companion:hover { text-decoration: underline; text-underline-offset: 3px; }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding-block: 12px 14px; border-top: 1px solid #e2e5df; color: #87928a; font-size: 8px; letter-spacing: .06em; }
.footer-bottom a { color: #64786d; text-decoration: none; }
.footer-bottom a:hover { text-decoration: underline; }
.empty-state { padding: 25px; border: 1px dashed #b8c4b9; color: #718078; font-size: 11px; }
:focus-visible { outline: 3px solid #d9946b; outline-offset: 3px; }
@media (max-width: 1000px) {
  .header-inner { gap: 15px; }
  .brand { min-width: 170px; }
  .main-nav { gap: 13px; }
  .main-nav a { font-size: 10px; }
  .hero { gap: 25px; }
  .hero-note { left: -18px; }
  .layer-card { padding-inline: 18px; }
  .questions-wrap, .method-wrap { gap: 40px; }
  .prepare-card { padding-inline: 16px; }
}
@media (max-width: 760px) {
  .section-wrap { width: min(var(--wrap), calc(100% - 36px)); }
  .header-inner { width: calc(100% - 32px); height: 66px; }
  .brand { min-width: auto; }
  .brand-mark { width: 30px; height: 30px; }
  .brand-name { font-size: 9px; }
  .brand-name b { font-size: 8px; }
  .menu-toggle { display: flex; flex-direction: column; justify-content: center; gap: 5px; width: 36px; height: 36px; margin-left: auto; padding: 7px; border: 1px solid #d6ddd5; background: transparent; cursor: pointer; }
  .menu-toggle span:not(.sr-only) { width: 100%; height: 1px; background: var(--ink); }
  .main-nav { display: none; position: absolute; top: 66px; left: 0; right: 0; height: auto; padding: 10px 18px 16px; background: #fbfaf6; border-bottom: 1px solid var(--line); box-shadow: 0 12px 20px rgba(35,55,44,.07); }
  .main-nav.is-open { display: grid; gap: 0; }
  .main-nav a { height: auto; padding: 11px 5px; font-size: 12px; border-bottom: 1px solid #e8ebe5; }
  .main-nav a.active::after { display: none; }
  .watch-link { font-size: 0; gap: 0; }
  .watch-link .live-dot { margin-right: 5px; }
  .watch-link .arrow { font-size: 13px; }
  .freshness-inner { width: calc(100% - 30px); justify-content: flex-start; gap: 9px; overflow-x: auto; white-space: nowrap; font-size: 8px; scrollbar-width: none; }
  .freshness-inner::-webkit-scrollbar { display: none; }
  .hero { grid-template-columns: 1fr; min-height: 0; gap: 26px; padding-block: 49px 34px; }
  h1 { font-size: clamp(43px, 10vw, 63px); }
  .hero-lede { font-size: 14px; }
  .hero-art { margin-left: 10px; padding-bottom: 29px; }
  .hero-art > img { max-height: 390px; object-fit: cover; }
  .hero-note { left: -10px; bottom: 50px; padding: 10px 13px; }
  .hero-note b { font-size: 13px; }
  .hero-note span:last-child { font-size: 9px; }
  .signal-strip { grid-template-columns: repeat(2,1fr); }
  .signal-item { min-height: 76px; padding: 16px 10px 15px 0; gap: 10px; }
  .signal-item + .signal-item { padding-left: 13px; }
  .signal-item:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }
  .signal-item:nth-child(4) { border-top: 1px solid var(--line); }
  .signal-num { min-width: 40px; font-size: 21px; }
  .signal-item b { font-size: 10px; }
  .signal-item div span { font-size: 9px; }
  .status-section, .updates-section, .sources-section, .prepare-section { padding-block: 69px; }
  .section-heading { display: block; margin-bottom: 26px; }
  .section-intro { max-width: 540px; margin-top: 18px; }
  h2 { font-size: clamp(36px, 8vw, 48px); }
  .layer-grid { grid-template-columns: 1fr; gap: 11px; }
  .layer-card { min-height: 0; padding: 19px 19px 17px; }
  .layer-top { margin-bottom: 20px; }
  .layer-card .layer-note { margin-top: 0; }
  .timeline-shell { padding-block: 68px 65px; }
  .timeline-tools { display: block; }
  .filter-label { margin-bottom: 9px; }
  .filter-row { gap: 6px; }
  .filter-chip { min-height: 29px; padding-inline: 10px; font-size: 8px; }
  .timeline-list::before { left: 8px; }
  .timeline-entry { grid-template-columns: 18px 1fr; gap: 12px; padding-bottom: 24px; }
  .timeline-date { grid-column: 2; text-align: left; margin-bottom: -9px; font-size: 8px; }
  .timeline-node { grid-column: 1; grid-row: 1 / span 2; margin-top: 2px; }
  .timeline-content { grid-column: 2; }
  .timeline-content h3 { font-size: 19px; }
  .timeline-content p { font-size: 9px; }
  .timeline-footnote { margin: 5px 0 0 0; }
  .updates-section .section-heading { display: block; }
  .update-aside { margin-top: 18px; }
  .updates-controls { display: block; }
  .updates-controls > p { margin-bottom: 11px; }
  .update-grid { grid-template-columns: 1fr; }
  .update-card { min-height: 0; }
  .update-foot { align-items: flex-start; flex-wrap: wrap; }
  .update-foot p { flex-basis: calc(100% - 34px); }
  .update-foot a { margin-left: 31px; }
  .data-section { padding-block: 68px 61px; }
  .data-grid { grid-template-columns: repeat(2,1fr); }
  .data-card { min-height: 178px; padding: 16px 14px; }
  .data-card h3 { font-size: 17px; }
  .data-card p { font-size: 10px; }
  .data-bottom { grid-template-columns: 1fr; gap: 8px; }
  .data-bottom a { white-space: normal; }
  .prepare-grid { grid-template-columns: repeat(2,1fr); }
  .prepare-card { min-height: 214px; }
  .open-questions-section { padding-block: 61px; }
  .questions-wrap { grid-template-columns: 1fr; gap: 22px; }
  .questions-lead h2 { font-size: 39px; }
  .question-list summary { font-size: 16px; }
  .source-legend { flex-wrap: wrap; gap: 9px 17px; }
  .source-grid { grid-template-columns: 1fr; }
  .source-card { min-height: 95px; }
  .method-section { padding-block: 67px; }
  .method-wrap { grid-template-columns: 1fr; gap: 30px; }
  .method-left h2 { font-size: 43px; }
  .status-key > div { grid-template-columns: 110px 1fr; gap: 9px; }
  .key-pill { min-width: 100px; font-size: 7px; }
  .method-card { padding: 20px 18px 17px; }
  .disclaimer { grid-template-columns: 29px 1fr; gap: 12px; }
  .footer-main { display: grid; grid-template-columns: 1fr auto; gap: 13px; }
  .footer-main > p { grid-column: 1 / -1; grid-row: 2; }
  .footer-companion { grid-column: 2; grid-row: 1; max-width: 130px; text-align: right; line-height: 1.5; }
  .footer-bottom { flex-wrap: wrap; gap: 7px 14px; font-size: 7px; }
}
@media (max-width: 430px) {
  .hero-actions { display: grid; grid-template-columns: 1fr; }
  .button { width: 100%; }
  .hero-art > img { min-height: 250px; object-fit: cover; }
  .art-caption { font-size: 7px; }
  .data-grid { grid-template-columns: 1fr; }
  .data-card { min-height: 0; padding: 16px; }
  .prepare-grid { grid-template-columns: 1fr; }
  .prepare-card { min-height: 0; padding: 19px; }
  .prepare-icon { margin-bottom: 15px; }
  .status-key > div { grid-template-columns: 1fr; gap: 4px; }
  .source-card { grid-template-columns: 35px 1fr 15px; gap: 8px; padding-inline: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

.standards-disclosure { margin-top: 23px; border: 1px solid #d7ded5; background: rgba(255,254,250,.65); }
.standards-disclosure > summary { display: grid; grid-template-columns: 1fr auto; gap: 4px 18px; align-items: center; padding: 16px 19px; list-style: none; cursor: pointer; }
.standards-disclosure > summary::-webkit-details-marker { display: none; }
.standards-summary-kicker { grid-column: 1; color: #668071; font-size: 8px; font-weight: 750; letter-spacing: .15em; }
.standards-summary-title { grid-column: 1; font-family: var(--serif); font-size: 19px; line-height: 1.2; }
.standards-summary-state { grid-column: 1; color: #78847c; font-size: 9px; }
.standards-plus { grid-column: 2; grid-row: 1 / span 3; color: #4e7a60; font-size: 23px; transition: transform .18s ease; }
.standards-disclosure[open] .standards-plus { transform: rotate(45deg); }
.standards-panel { padding: 0 19px 18px; }
.standards-note { display: grid; grid-template-columns: 55px 1fr; gap: 12px; align-items: center; margin-bottom: 12px; padding: 11px 13px; background: #e9eee7; }
.standards-note > span { color: #377257; font-family: var(--serif); font-size: 23px; }
.standards-note p { margin: 0; color: #68776e; font-size: 10px; line-height: 1.55; }
.standards-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; }
.standard-card { min-height: 99px; padding: 11px 12px; background: #f5f5ef; border: 1px solid #e0e4dc; }
.standard-card.is-watch { background: #f5eee8; border-color: #e6d5c8; }
.standard-code { display: block; color: #264f40; font-family: var(--serif); font-size: 15px; }
.standard-topic { display: block; margin: 3px 0 7px; color: #65736c; font-size: 10px; line-height: 1.4; }
.standard-state { display: inline-block; color: #49805d; font-size: 8px; line-height: 1.4; font-weight: 750; text-transform: uppercase; letter-spacing: .04em; }
.standard-card.is-watch .standard-state { color: #a26340; }
.standards-sources { margin-top: 12px; gap: 14px; }
.standards-sources a { color: #317253; font-size: 8px; }
@media (max-width: 760px) {
  .standards-disclosure > summary { padding: 14px; }
  .standards-summary-title { font-size: 17px; }
  .standards-summary-state { max-width: 270px; line-height: 1.5; }
  .standards-panel { padding: 0 14px 14px; }
  .standards-grid { grid-template-columns: repeat(2,1fr); }
  .standard-card { min-height: 94px; }
  .standards-note { grid-template-columns: 44px 1fr; gap: 8px; padding: 10px; }
  .standards-sources { display: grid; gap: 6px; }
}
@media (max-width: 430px) {
  .standards-grid { grid-template-columns: 1fr; }
  .standard-card { min-height: 0; }
}


/* Shared Textile EPR Europe contact form embedded in the DPP companion page. */
.contact-section { padding-block: 92px 88px; background: #edf1eb; border-top: 1px solid var(--line); }
.contact-section .section-heading { margin-bottom: 26px; }
.contact-section .section-heading .section-intro { max-width: 440px; }
.contact-section .contact-layout { margin-top: 0; }
.contact-section .contact-card { border-radius: 8px; box-shadow: 0 12px 36px rgba(18,57,64,.08); }
.contact-section .contact-card h2 { color: var(--ink); }
.contact-section .contact-note { padding: 8px 14px; }
.contact-section .contact-note h3 { color: var(--ink); }
.contact-section .contact-submit .btn.primary { background: #173a35; border-color: #173a35; }
@media (max-width: 900px) { .contact-section { padding-block: 70px; } }
@media (max-width: 620px) { .contact-section { padding-block: 54px; } }
