:root{color-scheme:light;--ink:#061938;--muted:#52647c;--blue:#1769ff;--navy:#07346d;--pale:#f3f8ff;--line:#d6e2f1}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-width:320px;background:#fff;color:var(--ink);font-family:"Noto Sans JP","Yu Gothic","Hiragino Sans",system-ui,sans-serif;font-size:16px;line-height:1.8}
a{color:var(--navy);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--blue)}
a:focus-visible{outline:3px solid var(--blue);outline-offset:4px;border-radius:3px}
.skip-link{position:absolute;left:-9999px;top:8px;z-index:10;background:#fff;padding:8px 12px}
.skip-link:focus{left:8px}
.container,.header-inner,.footer-inner{width:min(100% - 40px,1120px);margin-inline:auto}
.site-header{border-bottom:1px solid var(--line);background:#fff}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:76px}
.brand{font-size:23px;font-weight:750;letter-spacing:-.04em;text-decoration:none;color:var(--ink);white-space:nowrap}
.brand strong{color:var(--blue)}
.site-header nav,.site-footer nav{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px}
.site-header nav a{text-decoration:none;font-weight:700}
.site-header nav .nav-cta{padding:8px 18px;border:1px solid var(--blue);border-radius:999px;color:var(--blue)}
.site-header nav .nav-cta:hover{background:var(--blue);color:#fff}
.intro{padding:88px 0 84px;background:linear-gradient(135deg,#f8fbff 0%,#e5f1ff 55%,#d5e8ff 100%);border-bottom:1px solid var(--line)}
.intro h1{max-width:800px;margin:12px 0 24px;font-size:clamp(34px,5vw,58px);line-height:1.35;letter-spacing:-.04em}
.intro p:last-child{max-width:680px;margin:0;font-size:18px}
.eyebrow{margin:0;color:var(--blue);font-size:12px;font-weight:800;letter-spacing:.18em}
.listing{padding-block:70px 88px}
.section-heading{margin-bottom:28px}.section-heading h2{margin:4px 0 0;font-size:clamp(26px,3vw,36px)}
.article-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.article-card{position:relative;min-height:240px;padding:28px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(6,25,56,.04)}
.article-card:hover{border-color:#93bbff;box-shadow:0 12px 30px rgba(6,25,56,.08)}
.article-card h2{margin:8px 0 10px;font-size:21px;line-height:1.5}.article-card h2 a{color:var(--ink);text-decoration:none}.article-card h2 a::after{content:"";position:absolute;inset:0}
.article-card h2 a:focus-visible{outline-offset:5px}
.article-card p{margin:0;color:var(--muted)}.article-card .article-date{color:var(--blue);font-size:13px;font-weight:700}
.card-more{display:block;margin-top:18px;color:var(--navy);font-weight:750}.card-more span{color:var(--blue)}
.empty-state{grid-column:1/-1;padding:42px;border:1px solid var(--line);border-radius:12px;background:var(--pale);text-align:center;color:var(--muted)}
.pagination{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:40px}.pagination span{color:var(--muted)}
.bottom-cta{padding:70px 0;background:var(--pale);text-align:center}.bottom-cta h2{margin:0 0 12px;font-size:clamp(24px,3vw,34px)}.bottom-cta p{margin:0 0 28px;color:var(--muted)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:52px;padding:12px 24px;border-radius:999px;background:var(--blue);color:#fff;font-weight:800;text-decoration:none}
.button:hover{background:#0655d9;color:#fff}
.site-footer{border-top:1px solid var(--line);padding:32px 0;color:var(--muted);font-size:14px}.footer-inner{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}
.article-layout{padding:34px 0 100px}.back-link{font-weight:700;text-decoration:none}.article{max-width:760px;margin:46px auto 0}
.article-header{padding-bottom:32px;border-bottom:1px solid var(--line)}.article-header h1{margin:10px 0 20px;font-size:clamp(32px,4vw,48px);line-height:1.4;letter-spacing:-.03em}
.article-lead{margin:0 0 24px;font-size:18px;color:var(--muted)}.article-meta{display:flex;gap:18px;color:var(--muted);font-size:13px}
.article-body{padding:28px 0 54px;line-height:1.95}.article-body h2{margin:50px 0 16px;font-size:27px;line-height:1.5}.article-body h3{margin:38px 0 12px;font-size:22px}.article-body h4{margin:30px 0 10px;font-size:18px}
.article-body p,.article-body ul{margin:0 0 22px}.article-body ul{padding-left:1.5em}.article-body li{margin:0 0 8px}
.sources{padding:25px 0;border-top:1px solid var(--line)}.sources h2{font-size:19px}.sources ul{padding-left:1.2em}.sources li{overflow-wrap:anywhere}
.article-cta{margin-top:48px;padding:36px;border-radius:16px;background:var(--pale)}.article-cta h2{margin:8px 0 10px;font-size:25px;line-height:1.5}.article-cta p:not(.eyebrow){margin:0 0 22px;color:var(--muted)}
.related{max-width:760px;margin:80px auto 0;border-top:1px solid var(--line);padding-top:30px}.related h2{font-size:24px}.related .article-card{min-height:0}.related .article-card h2{font-size:18px}
@media(max-width:700px){.container,.header-inner,.footer-inner{width:min(100% - 32px,1120px)}.header-inner{min-height:70px;flex-wrap:wrap;padding-block:12px}.site-header nav{gap:10px 18px}.site-header nav a{font-size:14px}.intro{padding:62px 0}.intro p:last-child{font-size:16px}.listing{padding-block:48px 68px}.article-grid{grid-template-columns:1fr}.article-card{min-height:0;padding:22px}.bottom-cta{padding:54px 0}.article-layout{padding-bottom:70px}.article{margin-top:32px}.article-header h1{font-size:28px;line-height:1.45}.article-lead{font-size:16px}.article-cta{padding:28px 22px}.article-cta h2{font-size:22px}.footer-inner{display:block}.site-footer nav{margin-top:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
