/* =========================================================
   A-Source 共通の見た目（トップ・サービス・代表の3ページで使う）
   文字＝A（太い見出し）／ボタンと写真の置き方＝B（四角・細い線）
   色＝トンマナ（濃紺を大きく・青は小見出しと数字・金は強調）
   ========================================================= */
:root{
  --navy:#0b1730;--navy-2:#152343;--navy-line:rgba(255,255,255,.14);
  --blue:#2f5fa8;--gold:#d0a94e;--gold-soft:#f0e2c2;
  --paper:#f7f8fc;--paper-2:#eef1f7;--ink:#43506b;--ink-muted:#6b7280;--line:#dce0e8;
  --on-navy:#c9d2e4;--on-navy-muted:#8d9bb8;
  --header:88px;
}
*{box-sizing:border-box}
html{scroll-padding-top:calc(var(--header) + 24px)}
body{margin:0;background:var(--paper);color:var(--navy);font-family:"Noto Sans JP",sans-serif;font-size:16px;line-height:1.95;
  -webkit-font-smoothing:antialiased;word-break:auto-phrase;line-break:strict;overflow-wrap:break-word}
a{color:inherit;text-decoration:none}
button{font:inherit}
img{display:block;max-width:100%;height:auto}
p,h1,h2,h3,figure,blockquote,dl,dd,ul,ol{margin:0}
ul,ol{padding:0;list-style:none}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:5px}
.wrap{width:min(1248px,calc(100% - 112px));margin-inline:auto}
.nw{white-space:nowrap}
.pc{display:none}
@media(min-width:900px){.pc{display:inline}}
.gold{color:var(--gold)}

