:root{
  --blue:#0072e5; --cyan:#00b4f0; --orange:#ff4d12; --yellow:#ffd000;
  --ink:#0f1a2a; --muted:#5a6678; --line:#e4e9f0; --bg:#ffffff; --tint:#f3f7fc; --link:#0062c9;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root{
  --blue:#3d9bff; --cyan:#33c6ff; --orange:#ff6a3a; --yellow:#ffd000;
  --ink:#eef3fa; --muted:#a3b0c2; --line:#2a3546; --bg:#0d131d; --tint:#162030; --link:#6cb6ff; color-scheme:dark;}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);
  font-family:"Noto Sans JP","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  font-weight:400;font-size:16px;line-height:1.9;letter-spacing:.03em;font-feature-settings:"palt"}
a{color:var(--link);text-underline-offset:4px}
a:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
img{max-width:100%}
.wrap{max-width:960px;margin:0 auto;padding:0 24px}

/* header */
.site-header{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
@media (prefers-color-scheme:dark){.site-header{background:rgba(13,19,29,.92)}}
.site-header::after{content:"";display:block;height:4px;background:linear-gradient(90deg,var(--blue) 0 50%,var(--cyan) 50% 75%,var(--yellow) 75% 90%,var(--orange) 90%)}
.site-header .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 24px;padding-top:12px;padding-bottom:12px}
.brand{display:block;text-decoration:none;color:var(--ink);line-height:1.3}
.brand img{display:block;height:52px;width:auto}
@media (prefers-color-scheme:dark){.brand img{background:#fff;padding:4px 8px;border-radius:4px}}
.brand-sub{display:block;font-size:.72rem;color:var(--muted)}
.brand-name{display:block;font-size:1.2rem;font-weight:900}
.nav{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:2px 20px;font-size:.88rem;font-weight:700}
.nav a{color:var(--ink);text-decoration:none;padding:6px 0;position:relative}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .2s}
.nav a:hover::after,.nav a[aria-current]::after{transform:scaleX(1)}
@media (prefers-reduced-motion:reduce){.nav a::after{transition:none}}

/* main */
.main{padding-top:48px;padding-bottom:80px;min-height:55vh}
h1{font-size:clamp(1.6rem,4vw,2.2rem);font-weight:900;line-height:1.35;margin:0 0 28px;letter-spacing:.04em;padding-left:18px;position:relative}
h1::before{content:"";position:absolute;left:0;top:.15em;bottom:.15em;width:6px;background:linear-gradient(var(--blue),var(--cyan));transform:skewX(-12deg)}
h2{font-size:1.2rem;font-weight:700;margin:52px 0 16px;display:flex;align-items:center;gap:12px}
h2::after{content:"";flex:1;height:2px;background:linear-gradient(90deg,var(--orange),transparent)}
p{margin:0 0 1.1em;max-width:42em}

/* hero */
.hero{position:relative;margin:-48px calc(50% - 50vw) 56px;min-height:420px;display:flex;align-items:flex-end;overflow:hidden;
  background:linear-gradient(120deg,var(--blue),var(--cyan))}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;max-width:none}
.hero::before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(100deg,rgba(0,80,190,.92) 0%,rgba(0,140,230,.7) 45%,rgba(0,180,240,.1) 80%)}
.hero::after{content:"";position:absolute;z-index:1;right:-60px;bottom:-40px;width:340px;height:120px;background:var(--yellow);transform:skewX(-24deg);opacity:.95}
.hero-body{position:relative;z-index:2;max-width:960px;width:100%;margin:0 auto;padding:64px 24px 56px;color:#fff}
.hero-en{font-weight:900;font-size:clamp(2.2rem,7vw,4.2rem);line-height:1.25;letter-spacing:.04em;margin:0 0 20px;transform:skewX(-8deg);transform-origin:left;text-shadow:0 3px 0 rgba(0,50,140,.35)}
.hero-lead{font-size:clamp(1.05rem,2.6vw,1.35rem);font-weight:700;line-height:1.7;margin:0 0 28px}
.hero-btn{display:inline-block;background:var(--orange);color:#fff;font-weight:700;text-decoration:none;padding:14px 30px;clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%)}
.hero-btn:hover{background:#e63a00}

/* news */
.news{list-style:none;margin:0;padding:0}
.news li{display:grid;grid-template-columns:10em 1fr;gap:4px 24px;align-items:baseline;padding:20px 8px;border-bottom:1px solid var(--line)}
.news li:first-child{border-top:1px solid var(--line)}
.news time{color:var(--muted);font-size:.88rem;font-weight:500}
.news a{font-weight:700;color:var(--ink);text-decoration:none}
.news a:hover{color:var(--link);text-decoration:underline}
.news li:first-child time{color:var(--orange);font-weight:700}
@media (max-width:600px){.news li{grid-template-columns:1fr}}

.crumb{font-size:.85rem;margin-bottom:10px}
.date{color:var(--muted);font-size:.9rem;margin-top:-16px}

.pdf{display:inline-flex;align-items:center;gap:10px;font-weight:700;padding:12px 26px 12px 18px;background:var(--orange);color:#fff;text-decoration:none;clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%)}
.pdf::before{content:"PDF";font-family:Montserrat,Arial,sans-serif;font-style:italic;font-weight:800;font-size:.72rem;background:#fff;color:var(--orange);padding:2px 7px}
.pdf:hover{background:#e63a00}

.table-wrap{overflow-x:auto}
.info{border-collapse:collapse;width:100%;margin:8px 0 24px}
.info th,.info td{text-align:left;vertical-align:top;padding:14px 16px;border-bottom:1px solid var(--line)}
.info th{white-space:nowrap;color:var(--blue);font-weight:700;width:8em;background:var(--tint)}

.subnav{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0}
.subnav a{padding:8px 18px;border:2px solid var(--blue);color:var(--blue);text-decoration:none;font-weight:700}
.subnav a:hover{background:var(--blue);color:#fff}

.timeline{list-style:none;margin:0;padding:0 0 0 26px;border-left:3px solid var(--cyan)}
.timeline>li{position:relative;padding:0 0 26px 10px}
.timeline>li::before{content:"";position:absolute;left:-35px;top:.5em;width:14px;height:14px;background:var(--orange);transform:rotate(45deg);border:3px solid var(--bg)}
.tl-year{font-weight:900;font-size:1.05rem;margin:0 0 4px}
.tl-year span{font-weight:500;color:var(--muted);font-size:.85rem}
.timeline ul{margin:0;padding-left:1.2em}

.files,.links{list-style:none;padding:0;margin:0}
.files li{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.files span{color:var(--muted);font-size:.85rem}
.links li{border-bottom:1px solid var(--line)}
.links li:first-child{border-top:1px solid var(--line)}
.links a{display:block;padding:16px 8px;font-weight:700;color:var(--ink);text-decoration:none}
.links a:hover{color:var(--link);background:var(--tint)}
.empty{padding:28px;background:var(--tint);border-left:6px solid var(--yellow)}
.map{margin:24px 0 10px;aspect-ratio:16/10;max-height:460px;width:100%}
.map iframe{width:100%;height:100%;border:0}

/* footer */
.site-footer{background:#0a1a33;color:#c9d6e8;font-size:.86rem;line-height:1.8;padding:40px 0 32px;position:relative}
.site-footer::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--orange) 0 10%,var(--yellow) 10% 25%,var(--cyan) 25% 50%,var(--blue) 50%)}
.site-footer p{margin:0}
.site-footer a{color:#fff}
.foot-name{font-weight:700;font-size:1rem;color:#fff;margin-bottom:6px!important}
.copy{opacity:.6;margin-top:16px!important;font-size:.78rem}
