/* V7.3 — all public colors and key dimensions come from admin. Content and brand colors come from the CMS. */
:root {
  --header:88px;
  --ease:cubic-bezier(.22,1,.36,1);
}
* { box-sizing:border-box }
html { font-size:var(--font-scale); color-scheme:var(--color-scheme); scroll-behavior:smooth; scroll-padding-top:112px; background:var(--bg) }
body { margin:0; background:var(--bg); color:var(--text); font-family:var(--font-family); font-size:1rem; line-height:1.7; -webkit-font-smoothing:antialiased }
a { color:inherit; text-decoration:none }
button,input,textarea,select { font:inherit }
button { cursor:pointer }
img { display:block; max-width:100%; height:auto }
p,h1,h2,h3,h4,figure { margin:0 }
button,a,summary { -webkit-tap-highlight-color:transparent }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid var(--yellow); outline-offset:5px }
::selection { background:var(--yellow); color:var(--on-accent) }
[hidden] { display:none!important }
.shell { width:min(calc(100% - 96px),var(--shell)); margin-inline:auto }
.narrow { max-width:920px }
main { min-width:0 }
.article-layout[data-aside="off"] { grid-template-columns:minmax(0,1fr); max-width:920px }
.section { padding-block:100px }
.section-tight { padding-block:0 24px }
.section-kicker,.eyebrow { font-size:.75rem; font-weight:650; letter-spacing:.14em; text-transform:uppercase }
.section-kicker { display:block; margin-bottom:18px; color:var(--yellow) }
h1,h2,h3 { font-weight:650; line-height:1.12; letter-spacing:-.045em; text-wrap:balance; overflow-wrap:anywhere }
h2 { font-size:clamp(2rem,3.3vw,3.2rem) }
h3 { font-size:1.5rem }
.section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:48px; margin-bottom:48px }
.section-head>div { max-width:680px }
.section-head>p { max-width:360px; color:var(--muted); font-size:1rem; line-height:1.65 }
.text-link { display:inline-flex; align-items:center; gap:22px; min-height:44px; font-size:.9375rem; font-weight:600; text-underline-offset:5px }
.text-link:hover { text-decoration:underline }
.text-link span { transition:transform .25s var(--ease) }
.text-link:hover span { transform:translateX(4px) }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:24px; min-height:56px; padding:14px 25px; border:1px solid transparent; border-radius:calc(var(--radius) * 0.5833); font-size:.9375rem; font-weight:650; line-height:1.35; text-align:center; transition:background .2s,color .2s,transform .25s var(--ease),box-shadow .25s }
.btn-primary { background:var(--yellow); color:var(--on-accent) }
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(var(--accent-rgb),.12) }
.btn-ghost { border-color:var(--line); background:transparent }
.btn-ghost:hover { background:var(--panel) }
.btn-sm { min-height:44px; padding:10px 17px; font-size:.875rem }
.btn-wide { width:100% }
.button-arrow { font-size:1.3rem; font-weight:400 }
.pill { display:inline-block; color:var(--yellow); font-size:.75rem; font-weight:650; letter-spacing:.07em }
.status-dot,.eyebrow i,.live-badge i,.status-chip>span { display:inline-block; flex-shrink:0; width:6px; height:6px; border-radius:50%; background:var(--yellow) }

/* Masthead */
.site-header { position:sticky; top:0; z-index:80; min-height:var(--header); background:rgba(var(--bg-rgb),.96); border-bottom:1px solid var(--line-soft); transition:box-shadow .25s }
.site-header.scrolled { box-shadow:0 6px 32px rgba(var(--shadow-rgb),.12) }
.header-inner { min-height:var(--header); display:flex; align-items:center; justify-content:space-between; gap:28px }
.brand { display:inline-flex; align-items:center; gap:10px; flex-shrink:0; font-size:1.3rem; line-height:1.2; letter-spacing:-.035em; font-weight:750 }
.brand b { max-width:220px; overflow-wrap:anywhere }
.brand-mark { display:grid; place-items:center; height:36px; width:36px; border-radius:calc(var(--radius) * 0.5000); background:var(--yellow); color:var(--on-accent); font-size:1.25rem }
.brand-image { max-width:var(--logo-width); max-height:var(--logo-height); object-fit:contain; width:auto; height:auto }
.nav-desktop { display:flex; justify-content:center; align-items:center; gap:24px; flex:1; min-width:0 }
.nav-desktop a { position:relative; padding-block:32px; font-size:.875rem; white-space:nowrap; color:var(--muted); transition:color .2s }
.nav-desktop a:hover,.nav-desktop a.active { color:var(--text) }
.nav-desktop a.active:after { content:""; position:absolute; bottom:22px; height:2px; width:16px; left:0; background:var(--yellow) }
.header-actions { display:flex; gap:18px; align-items:center; flex-shrink:0 }
.status-chip { display:none; align-items:center; gap:7px; font-size:.75rem }
.menu-toggle { display:none; align-items:center; justify-content:center; flex-direction:column; gap:6px; border:1px solid var(--line); width:44px; height:44px; background:transparent; color:var(--text); border-radius:calc(var(--radius) * 0.5000) }
.menu-toggle span { width:17px; height:1px; background:currentColor; transition:transform .2s }
.menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(3.5px) rotate(45deg) }
.menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-3.5px) rotate(-45deg) }
.mobile-menu { background:var(--bg); border-top:1px solid var(--line); max-height:calc(100dvh - var(--header)); overflow:auto }
.mobile-menu-inner { display:grid; padding-block:16px 24px }
.mobile-menu-inner>a:not(.btn) { padding:13px 0; border-bottom:1px solid var(--line-soft) }
.mobile-menu-inner .btn { margin-top:20px }
.skip-link { position:fixed; left:16px; top:-100px; padding:12px 20px; background:var(--yellow); color:var(--on-accent); z-index:1000 }
.skip-link:focus { top:12px }

