:root{
  --olive:#B6BD1E; --olive-d:#5F6410; --olive-btn:#6E7412; --green:#AEB81B; --yellow:#F8D77C; --orange:#F79F30;
  --cream:#FDF9F2; --cream-2:#F6F0E2; --ink:#222; --sub:#5b5b5b; --rule:#E5E1D6; --white:#fff;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
[id]{scroll-margin-top:84px}
body{margin:0;background:var(--white);color:var(--ink);font-family:"Noto Sans JP",sans-serif;font-size:16px;line-height:1.85;-webkit-text-size-adjust:100%}
a{color:inherit}
img{max-width:100%;display:block}
.round{font-family:"Zen Kaku Gothic Antique","Noto Sans JP",sans-serif;font-weight:700}
.wrap{max-width:1080px;margin:0 auto;padding:0 16px}
/* header */
.hd{border-bottom:1px solid var(--rule);background:#fff;position:sticky;top:0;z-index:10}
.hd .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:68px}
.brand{display:flex;flex-direction:column;line-height:1.3;text-decoration:none}
.brand b{color:var(--olive-d);font-size:17px}
.brand small{color:var(--sub);font-size:11.5px}
.hd nav{display:flex;gap:18px;font-size:14px}
.hd nav a{text-decoration:none}
.hd nav a:hover{color:var(--olive-d)}
.cta-mini{background:var(--olive-btn);color:#fff;text-decoration:none;border-radius:999px;padding:8px 16px;font-size:13.5px;white-space:nowrap}
/* group statement */
.group{background:var(--cream);border-bottom:1px solid var(--rule);font-size:13.5px;text-align:center;padding:8px 16px;color:#4a4a4a}
/* hero */
.hero{position:relative;min-height:220px;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle,#fff 2px,transparent 2.5px) 0 0/22px 22px, linear-gradient(120deg,#c9cf6a,#efe2a8 55%,#f6c98a)}
.hero h1{color:#3d3d1e;font-size:34px;margin:0;letter-spacing:.06em;background:rgba(255,255,255,.82);padding:4px 22px;border-radius:999px}
.crumb{max-width:1080px;margin:8px auto 0;padding:0 16px;font-size:12.5px;color:var(--sub)}
/* layout */
.cols{display:grid;grid-template-columns:230px 1fr;gap:36px;margin:28px auto 64px}
.side .lab{color:var(--olive-d);font-size:12px;letter-spacing:.15em}
.side h2{font-size:21px;margin:2px 0 14px;line-height:1.4}
.side ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.side li a{display:block;padding:11px 6px;border-bottom:1px solid var(--rule);text-decoration:none;font-size:14.5px}
.side li a::before{content:"› ";color:var(--olive)}
.ttl{border-left:6px solid var(--olive);padding:4px 0 4px 14px;font-size:24px;margin:0 0 20px;color:var(--olive-d)}
.h2{color:var(--olive-d);font-size:28px;margin:52px 0 18px;text-align:center}
.h2 small{display:block;color:var(--sub);font-size:13px;font-weight:400;letter-spacing:.12em}
table.req{width:100%;border-collapse:collapse;font-size:15px}
table.req th{width:28%;background:var(--cream);text-align:left;font-weight:500;padding:16px;border:1px solid var(--rule);vertical-align:top}
table.req td{padding:16px;border:1px solid var(--rule);vertical-align:top}
table.req ul{margin:0;padding-left:1.1em}
.tbd{color:var(--sub)}
.note{font-size:13px;color:var(--sub)}
/* cards */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.card{background:var(--cream);border-radius:14px;padding:20px 20px 16px}
.card .no{color:var(--olive-d);font-size:13px;letter-spacing:.1em}
.card h3{margin:2px 0 8px;font-size:18px;line-height:1.5}
.card p{margin:0;font-size:14.5px}
/* entry */
.entry{background:var(--cream-2);padding:44px 16px;text-align:center}
.entry p{margin:0 0 18px}
.btn{display:inline-block;background:var(--yellow);color:#3a3a1a;text-decoration:none;border-radius:10px;padding:16px 34px;font-weight:700;font-size:17px;box-shadow:0 3px 0 #e2bd55}
.btn:hover{filter:brightness(1.03)}
.ft{background:#4a4a3a;color:#f3f0e6;font-size:13px;padding:26px 16px;text-align:center;line-height:1.9}
.ft a{color:#f3f0e6}
@media (max-width:820px){
  .hd nav{display:none}
  .cols{grid-template-columns:1fr;gap:20px}
  .side{order:2}
  .hero{min-height:160px}.hero h1{font-size:26px}
  table.req th,table.req td{display:block;width:100%;border-bottom:none}
  table.req tr:last-child td{border-bottom:1px solid var(--rule)}
  .h2{font-size:23px}
}

.group a{color:inherit;text-decoration:underline}
.ft a{text-decoration:underline}
.flow{margin:0;padding-left:1.6em}
.flow li{background:var(--cream);border:1px solid var(--rule);border-radius:10px;padding:12px 16px;margin:0 0 10px}
