/* ペット整体 導入説明会LP「定番」版
   白と淡い若葉色の地 / 墨の文字 / 主色=セージグリーン1色 / 申込ボタン(LINE)だけ濃い緑
   余白=8の倍数 / 文字の段=6段 / 揃えの軸=箱の左端 */

:root{
  --ink:#1D2A21;
  --ink2:#4B5B4F;
  --sage:#0E9C6C;
  --sage-d:#0B7A55;
  --tint:#E6F6EE;
  --gray:#F3FAF6;
  --line:#CDEBDC;
  --line-strong:#5FA98A;
  --cta:#00873C;
  --cta-d:#006B2F;
  --white:#fff;

  --r-lg:16px;
  --r-md:8px;
  --r-sm:4px;

  --s1:8px; --s2:16px; --s3:24px; --s4:32px; --s5:48px; --s6:64px; --s7:80px; --s8:112px;

  /* 文字の段(6段) */
  --fs-d1:clamp(44px,5.6vw + 10px,76px);   /* 1画面目の見出し */
  --fs-d2:clamp(28px,2.8vw + 18px,48px);   /* 章の大見出し・帯・数字 */
  --fs-h2:clamp(24px,1.6vw + 18px,36px);   /* 節の見出し */
  --fs-h3:clamp(18px,.6vw + 15px,22px);    /* 小見出し・リード */
  --fs-body:clamp(16px,.3vw + 15px,18px);  /* 本文 */
  --fs-sm:14px;                            /* 注記・タグ */

  --box:1120px;
  --gutter:20px;
  --bleed:clamp(0px, calc(var(--gutter) + max(0px, (100vw - var(--box) - 2 * var(--gutter)) / 2) - 12px), 148px);
  --font:"Zen Kaku Gothic New","BIZ UDPGothic","Yu Gothic","Hiragino Sans","Meiryo",sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-padding-top:16px; accent-color:var(--sage); scrollbar-color:#9FD3BC var(--gray)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{
  margin:0; background:var(--white); color:var(--ink);
  font-family:var(--font); font-size:var(--fs-body); font-weight:500; line-height:1.85; letter-spacing:.01em;
  font-variant-numeric:tabular-nums; font-feature-settings:"palt";
  caret-color:var(--sage);
  overflow-wrap:break-word;
}
body.has-bar{padding-bottom:96px}
::selection{background:var(--sage); color:#fff}
::-webkit-scrollbar{width:12px; height:12px}
::-webkit-scrollbar-track{background:var(--gray)}
::-webkit-scrollbar-thumb{background:#9FD3BC; border-radius:6px; border:3px solid var(--gray)}
img,svg{display:block; max-width:100%}
img{height:auto}
h1,h2,h3,p,ul,ol,dl,dd,figure,blockquote{margin:0}
h2{margin-bottom:var(--s3)}
p{text-wrap:pretty}
ul,ol{padding:0; list-style:none}
a{color:var(--sage-d); text-underline-offset:.2em; text-decoration-thickness:1px}
:focus-visible{outline:3px solid var(--sage); outline-offset:3px; border-radius:var(--r-sm)}
.bp{display:inline-block}
.shiba{clip-path:inset(0 0 0 3%)}
.k{margin-inline:-.08em}
em{font-style:normal}
.hl{color:var(--sage); font-weight:900}

.skip{position:absolute; left:var(--gutter); top:-64px; background:var(--ink); color:#fff; padding:12px 16px; border-radius:var(--r-md); z-index:30; text-decoration:none}
.skip:focus{top:8px}

.box{width:min(var(--box),100%); margin-inline:auto}
.fv,.intro,.sec,.manga,.band,.stats-sec,.apply,.notes{padding-inline:var(--gutter)}

/* 見出し: 太い角ゴシック。上を広く、下を狭く */
h1,h2,h3{font-weight:900; line-height:1.3; letter-spacing:-.01em; font-feature-settings:"palt"}
h2{font-size:var(--fs-h2)}
h3{font-size:var(--fs-h3); line-height:1.5}
.lead{font-size:var(--fs-h3); line-height:1.8; font-weight:500}
.text{max-width:34em}
.sm{font-size:var(--fs-sm); line-height:1.7; color:var(--ink2)}

/* セクションの縦のリズム(8の倍数) */
.sec{padding-block:var(--s7) var(--s6)}
.sec.g{background:var(--gray)}
.sec .head{margin-bottom:var(--s5)}
@media (min-width:960px){
  :root{--gutter:32px}
  .sec{padding-block:var(--s8) var(--s7)}
  .sec .head{margin-bottom:var(--s6)}
}

/* ボタン: 申込(LINE)だけ濃い緑の主ボタン1種類 */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:64px; padding:12px 16px; border:0; border-radius:var(--r-md);
  background:var(--cta); color:#fff; font:inherit; font-size:var(--fs-h3); font-weight:900; line-height:1.4; letter-spacing:.02em; text-align:center; text-decoration:none; cursor:pointer;
  box-shadow:0 2px 6px rgba(29,42,33,.18);
  transition:background-color .2s cubic-bezier(.16,1,.3,1), box-shadow .2s cubic-bezier(.16,1,.3,1);
}
.btn svg{width:24px; height:24px; flex:none; stroke:currentColor; fill:none; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round}
.btn .lbl{text-wrap:balance}
.btn .free{flex:none; padding:0 8px; border:1px solid rgba(255,255,255,.85); border-radius:999px; font-size:var(--fs-sm); font-weight:700; line-height:1.6; letter-spacing:.04em}
.btn:hover{background:var(--cta-d); box-shadow:0 4px 10px rgba(29,42,33,.22)}
.btn:active{background:#005A28; box-shadow:0 1px 3px rgba(29,42,33,.2)}
.btn:focus-visible{outline-color:var(--ink)}
.btn.sm-btn{flex:none; min-height:44px; padding:8px 16px; font-size:var(--fs-sm); box-shadow:none}
.btn:disabled{background:#9DA89C; box-shadow:none; cursor:not-allowed}
/* フォーム送信は副ボタン(LINEが主役) */
.btn2{display:flex; align-items:center; justify-content:center; width:100%; min-height:56px; padding:10px 24px; border:2px solid var(--sage); border-radius:var(--r-md); background:#fff; color:var(--sage-d); font:inherit; font-size:var(--fs-body); font-weight:700; cursor:pointer; transition:background-color .2s cubic-bezier(.16,1,.3,1)}
.btn2:hover{background:var(--tint)}
.btn2:focus-visible{outline:3px solid var(--ink); outline-offset:2px}

/* LINE誘導のまとまり(ボタン+フォームへのテキストリンク。QRは締めだけ) */
.cta-set{display:flex; flex-direction:column; align-items:flex-start; gap:var(--s3)}
.cta-main{display:flex; flex-direction:column; align-items:center; width:min(440px,100%)}
.cta-main .btn{width:100%}
.cta-form{display:inline-flex; align-items:center; justify-content:center; min-height:44px; margin-top:var(--s1); padding:4px 12px; font-size:var(--fs-sm); font-weight:700; line-height:1.5; text-align:center; color:var(--sage-d); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:.25em}
.cta-form:hover{color:var(--ink)}
.qr{display:none}
@media (min-width:900px){
  .qr{display:block; flex:none; width:128px; text-align:center}
  .qr .sm{margin-top:var(--s1); line-height:1.5}
}
.qr-box{display:block; width:120px; height:120px; margin-inline:auto; background:#fff}
.qr-box span{font-size:var(--fs-sm); line-height:1.4; color:var(--ink2)}

/* ヘッダー */
.hdr{display:flex; align-items:center; justify-content:space-between; gap:var(--s2); padding-block:var(--s2)}
.logo{flex:none; white-space:nowrap; display:flex; align-items:center; gap:12px; color:var(--ink); text-decoration:none; font-weight:700; font-size:var(--fs-sm); line-height:1.35; letter-spacing:.04em}
.logo svg{width:40px; height:40px}

/* 1画面目 */
/* 1画面目(2026-11-03 v4): 白地+主色1色。上が半円の画像枠2つ+縦書きキャッチ */
.fv{position:relative; overflow-x:clip; background:var(--white); padding-inline:0}
.hdr{padding-inline:var(--gutter)}
.hdr-info{display:none}
/* 波: 3層をそれぞれ違う速さで横に流す(transformだけで動かす。固定の静止状態でも成立する淡さ) */
.waves{position:absolute; inset:0; overflow:hidden; pointer-events:none}
.wv{position:absolute; left:0; bottom:0; width:200%; max-width:none; will-change:transform}
.wv1{height:80%}
.wv1 path{fill:#6FD6A8; fill-opacity:.30}
.wv2{height:58%}
.wv2 path{fill:#9BE3BE; fill-opacity:.34}
.wv3{height:28%}
.wv3 path{fill:#fff}
@media (prefers-reduced-motion:no-preference){
  .wv1{animation:flow 40s linear infinite}
  .wv2{animation:flow 30s linear infinite reverse}
  .wv3{animation:flow 22s linear infinite}
}
@keyframes flow{to{transform:translateX(-50%)}}
.hdr,.fv-in{position:relative; z-index:1}
.fv-in{display:flex; flex-direction:column; padding-inline:var(--gutter); padding-bottom:var(--s4)}
.fv-art{position:relative}
.catch{position:absolute; z-index:2; top:0; left:-4px; writing-mode:vertical-rl; font-size:24px; font-weight:900; line-height:1.25; letter-spacing:.08em; color:var(--sage); font-feature-settings:"palt" 0; margin:0}
.catch .bp{display:block}
.catch .bp:nth-child(2){font-size:1.4em; margin-inline-start:1.1em; color:var(--sage-d)}
.arches{display:flex; width:calc(100% - 64px); margin-left:64px; padding-top:var(--s2)}
.arch{position:relative; flex:none; width:53.2%; aspect-ratio:.66/1; overflow:hidden; border-radius:999px 999px 0 0; background:var(--tint)}
.arch img{position:absolute; inset:0; width:100%; height:100%; max-width:none; object-fit:cover}
.a1 img{object-position:50% 14%}
.a2{margin-left:-6.4%; z-index:1; filter:none; box-shadow:-6px 0 0 var(--white)}
.a2 img{object-position:76% 60%}
.fv-copy{display:flex; flex-direction:column; align-items:center; padding-top:var(--s2)}
.answer{font-size:var(--fs-h2); font-weight:900; line-height:1.5; text-align:center; color:var(--sage-d)}
.fv-copy .cta-set{order:2; margin-top:var(--s2); align-items:center; width:100%}
.fv-copy .sub{order:3; margin-top:var(--s3); text-align:center}
@media (min-width:960px){
  .fv{display:flex; flex-direction:column; height:100svh; min-height:720px; max-height:1080px}
  .hdr{position:relative; z-index:3; padding:var(--s3) calc(var(--gutter) + 16px) 0; justify-content:flex-start; align-items:flex-start; gap:var(--s3)}
  .hdr .logo{align-items:flex-start; gap:12px}
  .hdr .logo svg{width:48px; height:48px}
  .hdr-info{display:block; margin-left:auto; margin-right:104px; margin-top:8px; padding-bottom:4px; font-size:var(--fs-sm); font-weight:500; letter-spacing:.06em; color:var(--ink2); border-bottom:2px solid var(--tint)}
  .fv-in{position:absolute; inset:0; display:grid; grid-template-columns:clamp(380px,28vw,430px) minmax(0,1fr); grid-template-areas:"copy art"; column-gap:var(--s6); padding:0 0 0 calc(var(--gutter) + 16px)}
  .fv-copy{grid-area:copy; align-self:end; align-items:flex-start; padding-bottom:var(--s6); padding-top:0; z-index:3}
  .answer{text-align:left; font-size:clamp(28px,2.4vw,34px)}
  .fv-copy .sub{order:2; margin-top:var(--s2); text-align:left}
  .fv-copy .cta-set{order:4; margin-top:var(--s3); align-items:flex-start}
  .fv-copy .cta-main{align-items:flex-start}
  .cta-form{padding-left:0}
  .fv-art{grid-area:art; position:relative; display:flex; align-items:flex-end; margin-right:calc(var(--gutter) + 16px); min-width:0}
  .catch{left:0; transform:translateX(calc(-100% + 48px)); top:clamp(72px,10svh,110px); font-size:clamp(40px,3.2vw,48px); line-height:1.3; z-index:3}
  .arches{width:100%; padding-top:0; height:calc(100% - clamp(132px,19svh,170px)); align-items:stretch}
  .arch{aspect-ratio:auto; height:100%; width:53.2%}
  .a2{margin-left:-6.4%}
  .a1 img{object-position:50% 18%}
  .a2 img{object-position:64% 58%}
}

/* 章の大見出し(マンガで全部わかる): 上下の余白は同じ */
.intro{padding-block:var(--s5); text-align:center}
.intro .text{margin-inline:auto}
.intro h2{font-size:var(--fs-d2); line-height:1.3; margin-bottom:0}
.manga-tag{position:relative; display:inline-block; margin-bottom:var(--s3); padding:8px 24px; border-radius:999px; background:var(--sage-d); color:#fff; font-size:var(--fs-h3); font-weight:900; line-height:1.5; letter-spacing:.04em}
.manga-tag::after{content:""; position:absolute; left:calc(50% - 20px); top:100%; width:20px; height:12px; background:var(--sage-d); clip-path:polygon(0 0,100% 0,20% 100%)}
.intro .defline{margin-top:var(--s3); font-size:var(--fs-h3); font-weight:700}
@media (min-width:960px){.intro{padding-block:var(--s6)}}

/* 漫画: 冊子は最大600px。PCは左に見出し(追従)、右に冊子 */
.manga{background:var(--gray); padding-block:var(--s6); text-align:center}
.manga.w{background:var(--white)}
.manga .booklet{width:min(600px,100%); margin-inline:auto}
.manga .paper{border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden; background:#fff}
.manga .paper+.paper{margin-top:var(--s2)}
.manga .paper img{width:100%; height:auto}
.manga h2{margin-bottom:var(--s4)}
.manga .paper+.paper{margin-top:var(--s2)}
@media (min-width:960px){
  .manga{padding-block:var(--s7)}
}

/* 悩みランキング */
.rank-grid{display:grid; gap:var(--s5)}
.rank-note{margin-top:var(--s3)}
.ranks{display:grid; gap:var(--s1)}
.rk{display:grid; grid-template-columns:72px 1fr; align-items:center; column-gap:var(--s2); padding:var(--s2) var(--s3); border:1px solid var(--line); border-radius:var(--r-md); background:#fff; font-size:var(--fs-h3); font-weight:700; line-height:1.5}
.rk .no{display:flex; align-items:baseline; gap:2px; color:var(--sage-d); font-weight:900}
.rk .no b{font-size:var(--fs-d2); line-height:1; font-weight:900}
.rk .no i{font-size:var(--fs-sm); font-style:normal}
.rk.r1{background:var(--sage-d); border-color:var(--sage-d); color:#fff; padding-block:var(--s3); font-size:var(--fs-h2); font-weight:900}
.rk.r1 .no{color:#fff}
.rk.r2,.rk.r3{border-color:var(--sage)}
.rk.r4,.rk.r5{background:var(--gray); font-weight:500}
.rk.r4 .no b,.rk.r5 .no b{font-size:var(--fs-h2)}
.solve{margin-top:var(--s6); padding:var(--s4) var(--s3); border-radius:var(--r-lg); background:var(--tint); text-align:center}
.solve-pre{font-size:var(--fs-d2); font-weight:900; line-height:1.4; color:var(--sage-d)}
.solve-main{margin-top:var(--s1); font-size:var(--fs-d2); font-weight:900; line-height:1.4}
.solve-main .bp{display:inline-block}
.solve svg{margin:var(--s3) auto 0; width:40px; height:24px; stroke:var(--sage); fill:none; stroke-width:4; stroke-linecap:round; stroke-linejoin:round}
@media (min-width:960px){
  .rank-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr); column-gap:var(--s7); align-items:start}
  .rank-grid .head{margin-bottom:0}
  .solve{padding:var(--s6) var(--s6)}
  .rk{grid-template-columns:96px 1fr}
}

/* 今、始める理由: 町の地図 */
.why-grid{display:grid; gap:var(--s5)}
.why-grid h2{font-size:var(--fs-d2)}
.why-lead{font-size:var(--fs-h2); font-weight:700; line-height:1.7}
.map{position:relative; width:min(520px,100%); margin-inline:auto}
.map img{width:100%}
.pin{position:absolute; width:6%; transform:translate(-50%,-100%); z-index:2}
.pin svg{width:100%; height:auto; aspect-ratio:32/44; transform-origin:50% 100%}
@media (prefers-reduced-motion:no-preference){
  .pin svg{animation:hop var(--p,1.6s) cubic-bezier(.16,1,.3,1) var(--d,0s) infinite}
}
@keyframes hop{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-6px)}}
@media (min-width:960px){
  .why-grid{grid-template-columns:minmax(0,6fr) minmax(0,5fr); column-gap:var(--s7); align-items:center}
  .map{margin-inline:0}
}

/* 別枠の帯 */
.band{background:var(--sage); color:#fff; padding-block:var(--s6); text-align:center}
.band h2{font-size:var(--fs-d2); line-height:1.4; max-width:20em; margin-inline:auto; margin-bottom:0}
.band .hl{color:#fff; text-decoration:underline; text-decoration-color:#CFE3BC; text-decoration-thickness:.12em; text-underline-offset:.2em}
@media (min-width:960px){.band{padding-block:var(--s7)}}

/* 数字 */
.stats-sec{padding-block:var(--s6) var(--s7)}
.stats{display:grid; gap:var(--s3)}
.stat{display:flex; flex-direction:column; gap:var(--s2); padding:var(--s3); border:1px solid var(--line); border-radius:var(--r-lg); background:#fff}
.stat h3{font-size:var(--fs-body); margin:0}
.stat .fig{aspect-ratio:1/1; border-radius:var(--r-md); overflow:hidden; background:#FDFDFD}
.stat .fig img{width:100%; height:100%; object-fit:contain}
.stat .desc{font-size:var(--fs-body); line-height:1.8; color:var(--ink2)}
.ref{font-size:var(--fs-sm); color:var(--sage-d); font-weight:700}
@media (min-width:720px){.stats{grid-template-columns:repeat(3,1fr)} .stat{display:grid; grid-template-rows:subgrid; grid-row:span 3; row-gap:var(--s2)}}
@media (min-width:960px){.stats-sec{padding-block:var(--s7) var(--s8)} .stat{padding:var(--s4)}}

/* 治療を行う動物病院はある。でも… (線で区切る行リスト) */
.gaps{border-top:1px solid var(--line-strong)}
.gap-row{display:grid; gap:var(--s1); padding-block:var(--s4); border-bottom:1px solid var(--line)}
.gap-row img{width:96px; height:auto; margin-bottom:var(--s1)}
.gap-row h3{margin-bottom:var(--s1)}
.gap-row p{color:var(--ink2)}
@media (min-width:960px){
    .gaps{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--s4); border-top:0}
  .gap-row{display:flex; flex-direction:column; align-items:center; gap:var(--s2); padding:var(--s5) var(--s4); border:1px solid var(--line); border-radius:var(--r-lg); background:#fff; text-align:center}
  .gap-row img{width:auto; height:128px; max-width:100%; margin:0; object-fit:contain}
  .gap-row h3{margin:0}
  .gap-row p{max-width:none}
}
.gap-head{text-align:center}
.gap-head h2 .hl{display:inline-block}

/* 申込帯(縦の中心軸にそろえる。上下の余白は同じ) */
.apply{background:var(--tint); padding-block:var(--s5)}
.apply .box{display:flex; flex-direction:column; align-items:center; gap:var(--s3); text-align:center}
.apply img{width:112px; height:auto; transform:translateX(-1.5%)}
.apply .cta-set{align-items:center; width:100%}
.apply .apply-lead{margin:0; font-size:var(--fs-h2); font-weight:700; line-height:1.5; color:var(--ink); text-wrap:balance}
.apply .apply-lead .bp{display:inline-block}
@media (min-width:960px){
  .apply{padding-block:var(--s6)}
  .apply img{width:160px}
}

/* 研修 */
.tr-grid{display:grid; gap:var(--s5)}
.tr-art{margin-inline:calc(-1 * var(--gutter))}
.tr-art img{width:100%; max-width:none}
.steps{display:grid; gap:0; border-top:1px solid var(--line-strong)}
.steps li{display:grid; grid-template-columns:56px 1fr; column-gap:var(--s2); align-items:center; padding-block:var(--s3); border-bottom:1px solid var(--line)}
.steps .n{display:grid; place-items:center; width:40px; height:40px; border-radius:50%; background:var(--sage-d); color:#fff; font-weight:900; font-size:var(--fs-body)}
.steps h3{margin-bottom:2px}
.steps p{color:var(--ink2)}
.tbd-note{margin-top:var(--s3); padding:var(--s2) var(--s3); border:1px dashed var(--sage); border-radius:var(--r-md); background:var(--tint)}
.closing{margin-top:var(--s4); font-size:var(--fs-h3); font-weight:900; line-height:1.7}
@media (min-width:960px){
  .tr-grid{grid-template-columns:minmax(0,1fr) minmax(0,min(600px,50%)); column-gap:var(--s6); align-items:center}
  .tr-art{order:2; margin-inline:0 calc(-1 * var(--bleed))}
}

/* 安心: 獣医療ではない */
.care-grid{display:grid; gap:var(--s5)}
.nots{display:grid; gap:var(--s1); margin-bottom:var(--s3)}
.nots li{display:flex; align-items:center; gap:var(--s2); padding:var(--s2) var(--s3); border:1px solid var(--line); border-radius:var(--r-md); background:#fff; font-weight:700}
.nots svg{width:28px; height:28px; flex:none; stroke:var(--ink); fill:none; stroke-width:2; stroke-linecap:round}
.warn{font-weight:900; color:var(--sage-d)}
.panel{padding:var(--s4) var(--s3); border:1px solid var(--line); border-radius:var(--r-lg); background:#fff}
.panel .hd{margin-bottom:var(--s2)}
@media (min-width:960px){
  .care-grid{grid-template-columns:minmax(0,6fr) minmax(0,5fr); column-gap:var(--s7); align-items:start}
  .panel{padding:var(--s5)}
}

/* 口コミの図 */
.buzz-grid{display:grid; gap:var(--s3)}
.buzz-grid h2{margin-bottom:var(--s2)}
.bz-fig{margin-block:var(--s2) var(--s3)}
.bzfig{width:min(360px,100%); margin-inline:auto; height:auto}
.bz-n{stroke:var(--line-strong); stroke-width:1.5; stroke-dasharray:4 5}
.bz-h{stroke:var(--sage); stroke-width:2.5}
.bz-p circle:first-child{fill:#fff; stroke:var(--sage); stroke-width:2}
.bz-p .hd,.bz-p .bd{fill:var(--sage); stroke:none}
.bz-c{fill:var(--sage)}
.bz-t{fill:#fff; font-size:34px; font-weight:900; font-family:var(--font)}
.bz-tx{display:grid; gap:var(--s3); align-content:start}
.bz-em{font-size:var(--fs-h2); font-weight:900; line-height:1.5; color:var(--sage)}
@media (min-width:960px){
  .buzz-grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr); grid-template-areas:"fig head" "fig text"; column-gap:var(--s7); align-content:center; grid-template-rows:auto auto; row-gap:var(--s3)}
  .buzz-grid h2{grid-area:head; align-self:end; margin-bottom:0}
  .bz-fig{grid-area:fig; margin:0; align-self:center}
  .bz-tx{grid-area:text}
  .bzfig{width:100%; margin-inline:0}
}

/* サポート・説明会情報 */
.teacher{display:grid; gap:var(--s4); justify-items:center}
.t-photo{width:min(260px,70%); height:auto; border-radius:var(--r-lg) var(--r-lg) 0 0}
.t-body{width:100%}
.t-name{font-size:var(--fs-h2); line-height:1.3; letter-spacing:.02em}
.yomi{display:block; margin-top:4px; font-size:var(--fs-sm); font-weight:500; letter-spacing:.08em; color:var(--ink2)}
.t-role{margin-top:var(--s2); padding-top:var(--s2); border-top:1px solid var(--line-strong); font-weight:700; line-height:1.7}
.teacher .bio{margin-top:var(--s2)}
.feats{display:grid; grid-template-columns:1fr 1fr; gap:var(--s1); margin-top:var(--s3)}
.feats li{display:grid; justify-items:start; align-content:start; gap:4px; padding:var(--s2); border-radius:var(--r-md); background:var(--tint)}
.feats svg{width:32px; height:32px; margin-bottom:4px; stroke:var(--sage); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round}
.feats .lb{font-size:var(--fs-sm); font-weight:700; line-height:1.5; color:var(--ink2)}
.feats .fg{font-size:var(--fs-sm); font-weight:700; line-height:1.3}
.feats .fg b{font-size:var(--fs-h2); font-weight:900; line-height:1.2; color:var(--sage-d); letter-spacing:0}
.feats .fg2{font-size:var(--fs-sm); font-weight:700; line-height:1.6}
.t-quote{display:flex; align-items:center; gap:var(--s1); margin-top:var(--s3); color:var(--sage-d); font-size:var(--fs-h3); font-weight:700; letter-spacing:.06em}
.t-quote svg{width:24px; height:24px; flex:none; stroke:var(--sage); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round}
@media (min-width:960px){
  .teacher{grid-template-columns:300px minmax(0,1fr); column-gap:var(--s6); align-items:start; justify-items:stretch}
  .t-photo{width:300px}
  .t-body{padding-bottom:var(--s2)}
}
.corps-sec{padding-block:var(--s6)}
.corps-h{margin-bottom:var(--s3); font-size:var(--fs-h3)}
.corp-grid{display:grid; gap:var(--s3)}
.corp{padding:var(--s3); border:1px solid var(--line); border-radius:var(--r-lg); background:#fff}
.corp .corp-name{margin:0 0 var(--s2); font-size:var(--fs-h3); font-weight:900; line-height:1.4}
.spec{border-top:1px solid var(--line)}
.spec .row{display:grid; grid-template-columns:5.5em 1fr; gap:var(--s2); padding-block:var(--s2); border-bottom:1px solid var(--line)}
.spec dt{font-weight:700; color:var(--ink2)}
.spec dd{margin:0; overflow-wrap:anywhere}
@media (min-width:960px){
  .corp-grid{grid-template-columns:repeat(2,1fr); gap:var(--s4); align-items:start}
  .corp{padding:var(--s4)}
}

.info-card{display:grid; gap:var(--s4); padding:var(--s3); border:1px solid var(--line); border-radius:var(--r-lg); background:#fff}
.info-card .laptop{width:112px; height:auto}
.targets{margin-top:var(--s3); display:grid; gap:var(--s1)}
@media (min-width:960px){
  .info-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:var(--s7); padding:var(--s5); align-items:start}
  .info-card .laptop{width:152px; margin-bottom:var(--s3)}
  .targets{margin-top:0; align-self:center; font-size:var(--fs-h3)}
}
.topics{margin-top:var(--s4); padding:var(--s3); border:1px solid var(--line); border-radius:var(--r-lg); background:#fff}
.topics-h{margin-bottom:var(--s2)}
.tp-list{border-top:1px solid var(--line)}
.tp-list>li{display:grid; gap:4px; padding-block:var(--s2); border-bottom:1px solid var(--line)}
.tp-list>li:last-child{border-bottom:0}
.tp-list h4{margin:0; font-size:var(--fs-h3); font-weight:900; line-height:1.5; color:var(--sage-d)}
.tp-list p{margin:0}
.sup{display:grid; gap:var(--s2); margin-top:var(--s2)}
.sup li{display:grid; grid-template-columns:44px 1fr; gap:var(--s2); align-items:start; padding:var(--s2); border:1px solid var(--line); border-radius:var(--r-md); background:var(--gray)}
.sup h4{font-size:var(--fs-body); color:var(--ink)}
.sup p{margin-top:4px; font-size:var(--fs-sm); line-height:1.7; color:var(--ink2)}
.ti{width:44px; height:44px; padding:8px; border-radius:12px; background:#fff; border:1px solid var(--line); fill:none; stroke:var(--sage-d); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round}
@media (min-width:960px){
  .topics{padding:var(--s5)}
  .tp-list>li{grid-template-columns:minmax(0,5fr) minmax(0,8fr); column-gap:var(--s5); padding-block:var(--s3)}
  .tp-list>li.tp-sup{grid-template-columns:1fr}
  .sup{grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s3)}
  .sup li{padding:var(--s3)}
}
.hp-wrap{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}

/* 質問 */
.faq-grid{display:grid; gap:var(--s1)}
.faq-grid h2{margin-bottom:var(--s3)}
.faq-list{border:1px solid var(--line); border-radius:var(--r-lg); background:#fff; overflow:hidden}
.faq-list details+details{border-top:1px solid var(--line)}
.faq-list summary{display:grid; grid-template-columns:40px 1fr 24px; align-items:center; gap:var(--s2); min-height:64px; padding:var(--s2) var(--s3); cursor:pointer; list-style:none; font-weight:700; line-height:1.5}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:hover{background:var(--gray)}
.faq-list summary:focus-visible{outline-offset:-3px}
.faq-list .q{display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:var(--sage-d); color:#fff; font-weight:900}
.faq-list .chev{width:20px; height:20px; stroke:var(--ink2); fill:none; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; transition:transform .25s cubic-bezier(.16,1,.3,1)}
.faq-list details[open] .chev{transform:rotate(180deg)}
.faq-list .ans{padding:0 var(--s3) var(--s3) calc(var(--s3) + 56px); color:var(--ink2)}
@media (min-width:960px){
  .faq-grid{grid-template-columns:minmax(0,4fr) minmax(0,8fr); column-gap:var(--s7)}
  .faq-grid h2{position:sticky; top:var(--s5); align-self:start; margin-bottom:0}
}

/* 締め+フォーム */
.close-grid{display:grid; gap:var(--s4)}
.close-art img{width:100%}
.formcard{padding:var(--s3); border:1px solid var(--line); border-radius:var(--r-lg); background:#fff}
.formlead{margin-bottom:var(--s3); font-weight:900; font-size:var(--fs-h3); line-height:1.6; color:var(--sage-d)}
.fld{margin:0 0 var(--s3); padding:0; border:0; min-width:0}
.fld>label,.fld>legend{display:flex; align-items:center; flex-wrap:wrap; gap:var(--s1); margin-bottom:var(--s1); padding:0; font-weight:700}
.tag{padding:2px 8px; border-radius:999px; background:var(--tint); color:var(--sage-d); font-size:var(--fs-sm); font-weight:700; line-height:1.6}
.tag.opt{background:transparent; border:1px solid var(--ink2); color:var(--ink2)}
.hint{flex-basis:100%; font-size:var(--fs-sm); font-weight:400; color:var(--ink2)}
.fld input[type=text],.fld input[type=email],.fld input[type=tel],.fld select,.fld textarea{
  width:100%; min-height:56px; padding:12px 16px; border:1px solid var(--line-strong); border-radius:var(--r-md); background:#fff; color:var(--ink); font:inherit; font-size:16px; letter-spacing:.02em;
}
.fld textarea{min-height:120px; line-height:1.7; resize:vertical}
.fld input:focus-visible,.fld select:focus-visible,.fld textarea:focus-visible{outline:3px solid var(--sage); outline-offset:1px; border-color:var(--sage)}
.fld input:user-invalid,.fld select:user-invalid{border-color:#B00020}
.radios{display:grid; grid-template-columns:1fr 1fr; gap:var(--s1)}
.radio{position:relative; display:block}
.radio input{position:absolute; opacity:0; inset:0; width:100%; height:100%; margin:0; cursor:pointer}
.radio span{display:grid; place-items:center; min-height:56px; border:1px solid var(--line-strong); border-radius:var(--r-md); background:#fff; font-weight:700}
.radio input:checked+span{background:var(--sage-d); border-color:var(--sage-d); color:#fff}
.radio input:focus-visible+span{outline:3px solid var(--sage); outline-offset:3px}
.after{margin-bottom:var(--s3)}
.formh{margin-bottom:var(--s3); text-wrap:balance; font-size:var(--fs-body); font-weight:700; line-height:1.6; color:var(--ink)}
.close-apply{display:grid; gap:var(--s4)}
.close-line{padding:var(--s3); border:1px solid var(--line); border-radius:var(--r-lg); background:#fff; text-align:center}
.close-line .formlead{margin-bottom:var(--s3)}
.close-line .cta-set{align-items:center}
.close-line .cta-main{width:100%}
@media (min-width:900px){.close-line{padding:var(--s5)} .close-line .qr{width:auto}}
@media (min-width:960px){
  .close-grid{grid-template-columns:minmax(0,6fr) minmax(0,5fr); column-gap:var(--s7); align-items:start}
  .formcard{padding:var(--s5)}
  .close-art{margin-top:var(--s5)}
  .close-grid>div:first-child{position:sticky; top:var(--s5)}
}

/* 欄外 */
.notes{padding-block:var(--s6); border-top:1px solid var(--line)}
.notes p+p{margin-top:var(--s1)}
.refs{margin-bottom:var(--s3); padding-bottom:var(--s3); border-bottom:1px solid var(--line)}

/* 固定の申込バー */
.stickybar{position:fixed; inset:auto 0 0 0; z-index:20; padding:var(--s1) var(--gutter) calc(var(--s1) + env(safe-area-inset-bottom)); background:rgba(255,255,255,.98); border-top:1px solid var(--line); box-shadow:0 -4px 16px rgba(29,42,33,.1); transform:translateY(110%); visibility:hidden}
.stickybar .btn{width:100%; max-width:560px; margin-inline:auto; display:flex; min-height:56px; padding-inline:16px}
.stickybar.on{transform:none; visibility:visible}
@media (prefers-reduced-motion:no-preference){
  .stickybar{transition:transform .35s cubic-bezier(.16,1,.3,1), visibility 0s .35s}
  .stickybar.on{transition:transform .35s cubic-bezier(.16,1,.3,1), visibility 0s}
}

/* スマホ(899px以下)のみ: 1画面目を1画面に収める・中央そろえ(2026-11-03) */
@media (max-width:899px){

  .rank-grid .head{text-align:center}
  .rank-grid .head h2 .bp:last-child{display:block}
  .rank-grid .head .text{margin-inline:auto}

  .gap-row{justify-items:center; text-align:center}
  .gap-row img{margin-inline:auto}
  .gap-row p{margin-inline:auto}
}

/* 目次 */
.toc{padding:var(--s3) var(--gutter) var(--s2); background:var(--white)}
.toc-h{font-size:var(--fs-sm); font-weight:700; color:var(--ink2); letter-spacing:.12em; margin-bottom:var(--s1)}
.toc-list{display:grid; grid-template-columns:1fr 1fr; gap:var(--s1)}
.toc-list a,.tocpanel a{display:flex; align-items:center; justify-content:center; min-height:48px; padding:6px 12px; border:1px solid var(--line-strong); border-radius:999px; background:var(--gray); color:var(--ink); font-size:15px; font-weight:700; line-height:1.4; text-decoration:none; text-align:center}
.toc-list a:hover,.tocpanel a:hover{background:var(--tint); border-color:var(--sage); color:var(--sage-d)}
.toc-list a:active,.tocpanel a:active{background:var(--line)}
@media (min-width:960px){
  .toc{padding-block:var(--s4) var(--s2)}
  .toc-h{text-align:left}
  .toc-list{display:flex; flex-wrap:wrap; gap:var(--s1)}
  .toc-list li{flex:1 1 auto}
  .toc-list a{min-height:44px; padding-inline:16px; white-space:nowrap}
}
/* 目次ボタン */
.toc-open{display:inline-flex; align-items:center; justify-content:center; gap:6px; font:inherit; font-size:var(--fs-sm); font-weight:700; line-height:1.2; color:var(--ink); background:var(--white); border:1px solid var(--line-strong); border-radius:var(--r-md); cursor:pointer}
.toc-open:hover{background:var(--tint); border-color:var(--sage)}
.toc-open svg{width:20px; height:20px; flex:none; stroke:currentColor; fill:none; stroke-width:2.2; stroke-linecap:round}
.toc-open.sp{flex:none; flex-direction:column; gap:2px; width:64px; min-height:56px; padding:4px}
.toc-open.pc{display:none}
.sb-in{display:flex; align-items:stretch; gap:var(--s1); max-width:560px; margin-inline:auto}
.stickybar .sb-in .btn{flex:1 1 auto; width:auto; min-width:0; margin:0}
@media (min-width:960px){
  .toc-open.sp{display:none}
  .toc-open.pc{display:inline-flex; position:fixed; top:16px; right:16px; z-index:25; min-height:44px; padding:0 14px; box-shadow:0 2px 8px rgba(29,42,33,.12)}
}
@media (max-width:959px){.toc-open.pc{display:none}}
/* 目次パネル */
.tocback{position:fixed; inset:0; z-index:40; background:rgba(29,42,33,.45)}
.tocpanel{position:fixed; z-index:41; inset:auto 0 0 0; max-height:85vh; overflow:auto; padding:var(--s2) var(--gutter) calc(var(--s3) + env(safe-area-inset-bottom)); background:var(--white); border-radius:var(--r-lg) var(--r-lg) 0 0; box-shadow:0 -8px 24px rgba(29,42,33,.2)}
.tocpanel[hidden],.tocback[hidden]{display:none}
.tp-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:var(--s2)}
.tp-head p{font-size:var(--fs-h3); font-weight:900}
.tp-close{min-height:44px; padding:0 16px; font:inherit; font-size:var(--fs-sm); font-weight:700; color:var(--ink); background:var(--gray); border:1px solid var(--line-strong); border-radius:var(--r-md); cursor:pointer}
.tocpanel ul{display:grid; gap:var(--s1)}
.tocpanel a{justify-content:flex-start; border-radius:var(--r-md); padding-inline:16px; font-size:var(--fs-body)}
@media (min-width:960px){
  .tocpanel{inset:68px 16px auto auto; width:320px; border-radius:var(--r-lg); box-shadow:0 8px 28px rgba(29,42,33,.22)}
  .tocback{background:transparent}
}
@media (prefers-reduced-motion:no-preference){
  .tocpanel:not([hidden]){animation:tpin .3s cubic-bezier(.16,1,.3,1)}
  @keyframes tpin{from{transform:translateY(24px); opacity:0}}
}
#why-h{scroll-margin-top:96px}

/* アーチの大きさは画面幅で変えない(写真が元の解像度を超えて拡大されないよう固定) */
.arches{width:auto}
.arch{width:148px; height:224px; aspect-ratio:auto}
.a2{margin-left:-10px}
@media (min-width:960px){
  .arches{width:auto; height:auto; align-items:flex-end}
  .arch{width:340px; height:560px}
  .a2{margin-left:-22px}
}

/* FV(PC): 文字・縦書き・写真を1つの固定の組(最大1200px)にまとめ、画面の中央に置く。
   画面の高さに合わせて各部品が別々に動かないよう、100svh や vh 基準の位置指定はやめる */
@media (min-width:960px){
  .fv{height:auto; min-height:0; max-height:none; display:block; padding-bottom:var(--s6)}
  .fv-in{position:relative; inset:auto; max-width:1200px; margin:0 auto; padding:var(--s4) calc(var(--gutter) + 16px) 0;
    display:grid; grid-template-columns:320px auto; grid-template-areas:"copy art"; column-gap:100px; align-items:end; justify-content:center}
  .fv-copy{align-self:end; padding-bottom:0}
  .fv-art{display:block; margin-right:0}
  .arches{display:flex; width:auto; height:auto; align-items:flex-start; margin-left:0; padding-top:0}
  .arch{width:240px; height:400px}
  .a2{margin-left:-18px}
  .catch{top:0; left:0; transform:translateX(calc(-100% + 40px)); font-size:36px}
  .answer{font-size:28px}
}
@media (min-width:1100px){
  .fv-in{grid-template-columns:360px auto; column-gap:110px}
  .arch{width:280px; height:460px}
  .a2{margin-left:-20px}
  .catch{font-size:42px; transform:translateX(calc(-100% + 44px))}
  .answer{font-size:30px}
}
@media (min-width:1280px){
  .fv-in{grid-template-columns:400px auto; column-gap:120px}
  .arch{width:340px; height:560px}
  .a2{margin-left:-22px}
  .catch{font-size:48px; transform:translateX(calc(-100% + 48px))}
  .answer{font-size:34px}
}
@media (min-width:960px){
  .hdr{max-width:1200px; margin:0 auto; box-sizing:border-box}
  .hdr-info{margin-right:0}
}

/* FV(スマホ・タブレット): 縦書き+2つのアーチを1つの組にして中央に置く。大きさは段階で固定(写真を引き伸ばさない) */
@media (max-width:959px){
  .fv-art{width:fit-content; margin-inline:auto}
  .arches{margin-left:64px}
  .arch{width:148px; height:224px}
  .a2{margin-left:-10px}
}
@media (max-width:379px){
  .arches{margin-left:58px}
  .arch{width:134px; height:206px}
  .a2{margin-left:-8px}
  .catch{font-size:22px}
}
@media (min-width:600px) and (max-width:959px){
  .arches{margin-left:96px}
  .arch{width:220px; height:340px}
  .a2{margin-left:-14px}
  .catch{font-size:34px}
}

/* 送信完了ページ・エラーページ */
.thanks{display:grid; align-content:center; min-height:100vh; padding-block:var(--s7); background:var(--gray)}
.thanks .box{display:grid; gap:var(--s3); justify-items:start}
.thanks h1{font-size:var(--fs-h2); line-height:1.5}
.thanks p{margin:0}
.thanks .back{display:inline-block; padding-block:12px}
.btn2.as-link{display:inline-flex; align-items:center; justify-content:center; text-decoration:none}

/* ===== 2026-11-13 修正 ===== */
/* 研修: 3ステップ=大きな1行タイトル */
.steps li{grid-template-columns:48px 1fr}
.st-t{margin:0; font-size:clamp(20px,1.2vw + 16px,28px); font-weight:900; line-height:1.45; letter-spacing:.02em; color:var(--ink)}
.st-t .k1{color:var(--sage-d); margin-inline-end:.05em}
.learn{margin-top:var(--s4); padding:var(--s3); border-radius:var(--r-lg); background:var(--tint)}
.learn-h{margin-bottom:var(--s1); font-size:var(--fs-h3); font-weight:900; color:var(--sage-d)}
.learn-list>li{display:grid; gap:2px; padding-block:var(--s2); border-top:1px solid var(--line-strong)}
.learn-list>li:first-child{border-top:0}
.learn-list b{font-weight:900; color:var(--ink)}
.learn-list span{font-size:var(--fs-sm); line-height:1.7; color:var(--ink2)}
.learn-list>li:last-child{padding-bottom:0}
@media (min-width:960px){
  .learn{padding:var(--s4)}
  .learn-list span{font-size:var(--fs-body)}
}
/* 説明会: 数字タイル+アイコン行 */
.info-card{display:grid; gap:var(--s3); align-items:center}
.ic-main{display:grid; gap:var(--s3)}
.tiles{display:grid; grid-template-columns:1fr 1fr; gap:var(--s2)}
.tile{display:grid; justify-items:start; align-content:start; gap:4px; padding:var(--s3) var(--s2); border-radius:var(--r-lg); background:var(--tint)}
.tile svg{width:32px; height:32px; margin-bottom:4px; stroke:var(--sage); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round}
.tile .lb{font-size:var(--fs-sm); font-weight:700; line-height:1.5; color:var(--ink2)}
.tile .fg{display:flex; align-items:baseline; gap:2px; font-size:var(--fs-h3); font-weight:700; line-height:1.2; color:var(--sage-d)}
.tile .fg b{font-size:clamp(44px,3vw + 30px,64px); font-weight:900; line-height:1.1; letter-spacing:0}
.tile .fg small{font-size:var(--fs-sm); font-weight:700}
.notes2{display:grid; gap:var(--s2)}
.notes2 li{display:grid; grid-template-columns:32px 1fr; gap:var(--s2); align-items:start}
.notes2 svg{width:32px; height:32px; margin-top:2px; stroke:var(--sage); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round}
.notes2 p{margin:0}
.notes2 b{display:block; font-size:var(--fs-sm); color:var(--ink2)}
.info-card .laptop{width:112px; margin:0 auto}
@media (min-width:960px){
  .info-card{grid-template-columns:minmax(0,1fr) 200px; column-gap:var(--s6); padding:var(--s5)}
  .info-card .laptop{width:200px; margin:0}
}
/* フォーム */
.pp{margin:var(--s2) 0 0; text-align:center}
.flinks{display:flex; flex-wrap:wrap; gap:var(--s1) var(--s2)}
.flinks a{display:inline-block; padding-block:8px}
/* 法務ページ(特商法・プライバシー) */
.legal{padding-block:var(--s5) var(--s7); background:var(--gray)}
.legal .box{width:min(720px,100%)}
.legal-top{display:flex; align-items:center; justify-content:space-between; gap:var(--s2); margin-bottom:var(--s4)}
.legal-logo{display:inline-flex; align-items:center; gap:var(--s1); color:var(--ink); font-weight:900; text-decoration:none}
.legal-logo svg{width:36px; height:36px}
.legal-top a.home{padding-block:12px; font-size:var(--fs-sm); font-weight:700}
.legal h1{margin-bottom:var(--s3); font-size:var(--fs-h2); line-height:1.5}
.legal .doc{padding:var(--s3); border:1px solid var(--line); border-radius:var(--r-lg); background:#fff}
.legal .lead{margin-bottom:var(--s3)}
.legal h2{margin:var(--s4) 0 var(--s1); font-size:var(--fs-h3); font-weight:900; line-height:1.5; color:var(--sage-d)}
.legal h2:first-of-type{margin-top:0}
.legal .doc p+p,.legal .doc ul{margin-top:var(--s1)}
.legal .doc ul{display:grid; gap:4px; padding-left:1.2em; list-style:disc}
.legal .doc li{padding-left:2px}
.legal dl.tk{border-top:1px solid var(--line)}
.legal dl.tk>div{display:grid; gap:4px; padding-block:var(--s2); border-bottom:1px solid var(--line)}
.legal dl.tk dt{font-size:var(--fs-sm); font-weight:700; color:var(--ink2)}
.legal dl.tk dd{margin:0; overflow-wrap:anywhere}
.legal .tbc{color:#B00020; font-weight:700; white-space:nowrap}
.legal .date{margin-top:var(--s4); color:var(--ink2); font-size:var(--fs-sm)}
@media (min-width:720px){
  .legal .doc{padding:var(--s5)}
  .legal dl.tk>div{grid-template-columns:11em 1fr; gap:var(--s3)}
}
.legal .date .tbc{white-space:normal}
.legal .box{padding-inline:var(--gutter)}
.flinks span{display:none}
.flinks{gap:0 var(--s3)}

/* ===== 2026-11-13b 説明会セクションの組み直し =====
   左=開催概要の白い1枚(入れ子の箱なし・線で区切る)、右=当日お伝えすること(地の上に番号つきの行)。
   ノートPCの絵は白い1枚の右上の角に重ねて「オンラインの場」を示す */
.ses{display:grid; gap:var(--s5); margin-top:calc(var(--s5) + 24px)}
.ses-sheet{position:relative; padding:var(--s4) var(--s3) var(--s3); border-radius:var(--r-lg); background:#fff; box-shadow:0 1px 2px rgba(29,42,33,.04), 0 12px 32px -16px rgba(11,122,85,.28)}
.ses-pc{position:absolute; right:12px; top:-52px; width:128px; height:auto}
.ses-kind{display:flex; align-items:center; gap:10px; max-width:calc(100% - 132px); font-size:var(--fs-sm); font-weight:700; line-height:1.5; letter-spacing:.08em; color:var(--sage-d)}
.ses-kind::before{content:""; flex:none; width:8px; height:8px; border-radius:50%; background:var(--sage)}
.ses-figs{display:grid; grid-template-columns:1fr 1fr; margin-top:var(--s4)}
.ses-figs>div+div{padding-left:var(--s3); border-left:1px solid var(--line)}
.ses-figs dt{font-size:var(--fs-body); font-weight:700; line-height:1.5; color:var(--ink)}
.ses-figs dd{display:flex; align-items:baseline; gap:2px; margin-top:4px; font-size:22px; font-weight:900; line-height:1; color:var(--sage-d); white-space:nowrap}
.ses-figs dd b{font-size:64px; font-weight:900; line-height:1; letter-spacing:-.01em}
.ses-figs dd small{font-size:18px; font-weight:700}
.ses-figs .mu{font-size:.8em; letter-spacing:.02em}
.ses-who{display:grid; grid-template-columns:auto 1fr; column-gap:var(--s2); align-items:baseline; margin-top:var(--s3); padding-top:var(--s3); border-top:1px solid var(--line)}
.ses-who dt{font-size:var(--fs-body); font-weight:700; color:var(--ink)}
.ses-who dd{font-size:var(--fs-body); line-height:1.7}
.ses-safe{display:grid; grid-template-columns:28px 1fr; gap:12px; align-items:start; margin-top:var(--s3); padding-top:var(--s3); border-top:1px solid var(--line); font-weight:700; line-height:1.7; color:var(--sage-d)}
.ses-safe svg{width:28px; height:28px; stroke:var(--sage); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round}

.ag-h{font-size:var(--fs-h3); font-weight:900; line-height:1.5; color:var(--ink)}
.ag{margin-top:var(--s2); counter-reset:ag; border-top:2px solid var(--sage)}
.ag>li{counter-increment:ag; position:relative; padding:var(--s3) 0 var(--s3) 56px; border-bottom:1px solid #BFE3D1}
.ag>li:last-child{border-bottom:0; padding-bottom:0}
.ag>li::before{content:counter(ag,decimal-leading-zero); position:absolute; left:0; top:var(--s3); font-size:26px; font-weight:900; line-height:1.3; letter-spacing:0; color:var(--sage)}
.ag h4{margin:0; font-size:clamp(19px,.6vw + 16px,23px); font-weight:900; line-height:1.5; color:var(--ink)}
.ag>li>p{margin-top:4px; line-height:1.8}
.ag-sup{display:grid; gap:var(--s3); margin-top:var(--s3)}
.ag-sup li{display:grid; grid-template-columns:48px 1fr; gap:var(--s2); align-items:start}
.ag-sup svg{width:48px; height:48px; padding:11px; border-radius:50%; background:#fff; stroke:var(--sage-d); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round}
.ag-sup h5{margin:0; font-size:var(--fs-body); font-weight:900; line-height:1.5; color:var(--ink)}
.ag-sup p{margin-top:2px; font-size:15px; line-height:1.7; color:var(--ink2)}
@media (min-width:600px){
  .ses-sheet{padding:var(--s5) var(--s4) var(--s4)}
  .ses-pc{right:20px; top:-64px; width:152px}
  .ses-kind{max-width:calc(100% - 156px)}
  .ag-sup{grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s3) var(--s4)}
}
@media (min-width:960px){
  .ses{grid-template-columns:minmax(0,400px) minmax(0,1fr); column-gap:var(--s6); align-items:start; margin-top:calc(var(--s6) + 16px)}
  .ag>li{padding-left:64px}
  .ag-sup{grid-template-columns:1fr; gap:var(--s2)}
  .ses-sheet{position:sticky; top:96px}
}
@media (min-width:1100px){
  .ses{column-gap:var(--s7)}
}
@media (max-width:599px){
  .ag-sup{margin-left:-56px}
}
/* フォームへの文字リンク: どの幅でもLINEボタンの中心線にそろえる */
.cta-form{padding-inline:12px}
@media (min-width:960px){
  .fv-copy .cta-main{align-items:center}
}

/* プライバシーポリシー同意チェック */
.agree{margin-bottom:var(--s3)}
.chk{position:relative; display:flex; align-items:center; gap:12px; min-height:48px; padding:4px 0; cursor:pointer; font-weight:700}
.chk input{position:absolute; opacity:0; width:44px; height:44px; left:-4px; top:50%; transform:translateY(-50%); margin:0; cursor:pointer}
.chk .box{flex:none; width:28px; height:28px; border:2px solid var(--ink2); border-radius:8px; background:#fff; display:grid; place-items:center}
.chk input:checked+.box{background:var(--sage-d); border-color:var(--sage-d)}
.chk input:checked+.box::after{content:""; width:7px; height:14px; border:solid #fff; border-width:0 3px 3px 0; transform:translateY(-1px) rotate(45deg)}
.chk input:focus-visible+.box{outline:3px solid var(--sage); outline-offset:3px}
.chk-t{display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px}
.chk-t a{text-decoration:underline; text-underline-offset:3px; color:var(--sage-d)}
.chk-t{display:block; line-height:1.7}
.chk-t .tag{display:inline-block; margin-left:8px; white-space:nowrap}
.thanks{padding-inline:var(--s3)}
@media (min-width:768px){.thanks{padding-inline:max(var(--s3),calc((100vw - 720px)/2))}}