/* Opening spread */
.hero { padding-top:64px }
.hero-grid { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,1fr); gap:clamp(40px,6vw,88px); align-items:center }
.hero-copy { padding:20px 0 28px }
.eyebrow { display:flex; align-items:center; gap:12px; color:var(--yellow); margin-bottom:28px }
.hero-copy h1 { max-width:11.5ch; font-size:clamp(3.3rem,5.5vw,5.7rem); line-height:1.03; letter-spacing:-.063em; font-weight:650 }
.hero-description { max-width:520px; margin-top:28px; font-size:1.0625rem; color:var(--muted); line-height:1.8 }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:22px 28px; margin-top:34px }
.hero-footnote { display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin-top:35px; color:var(--muted-2); font-size:.75rem; line-height:1.6 }
.footnote-divider { margin-inline:4px; color:var(--muted-2) }
/* The access desk is real navigation, not a decorative image slot. */
.access-hub { min-width:0; width:100%; max-width:510px; justify-self:end }
.access-feature { position:relative; padding:30px 32px; border-top:4px solid var(--yellow); border-radius:0 0 calc(var(--radius) * 0.8333) calc(var(--radius) * 0.8333); background:var(--paper); color:var(--ink); box-shadow:0 20px 60px rgba(var(--shadow-rgb),.12) }
.access-feature-top { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px 20px; font-size:.75rem; line-height:1.5; font-weight:650; letter-spacing:.07em }
.access-feature-top>span:first-child { flex:1; min-width:0; overflow-wrap:anywhere; color:var(--contrast-muted) }
.access-status { display:inline-flex; align-items:center; gap:7px; border:1px solid var(--contrast-line); padding:5px 9px; border-radius:calc(var(--radius) * 0.3333); color:var(--status-color); font-size:.8125rem; font-weight:600; letter-spacing:.03em; overflow-wrap:anywhere; max-width:100% }
.access-status i { width:5px; height:5px; flex-shrink:0; background:currentColor; border-radius:50% }
.access-feature h2 { margin-top:24px; font-size:clamp(1.75rem,2.6vw,2.25rem); letter-spacing:-.04em; line-height:1.14; max-width:16ch }
.access-feature>p { margin-top:16px; color:var(--contrast-muted); font-size:1rem; line-height:1.7 }
.access-primary { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:58px; margin-top:28px; padding:14px 18px 14px 22px; border:1px solid rgba(var(--shadow-rgb),.12); border-radius:calc(var(--radius) * 0.4167); background:var(--yellow); color:var(--on-accent); font-size:1rem; font-weight:650; line-height:1.5; transition:box-shadow .25s var(--ease) }
.access-primary>span:first-child { min-width:0; overflow-wrap:anywhere }
.access-primary-arrow { display:grid; place-items:center; flex-shrink:0; width:28px; height:28px; border-left:1px solid currentColor; font-size:1.375rem; line-height:1; padding-left:12px; transition:transform .25s var(--ease) }
.access-primary:hover { box-shadow:0 5px 18px rgba(var(--shadow-rgb),.1) }
.access-primary:hover .access-primary-arrow { transform:translate(2px,-2px) }
.access-primary:focus-visible { outline-color:var(--ink) }
.access-feature.has-hero-banners { padding:0; overflow:hidden }
.has-hero-banners .access-primary { margin:16px 18px 18px }
.hero-banner-slider { position:relative; background:var(--ink); color:var(--paper) }
.hero-banner-viewport { position:relative; aspect-ratio:15 / 8; overflow:hidden }
.hero-banner-slide,.hero-banner-slide>a { display:block; width:100%; height:100% }
.hero-banner-slide img { width:100%; height:100%; object-fit:cover }
.hero-banner-slide:not([hidden]) { animation:hero-banner-in .35s var(--ease) both }
.hero-banner-controls { position:absolute; z-index:2; left:12px; right:12px; bottom:12px; display:flex; align-items:center; justify-content:flex-end; gap:7px; pointer-events:none }
.hero-banner-controls button { pointer-events:auto; display:grid; place-items:center; min-width:38px; height:38px; padding:0 10px; border:1px solid rgba(var(--text-rgb),.32); border-radius:999px; background:rgba(var(--shadow-rgb),.72); color:var(--button-text-light); backdrop-filter:blur(8px); transition:background .2s,border-color .2s }
.hero-banner-controls button:hover,.hero-banner-controls button:focus-visible { background:var(--yellow); color:var(--on-accent); border-color:var(--yellow) }
.hero-banner-dots { display:flex; align-items:center; gap:5px; margin-right:auto; padding:7px 9px; border-radius:999px; background:rgba(var(--shadow-rgb),.72); backdrop-filter:blur(8px); pointer-events:auto }
.hero-banner-dots button { width:8px; min-width:8px; height:8px; padding:0; border:0; background:var(--button-text-light); opacity:.45 }
.hero-banner-dots button[aria-current="true"] { width:24px; opacity:1; background:var(--yellow) }
.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 }
@keyframes hero-banner-in { from { opacity:.35; transform:scale(1.012) } to { opacity:1; transform:scale(1) } }
.hero-shortcuts { padding:24px 4px 0 }
.hero-shortcuts h3 { color:var(--muted-2); font-size:.75rem; line-height:1.5; font-weight:600; letter-spacing:.12em; text-transform:uppercase; margin-bottom:10px }
.hero-shortcut { display:grid; grid-template-columns:28px minmax(0,1fr) 20px; align-items:center; gap:16px; min-height:54px; padding-block:13px; border-bottom:1px solid var(--line); font-size:.9375rem; font-weight:500; line-height:1.5; transition:color .2s }
.hero-shortcut>span:nth-child(2) { overflow-wrap:anywhere }
.shortcut-index { color:var(--muted-2); font-size:.75rem; font-variant-numeric:tabular-nums }
.shortcut-arrow { color:var(--muted); text-align:right; transition:transform .25s var(--ease),color .2s }
.hero-shortcut:hover,.hero-shortcut:hover .shortcut-arrow { color:var(--yellow) }
.hero-shortcut:hover .shortcut-arrow { transform:translateX(3px) }
.hero-baseline { display:flex; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid var(--line); margin-top:52px; padding-block:22px; font-size:.75rem; color:var(--muted-2) }
.hero-baseline>span,.hero-baseline>a { display:flex; align-items:center; flex-wrap:wrap; gap:14px }
.hero-baseline time,.hero-baseline>a>span { color:var(--text) }

