/* 制度ガイド共通スタイル
   CSP（vercel.json）が script-src 'self' / style-src 'self' 'unsafe-inline' のため、
   外部CDNは使わない。フォントも端末同梱のもののみ。 */

:root{
  --ink-950:#0a1426; --ink-900:#13294b; --ink-800:#1a2945; --ink-700:#23365a;
  --ink-500:#3d5d8c; --ink-400:#5d7da9; --ink-300:#90a8c9; --ink-200:#bccce0;
  --ink-100:#dde4f0; --ink-50:#f1f4f9;
  --gold-600:#a06c11; --gold-500:#c08a12; --gold-400:#d4a017; --gold-300:#deb863;
  --gold-100:#f5ebcd; --gold-50:#fbf7ec;
  --red:#dc2626; --red-50:#fef2f2; --emerald:#059669; --emerald-50:#ecfdf5;
  --sans:"Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP",Meiryo,system-ui,-apple-system,"Segoe UI",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  font-family:var(--sans);color:var(--ink-900);background:#fff;line-height:1.85;
  -webkit-font-smoothing:antialiased;font-feature-settings:'palt';overflow-x:hidden;
}
img,svg{max-width:100%;height:auto;display:block;}
.wrap{width:100%;max-width:760px;margin:0 auto;padding:0 20px;}
.tnum{font-variant-numeric:tabular-nums;}

