/* Shared ROAT identity for every research, source and tool page. */
:root{--roat-field:#e9f0f3;--roat-panel:#fff;--roat-plum:#210c1c;--roat-purple:#97357c;--roat-pink:#e2c6dc}
.about-author{display:grid;grid-template-columns:220px minmax(0,1fr);gap:32px;align-items:center;margin:36px 0 24px}
.about-author .author-portrait{display:block;width:220px;height:220px;max-width:100%;object-fit:cover;object-position:50% 20%;border:2px solid var(--roat-purple);border-radius:50%;box-sizing:border-box}
.about-author h2{margin-top:0}
.about-author p{margin-bottom:0}
@media(max-width:640px){.about-author{grid-template-columns:1fr;gap:20px}.about-author .author-portrait{width:200px;height:200px}}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--roat-field:#281321;--roat-panel:#321d2d}}
:root[data-theme="dark"]{--roat-field:#281321;--roat-panel:#321d2d}
.roat-subpage{background:var(--roat-field)}
.roat-subpage .site-head{background:var(--roat-panel)}
.roat-subpage .site-head .wrap{row-gap:12px}
.roat-subpage nav.site{gap:6px 8px;padding-bottom:6px}
.roat-subpage nav.site a{padding:7px 12px;border-radius:30px;line-height:1.4}
.roat-subpage nav.site a:hover{background:var(--accent-soft);color:var(--accent-ink)}
.roat-subpage nav.site a[aria-current="page"]{background:var(--roat-purple);color:#fff}
.roat-subpage nav.site a.lang{border:1px solid var(--rule);margin-left:0}
.roat-subpage .page-title{position:relative;max-width:none;background:var(--roat-plum);color:#fff;font-family:var(--sans);font-size:clamp(1.8rem,3vw,2.65rem);font-weight:650;letter-spacing:-.025em;line-height:1.15;padding:26px 30px 42px;margin:16px 0 22px;overflow-wrap:anywhere}
.roat-subpage .page-title{--brand-line-bottom:20px}
.roat-subpage .page-title:before{content:"";position:absolute;left:30px;right:38px;bottom:var(--brand-line-bottom);height:3px;border-radius:3px;background:var(--roat-purple)}
.roat-subpage .page-title:after{content:"";position:absolute;right:28px;bottom:calc(var(--brand-line-bottom) + 1.5px);transform:translateY(50%);box-sizing:border-box;width:21px;height:21px;border:3px solid var(--roat-purple);border-radius:50%;background:var(--roat-plum)}
.roat-subpage .page-title a{color:#e2c6dc}
.roat-subpage .page-title .badge{color:#f4eaf1;border-color:#c88cb8;font-size:.75rem;font-weight:400;letter-spacing:0;white-space:normal;line-height:1.4}
.roat-subpage :is(.eyebrow,.module){color:var(--accent-ink);font-family:var(--sans);font-weight:600;letter-spacing:.09em}
.roat-subpage .crumbs{padding-top:16px;font-size:.875rem;overflow-wrap:anywhere}
.roat-subpage h2{font-family:var(--sans);letter-spacing:-.02em;line-height:1.2}
.roat-subpage h3{font-family:var(--sans);line-height:1.3}
.roat-subpage :is(.card,.topic-card,.pcol,.route-source){background:var(--roat-panel);border:1px solid var(--rule);border-top:3px solid var(--accent);border-radius:12px}
.roat-subpage .topic-card:nth-child(even){background:var(--accent-soft)}
.roat-subpage :is(.card,.topic-card){padding:24px}
.roat-subpage .route-source{padding:clamp(18px,3vw,28px);margin-bottom:14px;overflow-wrap:anywhere}
.roat-subpage .card h3{font-size:1.2rem}
.roat-subpage .pcol{padding:18px 14px}
.roat-subpage .pcol h2{font-size:.875rem}
.roat-subpage .mapbox{background:var(--roat-panel);border-radius:8px}
.roat-subpage :is(.filters,.route-controls,.compare-controls){background:var(--accent-soft);border:1px solid var(--rule);border-radius:16px;padding:20px;gap:14px 18px}
.roat-subpage :is(.filters,.route-controls,.compare-controls) :is(input,select){background:var(--roat-panel);color:var(--ink);border:1px solid var(--rule);border-radius:8px;font-size:1rem;min-height:44px;max-width:100%;padding:10px 12px}
.roat-subpage :is(.filters,.route-controls,.compare-controls) label{min-width:0}
.roat-subpage .filters .facet{font-size:.875rem}
.roat-subpage :is(button,.btn){border:1px solid var(--rule);border-radius:28px;background:var(--roat-panel);color:var(--ink);padding:9px 16px;font:inherit;font-size:.875rem;line-height:1.4;min-height:40px;cursor:pointer}
.roat-subpage :is(button,.btn):hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent)}
.roat-subpage :is(.btn.on,button[aria-pressed="true"],button[type="submit"]){background:var(--roat-purple);border-color:var(--roat-purple);color:#fff}
.roat-subpage :is(button,.btn):disabled{opacity:.5;cursor:default}
.roat-subpage :is(.research-nav,.compare-next){gap:10px;border-bottom:0}
.roat-subpage :is(.research-nav,.compare-next) a{display:inline-block;padding:10px 17px;border:1px solid var(--rule);border-radius:30px;background:var(--roat-panel);color:var(--accent-ink);font-size:.9375rem;line-height:1.4;text-decoration:none}
.roat-subpage :is(.research-nav,.compare-next) a:hover{background:var(--accent-soft);text-decoration:underline;text-underline-offset:4px}
.roat-subpage .research-nav a[aria-current="page"]{background:var(--roat-purple);border-color:var(--roat-purple);color:#fff}
.roat-subpage :is(.tblwrap,.compare-scroll){background:var(--roat-panel);border:1px solid var(--rule);border-radius:12px}
.roat-subpage :is(table.audit,.compare-table) th{background:var(--accent-soft);color:var(--ink)}
.roat-subpage :is(.route-notice,.compare-note,.superseded){border-radius:0 10px 10px 0}
.roat-subpage .stage-n{border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);font-family:var(--sans);font-size:.875rem;min-width:36px;min-height:36px;display:inline-flex;align-items:center;justify-content:center}
.roat-subpage :is(a,button,input,select,summary):focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.roat-subpage footer.site{position:relative;background:var(--roat-plum);color:#e2c6dc;border-top:3px solid var(--roat-purple);padding:30px 0 36px}
.roat-subpage footer.site a{color:#e2c6dc}
.roat-subpage footer.site .logo-color{display:none!important}
.roat-subpage footer.site .logo-white{display:block!important}
.roat-subpage footer.site .wrap{align-items:center;row-gap:20px}
@media(max-width:700px){
 .roat-subpage .page-title{padding:22px 20px 38px;font-size:1.85rem}
 .roat-subpage .page-title{--brand-line-bottom:17px}
 .roat-subpage .page-title:before{left:20px;right:28px}
 .roat-subpage .page-title:after{right:18px}
 .roat-subpage :is(.card,.topic-card){padding:20px}
 .roat-subpage :is(.filters,.route-controls,.compare-controls){padding:16px}
 .roat-subpage nav.site{gap:4px}
 .roat-subpage nav.site a{padding:7px 9px}
 .roat-subpage :is(.research-nav,.compare-next) a{max-width:100%;overflow-wrap:anywhere}
}
@media print{
 .roat-subpage{background:#fff;color:#000}
 .roat-subpage .page-title{background:none;color:#000;padding:0 0 12px;font-size:24pt;border-bottom:2px solid #97357c}
 .roat-subpage .page-title:before,.roat-subpage .page-title:after{display:none}
 .roat-subpage .page-title .badge{color:#000}
 .roat-subpage :is(.card,.topic-card,.pcol,.tblwrap,.compare-scroll){background:#fff;border-radius:0;box-shadow:none}
 .roat-subpage :is(button,.btn){min-height:0}
 .roat-subpage footer.site{background:#fff;color:#000}
 .roat-subpage footer.site a{color:#000}
 .roat-subpage footer.site .logo-color{display:block!important}
 .roat-subpage footer.site .logo-white{display:none!important}
}
/* Keep filter labels and fields stacked on small screens. */
@media(max-width:700px){.roat-subpage :is(.route-controls,.compare-controls) label{flex-basis:100%;width:100%}.roat-subpage .filters .facet{flex:1 1 100%;width:100%}.roat-subpage .filters :is(input,select){width:100%;min-width:0}}
/* Five native disclosure groups, with direct search and language access. */
nav.site.grouped-nav{width:100%;display:flex;align-items:center;gap:6px 10px;flex-wrap:wrap;padding:0 0 8px;font-size:16px}
.grouped-nav .nav-group{position:relative;min-width:0}
.grouped-nav summary{list-style:none;cursor:pointer;padding:10px 14px;border-radius:28px;font-weight:600;line-height:1.4;color:var(--ink)}
.grouped-nav summary::-webkit-details-marker{display:none}
.grouped-nav summary:after{content:'⌄';display:inline-block;margin-left:10px}
.grouped-nav .nav-group[open]>summary:after{transform:rotate(180deg)}
.grouped-nav .nav-group-current>summary{background:#97357c;color:white}
.grouped-nav summary:hover,.grouped-nav .nav-group[open]:not(.nav-group-current)>summary{background:var(--accent-soft);color:var(--accent-ink)}
.grouped-nav summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.grouped-nav .nav-dropdown{position:absolute;left:0;top:calc(100% + 6px);min-width:260px;width:max-content;max-width:min(340px,calc(100vw - 48px));padding:8px;background:var(--surface);border:1px solid var(--rule);border-top:3px solid #97357c;border-radius:12px;box-shadow:0 12px 30px #210c1c24;z-index:30}
nav.site.grouped-nav .nav-dropdown a{display:block;white-space:normal;overflow-wrap:anywhere;padding:11px 13px;border-radius:7px;font-size:16px;line-height:1.4;color:var(--ink)}
nav.site.grouped-nav .nav-dropdown a:hover{background:var(--accent-soft);color:var(--accent-ink)}
nav.site.grouped-nav .nav-dropdown a[aria-current]{background:#97357c;color:#fff}
nav.site.grouped-nav>a{padding:10px 14px;border-radius:28px;font-size:15px;line-height:1.4}
nav.site.grouped-nav .nav-search{margin-left:auto;border:1px solid var(--rule)}
nav.site.grouped-nav .lang{margin-left:0;border:1px solid var(--rule)}
@media(max-width:1000px){nav.site.grouped-nav{gap:6px}.grouped-nav summary{padding:9px 10px;font-size:15px}.grouped-nav .nav-group:nth-child(n+4) .nav-dropdown{left:auto;right:0}}
@media(max-width:700px){nav.site.grouped-nav{align-items:stretch}.grouped-nav .nav-group{flex:1 1 100%}.grouped-nav summary{display:flex;justify-content:space-between;padding:11px 14px;background:var(--accent-soft)}.grouped-nav .nav-dropdown{position:static;min-width:0;width:100%;max-width:none;margin:6px 0;box-shadow:none}nav.site.grouped-nav .nav-search{margin-left:0}nav.site.grouped-nav>a{flex:1;text-align:center}}
@media print{nav.site.grouped-nav{display:none}}
.related-content{padding:30px 0;margin-top:30px;border-top:3px solid var(--accent)}
.content-connections{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:16px;margin-top:20px}
.content-connections>a{display:flex;flex-direction:column;gap:12px;border:1px solid var(--rule);border-radius:12px;background:var(--surface);color:var(--ink);padding:22px;text-decoration:none}
.content-connections h3{margin:0;font-size:20px;color:var(--accent-ink)}
.content-connections p{margin:0;font-size:16px;color:var(--muted)}
.content-connections span{margin-top:auto;color:var(--accent-ink);font-size:24px}
.content-connections>a:hover{background:var(--accent-soft)}
.content-connections>a:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
@media print{.related-content{break-inside:avoid}.content-connections{display:block}.content-connections>a{padding:8px;border:0}}
.skip-content{position:absolute;left:24px;top:8px;transform:translateY(-180%);z-index:100;background:var(--surface);color:var(--accent-ink);border:2px solid var(--accent);border-radius:24px;padding:8px 16px;font-size:16px}
.skip-content:focus{transform:none;outline:3px solid var(--accent);outline-offset:3px}
#page-content:focus{outline:none}
#page-content a{overflow-wrap:anywhere}
@media(max-width:700px){.skip-content{position:relative;display:block;left:auto;top:auto;transform:none;width:max-content;max-width:calc(100% - 48px);margin:8px 24px}}
@media print{.skip-content{display:none}}

.freshness-panel{margin:22px 0;padding:20px;background:var(--roat-panel);border:1px solid var(--rule);border-radius:16px}.freshness-panel dl{display:grid;grid-template-columns:1fr 1fr 2fr;gap:20px;margin:0}.freshness-panel dt{font-size:14px;font-weight:650;color:var(--accent-ink);margin-bottom:6px}.freshness-panel dd{font-size:16px;line-height:1.5;margin:0;overflow-wrap:anywhere}@media(max-width:700px){.freshness-panel dl{grid-template-columns:1fr;gap:16px}}

.pack-selection{border:1px solid #dec4d9;border-left:4px solid #983582;background:#f7f0f6;padding:1rem 1.25rem;margin:1rem 0}.pack-selection summary{font-weight:700;font-size:1.2rem;cursor:pointer}.pack-selection ul{list-style:none;padding:0;max-height:22rem;overflow:auto}.pack-selection li{display:flex;align-items:center;gap:1rem;justify-content:space-between;padding:.7rem 0;border-bottom:1px solid #dec4d9}.pack-selection li a{min-width:0;overflow-wrap:anywhere}.pack-selection li button{flex-shrink:0;padding:.4rem .65rem}.pack-selection .route-date{margin:.5rem 0}

.project-identity{flex-basis:100%;margin:0 0 1rem}.project-identity a{margin-left:.5rem}
.home-photo{margin:0;min-width:0}
.home-photo figcaption{font-size:.75rem;text-align:right;margin-top:.4rem;color:#e5cbdc}
.home-photo figcaption a{color:inherit}



.editorial-photo{margin:24px 0 32px}
.editorial-photo img{display:block;width:100%;height:260px;object-fit:cover;object-position:center 65%}
.editorial-photo figcaption{font-size:.8rem;margin-top:8px;color:var(--muted)}
@media(max-width:560px){.editorial-photo img{height:180px}}
@media print{.editorial-photo,.home-photo{display:none}}

.mobile-menu-toggle{display:none}
@media(max-width:700px){
.site-head>.wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.site-head .brand-updated{flex:1;min-width:0;max-width:240px}
.site-head .brand-updated img{max-width:100%;height:auto}
.mobile-menu-toggle:not([hidden]){display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px;background:var(--surface);color:var(--ink);border:1px solid var(--rule);border-radius:24px;font:inherit;cursor:pointer}
.mobile-menu-toggle:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
nav.collapsible-nav:not(.mobile-open)>.nav-group{display:none}
nav.site.grouped-nav{flex-basis:100%}
}
@media print{.mobile-menu-toggle{display:none!important}}