/* Directory, intentionally open and rule-led rather than nested cards. */
.discover-section { padding-top:76px }
.category-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--line); border-bottom:1px solid var(--line) }
.category-card { position:relative; display:flex; flex-direction:column; min-height:310px; padding:26px 26px 26px 0; gap:32px; border-right:1px solid var(--line); transition:background .2s }
.category-card+ .category-card { padding-left:26px }
.category-card:last-child { border-right:0 }
.category-card:hover { background:rgba(var(--text-rgb),.025) }
.category-index { color:var(--muted-2); font-size:.875rem; font-variant-numeric:tabular-nums; letter-spacing:.02em }
.category-card small { display:block; color:var(--yellow); font-size:.75rem; font-weight:600; margin-bottom:10px }
.category-card h3 { font-size:1.5rem; margin-bottom:14px; letter-spacing:-.035em }
.category-card p { color:var(--muted); font-size:.9375rem; line-height:1.65 }
.category-card>b { margin-top:auto; color:var(--text); font-size:.8125rem; font-weight:600 }
.category-card:hover>b { color:var(--yellow) }

/* A high-contrast campaign folio provides a deliberate change of rhythm. */
.section-campaigns { background:var(--paper); color:var(--ink); --line:var(--contrast-line); --muted:var(--contrast-muted) }
.section-campaigns .section-kicker { color:var(--contrast-muted) }
.section-campaigns .section-head { padding-bottom:32px; border-bottom:1px solid var(--line); margin-bottom:32px }
.campaign-grid { display:grid; grid-template-columns:1.15fr 1fr 1fr; gap:20px }
.campaign-card { position:relative; display:flex; flex-direction:column; align-items:flex-start; min-width:0; padding:24px; border:1px solid var(--line); border-radius:calc(var(--radius) * 0.7500); min-height:260px; transition:transform .3s var(--ease),border-color .3s }
.campaign-card:hover { transform:translateY(-4px); border-color:var(--contrast-hover) }
.card-number { display:none }
.campaign-card .pill { color:var(--contrast-muted); font-size:.75rem; line-height:1.3; font-weight:700; margin-bottom:28px }
.campaign-card h3 { font-size:1.45rem; line-height:1.15; margin-bottom:15px }
.campaign-card p { color:var(--muted); font-size:.9375rem; line-height:1.65; margin-bottom:26px }
.campaign-card>a { margin-top:auto; width:100%; display:flex; justify-content:space-between; align-items:center; gap:16px; font-size:.875rem; font-weight:650; min-height:44px; border-top:1px solid var(--line); padding-top:14px }
.campaign-grid[data-highlight="on"] .campaign-card:first-child { grid-row:span 2; background:var(--featured-bg); border-color:var(--featured-bg); color:var(--featured-text); padding:32px; --line:var(--featured-line); --muted:var(--featured-muted) }
.campaign-grid[data-highlight="on"] .campaign-card:first-child .pill { font-size:clamp(1.8rem,3vw,3rem); max-width:10ch; letter-spacing:-.045em; font-weight:650; color:var(--yellow); margin-bottom:64px; text-wrap:balance }
.campaign-grid[data-highlight="on"] .campaign-card:first-child h3 { font-size:clamp(1.8rem,2.6vw,2.75rem); line-height:1.12; margin-bottom:22px }
.campaign-grid[data-highlight="on"] .campaign-card:first-child>a { margin-top:auto }
.campaign-card:only-child { grid-row:auto; grid-column:1/-1; min-height:360px; max-width:720px }
.campaign-card:only-child .pill { margin-bottom:32px }