/* ---------- ヘッダー ---------- */
.site-header{position:fixed;inset:0 0 auto;height:var(--header);z-index:20;background:var(--navy);color:#fff;border-bottom:1px solid #ffffff19}
.header-inner{height:100%;padding-inline:40px;display:flex;align-items:center;gap:28px}
.brand{display:flex;align-items:center;flex-shrink:0;gap:9px}
.brand img{width:48px}
.brand-name{display:block;font-family:Montserrat,sans-serif;font-size:23px;font-weight:600;line-height:1.3;letter-spacing:.1em}
.brand-note{display:block;font-size:10px;font-weight:400;letter-spacing:.07em;margin-top:3px;color:#e1e5ed}
.site-nav{margin-left:auto;display:flex;align-items:center;gap:25px}
.site-nav a{font-size:13px;font-weight:500;white-space:nowrap}
.site-nav a:hover,.site-nav a[aria-current="page"]{color:var(--gold)}
.header-book{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 21px;background:var(--gold);color:var(--navy);font-size:13px;font-weight:700;white-space:nowrap;border-radius:3px}
.header-book:hover{background:#dfbd6f}
.menu-toggle{display:none}
main{padding-top:var(--header)}
@media(max-width:1190px){.header-inner{padding-inline:28px;gap:22px}.site-nav{gap:16px}.site-nav a{font-size:12px}.brand-name{font-size:21px}.wrap{width:calc(100% - 72px)}}
@media(max-width:1020px){
  :root{--header:78px}
  .header-inner{gap:18px}
  .menu-toggle{display:block;color:#fff;background:none;border:0;padding:9px 0;font-size:13px;cursor:pointer;margin-left:auto;white-space:nowrap}
  .site-nav{display:none;position:absolute;top:100%;left:0;right:0;padding:16px 28px 24px;background:var(--navy);border-bottom:1px solid #ffffff30}
  .site-nav.is-open{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
  .site-nav a{font-size:14px;padding:11px 0;border-bottom:1px solid #ffffff20}
}
@media(max-width:700px){
  :root{--header:76px}
  .wrap{width:calc(100% - 40px)}
  .header-inner{padding-inline:14px;gap:12px}
  .brand{gap:3px}.brand img{width:30px}
  .brand-name{font-size:15px;letter-spacing:.06em}
  .brand-note{display:none}
  .menu-toggle{font-size:11px}
  .header-book{padding:8px 10px;font-size:11px;min-height:40px}
}
@media(max-width:360px){.header-inner{padding-inline:10px;gap:8px}.brand img{width:25px}.brand-name{font-size:14px}.header-book{padding-inline:8px;font-size:10px}.menu-toggle{font-size:10px}}

/* ---------- ボタン（B：四角・細い矢印） ---------- */
.arrow{width:19px;height:10px;display:inline-block;position:relative;flex-shrink:0;border-bottom:1px solid currentColor;transform:translateY(-4px)}
.arrow::after{content:"";width:7px;height:7px;border-top:1px solid currentColor;position:absolute;right:0;bottom:-1px;transform:rotate(40deg);transform-origin:right center}
.button-primary{min-height:60px;padding:15px 21px;display:inline-flex;justify-content:center;align-items:center;gap:22px;background:var(--gold);color:var(--navy);border-radius:3px;font-size:15px;font-weight:700}
.button-primary:hover{background:#dfbd6f}
.button-ghost{min-height:60px;padding:15px 21px;display:inline-flex;justify-content:center;align-items:center;gap:22px;border:1px solid #ffffff6b;color:#fff;border-radius:3px;font-size:15px;font-weight:500}
.button-ghost:hover{border-color:var(--gold);color:var(--gold)}
.button-report{display:inline-flex;align-items:center;justify-content:space-between;gap:45px;min-height:59px;border:1px solid #9ba4b5;padding:12px 23px;font-size:15px;font-weight:500;border-radius:3px;background:#fff}
.button-report:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.button-navy{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-height:56px;padding:12px 22px;background:var(--navy);color:#fff;border-radius:3px;font-size:15px;font-weight:700}
.button-navy:hover{background:#1b2c52}
.text-link{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:700;color:var(--blue);border-bottom:1px solid currentColor;padding-bottom:2px}
.more-row{margin-top:44px;display:flex;justify-content:flex-end}
@media(max-width:700px){.more-row .button-report,.more-row .button-navy{width:100%;gap:12px}}

/* ---------- 段の共通 ---------- */
.section{padding:104px 0}
.section--white{background:#fff}
.section--paper{background:var(--paper)}
.section--navy{background:var(--navy);color:#fff}
.eyebrow{display:flex;align-items:center;gap:13px;font-family:Montserrat,sans-serif;font-size:12px;font-weight:700;letter-spacing:.28em;color:var(--blue)}
.eyebrow::before{content:"";width:27px;height:2px;background:var(--gold)}
.section--navy .eyebrow,.page-hero .eyebrow{color:var(--gold)}
h2{font-size:clamp(28px,3vw,42px);font-weight:900;letter-spacing:.03em;margin-top:9px;line-height:1.4}
.sec-head{margin-bottom:48px}
.sec-head--split{display:grid;grid-template-columns:1fr 1.48fr;align-items:end;gap:64px}
.lead{margin-top:18px;font-size:17px;line-height:2;color:var(--ink);max-width:46em}
.sec-head--split .lead{margin-top:0}
.section--navy .lead{color:var(--on-navy)}
@media(max-width:1020px){.sec-head--split{grid-template-columns:1fr;gap:0}.sec-head--split .lead{margin-top:18px}}
@media(max-width:700px){.section{padding:64px 0}.sec-head{margin-bottom:32px}.eyebrow{font-size:11px}h2{font-size:29px;margin-top:8px}.lead{font-size:16px}}

/* フェードイン：写真の切り替えと同じように、ゆっくり浮かび上がる（1回だけ） */
.js-reveal .reveal{opacity:0;transform:translate3d(0,24px,0);transition:opacity 1.1s cubic-bezier(.25,.1,.25,1),transform 1.2s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}.js-reveal .reveal.is-shown{opacity:1;transform:none}@media(max-width:700px){.js-reveal .reveal{transform:translate3d(0,14px,0)}}
@media(prefers-reduced-motion:reduce){.js-reveal .reveal{opacity:1;transform:none;transition:none}}

/* ---------- サービス（トップの3枚） ---------- */
.steps3{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.step{position:relative;background:var(--paper);border-top:3px solid var(--navy);padding:28px 26px 26px;display:flex;flex-direction:column}
.step:not(:last-child)::after{content:"→";position:absolute;right:-27px;top:50%;width:22px;height:22px;display:grid;place-items:center;font-family:Montserrat,sans-serif;font-size:14px;color:var(--gold);transform:translateY(-50%)}
.step-no{font-family:Montserrat,sans-serif;font-size:12px;font-weight:700;letter-spacing:.2em;color:var(--blue)}
.step-verb{margin-top:10px;font-size:13.5px;font-weight:700;color:var(--gold);letter-spacing:.06em}
.step h3{font-size:22px;font-weight:900;line-height:1.5;margin-top:2px}
.step h3 small{font-size:15px;font-weight:700}
.step-note{margin-top:8px;font-size:15px;color:var(--ink);line-height:1.85}
.step-price{margin-top:auto;padding-top:20px}
.step-price-in{border-top:1px solid var(--line);padding-top:16px;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px}
.step-price-label{font-size:13px;font-weight:700;color:var(--ink)}
.step-price-num{font-family:Montserrat,sans-serif;font-size:36px;font-weight:700;line-height:1;color:var(--blue)}
.step-price-num small{font-family:"Noto Sans JP",sans-serif;font-size:16px;font-weight:700;margin-left:2px}
.step-price-ask{font-size:18px;font-weight:900;color:var(--navy)}
.step-price-note{width:100%;font-size:12.5px;color:var(--ink-muted);line-height:1.7}
.goal{margin-top:32px;background:var(--navy);color:#fff;padding:20px 26px;border-left:4px solid var(--gold);font-size:16px;line-height:1.9}
.goal b{color:var(--gold)}
@media(max-width:960px){.steps3{grid-template-columns:1fr;gap:28px}.step:not(:last-child)::after{content:"↓";right:auto;left:50%;top:auto;bottom:-27px;transform:translateX(-50%)}}

/* ---------- 代表紹介 ---------- */
.prof{display:grid;grid-template-columns:5fr 7fr;gap:64px;align-items:start}
.prof-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 30%;border-radius:3px}
.prof-name{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 14px;margin-top:18px}
.prof-name b{font-size:32px;font-weight:900;letter-spacing:.06em;line-height:1.3}
.prof-name span{font-size:13px;color:var(--ink)}
.prof-role{margin-top:4px;font-size:14px;font-weight:700;color:var(--ink)}
.prof-aibou{margin-top:14px;font-size:14px;font-weight:700;color:var(--gold)}
.prof h3{margin-top:22px;font-size:clamp(21px,2vw,26px);font-weight:900;line-height:1.55}
.prof-text{margin-top:14px;font-size:16px;color:var(--ink)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.chips li{font-size:13px;font-weight:700;padding:4px 12px;border:1px solid var(--line);border-radius:3px;background:#fff;color:var(--navy)}
.motto{margin-top:24px;position:relative;background:var(--navy);color:#fff;padding:24px 26px 22px;border-radius:3px;overflow:hidden}
.motto::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--gold)}
.motto-label{font-size:12.5px;font-weight:700;color:var(--gold);letter-spacing:.08em}
.motto-words{margin-top:4px;font-size:clamp(18px,1.9vw,22px);font-weight:900;line-height:1.6}
.motto-text{margin-top:8px;font-size:14.5px;line-height:1.9;color:var(--on-navy)}
.creds{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:20px;font-size:14px;font-weight:700}
.creds li{display:flex;align-items:center;gap:8px}
.creds img{width:30px;height:30px;object-fit:contain}
.creds .book-dot{width:30px;height:30px;display:grid;place-items:center;background:var(--navy);color:var(--gold);border-radius:50%;font-size:13px}
@media(max-width:900px){.prof{grid-template-columns:1fr;gap:28px}.prof-photo{max-width:420px}}

/* ---------- お知らせ ---------- */
.news{border-top:1px solid var(--navy)}
.news li{border-bottom:1px solid var(--line)}
.news-item{display:grid;grid-template-columns:120px 92px 1fr 32px;align-items:center;gap:16px;padding:22px 8px;transition:background-color .2s}
a.news-item:hover{background:var(--paper)}
.news-date{font-family:Montserrat,sans-serif;font-size:14px;font-weight:700;color:var(--navy);letter-spacing:.04em}
.news-tag{justify-self:start;font-size:12px;font-weight:700;color:var(--blue);border:1px solid var(--blue);border-radius:3px;padding:1px 9px;white-space:nowrap}
.news-tag--report{color:#fff;background:var(--blue)}
.news-title{font-size:15.5px;line-height:1.8}
.news-go{width:32px;height:32px;border:1px solid #9ba4b5;border-radius:50%;display:grid;place-items:center;color:var(--navy)}
.news-go .arrow{width:12px;transform:translateY(-2px)}
.news-go .arrow::after{width:5px;height:5px}
@media(max-width:700px){.news-item{grid-template-columns:auto 1fr 28px;grid-template-areas:"date tag go" "title title go";gap:6px 12px;padding:18px 4px}.news-date{grid-area:date}.news-tag{grid-area:tag}.news-title{grid-area:title;font-size:15px}.news-go{grid-area:go;width:28px;height:28px}}

/* ---------- よくある質問 ---------- */
.faq{border-top:1px solid var(--navy)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:34px 1fr 24px;gap:10px;align-items:start;padding:22px 4px;font-size:16.5px;font-weight:700;line-height:1.75}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q";font-family:Montserrat,sans-serif;font-size:20px;font-weight:700;color:var(--blue);line-height:1.4}
.faq summary::after{content:"＋";justify-self:end;color:var(--gold);font-weight:700}
.faq details[open] summary::after{content:"－"}
.faq .ans{display:grid;grid-template-columns:34px 1fr;gap:10px;padding:0 4px 24px;font-size:15.5px;color:var(--ink);line-height:1.95}
.faq .ans::before{content:"A";font-family:Montserrat,sans-serif;font-size:20px;font-weight:700;color:var(--gold);line-height:1.4}
@media(max-width:700px){.faq summary{font-size:15.5px;padding:18px 2px}.faq .ans{font-size:15px}}

/* ---------- 30分無料相談（濃紺） ---------- */
.cta{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center}
.cta h2{color:#fff}
.cta-lead{margin-top:20px;font-size:16.5px;color:var(--on-navy);line-height:2}
.cta-btns{margin-top:32px;display:flex;flex-wrap:wrap;gap:14px}
.cta-card{background:var(--navy-2);border:1px solid var(--navy-line);border-top:3px solid var(--gold);padding:12px 28px;border-radius:3px}
.cta-card div{display:grid;grid-template-columns:8.5em 1fr;gap:12px;padding:16px 0;border-bottom:1px solid var(--navy-line);font-size:15px;line-height:1.85}
.cta-card div:last-child{border-bottom:0}
.cta-card dt{font-size:13.5px;font-weight:700;color:var(--gold)}
.cta-card dd{color:#fff}
@media(max-width:960px){.cta{grid-template-columns:1fr;gap:36px}}
@media(max-width:700px){.cta-btns{flex-direction:column}.cta-btns a{width:100%;justify-content:space-between}.cta-card{padding:6px 18px}.cta-card div{grid-template-columns:1fr;gap:2px}}

/* ---------- フッター ---------- */
.site-footer{background:#070f22;color:var(--on-navy);padding:64px 0 28px;font-size:14px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
.footer-grid .brand{color:#fff}
.footer-grid .brand-note{color:var(--on-navy-muted)}
.footer-tag{margin-top:18px;line-height:1.9}
.footer-tag a{text-decoration:underline;text-underline-offset:3px}
.footer-grid h4{margin:0 0 12px;font-family:Montserrat,sans-serif;font-size:12px;letter-spacing:.24em;color:var(--gold)}
.footer-grid li{padding:4px 0}
.footer-grid li a:hover{color:#fff}
.copyright{margin-top:44px;padding-top:20px;border-top:1px solid var(--navy-line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:12.5px;color:var(--on-navy-muted)}
.copyright div{display:flex;gap:20px;flex-wrap:wrap}
.copyright a:hover{color:#fff}
@media(max-width:700px){.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}.footer-grid .brand-note{display:block}}

/* ---------- 下のページの見出し帯 ---------- */
.page-hero{position:relative;background:var(--navy);color:#fff;padding:76px 0 68px;overflow:hidden}
.page-hero .wrap{position:relative;z-index:1}
.crumb{font-size:12.5px;color:var(--on-navy-muted);margin-bottom:22px}
.crumb a{color:var(--on-navy);border-bottom:1px solid #ffffff40}
.page-hero h1{margin-top:14px;font-size:clamp(32px,4.2vw,54px);font-weight:900;line-height:1.35;letter-spacing:.03em}
.page-hero .lead{color:var(--on-navy);margin-top:20px}
.page-hero-line{position:absolute;left:0;bottom:0;width:100%;height:3px;background:linear-gradient(90deg,var(--gold) 0 12%,#ffffff26 12% 100%)}
@media(max-width:700px){.page-hero{padding:48px 0 44px}.page-hero h1{font-size:30px}}

/* ---------- サービスのページ ---------- */
.trouble{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.trouble li{display:flex;gap:14px;align-items:center;background:var(--gold-soft);border-radius:3px;padding:20px 22px;font-size:16px;font-weight:700;line-height:1.7}
.trouble li::before{content:"";flex:0 0 auto;width:9px;height:9px;border-radius:50%;background:var(--navy)}
.band{margin-top:36px;background:var(--navy);color:#fff;padding:36px 40px;border-radius:3px;position:relative;overflow:hidden}
.band::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--gold)}
.band-label{display:inline-block;background:var(--gold);color:var(--navy);border-radius:3px;padding:2px 12px;font-size:13px;font-weight:700;letter-spacing:.1em}
.band-big{margin-top:14px;font-size:clamp(22px,2.6vw,30px);font-weight:900;line-height:1.5}
.band-text{margin-top:12px;color:var(--on-navy);font-size:15.5px}
.band-text em{font-style:normal;color:var(--gold);font-weight:700}
@media(max-width:700px){.trouble{grid-template-columns:1fr}.band{padding:28px 22px}}

.how{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.how-photo img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:3px}
.how-photo figcaption{font-size:13px;margin-top:10px;color:var(--ink);display:flex;align-items:center;gap:12px}
.how-photo figcaption::before{content:"";width:20px;height:1px;background:var(--gold)}
.how-steps li{display:flex;gap:20px;padding:22px 0;border-bottom:1px solid var(--line)}
.how-steps li:first-child{padding-top:0}
.how-steps li:last-child{border-bottom:0}
.how-no{flex:0 0 auto;width:48px;height:48px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-family:Montserrat,sans-serif;font-weight:700;font-size:16px}
.how-steps h3{font-size:19px;font-weight:900;line-height:1.5;color:var(--blue)}
.how-steps p{margin-top:6px;font-size:15.5px;color:var(--ink)}
.heart{margin-top:56px;text-align:center}
.heart p{font-size:clamp(22px,2.6vw,32px);font-weight:900;line-height:1.6}
.heart small{display:block;margin-top:12px;font-size:15px;color:var(--ink)}
@media(max-width:960px){.how{grid-template-columns:1fr;gap:32px}}

.road{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;margin-bottom:12px}
.road::before{content:"";position:absolute;left:12.5%;right:12.5%;top:22px;height:2px;background:linear-gradient(90deg,#c3c9d6,var(--navy) 30%,var(--navy) 70%,var(--gold))}
.stop{position:relative;text-align:center;padding:0 10px}
.stop-dot{width:46px;height:46px;margin:0 auto;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-family:Montserrat,sans-serif;font-weight:700;font-size:17px;position:relative;z-index:1;border:3px solid var(--paper)}
.stop--now .stop-dot{background:#fff;color:var(--ink-muted);border:2px solid #c3c9d6;font-family:"Noto Sans JP",sans-serif;font-size:12px}
.stop--3 .stop-dot{background:var(--gold);color:var(--navy)}
.stop-verb{margin-top:12px;font-size:13px;font-weight:700;color:var(--gold)}
.stop-name{font-size:17px;font-weight:900;line-height:1.5}
.stop-note{margin-top:4px;font-size:13.5px;color:var(--ink);line-height:1.7}
@media(max-width:800px){
  .road{grid-template-columns:1fr;gap:18px}
  .road::before{left:22px;right:auto;top:10px;bottom:10px;width:2px;height:auto;background:linear-gradient(180deg,#c3c9d6,var(--navy) 30%,var(--navy) 70%,var(--gold))}
  .stop{display:grid;grid-template-columns:46px 1fr;gap:16px;text-align:left;padding:0}
  .stop-dot{margin:0}.stop-verb{margin-top:0}
}

.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:56px;align-items:start}
.plan{background:#fff;border-top:3px solid var(--navy);padding:30px 26px 28px;border-radius:0 0 3px 3px;box-shadow:0 1px 2px rgba(11,23,48,.06)}
.plan-step{font-family:Montserrat,sans-serif;font-size:12px;font-weight:700;letter-spacing:.2em;color:var(--blue)}
.plan h3{margin-top:6px;font-size:24px;font-weight:900;line-height:1.45}
.plan h3 small{font-size:16px;font-weight:700}
.plan-catch{margin-top:10px;font-size:15.5px;font-weight:700;line-height:1.8}
.price{margin-top:20px;background:var(--paper);border-radius:3px;padding:16px 18px}
.price-name{font-size:13px;font-weight:700;color:var(--ink)}
.price-num{display:block;font-family:Montserrat,sans-serif;font-size:42px;font-weight:700;line-height:1.15;color:var(--blue)}
.price-num small{font-family:"Noto Sans JP",sans-serif;font-size:17px;margin-left:2px}
.price-ask{display:block;font-size:19px;font-weight:900;margin-top:2px}
.price-note{margin-top:4px;font-size:13px;color:var(--ink);line-height:1.75}
.flow{margin-top:22px}
.flow-title{font-size:13px;font-weight:700;color:var(--ink-muted);letter-spacing:.08em}
.flow li{padding:12px 0;border-bottom:1px solid var(--line);font-size:14.5px;line-height:1.85;color:var(--ink)}
.flow li:last-child{border-bottom:0}
.flow b{display:block;color:var(--blue);font-size:14px}
.flow-give{background:var(--gold-soft);padding:12px 14px!important;border-radius:3px;margin-top:6px;border-bottom:0!important}
.flow-give b{color:var(--navy)}
.plan-foot{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}
.plan-foot li{position:relative;padding:4px 0 4px 20px;font-size:14px;line-height:1.75;font-weight:700}
.plan-foot li::before{content:"";position:absolute;left:2px;top:13px;width:8px;height:8px;background:var(--gold);border-radius:50%}
.plan-btns{margin-top:22px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.plans-note{margin-top:20px;font-size:13.5px;color:var(--ink)}
@media(max-width:1020px){.plans{grid-template-columns:1fr;max-width:640px;margin-inline:auto}}

.promise-head,.promise li{display:grid;grid-template-columns:1fr 1.4fr;gap:24px}
.promise-head{padding:0 4px 12px;font-size:13px;font-weight:700;letter-spacing:.08em;color:var(--gold);border-bottom:1px solid var(--navy-line)}
.promise li{padding:20px 4px;border-bottom:1px solid var(--navy-line);align-items:center}
.promise-no{color:var(--on-navy-muted);font-size:15px;text-decoration:line-through;text-decoration-color:#ffffff55}
.promise-yes{font-size:16.5px;font-weight:700;color:#fff}
@media(max-width:700px){.promise-head{display:none}.promise li{grid-template-columns:1fr;gap:4px}}

.area{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:start}
.checks{margin-top:24px}
.checks li{padding:14px 0;border-bottom:1px solid var(--line);font-size:15.5px;color:var(--ink)}
.checks b{display:block;color:var(--navy)}
.checks a{color:var(--blue);font-weight:700;border-bottom:1px solid currentColor}
.area-card{background:#fff;border-top:3px solid var(--navy);padding:26px 26px 22px;border-radius:0 0 3px 3px}
.area-title{font-size:18px;font-weight:900}
.area-sub{margin-top:16px;font-size:13px;font-weight:700;color:var(--blue)}
.cities{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.cities li{padding:5px 14px;background:var(--paper);border:1px solid var(--line);border-radius:3px;font-size:15px;font-weight:700}
.area-foot{margin-top:18px;font-size:13.5px;color:var(--ink);line-height:1.85}
@media(max-width:900px){.area{grid-template-columns:1fr;gap:32px}}

/* ---------- 代表・事業概要のページ ---------- */
.book{display:grid;grid-template-columns:.8fr 1.2fr;gap:64px;align-items:center}
.book-cover{justify-self:center;max-width:280px}
.book-cover img{width:100%;border-radius:2px;transform:rotate(-3deg);box-shadow:18px 22px 40px rgba(0,0,0,.45)}
.book-kind{margin-top:22px;text-align:center;font-size:13px;color:var(--on-navy)}
.book-title{margin-top:18px;font-size:clamp(19px,2vw,24px);font-weight:900;line-height:1.6}
.book-gift{margin-top:22px;border:1px solid var(--navy-line);border-left:3px solid var(--gold);padding:16px 20px;border-radius:3px;font-size:14.5px;color:var(--on-navy);line-height:1.85}
.book-gift b{color:var(--gold)}
.book-gift p{color:#fff;font-weight:700}
@media(max-width:900px){.book{grid-template-columns:1fr;gap:36px}.book-cover{max-width:220px}}

.voices{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.voice-card{background:#fff;border-top:3px solid var(--navy);padding:26px 26px 22px;border-radius:0 0 3px 3px}
.voice-card--wide{grid-column:1/-1}
.voice-score{font-family:Montserrat,sans-serif;font-size:13px;font-weight:700;color:var(--blue);letter-spacing:.06em}
.voice-text{margin-top:10px;font-size:15px;line-height:1.95;color:var(--navy)}
.voice-who{margin-top:14px;font-size:13px;color:var(--ink);line-height:1.8}
.voice-who a{color:var(--blue);border-bottom:1px solid currentColor}
@media(max-width:800px){.voices{grid-template-columns:1fr}}

.overview{border-top:1px solid var(--navy)}
.overview div{display:grid;grid-template-columns:11em 1fr;gap:20px;padding:20px 4px;border-bottom:1px solid var(--line);font-size:15.5px;line-height:1.9}
.overview dt{font-weight:700;color:var(--navy)}
.overview dd{color:var(--ink)}
.overview a{color:var(--blue);font-weight:700;border-bottom:1px solid currentColor}
@media(max-width:700px){.overview div{grid-template-columns:1fr;gap:2px;padding:16px 2px}}
