:root{
  --navy:#18408a; --navy-deep:#0a2456; --blue:#4578d8; --aqua:#2aaadd; --blue-soft:#eef3fa;
  --yellow:#fff1a0; --accent:#1f5fd6; --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}
h1,h2,h3,.i-cta h2,.qa .q,.pull,.others .t,.toc a,.person .nm{word-break:auto-phrase;text-wrap:balance}
p,.qa .a,.draft-banner,.profile dd,.summary span{text-wrap:pretty}
.nw-tail{white-space:nowrap}
.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-flex;align-items:center;justify-content:center;gap:16px;color:var(--accent);background:#fff;font-size:15px;font-weight:700;padding:13px 14px 13px 32px;border-radius:8px;text-align:center;transition:background .18s}
.btn:hover{background:#f5f8fe}
.btn::after{content:"→";width:30px;height:30px;line-height:30px;text-align:center;border-radius:4px;background:var(--accent);color:#fff;font-weight:800;font-size:15px;flex:0 0 auto;transition:transform .18s}
.btn:hover::after{transform:translateX(3px)}

.hd-cta{display:none}
.hd-b{width:64px;height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10px;font-weight:700;color:#fff;background:var(--accent);line-height:1.2}
.hd-b.demo{background:var(--navy-deep)}
.hd-b svg{width:22px;height:22px}

/* 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(--accent)}
.i-label{font-size:13px;font-weight:700;color:var(--accent);letter-spacing:.08em;margin-bottom:12px}
.i-label::before{content:"( "}
.i-label::after{content:" )"}
.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,.others .av{position:relative;overflow:hidden}
.photo>img,.others .av>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.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);margin:40px 0 0}
.summary div{padding:2px 20px;border-left:1px solid #cfd8e6;line-height:1.5}
.summary div:first-child{padding-left:0;border-left:none}
.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(--accent)}

.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:4px solid var(--accent)}
.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-color:var(--accent);background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1px);background-size:5px 5px;color:#fff;padding:80px 0}
.i-cta h2{font-size:30px;font-weight:900;margin-bottom:14px;line-height:1.6}
.i-cta p{font-size:15px;opacity:.95;margin-bottom:30px}

.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 a::after{content:"→";margin-left:auto;width:28px;height:28px;line-height:28px;text-align:center;border-radius:4px;background:var(--accent);color:#fff;font-weight:800;font-size:14px;flex:0 0 auto}
.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}
  .header .wrap{height:64px;padding-right:0}
  .logo img{height:32px}
  .back{display:none}
  .hd-cta{display:flex}
  .i-cta{padding:64px 0}
  .i-cta h2{font-size:21px}
  .summary{grid-template-columns:1fr}
  .summary div{padding:12px 0;border-left:none;border-top:1px solid #cfd8e6}
  .summary div:first-child{border-top:none;padding-top:0}
  .person{flex-direction:column;align-items:flex-start}
  .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(--accent);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(--accent);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}}

/* 実データ: 写真・記事FV・ロゴ */
.photo.img,.others .av.img{background:#e9eef6;overflow:hidden}
.photo.img img,.others .av.img img{width:100%;height:100%;object-fit:cover;display:block}
.photo.brand,.others .av.brand{background:#fff;border:1px solid #dfe5ef;overflow:hidden}
.photo.brand img,.others .av.brand img{width:100%;height:100%;object-fit:contain;display:block}
.hero-logo{width:110px;height:110px;margin-left:auto;object-fit:contain;flex:0 0 auto}
@media (max-width:760px){
  .hero-logo{display:none}
}

.reply{margin-top:12px;padding:12px 16px;background:var(--bg);border-radius:8px;font-size:13.5px;line-height:1.9;color:var(--gray)}
.reply-h{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--navy)}
.reply-h img{border-radius:3px}

/* 読みやすさ: リード文・話し手・段落 */
.i-hero .lead{font-size:15px;line-height:2;color:#3a4458;margin:-10px 0 28px;max-width:680px}
.qa .a .sp{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:var(--navy);margin-bottom:4px;line-height:1.6}
.qa .a .sp img{width:24px;height:24px;border-radius:50%;object-fit:cover}
.qa .a .sp img.brand{object-fit:contain;background:#fff;border:1px solid #dfe5ef}
.qa .a p+p{margin-top:.9em}
.qa{margin-bottom:34px}
.mid-photo{margin:40px 0}
.mid-photo img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;object-position:50% 35%;border-radius:12px;display:block}
.points{margin:56px 0 0;padding:24px 28px;border:1px solid var(--line);border-radius:12px;background:#fff}
.points-h{font-size:15px;font-weight:700;color:var(--navy-deep);margin-bottom:8px}
.points ol{list-style:none;counter-reset:pt}
.points li{counter-increment:pt;position:relative;padding-left:34px;font-size:14.5px;line-height:1.9;margin-top:8px}
.points li::before{content:counter(pt);position:absolute;left:0;top:3px;width:22px;height:22px;border-radius:50%;background:var(--navy);color:#fff;font-size:12px;font-weight:700;line-height:22px;text-align:center}

/* ヒーローは白背景(ロゴが溶けないように) */
.i-hero{background:#fff}

/* ヒーロー右に縦長の記事FV */
.i-hero.has-fv .wrap{display:grid;grid-template-columns:1fr 280px;column-gap:44px;max-width:960px}
.i-hero.has-fv .wrap>*{grid-column:1}
.i-hero.has-fv .fv{grid-column:2;grid-row:1 / span 7;width:100%;height:auto;aspect-ratio:2/3;object-fit:cover;border-radius:12px;align-self:start}
@media (max-width:760px){
  .i-hero.has-fv .wrap{display:block}
  .i-hero.has-fv .fv{display:block;aspect-ratio:4/3;object-position:50% 50%;margin:0 0 24px}
}
.co-logo{width:40px;height:auto;vertical-align:middle;margin-right:10px}
.profile dd:has(.co-logo){display:flex;align-items:center}

/* スマホ: 人物欄を横並びにして、数字欄を詰める */
@media (max-width:760px){
  .person{flex-direction:row;align-items:center;gap:16px}
  .photo{width:84px;height:84px;font-size:24px}
  .person .nm{font-size:19px}
  .person .biz{font-size:11px;padding:2px 10px}
  .summary{margin-top:26px}
  .summary div{padding:9px 0;display:flex;justify-content:space-between;align-items:baseline;gap:12px}
  .summary span{margin:0}
  .summary b{font-size:16px}
  .i-hero{padding:28px 0 32px}
}

/* 質問は balance だと前半で早く折れて不自然なので、普通に詰めて最後だけ整える */
.qa .q{text-wrap:pretty}

@media (max-width:760px){
  /* 数字欄は3列にして、ラベルの下に値 */
  .summary{grid-template-columns:repeat(3,1fr);margin-top:24px}
  .summary div,.summary div:first-child{display:block;padding:0 10px;border-top:none;border-left:1px solid #cfd8e6}
  .summary div:first-child{padding-left:0;border-left:none}
  .summary span{font-size:10.5px;margin-bottom:4px}
  .summary b{font-size:14px;line-height:1.45;display:block;word-break:auto-phrase}
  /* 会社概要は項目名を小さく、値との間をあける */
  .profile{padding:18px 18px 6px}
  .profile dl{gap:0}
  .profile dt{font-size:11.5px;font-weight:600;color:#8a93a6;line-height:1.6}
  .profile dd{font-size:14px;line-height:1.8;margin-bottom:14px}
  .co-logo{width:36px}
}
.qa .q .qs{display:inline-block}
@media (max-width:760px){
  /* 引用の値は長いので、スマホは縦に積む(項目名の下に値) */
  .summary{grid-template-columns:1fr}
  .summary div,.summary div:first-child{padding:10px 0;border-left:none;border-top:1px solid #cfd8e6}
  .summary div:first-child{border-top:none;padding-top:0}
  .summary b{font-size:15.5px}
}
@media (min-width:761px){
  .summary b{font-size:16px;white-space:nowrap}
}

/* 読者に伝えたい一節: 文字の下半分だけ薄い黄色 */
.qa .a mark{background:linear-gradient(transparent 58%,var(--yellow) 58%);color:inherit;padding:0 1px}