/* Entry guide and editorial links */
.entry-guide-section { border-bottom:1px solid var(--line-soft) }
.entry-guide-grid { display:grid; grid-template-columns:1fr 1fr; gap:100px }
.entry-guide-main { max-width:510px }
.entry-guide-main>p { color:var(--muted); margin-top:24px; font-size:1.0625rem }
.entry-guide-main .text-link { margin-top:25px; color:var(--yellow) }
.entry-steps { border-top:1px solid var(--line) }
.entry-steps>div { display:grid; grid-template-columns:44px 1fr; column-gap:20px; padding-block:28px; border-bottom:1px solid var(--line) }
.entry-steps>div>span { font-size:.8125rem; color:var(--yellow); grid-row:span 2; padding-top:4px }
.entry-steps h3 { font-size:1.25rem; letter-spacing:-.025em }
.entry-steps p { margin-top:10px; color:var(--muted); font-size:1rem; line-height:1.65 }
.info-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 32px }
.info-card { position:relative; padding:25px 28px 30px 0; border-top:1px solid var(--line); display:flex; flex-direction:column; align-items:flex-start; min-height:252px }
.info-card>span { color:var(--yellow); font-size:.75rem; letter-spacing:.07em; font-weight:600; margin-bottom:20px }
.info-card h3 { font-size:1.625rem; line-height:1.2; margin-bottom:14px; max-width:340px }
.info-card p { color:var(--muted); font-size:.9375rem; line-height:1.7; margin-bottom:24px }
.info-card i { margin-top:auto; font-style:normal; color:var(--text); transition:transform .25s var(--ease) }
.info-card:hover h3 { color:var(--yellow) }
.info-card:hover i { transform:translateX(5px) }
.home-faq-section { background:var(--bg-2); border-top:1px solid var(--line-soft) }
.home-faq-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:90px }
.home-faq-grid>div:first-child { max-width:430px }
.home-faq-grid>div:first-child>p { color:var(--muted); margin-top:24px; font-size:1rem }
.home-faq-grid>div:first-child .btn { margin-top:26px }
.home-faq-list,.faq-block { border-top:1px solid var(--line) }
details { border-bottom:1px solid var(--line) }
summary { display:flex; justify-content:space-between; align-items:center; gap:24px; cursor:pointer; list-style:none; padding:23px 0; font-size:1.0625rem; font-weight:550; line-height:1.5 }
summary::-webkit-details-marker { display:none }
summary>span { color:var(--yellow); flex-shrink:0; font-size:1.375rem; font-weight:400; transition:transform .2s }
details[open] summary>span { transform:rotate(45deg) }
details>p { max-width:68ch; margin:0 38px 26px 0; color:var(--muted); font-size:1rem; line-height:1.8 }
.final-cta-section { padding-block:80px }
.final-cta { display:flex; align-items:center; justify-content:space-between; gap:64px; border-block:1px solid var(--line); padding-block:48px }
.final-cta>div { max-width:760px }
.final-cta h2 { font-size:clamp(2rem,3.4vw,3.3rem) }
.final-cta p { color:var(--muted); margin-top:18px; max-width:670px }
.final-cta>.btn { flex-shrink:0 }

