:root{
  --navy:#18408a; --navy-deep:#0a2456; --blue:#4578d8; --aqua:#2aaadd; --blue-soft:#eef3fa;
  --yellow:#ffe95c; --ink:#0f1b3d; --gray:#5b6478; --line:#e1e7f0; --bg:#f5f8fa;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:"Inter","Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;color:var(--ink);background:#fff;line-height:2;-webkit-font-smoothing:antialiased}
a{text-decoration:none;color:inherit}
.wrap{max-width:820px;margin:0 auto;padding:0 28px}

.header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(6px)}
.header::after{content:"";display:block;height:3px;background:linear-gradient(90deg,#4578d8,#2aaadd)}
.header .wrap{max-width:1200px;display:flex;align-items:center;justify-content:space-between;height:72px}
.logo{display:flex;align-items:center}
.logo img{height:38px;width:auto;display:block}
.logo .mark{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,#4578d8,#18408a);display:flex;align-items:center;justify-content:center}
.logo .mark svg{width:17px;height:17px}
.back{font-size:13px;font-weight:600;color:#39435a}
.back:hover{color:var(--navy)}

.btn{display:inline-block;color:#fff;font-size:15px;font-weight:700;padding:13px 32px;border-radius:50px;text-align:center;background:linear-gradient(90deg,#2f6fe0,#2aaadd);box-shadow:0 8px 22px rgba(24,64,138,.28);transition:box-shadow .18s}
.btn:hover{box-shadow:0 10px 26px rgba(24,64,138,.4)}
.btn::after{content:"→";margin-left:9px;font-weight:900}

/* hero */
.i-hero{background:linear-gradient(160deg,#f2f6fe 0%,#fff 70%);padding:56px 0 48px;border-bottom:1px solid var(--line)}
.crumb{font-size:12px;color:var(--gray);margin-bottom:18px}
.crumb a{color:var(--blue)}
.i-label{font-size:12px;font-weight:700;color:var(--blue);letter-spacing:.2em;margin-bottom:10px}
.i-hero h1{font-size:32px;line-height:1.6;color:var(--navy-deep);font-weight:900;margin-bottom:28px}
.person{display:flex;align-items:center;gap:22px}
.photo{width:120px;height:120px;border-radius:50%;flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:34px;background:linear-gradient(135deg,#9db6e3,#5f86cf);line-height:1.2}
.photo small{font-size:10px;font-weight:600;opacity:.9;margin-top:4px}
.photo.logo{border-radius:16px;background:#fff;border:2px dashed #b8c4d8;color:var(--navy-deep);font-size:20px;font-family:"Inter",sans-serif}
.photo.logo small{color:var(--gray)}
.person .co{font-size:13px;color:var(--gray)}
.person .nm{font-size:22px;font-weight:700;color:var(--navy-deep);line-height:1.5}
.person .biz{display:inline-block;font-size:12px;background:var(--blue-soft);color:var(--navy);border-radius:99px;padding:2px 12px;margin-top:6px;font-weight:600}
.person .site{display:block;font-size:12px;color:var(--blue);margin-top:4px}

.draft-banner{background:#fdf2e3;color:#8a5a12;font-size:12.5px;border-radius:8px;padding:10px 16px;margin-top:26px;line-height:1.8}

/* summary */
.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:40px 0 0}
.summary div{background:var(--bg);border-radius:10px;padding:16px 14px;text-align:center;line-height:1.5}
.summary span{display:block;font-size:11.5px;color:var(--gray);margin-bottom:4px}
.summary b{font-size:18px;color:var(--navy-deep);font-family:"Inter","Noto Sans JP",sans-serif}
.summary b em{font-style:normal;color:var(--blue)}

.profile{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px 24px;margin:28px 0 0;font-size:14px}
.profile dl{display:grid;grid-template-columns:110px 1fr;gap:6px 14px}
.profile dt{color:var(--gray);font-weight:600}

/* article */
article{padding:20px 0 60px}
article h2{font-size:22px;color:var(--navy-deep);line-height:1.7;margin:56px 0 20px;padding-left:16px;border-left:5px solid var(--blue)}
.qa{margin-bottom:22px}
.qa .q{font-weight:700;color:var(--navy);font-size:15px;margin-bottom:8px}
.qa .q::before{content:"―― ";color:#9aa8c2}
.qa .a{font-size:15.5px;color:#2c3648}
.qa .a b{background:linear-gradient(transparent 62%,var(--yellow) 62%)}
.pull{margin:34px 0;padding:26px 30px;background:var(--blue-soft);border-radius:12px;font-size:20px;font-weight:700;color:var(--navy-deep);line-height:1.8;position:relative}
.pull::before{content:"“";position:absolute;top:-6px;left:14px;font-size:64px;color:#b9cdf0;font-family:Georgia,serif;line-height:1}
.pull span{position:relative}
.ph-shot{margin:28px 0;height:240px;border:2px dashed #c8d0dd;background:var(--bg);border-radius:12px;display:flex;align-items:center;justify-content:center;color:#93a1b8;font-size:13px;text-align:center}

/* cta */
.i-cta{background:linear-gradient(150deg,#0a2456 0%,#18408a 55%,#2f6fe0 100%);color:#fff;text-align:center;padding:64px 0}
.i-cta h2{font-size:24px;margin-bottom:10px;line-height:1.7}
.i-cta p{font-size:14px;opacity:.9;margin-bottom:26px}

.others{padding:56px 0 70px;background:var(--bg)}
.others h3{text-align:center;font-size:18px;color:var(--navy-deep);margin-bottom:22px}
.others .list{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.others a{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 18px;transition:box-shadow .2s}
.others a:hover{box-shadow:0 8px 22px rgba(24,64,138,.10)}
.others .av{width:52px;height:52px;border-radius:50%;flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;background:linear-gradient(135deg,#9db6e3,#5f86cf)}
.others .av.logo{border-radius:10px;background:#fff;border:1.5px dashed #b8c4d8;color:var(--navy-deep);font-size:11px}
.others .t{font-size:13.5px;font-weight:700;color:var(--navy-deep);line-height:1.6}
.others .w{font-size:11.5px;color:var(--gray)}

footer{background:#14182f;color:#8a93a1;padding:36px 0;font-size:12px;text-align:center}
footer .demo{margin-top:8px;color:#5d6675}

@media (max-width:760px){
  .wrap{padding:0 16px}
  .i-hero h1{font-size:24px}
  .person{flex-direction:column;align-items:flex-start}
  .summary{grid-template-columns:1fr}
  .others .list{grid-template-columns:1fr}
  .profile dl{grid-template-columns:1fr}
  .pull{font-size:17px;padding:22px 20px}
}

/* v16: シート準拠の目次・章番号・回答待ち枠 */
.toc{background:var(--bg);border-radius:12px;padding:20px 26px;margin:28px 0 0}
.toc-h{font-size:13px;font-weight:700;color:var(--gray);letter-spacing:.1em;margin-bottom:6px}
.toc ol{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:2px 20px}
.toc a{display:flex;gap:10px;font-size:14px;color:var(--navy-deep);font-weight:600;padding:4px 0}
.toc a span{color:var(--blue);font-family:"Inter",sans-serif;font-weight:800}
.toc a:hover{color:var(--blue)}
article h2 .sn{display:inline-block;font-family:"Inter",sans-serif;color:var(--blue);font-weight:800;margin-right:12px}
.qa .a.pending{background:#fafbfd;border:1.5px dashed #cdd5e3;border-radius:10px;padding:14px 18px;font-size:13px;color:#98a1b3;line-height:1.8}
.qa .a.pending b{display:inline-block;background:#fdf2e3;color:#b06e13;font-size:11px;border-radius:4px;padding:0 8px;margin-right:10px;background-image:none}
.pending-pull{color:#98a1b3;font-weight:600;font-size:16px}
@media (max-width:760px){.toc ol{grid-template-columns:1fr}}
