/* Why: PHP-published pages need a stable stylesheet path; Astro's hashed CSS
   cannot be safely guessed by a runtime publisher on an FTP/PHP host. */
:root { --navy:#404b5f; --muted:#697181; --gold:#e2b76b; --line:#e4e1da; }
* { box-sizing:border-box; }
body { margin:0; background:#faf9f6; color:var(--navy); font-family:Arial,"Noto Sans SC",sans-serif; line-height:1.7; }
a { color:inherit; text-decoration:none; }
.shell { width:min(1200px,calc(100% - 48px)); margin-inline:auto; }
.skip-link { position:absolute; left:-9999px; }
.skip-link:focus { left:20px; top:20px; background:white; padding:8px; }
.site-header { background:white; box-shadow:0 3px 16px #00000010; }
.header-inner { display:flex; align-items:center; justify-content:space-between; min-height:100px; gap:20px; }
.brand img { display:block; width:225px; max-width:100%; height:auto; }
.desktop-nav { display:flex; flex-wrap:wrap; gap:24px; font-size:15px; }
.desktop-nav a:hover,.desktop-nav .is-active { color:#18759a; }
.breadcrumb { display:flex; flex-wrap:wrap; gap:12px; padding-block:30px; color:var(--muted); font-size:13px; }
.article-detail { max-width:850px; padding-block:35px 100px; }
.article-detail header { border-bottom:1px solid var(--line); padding-bottom:30px; }
.article-tag { display:inline-block; color:#18759a; font-size:13px; letter-spacing:.12em; }
.article-date { margin-left:20px; color:var(--muted); font-size:13px; }
.article-detail h1 { margin:16px 0; font-size:clamp(30px,4vw,54px); font-weight:400; line-height:1.3; }
.article-lead { font-size:19px; }
.article-byline { color:var(--muted); font-size:13px; }
.article-body { padding-block:30px; font-size:17px; line-height:1.9; overflow-wrap:anywhere; }
.article-body h2 { margin-top:36px; font-size:28px; }
.article-body h3 { margin-top:26px; font-size:22px; }
.article-body p { margin-bottom:20px; }
.article-body ul { padding-left:28px; }
.article-sources,.article-disclaimer { border-top:1px solid var(--line); margin-top:38px; padding-top:20px; }
.article-disclaimer { color:var(--muted); font-size:14px; }
.cta-band { background:var(--navy); color:white; padding:35px 0; }
.cta-inner { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.cta-inner h2,.cta-inner p { margin:4px 0; }
.eyebrow { font-size:12px; letter-spacing:.15em; color:var(--gold); }
.button { border:1px solid white; padding:10px 22px; white-space:nowrap; }
.site-footer { background:#303a4a; color:white; padding:20px 0; font-size:12px; }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; }
@media(max-width:700px) { .header-inner { min-height:72px; } .brand img { width:150px; } .desktop-nav { gap:10px; font-size:12px; } .cta-inner,.footer-bottom { flex-direction:column; align-items:flex-start; } }