/* Footer and mobile access */
.site-footer { padding-top:40px; background:var(--bg); border-top:1px solid var(--line-soft) }
.footer-grid { display:grid; grid-template-columns:1.6fr repeat(5,minmax(0,1fr)); gap:32px; padding-block:24px 50px }
.footer-grid>div { min-width:0 }
.footer-intro { padding-right:36px }
.footer-intro>p { color:var(--muted-2); font-size:.875rem; line-height:1.75; max-width:300px; margin-top:20px }
.footer-grid h3 { font-size:.875rem; font-weight:650; letter-spacing:0; margin-bottom:20px; line-height:1.5 }
.footer-grid>div>a:not(.brand) { display:block; font-size:.8125rem; color:var(--muted); margin-block:12px; overflow-wrap:anywhere; line-height:1.65 }
.footer-grid>div>a:hover { color:var(--text) }
.footer-grid .footer-mail { margin-top:18px; color:var(--text) }
.footer-legal-links { display:flex; flex-wrap:wrap; gap:12px 24px; border-top:1px solid var(--line); padding-block:24px; font-size:.75rem; color:var(--muted) }
.footer-legal-links>a:hover { text-decoration:underline }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:32px; border-top:1px solid var(--line-soft); padding-block:22px 32px; color:var(--muted-2); font-size:.75rem }
.footer-bottom>span:last-child { max-width:740px; text-align:right }
.mobile-cta { display:none }

/* Article routes share the same typography and spacing system. */
.page-hero { padding-block:58px 46px; border-bottom:1px solid var(--line-soft) }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:10px; color:var(--muted-2); font-size:.8125rem; margin-bottom:30px }
.breadcrumbs a { color:var(--text) }
.page-hero .pill { margin-bottom:22px }
.page-hero h1 { font-size:clamp(2.5rem,4.2vw,4.2rem); max-width:900px; line-height:1.08 }
.page-hero p { max-width:760px; color:var(--muted); margin-top:24px; font-size:1.125rem }
.page-meta { display:flex; flex-wrap:wrap; gap:24px; color:var(--muted-2); font-size:.75rem; margin-top:24px }
.article-section { padding-block:58px 80px }
.article-layout { display:grid; grid-template-columns:minmax(0,820px) minmax(260px,1fr); gap:72px; align-items:start }
.article-body { min-width:0; font-size:1.0625rem; color:var(--article-text); line-height:1.85; overflow-wrap:anywhere }
.article-body h2 { font-size:2rem; line-height:1.25; color:var(--text); margin-block:44px 18px }
.article-body h3 { font-size:1.4rem; color:var(--text); margin-block:28px 16px; line-height:1.3 }
.article-body>h2:first-child { margin-top:0 }
.article-body p { margin-bottom:20px }
.article-body a { color:var(--yellow); text-decoration:underline; text-underline-offset:4px }
.article-body ul,.article-body ol { padding-left:26px; margin-block:20px }
.article-body li { margin-bottom:9px }
.article-body blockquote { margin:30px 0; border-left:2px solid var(--yellow); background:var(--bg-2); padding:24px 30px }
.article-body table { width:100%; display:block; overflow-x:auto; border-collapse:collapse; margin-block:24px; font-size:.9375rem }
.article-body th,.article-body td { text-align:left; padding:14px 18px; border:1px solid var(--line); min-width:120px }
.article-body th { color:var(--text); background:var(--panel); font-weight:600 }
.aside-card { padding:26px; background:var(--panel); border:1px solid var(--line); border-radius:calc(var(--radius) * 0.7500); overflow-wrap:anywhere }
.aside-card.sticky { position:sticky; top:116px }
.aside-label { color:var(--yellow); font-size:.75rem; letter-spacing:.08em }
.aside-card h3 { font-size:1.7rem; margin-block:20px 16px; line-height:1.2 }
.aside-card p { font-size:.9375rem; color:var(--muted); margin-bottom:24px }
.aside-card hr { border:0; border-top:1px solid var(--line); margin-block:24px }
.aside-card>small { display:block; color:var(--muted-2); font-size:.75rem }
.support-mail { display:inline-block; font-size:.875rem; margin-top:6px }
.current-link-panel { display:flex; align-items:center; justify-content:space-between; gap:28px; padding:28px; background:var(--panel); border:1px solid var(--line); border-radius:calc(var(--radius) * 0.7500); margin-top:32px }
.current-link-panel>div { display:flex; flex-direction:column; gap:8px }
.current-link-panel strong { font-size:1.35rem }
.current-link-panel span,.current-link-panel small { font-size:.8125rem; color:var(--muted) }
.faq-block,.related-block { margin-top:48px }
.related-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px }
.article-body .related-grid>a { display:flex; flex-direction:column; gap:12px; color:var(--text); text-decoration:none; border:1px solid var(--line); padding:24px; border-radius:calc(var(--radius) * 0.6667) }
.related-grid small,.related-grid span { font-size:.75rem; color:var(--yellow) }
.related-grid strong { font-size:1.125rem; font-weight:600; line-height:1.4 }
.sitemap-grid { max-width:1000px }
.sitemap-grid section>a { display:block; padding-block:24px; border-bottom:1px solid var(--line) }
.sitemap-grid strong { display:block; font-size:1.25rem; line-height:1.4 }
.sitemap-grid span { display:block; color:var(--muted); font-size:1rem; margin-top:8px }
.error-page { min-height:65vh; display:flex; align-items:center }
.error-page .btn { margin-top:32px }