/* header */
header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--ink-100);}
.navbar{display:flex;align-items:center;justify-content:space-between;gap:14px;height:58px;max-width:1080px;margin:0 auto;padding:0 20px;}
.brand{display:flex;align-items:center;gap:9px;font-weight:900;font-size:15.5px;text-decoration:none;color:inherit;white-space:nowrap;}
.brand-mark{width:27px;height:27px;flex:0 0 auto;}
.nav-cta{
  display:inline-flex;align-items:center;justify-content:center;padding:9px 16px;border-radius:10px;
  background:linear-gradient(180deg,#e0ad24 0%,var(--gold-500) 100%);color:#20160a;
  font-weight:800;font-size:13.5px;text-decoration:none;white-space:nowrap;min-height:40px;
}
/* 狭い画面でブランド名とCTAが折り返してヘッダーが2行になるのを防ぐ */
@media(max-width:480px){
  .navbar{gap:10px;}
  .brand{font-size:13.5px;gap:7px;}
  .brand-mark{width:24px;height:24px;}
  .nav-cta{padding:9px 12px;font-size:12.5px;}
}

/* 日本語が語の途中で折り返されるのを防ぐ（意味のまとまり単位で改行させる） */
.nb{display:inline-block;}

/* breadcrumb */
.crumb{font-size:12.5px;color:var(--ink-400);padding:20px 0 0;}
.crumb a{color:var(--ink-500);text-decoration:none;}
.crumb a:hover{color:var(--gold-500);}

/* article head */
.ahead{padding:14px 0 26px;border-bottom:1px solid var(--ink-100);margin-bottom:34px;}
.ahead h1{font-size:clamp(24px,4.4vw,36px);font-weight:900;line-height:1.34;letter-spacing:.01em;margin:10px 0 14px;}
.ahead .desc{font-size:16px;color:var(--ink-500);line-height:1.85;}
.ameta{display:flex;flex-wrap:wrap;gap:14px;font-size:12.5px;color:var(--ink-400);margin-top:16px;}
.tag{display:inline-block;background:var(--gold-50);color:var(--gold-600);font-size:12px;font-weight:800;padding:4px 11px;border-radius:7px;}

/* toc */
.toc{background:var(--ink-50);border:1px solid var(--ink-100);border-radius:14px;padding:20px 24px;margin:0 0 38px;}
.toc h2{font-size:14px;font-weight:900;letter-spacing:.06em;color:var(--ink-700);margin-bottom:11px;border:none;padding:0;}
.toc ol{margin-left:19px;font-size:14.5px;}
.toc li{padding:3px 0;}
.toc a{color:var(--ink-500);text-decoration:none;}
.toc a:hover{color:var(--gold-500);text-decoration:underline;}

/* body */
article h2{
  font-size:clamp(19px,2.8vw,25px);font-weight:900;line-height:1.4;letter-spacing:.01em;
  margin:52px 0 16px;padding-bottom:10px;border-bottom:2px solid var(--gold-300);scroll-margin-top:74px;
}
article h3{font-size:clamp(16.5px,2.2vw,19px);font-weight:800;line-height:1.5;margin:32px 0 11px;scroll-margin-top:74px;}
article p{font-size:15.5px;line-height:1.95;margin-bottom:17px;color:var(--ink-800);}
article ul,article ol{margin:0 0 19px 22px;font-size:15.5px;line-height:1.9;color:var(--ink-800);}
article li{margin-bottom:7px;}
article a{color:var(--gold-600);text-decoration:underline;text-underline-offset:2px;}
article strong,article b{font-weight:800;color:var(--ink-900);}

/* table */
.tbl-scroll{overflow-x:auto;margin:0 0 24px;-webkit-overflow-scrolling:touch;}
table{border-collapse:collapse;width:100%;min-width:460px;font-size:14.5px;}
th,td{border:1px solid var(--ink-100);padding:11px 13px;text-align:left;vertical-align:top;line-height:1.7;}
th{background:var(--ink-50);font-weight:800;color:var(--ink-700);white-space:nowrap;}
td b{font-weight:800;}

/* callouts */
.note,.warn,.tip{border-radius:12px;padding:17px 20px;margin:0 0 24px;font-size:14.5px;line-height:1.85;}
.note{background:var(--ink-50);border:1px solid var(--ink-100);color:var(--ink-700);}
.warn{background:var(--red-50);border:1px solid #fecaca;color:#7f1d1d;}
.tip{background:var(--emerald-50);border:1px solid #a7f3d0;color:#065f46;}
.note b,.warn b,.tip b{font-weight:900;}

/* in-article CTA */
.cta{
  background:
    radial-gradient(120% 90% at 12% -25%, rgba(212,160,23,.20), transparent 58%),
    linear-gradient(158deg,#1a2945 0%, #0c1b34 100%);
  color:#fff;border-radius:18px;padding:30px 28px;margin:44px 0;
}
.cta h3{color:#fff;font-size:20px;font-weight:900;line-height:1.45;margin:0 0 10px;}
.cta p{color:var(--ink-200);font-size:14.5px;line-height:1.8;margin-bottom:20px;}
.cta .btn{
  display:inline-flex;align-items:center;gap:9px;padding:14px 26px;border-radius:12px;min-height:50px;
  background:linear-gradient(180deg,#e0ad24 0%,var(--gold-500) 100%);color:#20160a;
  font-weight:800;font-size:15.5px;text-decoration:none;box-shadow:0 6px 18px rgba(192,138,18,.3);
}
.cta .sub{font-size:12px;color:var(--ink-300);margin:14px 0 0;}

/* sources */
.sources{margin-top:52px;padding-top:26px;border-top:1px solid var(--ink-100);}
.sources h2{font-size:16px;border:none;padding:0;margin:0 0 12px;}
.sources ol{font-size:13.5px;line-height:1.8;color:var(--ink-500);margin-left:20px;}
.sources a{color:var(--ink-500);word-break:break-all;}

/* related */
.related{margin-top:44px;}
.related h2{font-size:17px;border:none;padding:0;margin:0 0 14px;}
.rlist{display:grid;gap:11px;}
.rlist a{
  display:block;border:1px solid var(--ink-100);border-radius:12px;padding:15px 18px;
  text-decoration:none;color:var(--ink-900);font-weight:700;font-size:14.5px;line-height:1.6;
}
.rlist a:hover{border-color:var(--gold-300);background:var(--gold-50);}
.rlist span{display:block;font-weight:500;font-size:13px;color:var(--ink-400);margin-top:4px;line-height:1.6;}

/* hub */
.hub-hero{background:var(--ink-50);border-bottom:1px solid var(--ink-100);padding:44px 0 40px;margin-bottom:44px;}
.hub-hero h1{font-size:clamp(25px,4.4vw,36px);font-weight:900;line-height:1.3;margin-bottom:12px;}
.hub-hero p{font-size:15.5px;color:var(--ink-500);line-height:1.85;}
.hub-sec{margin-bottom:44px;}
.hub-sec h2{font-size:19px;font-weight:900;margin-bottom:14px;padding-bottom:9px;border-bottom:2px solid var(--gold-300);}
.hub-empty{font-size:14px;color:var(--ink-400);padding:14px 0;}

/* footer */
footer{background:var(--ink-950);color:var(--ink-300);padding:36px 0;font-size:13px;margin-top:60px;}
.flinks{display:flex;flex-wrap:wrap;gap:18px;margin-bottom:15px;}
.flinks a{color:var(--ink-200);text-decoration:none;font-weight:700;}
.flinks a:hover{color:var(--gold-300);}
.fdisc{line-height:1.75;color:var(--ink-400);font-size:12px;}
