:root {
  color-scheme: light;
  --ink:#173536; --muted:#4b6560; --deep:#163c3a; --green:#286551;
  --mint:#dcefe4; --paper:#f5f7ef; --white:#fffefa; --line:#cbd9cc;
  --gold:#9f4c20; --amber:#fff2db; --focus:#9d3c20;
  font-family:"Source Sans 3","Hiragino Sans","Yu Gothic UI",Meiryo,sans-serif;
  line-height:1.65;
  color:var(--ink); background:var(--paper);
}
*,*::before,*::after { box-sizing:border-box; }
body { margin:0; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { line-height:1.28; letter-spacing:.015em; }
h1 { font-size:clamp(1.65rem,4vw,2.9rem); margin-bottom:.48em; }
h2 { font-size:clamp(1.25rem,2.4vw,1.72rem); margin-bottom:.65em; }
h3 { font-size:1.17rem; margin-bottom:.65em; }
a { color:var(--green); text-underline-offset:.2em; }
a:hover { color:var(--focus); }
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible { outline:3px solid var(--focus); outline-offset:4px; }
img { max-width:100%; display:block; }
button,input,select { font:inherit; }
button { cursor:pointer; }
[hidden] { display:none!important; }
.frame { width:min(1120px,calc(100% - 3rem)); margin-inline:auto; min-width:0; }
.narrow { width:min(760px,calc(100% - 3rem)); }
.skip { position:absolute; z-index:3; top:.5rem; left:.5rem; background:var(--white); padding:.7rem; transform:translateY(-200%); }
.skip:focus { transform:translateY(0); }
.topbar { border-bottom:1px solid var(--line); background:var(--white); }
.top-inner { min-height:75px; display:flex; align-items:center; gap:1.5rem; justify-content:space-between; }
.brand { display:inline-flex; align-items:center; flex-shrink:0; gap:.62rem; text-decoration:none; color:var(--deep); font-weight:800; }
.topbar nav { display:flex; gap:1.15rem; flex-wrap:wrap; }
.topbar nav a { min-height:44px; display:inline-flex; align-items:center; color:var(--ink); text-decoration:none; font-size:.91rem; border-bottom:2px solid transparent; }
.topbar nav a:hover,.topbar nav a[aria-current] { border-color:var(--green); }
.breadcrumb { width:min(1120px,calc(100% - 3rem)); margin:1rem auto 0; font-size:.85rem; }
.breadcrumb ol { padding:0; margin:0; list-style:none; display:flex; flex-wrap:wrap; align-items:center; gap:.45rem; }
.breadcrumb li+li::before { content:"›"; margin-right:.45rem; color:var(--muted); }
.breadcrumb li:last-child { color:var(--muted); overflow-wrap:anywhere; }
.hero { background:var(--mint); border-bottom:1px solid var(--line); padding:clamp(2rem,7vw,5.4rem) 0; }
.hero-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(1.6rem,6vw,5.25rem); align-items:center; }
.hero h1 { font-size:clamp(1.75rem,4vw,3.35rem); }
.hero p:not(.hero-kicker) { max-width:33em; color:#2e5145; font-size:1.04rem; }
.hero-kicker { color:var(--green); font-weight:750; border-left:3px solid var(--green); padding-left:.72rem; margin-bottom:1.15rem; }
.pipe-figure { margin:0; padding:0; }
.pipe-figure img { width:100%; height:auto; }
.pipe-figure figcaption { margin:.55rem 0 0; color:#3d5a50; font-size:.79rem; }
.actions { display:flex; flex-wrap:wrap; align-items:center; gap:.66rem; margin:1.45rem 0 0; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:.8rem; min-height:46px; padding:.61rem .95rem; border:1px solid var(--deep); border-radius:6px; background:var(--deep); color:white; text-decoration:none; font-weight:720; text-align:center; line-height:1.35; overflow-wrap:anywhere; }
.button:hover { background:var(--green); color:white; }
.button.secondary { color:var(--deep); background:transparent; }
.button.secondary:hover { background:#cbe5d5; }
.alert { color:#533a26; background:var(--amber); border:1px solid #e0caa9; border-left:5px solid #a6572b; border-radius:7px; padding:1.2rem 1.35rem; margin-bottom:1.8rem; }
.alert h2 { font-size:1.12rem; margin-bottom:.45rem; }
.alert p { margin-bottom:.35rem; }
.alert a { color:#82401d; font-weight:720; }
.alert ul { margin-bottom:0; }
.home-alert { margin-top:2rem; }
.pathways,.home-articles { padding-top:1rem; padding-bottom:2.2rem; }
.path-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.path-grid section { background:var(--white); border:1px solid var(--line); border-radius:9px; padding:1.2rem 1.1rem; }
.path-grid p { color:var(--muted); }
.path-grid a { display:block; width:fit-content; padding:.36rem 0; font-weight:690; }
.section-heading { display:flex; align-items:baseline; justify-content:space-between; gap:.6rem; flex-wrap:wrap; }
.section-heading a { font-weight:700; }
.article-list { list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.article-list li { min-width:0; border-bottom:1px solid var(--line); }
.article-list a { display:grid; grid-template-columns:4rem minmax(0,1fr) auto; text-decoration:none; align-items:start; gap:.7rem; padding:.9rem .45rem; color:var(--deep); }
.article-list a:hover { background:var(--mint); }
.card-copy { display:grid; gap:.2rem; overflow-wrap:anywhere; }
.card-copy > span { color:var(--muted); font-size:.9rem; }
.tag { width:fit-content; background:var(--mint); color:var(--green); border:1px solid #bcd7c6; border-radius:4px; padding:.12rem .38rem; font-size:.8rem; font-weight:720; white-space:nowrap; }
.footer { background:var(--deep); color:#dceee7; padding:2.15rem 0; margin-top:3rem; }
.footer .frame { display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:1rem; }
.footer p { margin:0; color:#c0d5cd; font-size:.85rem; }
.footer nav { display:flex; flex-wrap:wrap; gap:.6rem 1rem; }
.footer a { color:#e5f4ec; }
.page-heading { padding-block:2.35rem 1.65rem; }
.page-heading p { color:var(--muted); max-width:48em; margin-bottom:0; }
.chips { display:flex; flex-wrap:wrap; gap:.55rem; }
.chips a { display:inline-flex; min-height:42px; align-items:center; padding:.25rem .9rem; border:1px solid var(--line); border-radius:999px; background:var(--white); font-weight:700; }
.article-group { margin-block:2rem; scroll-margin-top:1rem; }
.article-heading { padding:2.4rem 0 1.7rem; border-bottom:1px solid var(--line); margin-bottom:1.7rem; }
.article-heading h1 { font-size:clamp(1.55rem,4vw,2.5rem); margin-top:.8rem; text-wrap:pretty; }
.article-heading p,.article-heading time { color:var(--muted); }
.article-heading time { font-size:.82rem; }
.prose { font-size:1.02rem; line-height:1.85; overflow-wrap:anywhere; }
.prose h2 { margin-top:1.75em; color:var(--deep); }
.prose ul,.prose ol,.alert ul { padding-left:1.4rem; }
.prose li+li,.alert li+li { margin-top:.28rem; }
.prose table { border-collapse:collapse; width:100%; table-layout:fixed; margin:1rem 0; }
.prose th,.prose td { border:1px solid var(--line); padding:.58rem .73rem; vertical-align:top; text-align:left; }
.prose th { background:#e2eee4; }
.prose th:first-child { width:34%; }
.prose td { background:var(--white); }
.terms dt { font-weight:800; margin-top:.8rem; }
.terms dd { margin-left:0; padding-left:1rem; border-left:2px solid var(--line); }
.prose blockquote { margin:1rem 0; background:var(--white); border-left:4px solid var(--green); padding:.9rem 1rem; }
.article-sources { margin-top:2.6rem; border-top:1px solid var(--line); }
.article-related { margin-top:1.9rem; }
.panel { background:var(--white); border:1px solid var(--line); border-radius:10px; padding:clamp(1rem,4vw,2rem); }
.tool .field { display:grid; gap:.28rem; margin:1rem 0; }
.field label { font-weight:780; }
.field select { width:100%; min-height:48px; border:1px solid #a8bfb0; border-radius:5px; background:white; color:var(--ink); padding:.49rem .6rem; }
.check { display:flex; align-items:flex-start; gap:.68rem; padding:.75rem; border:1px solid var(--line); border-radius:6px; cursor:pointer; }
.check:hover { border-color:var(--green); }
.check input { min-width:20px; width:20px; height:20px; flex:none; margin:.19rem 0 0; accent-color:var(--green); }
.check small { display:block; color:var(--muted); }
.result { background:var(--mint); border:1px solid #a9cdb7; border-radius:7px; padding:1rem; margin-top:1.4rem; }
.result[data-priority="urgent"] { background:var(--amber); border-color:#d6b48d; }
.result p:last-child,.result ul:last-child { margin-bottom:0; }
.tool fieldset { border:0; padding:0; margin:0; }
.quote-items { display:grid; gap:.55rem; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.pr-box { margin:1.8rem 0; padding:1rem 1.1rem; max-width:100%; background:var(--white); border:1px solid var(--line); border-left:4px solid var(--gold); border-radius:8px; overflow-wrap:anywhere; }
.pr-box .pr-label { display:inline-block; margin-bottom:.4rem; font-size:.78rem; font-weight:760; color:var(--gold); }
.pr-box p:last-child { margin-bottom:0; }
@media(max-width:760px) {
  .hero-grid { grid-template-columns:1fr; }
  .pipe-figure { max-width:530px; }
  .path-grid { grid-template-columns:1fr; }
  .top-inner { display:block; padding-top:.65rem; }
  .topbar nav { gap:.1rem 1rem; }
}
@media(max-width:400px) {
  .frame,.narrow,.breadcrumb { width:calc(100% - 2rem); }
  .article-list a { grid-template-columns:3.3rem minmax(0,1fr) auto; gap:.4rem; }
  .article-list .tag { padding-inline:.26rem; }
}
@media print {
  body { background:white; color:black; font-size:11pt; }
  .frame,.narrow { width:100%; }
  .topbar,.footer,.breadcrumb,.skip,.actions { display:none; }
  .panel,.result,.check { background:white!important; border:1px solid #aaa; }
  .check,.result { break-inside:avoid; }
}