/* Progressive motion: content is visible if JavaScript fails or motion is disabled. */
.reveal { opacity:1; transform:none }
.motion-ready .reveal.is-pending { opacity:0; transform:translateY(18px) }
.motion-ready .reveal { transition:opacity .7s var(--ease),transform .8s var(--ease) }
.motion-ready .delay-1 { transition-delay:80ms }
.motion-ready .delay-2 { transition-delay:140ms }

/* Reflow before density becomes uncomfortable. */
@media(min-width:1600px) {
  :root { --shell:1380px }
  .hero-grid { gap:90px }
}
@media(max-width:1200px) {
  .shell { width:calc(100% - 64px) }
  .nav-desktop { gap:16px }
  .nav-desktop a { font-size:.875rem }
  .header-inner { gap:20px }
  .hero-grid { gap:40px }
  .hero-copy h1 { font-size:clamp(3.2rem,5.5vw,4.5rem) }
  .entry-guide-grid,.home-faq-grid { gap:60px }
  .footer-grid { grid-template-columns:repeat(4,minmax(0,1fr)) }
  .footer-intro { grid-column:span 2; padding-right:32px }
}
@media(max-width:1050px) {
  :root { --header:76px }
  .nav-desktop { display:none }
  .menu-toggle { display:flex }
  .header-actions .desktop-only { display:inline-flex }
  .hero-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px }
  .access-feature { padding:26px }
  .access-feature h2 { font-size:1.9rem }
  .hero-copy h1 { font-size:clamp(3rem,5.6vw,3.75rem) }
  .hero-description { font-size:1rem }
  .category-grid { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .category-card { padding:26px!important; min-height:280px; border-bottom:1px solid var(--line) }
  .category-card:nth-child(2n) { border-right:0 }
  .category-card:nth-last-child(-n+2) { border-bottom:0 }
  .campaign-grid { grid-template-columns:1fr 1fr }
  .campaign-grid[data-highlight="on"] .campaign-card:first-child { grid-column:1/-1; grid-row:auto; min-height:300px }
  .campaign-grid[data-highlight="on"] .campaign-card:first-child .pill { font-size:2.5rem; max-width:none; margin-bottom:28px }
  .campaign-grid[data-highlight="on"] .campaign-card:first-child h3 { max-width:650px; font-size:2rem }
  .campaign-grid[data-highlight="on"] .campaign-card:first-child p { max-width:660px }
  .entry-guide-grid { gap:45px }
  .info-grid { grid-template-columns:repeat(2,minmax(0,1fr)) }
  .home-faq-grid { gap:45px }
  .article-layout { grid-template-columns:minmax(0,1fr) 285px; gap:38px }
  .final-cta { gap:32px }
}
@media(max-width:760px) {
  :root { --header:72px }
  .shell { width:calc(100% - 40px) }
  .section { padding-block:64px }
  .hero { padding-top:40px }
  .hero-grid { grid-template-columns:1fr; gap:40px }
  .access-hub { max-width:none }
  .access-feature { padding:28px }
  .access-feature h2 { font-size:2.2rem; max-width:20ch }
  .access-feature>p { max-width:540px }
  .hero-shortcuts { padding-top:26px }
  .hero-copy { padding:0 }
  .hero-copy h1 { font-size:clamp(3rem,9.8vw,4.8rem); max-width:13ch; line-height:1.04 }
  .eyebrow { margin-bottom:22px; font-size:.75rem }
  .hero-description { margin-top:23px; max-width:560px; line-height:1.75 }
  .hero-actions { margin-top:28px; gap:16px 24px }
  .hero-footnote { margin-top:24px; font-size:.75rem }
  .hero-baseline { margin-top:32px; gap:14px; padding-block:20px; flex-wrap:wrap }
  .hero-baseline>span,.hero-baseline>a { gap:10px }
  .section-head { display:block; margin-bottom:32px }
  .section-head>p { max-width:580px; margin-top:22px }
  .section-head>a { margin-top:18px }
  .section-kicker { margin-bottom:16px }
  h2 { font-size:2.2rem }
  .discover-section { padding-top:44px }
  .category-card { padding:24px 18px!important; gap:24px }
  .category-card h3 { font-size:1.4rem }
  .category-card p { font-size:.875rem }
  .category-card small { font-size:.75rem }
  .campaign-card { padding:24px; min-height:280px }
  .campaign-grid[data-highlight="on"] .campaign-card:first-child { padding:28px }
  .campaign-grid[data-highlight="on"] .campaign-card:first-child .pill { margin-bottom:30px; font-size:2.6rem }
  .entry-guide-grid,.home-faq-grid { grid-template-columns:1fr; gap:40px }
  .entry-guide-main { max-width:100% }
  .entry-guide-main>p { font-size:1rem }
  .entry-steps>div { padding-block:24px }
  .info-grid { gap:0 24px }
  .info-card h3 { font-size:1.5rem }
  .home-faq-grid>div:first-child { max-width:100% }
  .final-cta { flex-direction:column; align-items:flex-start; padding-block:36px; gap:28px }
  .final-cta h2 { font-size:2.25rem }
  .footer-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px 24px; padding-bottom:36px }
  .footer-intro { grid-column:1/-1; padding:0 }
  .footer-intro>p { max-width:480px }
  .footer-bottom { display:block; padding-bottom:112px }
  .footer-bottom>span { display:block }
  .footer-bottom>span:last-child { margin-top:12px; text-align:left }
  .mobile-cta { display:block; position:fixed; inset:auto 0 0; z-index:70; background:rgba(var(--bg-rgb),.98); border-top:1px solid var(--line); padding:12px 20px max(12px,env(safe-area-inset-bottom)) }
  .mobile-cta>a { display:flex; align-items:center; justify-content:space-between; gap:20px; max-width:680px; margin:auto }
  .mobile-cta small { display:block; font-size:.75rem; color:var(--muted-2) }
  .mobile-cta b { display:block; font-size:.8125rem; font-weight:500 }
  .mobile-cta strong { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:11px 18px; background:var(--yellow); color:var(--on-accent); border-radius:calc(var(--radius) * 0.5000); font-size:.875rem; font-weight:650; line-height:1.4 }
  .page-hero { padding-block:38px }
  .page-hero h1 { font-size:2.7rem }
  .page-hero p { font-size:1rem }
  .article-layout { grid-template-columns:1fr; gap:38px }
  .article-body { font-size:1rem }
  .article-body h2 { font-size:1.8rem }
  .article-aside { max-width:none }
  .aside-card.sticky { position:static }
  .current-link-panel { flex-direction:column; align-items:stretch; padding:24px }
}
@media(max-width:480px) {
  .header-actions { gap:10px }
  .header-actions .desktop-only { display:none }
  .header-inner { gap:14px }
  .brand { font-size:1.125rem }
  .brand b { max-width:195px }
  .brand-image { max-width:var(--logo-mobile-width); max-height:var(--logo-mobile-height) }
  .hero-actions .btn { flex:1; padding-inline:18px; gap:18px }
  .hero-actions .text-link { font-size:.875rem; gap:12px }
  .hero-footnote { row-gap:6px }
  .access-feature { padding:24px }
  .access-feature.has-hero-banners { padding:0 }
  .has-hero-banners .access-primary { margin:12px }
  .hero-banner-controls { left:8px; right:8px; bottom:8px }
  .hero-banner-controls button { min-width:36px; height:36px }
  .hero-banner-controls [data-slider-previous] { display:none }
  .access-feature-top { align-items:flex-start; gap:10px }
  .access-feature h2 { font-size:2rem }
  .access-primary { gap:16px; padding-inline:18px; margin-top:24px }
  .hero-shortcut { gap:12px }
  .live-badge { font-size:.75rem }
  .hero-baseline { font-size:.75rem }
  .hero-baseline>a { flex-wrap:wrap }
  .hero-baseline>a>span { overflow-wrap:anywhere }
  .category-grid { grid-template-columns:1fr }
  .category-card,.category-card+.category-card { padding:26px 0!important; border-right:0; border-bottom:1px solid var(--line); min-height:0; display:grid; grid-template-columns:34px 1fr; gap:0 12px }
  .category-card:nth-last-child(2) { border-bottom:1px solid var(--line) }
  .category-card:last-child { border-bottom:0 }
  .category-index { grid-row:span 2; padding-top:2px }
  .category-card small { margin-bottom:10px; font-size:.75rem }
  .category-card h3 { font-size:1.5rem }
  .category-card p { font-size:.9375rem }
  .category-card>b { grid-column:2; margin-top:18px; font-size:.8125rem }
  .campaign-grid { grid-template-columns:1fr }
  .campaign-card { min-height:0; padding:26px }
  .campaign-grid[data-highlight="on"] .campaign-card:first-child { min-height:380px }
  .campaign-card .pill { margin-bottom:22px }
  .campaign-card h3 { font-size:1.65rem }
  .campaign-card p { font-size:1rem }
  .info-grid { grid-template-columns:1fr }
  .info-card { min-height:0; padding-block:28px; padding-right:0 }
  .info-card h3 { font-size:1.6rem; max-width:none }
  .info-card p { font-size:1rem }
  .info-card i { margin-top:0 }
  .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 24px }
  .footer-grid>div>a:not(.brand) { font-size:.875rem }
  .footer-grid h3 { font-size:.875rem }
  .footer-legal-links { gap:14px 20px }
  .related-grid { grid-template-columns:1fr }
  .breadcrumbs { font-size:.75rem; margin-bottom:24px }
  .page-hero h1 { font-size:2.4rem }
  .page-meta { gap:12px }
  .entry-steps>div { grid-template-columns:30px 1fr; column-gap:16px }
  .entry-steps h3 { font-size:1.2rem }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto }
  *,*::before,*::after { animation:none!important; transition:none!important }
  .motion-ready .reveal.is-pending { opacity:1; transform:none }
  .btn:hover,.campaign-card:hover,.access-primary:hover .access-primary-arrow,.hero-shortcut:hover .shortcut-arrow { transform:none }
}
body[data-motion="off"] *,body[data-motion="off"] *::before,body[data-motion="off"] *::after { animation:none!important; transition:none!important }
body[data-motion="off"] .reveal { opacity:1!important; transform:none!important }
body[data-motion="off"] .btn:hover,body[data-motion="off"] .campaign-card:hover,body[data-motion="off"] .access-primary:hover .access-primary-arrow,body[data-motion="off"] .hero-shortcut:hover .shortcut-arrow { transform:none }

/* Landing connections and opening banner share the admin-controlled public theme. */
.social-section { padding-block:48px; border-top:1px solid var(--line); background:var(--bg-2) }
.social-inner { display:grid; grid-template-columns:minmax(220px,1fr) minmax(0,1.5fr); align-items:center; gap:40px }
.social-intro h2 { font-size:clamp(1.6rem,2.4vw,2.2rem); letter-spacing:-.03em }
.social-intro p { color:var(--muted); margin-top:12px; max-width:480px; overflow-wrap:anywhere }
.social-links { display:flex; flex-wrap:wrap; gap:10px; justify-content:flex-end; list-style:none; margin:0; padding:0 }
.social-links li { max-width:100% }
.social-links a { display:flex; align-items:center; justify-content:space-between; gap:32px; padding:14px 18px; min-height:52px; border:1px solid var(--line); border-radius:var(--radius); background:var(--panel); font-size:1rem; font-weight:550; transition:border-color .2s,background .2s }
.social-links a>span:first-child { overflow-wrap:anywhere; min-width:0 }
.social-links a:hover { border-color:var(--yellow); background:var(--panel-2) }
.social-arrow { color:var(--yellow); font-size:1.2rem }
body.banner-open { overflow:hidden }
.opening-banner:not([open]) { display:none }
.opening-banner { width:min(760px,calc(100% - 32px)); max-width:none; max-height:calc(100dvh - 32px); margin:auto; padding:0; color:var(--text); background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); overflow:auto; box-shadow:0 28px 90px rgba(var(--shadow-rgb),.45) }
.opening-banner::backdrop { background:rgba(var(--shadow-rgb),.75); backdrop-filter:blur(5px) }
.opening-banner-bar { position:sticky; top:0; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 16px; background:var(--panel); border-bottom:1px solid var(--line) }
.opening-banner-bar>span { font-size:.9375rem; line-height:1.5; overflow-wrap:anywhere; min-width:0 }
.opening-banner-bar button { display:flex; align-items:center; justify-content:center; gap:12px; flex:none; max-width:55%; overflow-wrap:anywhere; min-height:44px; padding:8px 12px; font:inherit; font-size:.875rem; color:var(--text); background:var(--bg-2); border:1px solid var(--line); border-radius:calc(var(--radius) * .5) }
.opening-banner-bar button>span { font-size:1.5rem; line-height:1 }
.opening-banner-bar button:hover { border-color:var(--yellow) }
.opening-banner-link { display:block; padding:8px; outline-offset:-5px!important }
.opening-banner-link img { width:100%; height:auto; max-height:calc(100dvh - 160px); object-fit:contain }
@media(min-width:700px) and (prefers-reduced-motion:no-preference) {
  body:not([data-motion="off"]) .opening-banner[open] { animation:banner-enter .25s var(--ease) both }
}
@keyframes banner-enter { from { opacity:0; transform:translateY(12px) } to { opacity:1; transform:translateY(0) } }
@media(max-width:700px) {
  .social-inner { grid-template-columns:1fr; gap:24px }
  .social-links { justify-content:flex-start }
  .social-links li { flex:1 1 140px }
  .opening-banner-bar { padding:10px; gap:10px }
}
