/* =========================================================
   マップ集客ラボ｜Googleマップ集客代行  共通スタイル（白基調 v2・2026-07-03）
   全6ページの唯一のトークン正本。ハードコード禁止＝var()で使う。
   09_サイト大枠_デザイン方針§4 準拠：白基調＋深緑アクセント＋琥珀CTA。
   ========================================================= */
:root{
  /* ---- カラートークン（白基調 v3・2026-07-07 コントラスト設計） ----
     設計：色を足さず明暗差を作る。白い面／墨の文字／少量の深緑／鮮やかな朱の一点。 */
  --c-bg:#FFFFFF;        /* ページ背景＝純白。清潔・隠しごとがない面 */
  --c-sub:#F6F7F4;       /* セクション交互面（寒色寄りニュートラル。黄みの生成りは使わない） */
  --c-soft:#EDF0EC;      /* さらに一段沈む面（カード内サブ・タリー面） */
  --c-ink:#101B14;       /* 本文＝墨。画面を締める錨（真っ黒#000は使わない） */
  --c-muted:#5A675E;     /* 補助テキスト */
  --c-accent:#1F4D3A;    /* 深緑。線・ラベル・見出し差し色・図の1色に限定 */
  --c-accent-d:#153826;  /* 深緑（濃・ホバー/強調線） */
  --c-cta:#B4531F;       /* 赤銅CTA。深緑と調和しつつ行動を示す一点 */
  --c-cta-d:#8F3F17;     /* 赤銅CTA hover */
  --c-white:#FFFFFF;     /* カード面 */
  --c-line:#E3E7E2;      /* 罫線（寒色寄りへ統一） */
  --c-card:#FFFFFF;      /* カード面 */
  /* 旧トークン別名（後方互換・残存参照の事故防止） */
  --c-main:var(--c-accent); --c-main-d:var(--c-accent-d);
  --c-accent2:var(--c-cta); --c-accent2-d:var(--c-cta-d);
  /* ---- 余白・角丸・影 ---- */
  --r-sm:8px; --r-md:14px; --r-lg:22px;
  --shadow:0 24px 60px -36px rgba(16,27,20,.28);
  --shadow-s:0 12px 28px -20px rgba(16,27,20,.22);
  --maxw:1120px;
  --font-go:'Noto Sans JP','Hiragino Sans','Yu Gothic',sans-serif;
  --font-min:'Shippori Mincho',serif;
  --font-en:'Space Grotesk',sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--c-bg);color:var(--c-ink);
  font-family:var(--font-go);font-size:17px;line-height:1.95;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
h1,h2,h3,.lead,.btn,summary{word-break:auto-phrase;text-wrap:balance;}
img{max-width:100%;display:block;}
a{color:inherit;}
.en{font-family:var(--font-en);letter-spacing:.04em;}
.min{font-family:var(--font-min);}

/* 共通ボタン（琥珀CTA） */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-weight:700;font-size:16px;line-height:1.4;text-decoration:none;
  padding:16px 30px;border-radius:999px;cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.btn--cta{background:var(--c-cta);color:var(--c-white);box-shadow:0 16px 32px -18px rgba(194,65,12,.55);}
.btn--cta:hover{transform:translateY(-2px);background:var(--c-cta-d);}
.btn--ghost{background:transparent;color:var(--c-accent);border:1.6px solid rgba(31,77,58,.4);}
.btn--ghost:hover{background:rgba(31,77,58,.06);}
.btn--ondark{background:transparent;color:var(--c-white);border:1.6px solid rgba(255,255,255,.55);}
.btn--ondark:hover{background:rgba(255,255,255,.12);}
.btn--line{background:var(--c-white);color:var(--c-accent);border:1.6px solid var(--c-line);}
.btn--line:hover{transform:translateY(-2px);box-shadow:var(--shadow-s);}
.btn .pin{width:18px;height:18px;flex:none;}

/* 共通：セクション見出しラベル（アイブロウ） */
.s-eyebrow{font-family:var(--font-en);font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--c-accent);font-weight:700;display:inline-flex;gap:12px;align-items:center;}
.s-eyebrow::before{content:"";width:30px;height:2px;background:var(--c-cta);}

/* 署名モチーフ：等高線の薄い下地（複数セクションで反復・ごく薄く） */
.contour-bg{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(circle at 20% 30%, transparent 38px, rgba(31,77,58,.045) 39px, transparent 41px),
                   radial-gradient(circle at 20% 30%, transparent 70px, rgba(31,77,58,.04) 71px, transparent 73px),
                   radial-gradient(circle at 80% 75%, transparent 50px, rgba(31,77,58,.04) 51px, transparent 53px),
                   radial-gradient(circle at 80% 75%, transparent 90px, rgba(31,77,58,.035) 91px, transparent 93px);}

/* fallback：JSあり(.j)でGSAP対象を初期非表示にしてから出す。JS無し時は常時可読 */
.j .anim{opacity:1;}
@media(prefers-reduced-motion:reduce){ .j .anim{opacity:1;} }

/* レスポンシブ共通 */
@media(max-width:768px){ body{font-size:16px;} }

/* Zoroya intro-13（円形マスク）+ intro-04（文字ライン）を導線の物語に再構成 */
.s-intro{position:fixed;inset:0;z-index:1000;background:#f4f0e7;color:var(--c-ink);overflow:hidden;transition:opacity .4s ease,visibility .4s ease;animation:intro-out .4s 5.05s forwards;isolation:isolate;}
.intro-seen .s-intro{display:none;}
.s-intro.is-done{opacity:0;visibility:hidden;pointer-events:none;}
.s-intro__scene{position:absolute;inset:0;z-index:-1;clip-path:circle(0 at 68% 44%);animation:intro-circle 1.65s .3s cubic-bezier(.76,0,.24,1) forwards;}
.s-intro__map{position:absolute;inset:-5%;background:linear-gradient(90deg,rgba(244,240,231,.87) 0%,rgba(244,240,231,.38) 52%,rgba(244,240,231,.12) 100%),url('../../src/fv.jpg') center/cover no-repeat;transform:scale(1.1);animation:intro-map 5.8s .3s cubic-bezier(.2,.7,.2,1) forwards;}
.s-intro__locator{position:absolute;left:68%;top:44%;width:82px;height:82px;border:1px solid rgba(180,83,31,.45);border-radius:50%;transform:translate(-50%,-50%) scale(0);animation:intro-locator 1.3s .5s ease-out forwards;}
.s-intro__locator::before,.s-intro__locator::after{content:"";position:absolute;inset:13px;border:1px solid rgba(180,83,31,.35);border-radius:50%;}.s-intro__locator::after{inset:31px;background:var(--c-cta);border:0;}
.s-intro__chapter{position:absolute;left:clamp(28px,8vw,132px);top:50%;z-index:2;width:min(720px,82vw);transform:translateY(-50%);}
.s-intro__kicker{display:block;font:700 11px var(--font-en);letter-spacing:.28em;color:var(--c-cta);opacity:0;animation:intro-copy .55s .2s forwards;}
.s-intro__chapter p{margin:20px 0 0;font:700 clamp(32px,5.7vw,78px)/1.28 var(--font-min);letter-spacing:.02em;}
.s-intro__chapter p span{display:block;clip-path:inset(0 100% 0 0);animation:intro-wipe .9s cubic-bezier(.76,0,.24,1) forwards;}.s-intro__chapter p span:first-child{animation-delay:.65s}.s-intro__chapter p span:last-child{animation-delay:1.02s;color:var(--c-accent)}
.s-intro__chapter--first{animation:intro-chapter-out .45s 2.2s forwards;}
.s-intro__journey{position:absolute;left:50%;top:50%;z-index:3;width:min(760px,82vw);transform:translate(-50%,-40%);opacity:0;animation:intro-journey-in .42s 2.42s forwards,intro-chapter-out .4s 3.95s forwards;}
.s-intro__rail{height:2px;background:rgba(31,77,58,.18);position:relative;margin:0 11%;}.s-intro__rail i{position:absolute;inset:0;background:var(--c-accent);transform:scaleX(0);transform-origin:left;animation:intro-rail 1.1s 2.62s cubic-bezier(.65,0,.35,1) forwards;}
.s-intro__rail b{position:absolute;top:50%;width:15px;height:15px;border:3px solid #f4f0e7;border-radius:50%;background:var(--c-cta);transform:translate(-50%,-50%) scale(0);animation:intro-dot .3s forwards;box-shadow:0 0 0 1px var(--c-cta)}.s-intro__rail .p1{left:0;animation-delay:2.62s}.s-intro__rail .p2{left:50%;animation-delay:3.1s}.s-intro__rail .p3{left:100%;animation-delay:3.62s}
.s-intro__journey ol{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);text-align:center;font:700 clamp(17px,2.4vw,27px) var(--font-min);}.s-intro__journey li{opacity:0;transform:translateY(8px);animation:intro-step .38s forwards}.s-intro__journey li:nth-child(1){animation-delay:2.68s}.s-intro__journey li:nth-child(2){animation-delay:3.16s}.s-intro__journey li:nth-child(3){animation-delay:3.68s}.s-intro__journey small{display:block;margin-bottom:5px;font:700 10px var(--font-en);letter-spacing:.18em;color:var(--c-cta)}
.s-intro__brand{position:absolute;inset:0;z-index:4;display:flex;align-items:center;justify-content:center;gap:18px;font-family:var(--font-min);font-size:clamp(25px,4vw,42px);font-weight:800;letter-spacing:.06em;opacity:0;transform:scale(.97);animation:intro-brand .55s 4.03s cubic-bezier(.16,1,.3,1) forwards;}
.s-intro__brand img{width:58px;height:58px;border-radius:13px;box-shadow:0 14px 36px -20px rgba(16,27,20,.5);}
.s-intro__brand small{display:block;font-family:var(--font-en);font-size:9px;letter-spacing:.2em;color:var(--c-muted);margin-top:2px;}
.s-intro__reveal{position:absolute;z-index:5;left:50%;top:50%;width:10vmax;height:10vmax;border-radius:50%;background:transparent;transform:translate(-50%,-50%) scale(0);box-shadow:0 0 0 0 #fff;animation:intro-reveal .6s 4.48s cubic-bezier(.76,0,.24,1) forwards;pointer-events:none;}
.s-intro__skip{position:absolute;right:24px;top:22px;border:0;background:transparent;color:var(--c-muted);font:600 12px var(--font-go);text-decoration:underline;text-underline-offset:4px;cursor:pointer;padding:10px;}
@keyframes intro-circle{to{clip-path:circle(88vmax at 68% 44%);}}
@keyframes intro-brand{to{opacity:1;transform:scale(1);}}
@keyframes intro-copy{to{opacity:1;}}
@keyframes intro-map{to{transform:scale(1);}}
@keyframes intro-locator{45%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(-50%,-50%) scale(1.8);opacity:0}}
@keyframes intro-wipe{to{clip-path:inset(0 0 0 0)}}
@keyframes intro-chapter-out{to{opacity:0;transform:translateY(-58%);visibility:hidden}}
@keyframes intro-journey-in{to{opacity:1;transform:translate(-50%,-50%)}}
@keyframes intro-rail{to{transform:scaleX(1)}}
@keyframes intro-dot{to{transform:translate(-50%,-50%) scale(1)}}
@keyframes intro-step{to{opacity:1;transform:none}}
@keyframes intro-reveal{to{transform:translate(-50%,-50%) scale(24);box-shadow:0 0 0 12vmax rgba(255,255,255,.96)}}
@keyframes intro-out{to{opacity:0;visibility:hidden;pointer-events:none;}}
@media(max-width:600px){.s-intro__chapter{left:26px;width:calc(100% - 52px);top:46%}.s-intro__chapter p{font-size:clamp(29px,9vw,43px)}.s-intro__scene{clip-path:circle(0 at 72% 30%)}.s-intro__locator{left:72%;top:30%}.s-intro__journey{width:88vw}.s-intro__journey ol{font-size:16px}.s-intro__brand{gap:13px}.s-intro__brand img{width:48px;height:48px}.s-intro__skip{right:12px;top:10px}}
@media(prefers-reduced-motion:reduce){.s-intro{display:none;}}

/* =========================================================
   HEADER（header-06 移植・白基調化・スコープ .s-hd）
   ========================================================= */
.s-hd{position:sticky;top:0;z-index:60;background:rgba(252,251,248,.92);backdrop-filter:blur(8px);box-shadow:0 2px 18px -14px rgba(28,43,36,.28);}
.s-hd__in{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px 28px;}
.s-hd__logo{display:flex;align-items:center;gap:12px;text-decoration:none;}
.s-hd__logo img{width:42px;height:42px;border-radius:9px;}
.s-hd__nm{font-family:var(--font-min);font-weight:700;font-size:21px;letter-spacing:.04em;color:var(--c-accent);}
.s-hd__nm small{display:block;font-family:var(--font-en);font-size:9px;letter-spacing:.18em;color:var(--c-muted);font-weight:500;}
.s-hd__right{display:flex;align-items:center;gap:26px;}
.s-hd__nav{display:flex;gap:24px;}
.s-hd__nav a{color:var(--c-ink);text-decoration:none;font-size:14.5px;font-weight:700;position:relative;white-space:nowrap;}
.s-hd__nav a::after{content:"";position:absolute;left:0;bottom:-6px;height:2px;width:0;background:var(--c-cta);transition:width .25s;}
.s-hd__nav a:hover{color:var(--c-accent);} .s-hd__nav a:hover::after{width:100%;}
.s-hd__cta{padding:12px 20px;font-size:14px;}
.s-hd__line{height:3px;background:linear-gradient(90deg,var(--c-accent),var(--c-cta));}
/* ハンバーガー */
.s-hd__burger{display:none;width:44px;height:44px;border:none;background:var(--c-accent);border-radius:11px;cursor:pointer;position:relative;}
.s-hd__burger i{position:absolute;left:50%;top:50%;width:18px;height:2px;background:#fff;transform:translate(-50%,-50%);transition:transform .35s,opacity .25s;}
.s-hd__burger i:nth-child(1){transform:translate(-50%,calc(-50% - 5px));}
.s-hd__burger i:nth-child(3){transform:translate(-50%,calc(-50% + 5px));}
@media(max-width:900px){ .s-hd__nav{display:none;} .s-hd__cta{display:none;} .s-hd__burger{display:block;} }

/* SPメニュー（spmenu-01 移植・スコープ .s-sp） */
.s-sp__shade{position:fixed;inset:0;z-index:70;background:rgba(22,43,36,.45);opacity:0;visibility:hidden;transition:opacity .4s;}
.s-sp.open .s-sp__shade{opacity:1;visibility:visible;}
.s-sp__dw{position:fixed;top:0;right:0;bottom:0;width:min(84%,360px);z-index:75;background:var(--c-bg);display:flex;flex-direction:column;
  transform:translateX(104%);transition:transform .5s cubic-bezier(.22,1,.36,1);box-shadow:-22px 0 44px -22px rgba(22,43,36,.4);}
.s-sp.open .s-sp__dw{transform:translateX(0);}
.s-sp__hd{padding:26px 24px 16px;border-bottom:1px solid var(--c-line);display:flex;justify-content:space-between;align-items:center;}
.s-sp__hd b{font-family:var(--font-min);font-size:18px;color:var(--c-accent);}
.s-sp__close{border:none;background:transparent;font-size:26px;line-height:1;color:var(--c-accent);cursor:pointer;}
.s-sp__bd{flex:1;overflow-y:auto;padding:8px 0;}
.s-sp__bd a{display:block;padding:16px 24px;text-decoration:none;color:var(--c-ink);font-weight:700;font-size:15.5px;border-bottom:1px solid var(--c-line);}
.s-sp__ft{padding:18px 24px 30px;border-top:1px solid var(--c-line);}
.s-sp__ft .btn{width:100%;}

/* =========================================================
   ① FV（fv-52 SearchType 移植・白基調＋地図背景・スコープ .s-hero）
   背景に地図画像(src/fv.jpg=淡い生成り)を全面敷き、白/生成りの薄い
   オーバーレイで可読性を確保（深緑ベタ背景には戻さない）。
   その上に 見出し・サブ・検索窓・CTA が乗る＝本番現行版の"地図の上"の世界観。
   ========================================================= */
.s-hero{position:relative;width:100%;overflow:hidden;background:var(--c-bg);color:var(--c-ink);}
/* 背景は純白。旧イラスト背景(fv.jpg)＋ベールは廃止し、右奥に等高線を"ごく薄く"だけ残す */
.s-hero__bg,.s-hero__veil{display:none;}
.s-hero::before{content:"";position:absolute;right:-120px;top:-90px;width:660px;height:660px;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 60% 40%, transparent 122px, rgba(31,77,58,.05) 123px, transparent 125px),
    radial-gradient(circle at 60% 40%, transparent 176px, rgba(31,77,58,.045) 177px, transparent 179px),
    radial-gradient(circle at 60% 40%, transparent 236px, rgba(31,77,58,.04) 237px, transparent 239px),
    radial-gradient(circle at 60% 40%, transparent 302px, rgba(31,77,58,.035) 303px, transparent 305px);}
.s-hero::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.96) 34%,rgba(255,255,255,.48) 67%,rgba(255,255,255,.74) 100%),url('../../src/fv.jpg');background-position:center,72% center;background-size:cover,cover;opacity:.54;animation:hero-map-drift 14s ease-in-out infinite alternate;}
@keyframes hero-map-drift{from{background-position:center,70% center}to{background-position:center,74% center}}
.s-hero__inner{position:relative;z-index:2;max-width:1240px;margin:0 auto;
  display:grid;grid-template-columns:1.06fr .94fr;gap:56px;align-items:center;padding:92px 40px 96px;}
.s-hero__copy{max-width:600px;}
.s-hero__tag{display:block;font-family:var(--font-en);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--c-accent);font-weight:700;}
.s-hero__tag .en-line{display:inline-flex;gap:12px;align-items:center;white-space:nowrap;}
.s-hero__tag .en-line::before{content:"";width:34px;height:2px;background:var(--c-accent);}
.s-hero__tagjp{display:block;font-family:var(--font-go);font-size:13px;font-weight:700;letter-spacing:.04em;color:var(--c-muted);margin-top:10px;text-transform:none;}
/* 見出しは墨で締め、キーワード1語だけ深緑＋蛍光ペン風の下線＝強調を1点に集中 */
.s-hero h1{font-family:var(--font-min);font-weight:800;font-size:clamp(34px,4.9vw,56px);line-height:1.4;margin:20px 0 0;letter-spacing:.01em;color:var(--c-ink);}
.s-hero h1 em{font-style:normal;color:var(--c-accent);background:linear-gradient(transparent 78%, rgba(31,77,58,.16) 78%);}
.s-hero__sub{font-size:clamp(16px,1.4vw,18px);line-height:2;color:var(--c-ink);margin:26px 0 0;max-width:31em;}
.s-hero__sub b{color:var(--c-accent);font-weight:700;}
.s-hero__cta{margin-top:36px;display:flex;gap:14px;flex-wrap:wrap;}
.s-hero__note{margin-top:20px;font-size:13px;color:var(--c-muted);letter-spacing:.02em;line-height:1.9;}
/* 右：検索の実物風UI（イラストの代替＝サイトの主張そのものを絵にする） */
.s-hero__visual{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:14px;}
.s-hero__search{background:var(--c-white);border:1px solid var(--c-line);border-radius:999px;box-shadow:var(--shadow-s);display:flex;align-items:center;gap:12px;padding:16px 22px;}
.s-hero__search svg{flex:none;}
.s-hero__q{color:var(--c-ink);font-size:clamp(15px,1.6vw,18px);font-weight:700;text-align:left;flex:1;min-height:1.4em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.s-hero__cursor{display:inline-block;width:2px;height:1.05em;background:var(--c-accent);margin-left:1px;vertical-align:-2px;animation:hero-blink 1s steps(1) infinite;}
@keyframes hero-blink{50%{opacity:0;}}
.s-hero__result{background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:10px 0 0;overflow:hidden;}
.s-hero__result-label{font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--c-muted);padding:8px 22px 6px;}
.s-hero__rrow{display:flex;align-items:center;gap:12px;padding:13px 22px;border-top:1px solid var(--c-line);}
.s-hero__rrow .rk{font-family:var(--font-en);font-weight:700;font-size:14px;color:var(--c-muted);width:18px;flex:none;}
.s-hero__rrow .nm{font-weight:700;font-size:15px;}
.s-hero__rrow .mt{font-size:12.5px;color:var(--c-muted);}
.s-hero__rrow .st{color:#F5A623;}
.s-hero__rrow .badge{margin-left:auto;font-size:11.5px;font-weight:700;color:#fff;background:var(--c-accent);border-radius:999px;padding:3px 12px;white-space:nowrap;}
.s-hero__rrow.dim{background:var(--c-sub);}
.s-hero__rrow.dim .nm,.s-hero__rrow.dim .rk{color:var(--c-muted);}
.s-hero__rrow .badge.out{margin-left:auto;color:var(--c-muted);border:1.4px dashed var(--c-muted);background:transparent;}
.s-hero__fold{display:flex;align-items:center;gap:10px;padding:9px 22px;font-size:12px;color:var(--c-muted);border-top:1px dashed var(--c-line);}
.s-hero__fold::before,.s-hero__fold::after{content:"";height:1px;background:var(--c-line);flex:1;}
.s-hero__pinrow{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--c-muted);padding:0 6px;}
.s-hero__pinrow .dot{width:9px;height:9px;border-radius:50%;flex:none;background:var(--c-accent);}
@media(max-width:900px){
  .s-hero__inner{grid-template-columns:1fr;padding:52px 24px 56px;gap:28px;}
  .s-hero h1{font-size:clamp(30px,8.4vw,38px);}
  .s-hero__cta{flex-direction:column;} .s-hero__cta .btn{width:100%;}
  .s-hero::before{right:-260px;top:-170px;}
  .s-hero::after{background-image:linear-gradient(180deg,rgba(255,255,255,.72),#fff 64%),url('../../src/fv.jpg');background-position:center top;background-size:auto,auto 58%;background-repeat:no-repeat;opacity:.42;animation:none;}
}
@media(max-width:480px){
  .s-hd__in{padding:11px 16px;gap:12px;}
  .s-hd__logo{gap:8px;min-width:0;}
  .s-hd__logo img{width:36px;height:36px;}
  .s-hd__nm{font-size:17px;white-space:nowrap;}
  .s-hd__nm small{font-size:7px;}
  .s-hero__inner{padding:42px 20px 48px;}
  .s-hero__tag .en-line{white-space:normal;}
  .s-hero__tagjp{font-size:12px;line-height:1.75;}
  .s-hero h1{font-size:clamp(29px,9.3vw,36px);line-height:1.48;overflow-wrap:anywhere;}
  .s-hero__sub{font-size:15px;line-height:1.9;}
  .s-hero__cta .btn{padding:15px 16px;font-size:14px;white-space:normal;text-align:center;}
  .s-hero__note{font-size:11.5px;}
  .s-hero__search{padding:14px 16px;}
  .s-hero__rrow{padding:12px 14px;gap:8px;min-width:0;}
  .s-hero__rrow>div{min-width:0;}
  .s-hero__rrow .nm,.s-hero__rrow .mt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .s-hero__rrow .badge{padding:3px 8px;font-size:10px;}
  .s-hero__fold{padding:8px 12px;text-align:center;}
  .s-hero__pinrow{align-items:flex-start;line-height:1.7;}
}

/* FV直下：見つかってから来店までを一本で示す */
.s-route{padding:72px 0 78px;background:var(--c-sub);border-top:1px solid var(--c-line);border-bottom:1px solid var(--c-line);}
.s-route__inner{width:min(1120px,calc(100% - 48px));margin:0 auto;}
.s-route__head{display:grid;grid-template-columns:.7fr 1.3fr;align-items:end;gap:40px;margin-bottom:42px;}
.s-route__head h2{font-family:var(--font-min);font-size:clamp(24px,3.4vw,38px);line-height:1.5;color:var(--c-accent);margin:0;}
.s-route__line{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);position:relative;}
.s-route__line::before{content:"";position:absolute;left:6%;right:6%;top:22px;height:1px;background:var(--c-accent);opacity:.35;}
.s-route__line li{position:relative;padding:58px 24px 4px 0;border-right:1px solid var(--c-line);}
.s-route__line li:last-child{border-right:0;padding-right:0;padding-left:24px;}
.s-route__line li:not(:first-child){padding-left:24px;}
.s-route__no{position:absolute;top:0;left:0;width:44px;height:44px;border:1px solid var(--c-accent);border-radius:50%;display:grid;place-items:center;background:var(--c-sub);font:700 11px var(--font-en);color:var(--c-accent);z-index:1;}
.s-route__line strong{display:block;font-family:var(--font-min);font-size:21px;color:var(--c-ink);}
.s-route__line small{display:block;margin-top:9px;font-size:13px;line-height:1.8;color:var(--c-muted);}
.s-route__note{max-width:760px;margin:36px 0 0;font-size:14px;line-height:1.95;color:var(--c-muted);}
@media(max-width:700px){
  .s-route{padding:58px 0 62px;}
  .s-route__inner{width:min(100% - 40px,560px);}
  .s-route__head{display:block;margin-bottom:30px;}
  .s-route__head h2{margin-top:14px;}
  .s-route__line{grid-template-columns:1fr;}
  .s-route__line::before{left:21px;right:auto;top:22px;bottom:22px;width:1px;height:auto;}
  .s-route__line li,.s-route__line li:not(:first-child),.s-route__line li:last-child{min-height:98px;padding:5px 0 24px 66px;border-right:0;border-bottom:1px solid var(--c-line);}
  .s-route__line li:last-child{border-bottom:0;}
  .s-route__no{left:0;}
  .s-route__line small br{display:none;}
  .s-route__note{margin-top:22px;}
  .s-intro__brand{font-size:23px;gap:12px;}
  .s-intro__brand img{width:44px;height:44px;}
  .s-intro__route{gap:7px;font-size:10px;}
}

/* =========================================================
   ② 顧客の声リード（message → 独白・スコープ .s-lead）
   ========================================================= */
.s-lead{position:relative;padding:96px 0;background:var(--c-sub);overflow:hidden;}
.s-lead__wrap{position:relative;z-index:1;width:min(840px,calc(100% - 48px));margin:0 auto;text-align:center;}
.s-lead__rule{width:54px;height:2px;background:var(--c-cta);margin:0 auto 34px;transform-origin:center;}
.j .s-lead__rule{transform:scaleX(0);}
.s-lead__q{font-family:var(--font-min);font-weight:700;font-size:clamp(21px,3vw,32px);line-height:1.7;color:var(--c-accent);margin:0 0 26px;}
.s-lead__body{font-family:var(--font-min);font-weight:600;font-size:clamp(17px,2.1vw,21px);line-height:2.1;color:var(--c-ink);}
.s-lead__body span{display:block;margin-bottom:.5em;}
.s-lead__body span:last-child{margin-bottom:0;}
.s-lead__hl{color:var(--c-accent);}
@media(max-width:768px){ .s-lead{padding:72px 0;} }

/* =========================================================
   ③ あるあるチェックリスト（features 縦リスト・スクロール連動・スコープ .s-check）
   ========================================================= */
.s-check{position:relative;padding:96px 0;background:var(--c-bg);overflow:hidden;}
.s-check__contour{position:absolute;inset:0;z-index:0;}
.s-check__inner{position:relative;z-index:1;width:min(840px,calc(100% - 48px));margin:0 auto;}
.s-check__head{text-align:center;margin-bottom:42px;}
.s-check__head h2{font-family:var(--font-min);font-weight:800;font-size:clamp(26px,4.2vw,40px);margin:14px 0 0;color:var(--c-accent);}
.s-check__head p{font-size:14.5px;color:var(--c-muted);max-width:34em;margin:14px auto 0;line-height:1.9;}
.s-check__sheet{background:var(--c-card);border:1px solid var(--c-line);box-shadow:var(--shadow);padding:clamp(24px,4.4vw,46px);position:relative;border-radius:var(--r-md);}
.s-check__sheet::before{content:'';position:absolute;left:0;top:0;width:100%;height:6px;background:var(--c-accent);border-radius:var(--r-md) var(--r-md) 0 0;}
.s-check__title{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--c-line);padding-bottom:14px;margin-bottom:6px;}
.s-check__title .t{font-family:var(--font-min);font-weight:700;font-size:clamp(16px,2vw,20px);letter-spacing:.06em;color:var(--c-ink);}
.s-check__title .no{font-family:var(--font-en);font-size:10px;letter-spacing:.2em;color:var(--c-muted);}
.s-check__item{display:flex;align-items:flex-start;gap:16px;padding:18px 4px;border-bottom:1px dashed var(--c-line);}
.s-check__item:last-of-type{border-bottom:none;}
.s-check__cb{position:relative;width:26px;height:26px;border:2px solid var(--c-accent);border-radius:5px;flex:none;margin-top:4px;background:#fff;}
.s-check__cb svg{position:absolute;left:-4px;top:-9px;width:34px;height:34px;overflow:visible;}
.s-check__cb svg path{fill:none;stroke:var(--c-accent);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;}
.s-check__tx{font-size:clamp(15px,1.9vw,17px);font-weight:500;line-height:1.85;}
.s-check__tx small{display:block;font-size:12.5px;color:var(--c-muted);font-weight:400;margin-top:2px;line-height:1.7;}
.s-check__tally{margin-top:24px;background:var(--c-soft);border:1px solid var(--c-line);padding:20px 24px;display:flex;align-items:center;gap:18px;flex-wrap:wrap;border-radius:var(--r-sm);}
.s-check__score{font-family:var(--font-en);font-weight:700;font-size:clamp(26px,3.6vw,38px);color:var(--c-accent);white-space:nowrap;}
.s-check__score small{font-size:.5em;color:var(--c-muted);font-weight:500;}
.s-check__tally p{margin:0;font-size:14px;flex:1;min-width:min(16em,100%);line-height:1.9;}
.s-check__tally p b{font-weight:700;background:linear-gradient(transparent 62%,rgba(194,65,12,.24) 62%);}
@media(max-width:768px){ .s-check{padding:72px 0;} }

/* =========================================================
   ④ 思想の宣言（message・1カラム・カード化しない・スコープ .s-manifesto）
   ========================================================= */
.s-manifesto{position:relative;padding:92px 0;background:var(--c-sub);overflow:hidden;}
.s-manifesto__wrap{position:relative;z-index:1;width:min(760px,calc(100% - 48px));margin:0 auto;text-align:center;}
.s-manifesto h2{font-family:var(--font-min);font-weight:800;font-size:clamp(24px,3.6vw,38px);line-height:1.55;color:var(--c-accent);margin:18px 0 30px;}
.s-manifesto__body{font-size:clamp(16px,1.7vw,18px);line-height:2.15;color:var(--c-ink);}
.s-manifesto__body p{margin:0 0 1em;}
.s-manifesto__body p:last-child{margin-bottom:0;font-family:var(--font-min);font-weight:700;font-size:clamp(18px,2vw,22px);color:var(--c-accent);}
.s-manifesto__rule{width:48px;height:2px;background:var(--c-cta);margin:0 auto;transform-origin:center;}
.j .s-manifesto__rule{transform:scaleX(0);}
@media(max-width:768px){ .s-manifesto{padding:70px 0;} }

/* =========================================================
   ⑤-a 無料診断 先出し（about+gallery・スコープ .s-diag）
   ========================================================= */
.s-diag{position:relative;padding:100px 0;background:var(--c-bg);}
.s-diag__wrap{width:min(1180px,calc(100% - 48px));margin:0 auto;}
.s-diag__split{display:grid;grid-template-columns:0.96fr 1.04fr;gap:60px;align-items:center;}
.s-diag__imgcol{position:relative;}
.s-diag__img{position:relative;min-height:420px;border-radius:var(--r-md);overflow:hidden;background:var(--c-soft);box-shadow:var(--shadow);border:1px solid var(--c-line);}
.s-diag__img img{width:100%;height:100%;object-fit:cover;}
.s-diag__zoom{display:block;width:100%;padding:0;border:1px solid var(--c-line);cursor:zoom-in;color:var(--c-white);font:700 12px var(--font-go);}
.s-diag__zoom>span{position:absolute;right:14px;bottom:14px;background:rgba(21,56,38,.9);padding:8px 12px;border-radius:999px;box-shadow:var(--shadow-s);}
.s-diag__zoom:focus-visible{outline:3px solid var(--c-cta);outline-offset:4px;}
.s-report-dialog{width:min(1100px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:54px 16px 16px;border:0;border-radius:var(--r-md);background:var(--c-bg);box-shadow:0 28px 90px rgba(16,27,20,.32);}
.s-report-dialog::backdrop{background:rgba(16,27,20,.72);backdrop-filter:blur(3px);}
.s-report-dialog img{width:100%;height:auto;}
.s-report-dialog__close{position:absolute;right:14px;top:12px;border:1px solid var(--c-line);border-radius:999px;background:var(--c-bg);color:var(--c-accent);font:700 13px var(--font-go);padding:8px 14px;cursor:pointer;}
.s-diag__dots{position:absolute;left:-20px;bottom:-20px;width:130px;height:130px;z-index:-1;
  background-image:radial-gradient(var(--c-accent) 1.5px,transparent 1.5px);background-size:16px 16px;opacity:.35;}
.s-diag__badge{position:absolute;top:16px;left:16px;z-index:2;font-family:var(--font-en);font-size:11px;letter-spacing:.16em;color:#fff;background:var(--c-cta);padding:6px 14px;border-radius:999px;}
.s-diag h2{font-family:var(--font-min);font-weight:800;font-size:clamp(26px,3.6vw,38px);line-height:1.45;margin:16px 0 18px;color:var(--c-accent);}
.s-diag__sub{color:var(--c-ink);font-size:16px;line-height:2.1;margin:0 0 26px;}
.s-diag__sub b{color:var(--c-accent);font-weight:700;}
.s-diag__list{list-style:none;padding:0;margin:0 0 30px;border-top:1px solid var(--c-line);}
.s-diag__list li{padding:16px 0 16px 34px;border-bottom:1px solid var(--c-line);position:relative;font-size:clamp(15px,1.7vw,17px);line-height:1.9;}
.s-diag__list li b{font-family:var(--font-min);color:var(--c-accent);}
.s-diag__list li::before{content:"";position:absolute;left:4px;top:24px;width:14px;height:14px;border-radius:50%;border:3px solid var(--c-cta);}
.s-diag__nowline{background:rgba(194,65,12,.07);border-left:4px solid var(--c-cta);border-radius:var(--r-sm);padding:16px 18px;margin:0 0 28px;font-size:14.5px;line-height:1.95;}
.s-diag__nowline b{color:var(--c-accent);}
@media(max-width:860px){ .s-diag{padding:74px 0;} .s-diag__split{grid-template-columns:1fr;gap:34px;} .s-diag__img{min-height:260px;} }

/* =========================================================
   ⑤-b 実物カルテ（HTML/CSSで実物レンダリング・スコープ .s-karte）
   ========================================================= */
.s-karte{position:relative;padding:100px 0;background:var(--c-sub);overflow:hidden;}
.s-karte__wrap{width:min(1000px,calc(100% - 48px));margin:0 auto;}
.s-karte__head{text-align:center;margin-bottom:38px;}
.s-karte__head h2{font-family:var(--font-min);font-weight:800;font-size:clamp(26px,4.2vw,40px);margin:14px 0 0;color:var(--c-accent);line-height:1.4;}
.s-karte__head p{font-size:14.5px;color:var(--c-muted);max-width:38em;margin:16px auto 0;line-height:1.9;}
.s-karte__head p b{color:var(--c-ink);}
.s-karte__paper{position:relative;background:var(--c-card);border:1px solid var(--c-line);border-radius:var(--r-md);box-shadow:var(--shadow);overflow:hidden;}
.s-karte__paper::before{content:"";position:absolute;left:0;top:0;width:100%;height:6px;background:var(--c-accent);}
.s-karte__top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;padding:26px clamp(20px,3.6vw,40px) 20px;border-bottom:1px solid var(--c-line);}
.s-karte__label{display:inline-block;background:var(--c-cta);color:#fff;font-size:11.5px;font-weight:700;letter-spacing:.06em;padding:5px 13px;border-radius:999px;}
.s-karte__meta{font-size:12.5px;color:var(--c-muted);line-height:1.8;margin:12px 0 0;}
.s-karte__meta b{color:var(--c-ink);font-weight:700;}
.s-karte__score{text-align:right;font-family:var(--font-min);}
.s-karte__score .num{font-family:var(--font-en);font-weight:700;font-size:clamp(30px,5vw,44px);color:var(--c-accent);line-height:1;}
.s-karte__score .num small{font-size:.42em;color:var(--c-muted);font-weight:500;}
.s-karte__score .cap{display:block;font-family:var(--font-go);font-size:11px;letter-spacing:.10em;color:var(--c-muted);margin-top:4px;}
.s-karte__body{padding:8px clamp(20px,3.6vw,40px) 30px;}
.s-karte__axis{padding:22px 0;border-bottom:1px dashed var(--c-line);}
.s-karte__axis:last-child{border-bottom:none;}
.s-karte__axishd{font-family:var(--font-min);font-weight:700;font-size:clamp(15px,1.9vw,18px);color:var(--c-accent);margin:0 0 12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.s-karte__axishd .ax{font-family:var(--font-en);font-size:11px;letter-spacing:.12em;color:var(--c-cta);border:1px solid var(--c-line);border-radius:6px;padding:3px 8px;flex:none;}
.s-karte__heat{display:grid;grid-template-columns:1.3fr .9fr .9fr;gap:1px;background:var(--c-line);border:1px solid var(--c-line);border-radius:var(--r-sm);overflow:hidden;font-size:13.5px;}
.s-karte__heat > span{background:#fff;padding:10px 12px;line-height:1.5;}
.s-karte__heat .hh{background:var(--c-soft);font-weight:700;color:var(--c-ink);font-size:12px;}
.s-karte__heat .rk{font-weight:700;color:var(--c-accent);}
.s-karte__heat .rk.out{color:var(--c-cta-d);}
.s-karte__axisnote{font-size:13px;color:var(--c-muted);line-height:1.85;margin:12px 0 0;}
.s-karte__axisnote b{color:var(--c-ink);}
.s-karte__cmpwrap{overflow-x:auto;}
.s-karte__cmp{width:100%;border-collapse:collapse;font-size:13px;line-height:1.5;border:1px solid var(--c-line);border-radius:var(--r-sm);overflow:hidden;}
.s-karte__cmp th,.s-karte__cmp td{padding:9px 11px;text-align:left;border-bottom:1px solid var(--c-line);border-right:1px solid var(--c-line);}
.s-karte__cmp th:last-child,.s-karte__cmp td:last-child{border-right:none;}
.s-karte__cmp thead th{background:var(--c-accent);color:#fff;font-weight:700;font-size:12px;}
.s-karte__cmp tbody th{background:var(--c-soft);font-weight:700;color:var(--c-ink);}
.s-karte__cmp tbody td.self{font-weight:700;color:var(--c-accent);}
.s-karte__cmp tbody td.gap{color:var(--c-cta-d);font-weight:700;}
.s-karte__now{background:rgba(194,65,12,.08);border:1px solid rgba(194,65,12,.32);border-left:4px solid var(--c-cta);border-radius:var(--r-sm);padding:16px 18px;margin-top:16px;font-size:14px;line-height:1.9;color:var(--c-ink);}
.s-karte__now .tag{display:block;font-family:var(--font-en);font-size:11px;letter-spacing:.12em;color:var(--c-cta-d);font-weight:700;margin-bottom:6px;}
.s-karte__now b{color:var(--c-accent);}
.s-karte__note{max-width:820px;margin:24px auto 0;text-align:center;font-size:13px;line-height:1.95;color:var(--c-muted);background:var(--c-soft);border:1px solid var(--c-line);border-radius:var(--r-sm);padding:16px 20px;}
.s-karte__note b{color:var(--c-ink);}
.s-karte__cta{text-align:center;margin-top:32px;}
@media(max-width:768px){ .s-karte{padding:74px 0;} .s-karte__heat{grid-template-columns:1.2fr .9fr;font-size:12.5px;} .s-karte__heat .col1{grid-column:1;} }

/* =========================================================
   ⑥ 流れ図4段（process・順序フロー・スコープ .s-track）
   ⑩進め方(.s-flow)と役割が違うため、番号=丸/線色=深緑で差別化。
   ========================================================= */
.s-track{position:relative;padding:96px 0;background:var(--c-bg);overflow:hidden;}
.s-track__wrap{width:min(1080px,calc(100% - 48px));margin:0 auto;}
.s-track__head{text-align:center;margin-bottom:44px;}
.s-track__head h2{font-family:var(--font-min);font-weight:800;font-size:clamp(26px,4.2vw,40px);margin:14px 0 0;color:var(--c-accent);}
.s-track__head p{font-size:14.5px;color:var(--c-muted);max-width:36em;margin:14px auto 0;line-height:1.9;}
.s-track__row{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:stretch;gap:8px;}
.s-track__stage{background:var(--c-card);border:1px solid var(--c-line);border-radius:var(--r-md);padding:26px 22px;box-shadow:var(--shadow-s);text-align:left;}
.s-track__no{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:var(--c-accent);color:#fff;font-family:var(--font-en);font-weight:700;font-size:16px;margin-bottom:14px;}
.s-track__stage.last .s-track__no{background:var(--c-cta);}
.s-track__stage h3{font-family:var(--font-min);font-size:clamp(17px,1.9vw,21px);font-weight:700;margin:0 0 8px;color:var(--c-accent);}
.s-track__stage p{margin:0;font-size:13.5px;line-height:1.9;color:var(--c-muted);}
.s-track__arrow{display:flex;align-items:center;justify-content:center;color:var(--c-cta);font-weight:700;font-size:20px;}
.s-track__arrow svg{width:22px;height:22px;}
@media(max-width:900px){
  .s-track{padding:72px 0;}
  .s-track__row{grid-template-columns:1fr;gap:10px;}
  .s-track__arrow{transform:rotate(90deg);padding:2px 0;}
}

/* =========================================================
   ⑦ 選ばれる理由（sec-reasons-09 "Evidence layers"移植・スコープ .s-reason）
   証拠を"重なった資料"として積み上げる。PROOF番号＋紙面＋罫線モチーフ＋
   微回転＋rotate-in reveal。3カードspamを非対称・罫線モチーフで回避。
   about.html「大事にしていること」も同クラスで共用。
   ========================================================= */
.s-reason{position:relative;padding:100px 0;background:var(--c-sub);overflow:hidden;}
.s-reason__contour{position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(rgba(31,77,58,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(31,77,58,.05) 1px,transparent 1px);
  background-size:34px 34px;-webkit-mask-image:linear-gradient(#000,transparent 84%);mask-image:linear-gradient(#000,transparent 84%);opacity:1;}
.s-reason__wrap{position:relative;z-index:1;width:min(1120px,calc(100% - 48px));margin:0 auto;}
.s-reason__head{display:grid;grid-template-columns:minmax(0,1.05fr) .95fr;gap:48px;align-items:end;margin-bottom:52px;}
.s-reason__head h2{font-family:var(--font-min);font-weight:800;font-size:clamp(26px,4vw,44px);line-height:1.42;margin:14px 0 0;color:var(--c-accent);}
.s-reason__head p{color:var(--c-muted);font-size:14.5px;margin:0;max-width:30em;line-height:1.95;}
.s-reason__mark{margin-top:22px;width:64px;height:4px;background:var(--c-cta);border-radius:4px;}
.s-reason__board{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:start;}
.s-reason__item{position:relative;background:transparent;border:0;border-top:1px solid var(--c-accent);border-radius:0;padding:24px 26px 30px 0;box-shadow:none;}
.s-reason__item:nth-child(1),.s-reason__item:nth-child(2),.s-reason__item:nth-child(3){transform:none;margin-top:0;}
.s-reason__n{font-family:var(--font-en);font-size:11px;letter-spacing:.2em;color:var(--c-cta-d);font-weight:700;}
.s-reason__item h3{font-family:var(--font-min);font-size:clamp(18px,2vw,22px);font-weight:800;margin:14px 0 14px;color:var(--c-accent);line-height:1.55;}
.s-reason__item p{color:var(--c-ink);font-size:14.5px;margin:0;line-height:1.95;}
.s-reason__item p + p{margin-top:10px;color:var(--c-muted);}
/* 罫線モチーフ（資料の紙面感・sec-reasons-09署名） */
.s-reason__item::after{display:none;}
.s-reason--evidence{padding-bottom:122px;}
.s-reason--evidence .s-reason__board{display:block;position:relative;min-height:510px;}
.s-reason--evidence .s-reason__item{position:absolute;width:min(430px,38vw);background:#fffdf7;border:1px solid #d9d3c6;border-radius:3px;padding:30px 28px 38px;box-shadow:0 28px 60px -42px rgba(16,27,20,.46);}
.s-reason--evidence .s-reason__item:nth-child(1){left:0;top:88px;transform:rotate(-2deg);}
.s-reason--evidence .s-reason__item:nth-child(2){left:32%;top:8px;transform:rotate(1.5deg);z-index:2;}
.s-reason--evidence .s-reason__item:nth-child(3){right:0;top:138px;transform:rotate(-1deg);z-index:3;}
.s-reason--evidence .s-reason__item::after{content:"";display:block;height:1px;background:var(--c-line);margin-top:22px;box-shadow:0 10px 0 var(--c-line),0 20px 0 var(--c-line);}
@media(max-width:900px){
  .s-reason{padding:74px 0;}
  .s-reason__head{grid-template-columns:1fr;gap:14px;align-items:start;margin-bottom:36px;}
  .s-reason__board{grid-template-columns:1fr;gap:18px;}
  .s-reason__item,.s-reason__item:nth-child(1),.s-reason__item:nth-child(2),.s-reason__item:nth-child(3){transform:none;margin-top:0;}
  .s-reason--evidence .s-reason__board{min-height:0;display:grid;}
  .s-reason--evidence .s-reason__item,.s-reason--evidence .s-reason__item:nth-child(1),.s-reason--evidence .s-reason__item:nth-child(2),.s-reason--evidence .s-reason__item:nth-child(3){position:relative;left:auto;right:auto;top:auto;width:100%;transform:none;}
}

/* =========================================================
   ⑧ 実績枠（1枠・正直運用・message型・スコープ .s-monitor）
   ========================================================= */
.s-monitor{position:relative;padding:92px 0;background:var(--c-bg);overflow:hidden;}
.s-monitor__wrap{width:min(820px,calc(100% - 48px));margin:0 auto;text-align:center;}
.s-monitor h2{font-family:var(--font-min);font-weight:800;font-size:clamp(24px,3.8vw,38px);line-height:1.5;margin:16px 0 0;color:var(--c-accent);}
.s-monitor__card{margin-top:34px;background:var(--c-card);border:1.5px dashed var(--c-cta);border-radius:var(--r-lg);padding:clamp(30px,5vw,52px);box-shadow:var(--shadow);text-align:left;}
.s-monitor__badge{display:inline-block;background:var(--c-accent);color:#fff;font-size:12px;font-weight:700;letter-spacing:.08em;padding:7px 18px;border-radius:999px;}
.s-monitor__card p{font-size:15.5px;line-height:2.1;color:var(--c-ink);margin:20px 0 0;}
.s-monitor__card p b{color:var(--c-accent);}
@media(max-width:768px){ .s-monitor{padding:70px 0;} }

/* =========================================================
   ⑨ 料金の考え方（金額表なし・3行＋リンク・スコープ .s-pricelead）
   ========================================================= */
.s-pricelead{position:relative;padding:92px 0;background:var(--c-sub);overflow:hidden;}
.s-pricelead__wrap{width:min(780px,calc(100% - 48px));margin:0 auto;text-align:center;}
.s-pricelead h2{font-family:var(--font-min);font-weight:800;font-size:clamp(24px,3.8vw,38px);margin:14px 0 28px;color:var(--c-accent);}
.s-pricelead__list{list-style:none;padding:0;margin:0 auto 30px;max-width:34em;text-align:left;display:grid;gap:14px;}
.s-pricelead__list li{position:relative;padding:14px 16px 14px 46px;background:var(--c-card);border:1px solid var(--c-line);border-radius:var(--r-sm);font-size:15px;line-height:1.9;color:var(--c-ink);}
.s-pricelead__list li::before{content:"";position:absolute;left:18px;top:22px;width:12px;height:12px;border-radius:50%;border:3px solid var(--c-cta);}
.s-pricelead__link{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--c-accent);text-decoration:none;font-size:15.5px;border-bottom:2px solid var(--c-cta);padding-bottom:3px;transition:color .2s;}
.s-pricelead__link:hover{color:var(--c-cta-d);}
@media(max-width:768px){ .s-pricelead{padding:70px 0;} }

/* =========================================================
   ⑩ 進め方6ステップ（process-01 縦ステップ・spine・スコープ .s-flow）
   ⑥(.s-track)と差別化：番号=丸ノード＋縦spine（横フローでない）。
   ========================================================= */
.s-flow{position:relative;padding:100px 0;background:var(--c-bg);overflow:hidden;}
.s-flow__contour{position:absolute;inset:0;z-index:0;}
.s-flow__wrap{position:relative;z-index:1;width:min(920px,calc(100% - 48px));margin:0 auto;}
.s-flow__head{margin-bottom:50px;}
.s-flow__head h2{font-family:var(--font-min);font-weight:800;font-size:clamp(26px,4.2vw,42px);line-height:1.34;margin:14px 0 0;color:var(--c-accent);}
.s-flow__list{position:relative;}
.s-flow__spine{position:absolute;left:35px;top:10px;bottom:60px;width:2px;background:var(--c-line);overflow:hidden;}
.s-flow__spine i{position:absolute;inset:0;background:linear-gradient(var(--c-accent),var(--c-cta));transform-origin:top;}
/* spine/node の初期非表示はGSAP実行ページ(index)でJS側が gsap.set する。
   CSSでは隠さない＝GSAP非使用ページ(service等)でも常時可読。 */
.s-flow__step{position:relative;display:grid;grid-template-columns:72px 1fr;gap:26px;padding-bottom:32px;}
.s-flow__node{width:72px;height:72px;border-radius:50%;background:#fff;border:2px solid var(--c-accent);display:flex;align-items:center;justify-content:center;font-family:var(--font-en);font-weight:700;font-size:22px;color:var(--c-accent);z-index:2;box-shadow:0 10px 24px -14px rgba(31,77,58,.4);}
.s-flow__step.last .s-flow__node{border-color:var(--c-cta);color:var(--c-cta);}
.s-flow__card{background:transparent;border:0;border-top:1px solid var(--c-line);border-radius:0;padding:18px 0 28px;box-shadow:none;}
.s-flow__card .ph{font-family:var(--font-en);font-size:11px;letter-spacing:.12em;color:var(--c-cta-d);text-transform:uppercase;}
.s-flow__card h3{font-family:var(--font-min);font-size:19px;font-weight:700;margin:6px 0 0;color:var(--c-accent);}
.s-flow__card p{margin:9px 0 0;font-size:14.5px;line-height:1.95;color:var(--c-muted);}
@media(max-width:768px){ .s-flow{padding:74px 0;} .s-flow__step{grid-template-columns:52px 1fr;gap:16px;} .s-flow__node{width:52px;height:52px;font-size:18px;} .s-flow__spine{left:25px;} }

/* =========================================================
   ⑪ 検証節（vs・対比/答え型・仕組みで答える・スコープ .s-verify）
   ⑥の3状態の再掲はしない。"なぜ増えるか"の理由を2本＋数字＋期待値。
   ========================================================= */
.s-verify{position:relative;padding:100px 0;background:var(--c-sub);overflow:hidden;}
.s-verify__wrap{width:min(940px,calc(100% - 48px));margin:0 auto;}
.s-verify__head{text-align:center;margin-bottom:20px;}
.s-verify__head h2{font-family:var(--font-min);font-weight:800;font-size:clamp(25px,4vw,40px);margin:14px 0 0;color:var(--c-accent);line-height:1.45;}
.s-verify__lead{text-align:center;font-size:16px;color:var(--c-ink);margin:16px auto 40px;max-width:34em;line-height:2;}
.s-verify__lead b{color:var(--c-accent);}
.s-verify__block{background:transparent;border:0;border-top:1px solid var(--c-line);border-radius:0;padding:26px 0;margin-bottom:0;box-shadow:none;}
.s-verify__block h3{font-family:var(--font-min);font-size:clamp(17px,2vw,21px);font-weight:700;margin:0 0 12px;color:var(--c-accent);display:flex;gap:12px;align-items:baseline;}
.s-verify__block h3 .rn{font-family:var(--font-en);font-size:13px;color:var(--c-cta-d);font-weight:700;flex:none;border:1px solid var(--c-line);border-radius:6px;padding:2px 9px;}
.s-verify__block p{margin:0;font-size:15px;line-height:2.05;color:var(--c-ink);}
.s-verify__block.data{border-left:0;border-top:2px solid var(--c-cta);}
.s-verify__end{margin-top:26px;background:var(--c-soft);border:1px solid var(--c-line);border-radius:var(--r-md);padding:24px 28px;font-size:14.5px;line-height:2;color:var(--c-ink);text-align:center;}
.s-verify__end b{color:var(--c-accent);}
@media(max-width:768px){ .s-verify{padding:74px 0;} .s-verify__block{padding:24px 22px;} }

/* =========================================================
   ⑫ FAQ（faq-03 左sticky×番号・スコープ .s-faq）
   ========================================================= */
.s-faq{position:relative;padding:100px 0;background:var(--c-bg);}
.s-faq__wrap{width:min(1080px,calc(100% - 48px));margin:0 auto;}
.s-faq__layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px;align-items:start;}
.s-faq__side{position:sticky;top:96px;}
.s-faq__side h2{font-family:var(--font-min);font-weight:800;font-size:clamp(28px,3.6vw,44px);margin:14px 0 14px;color:var(--c-accent);line-height:1.35;}
.s-faq__side p{color:var(--c-muted);font-size:14.5px;line-height:1.9;}
.s-faq__acc{border-top:1px solid var(--c-line);}
.s-faq__item{border-bottom:1px solid var(--c-line);}
.s-faq__q{display:grid;grid-template-columns:46px 1fr 30px;align-items:center;gap:14px;padding:22px 6px;cursor:pointer;background:none;border:none;width:100%;text-align:left;font-family:inherit;}
.s-faq__q .no{font-family:var(--font-en);font-size:13px;color:var(--c-cta-d);font-weight:700;}
.s-faq__q .tx{font-weight:700;font-size:16px;color:var(--c-ink);line-height:1.6;}
.s-faq__q .ic{position:relative;width:18px;height:18px;justify-self:end;}
.s-faq__q .ic::before,.s-faq__q .ic::after{content:"";position:absolute;background:var(--c-accent);transition:.3s;}
.s-faq__q .ic::before{top:8px;left:0;width:18px;height:2px;}
.s-faq__q .ic::after{top:0;left:8px;width:2px;height:18px;}
.s-faq__item.open .ic::after{transform:rotate(90deg);opacity:0;}
.s-faq__a{max-height:0;overflow:hidden;transition:max-height .5s ease;}
.s-faq__a div{padding:0 6px 24px 60px;color:var(--c-ink);font-size:15px;line-height:2;}
.s-faq__item.open .s-faq__a{max-height:520px;}
@media(max-width:768px){ .s-faq{padding:74px 0;} .s-faq__layout{grid-template-columns:1fr;gap:28px;} .s-faq__side{position:static;} .s-faq__a div{padding-left:46px;} }

/* =========================================================
   最終CTA（cta・白基調パネル型・スコープ .s-cta）
   深緑ベタの全幅背景は廃止。白ページに"深緑パネル1枚"を置く。
   ========================================================= */
.s-cta{position:relative;padding:96px 0;background:var(--c-bg);overflow:hidden;}
.s-cta__panel{position:relative;z-index:1;width:min(920px,calc(100% - 48px));margin:0 auto;background:var(--c-accent);color:var(--c-white);border-radius:var(--r-lg);padding:clamp(44px,6vw,72px) clamp(28px,5vw,60px);text-align:center;box-shadow:0 40px 80px -46px rgba(31,77,58,.55);overflow:hidden;}
.s-cta__panel .s-eyebrow{justify-content:center;color:#fff;}
.s-cta__panel .s-eyebrow::before{background:var(--c-cta);}
.s-cta h2{font-family:var(--font-min);font-weight:800;font-size:clamp(24px,4vw,40px);line-height:1.55;margin:22px 0 0;}
.s-cta__lead{color:rgba(255,255,255,.9);font-size:16px;line-height:2.1;margin:22px auto 0;max-width:34em;}
.s-cta__btns{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:36px;}
.s-cta__sub{margin-top:24px;font-size:12px;letter-spacing:.06em;color:rgba(255,255,255,.66);}
@media(max-width:768px){ .s-cta{padding:72px 0;} }

/* =========================================================
   FOOTER（footer-03・深緑面・スコープ .s-ft）
   フッターは面として深緑ベタ許容（コントラスト確保・白基調の締め）。
   ========================================================= */
.s-ft{background:var(--c-accent-d);color:#EEEDE6;}
.s-ft__info{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;padding:60px 32px;}
.s-ft__nap .nm{font-family:var(--font-min);font-weight:700;font-size:22px;color:#fff;}
.s-ft__nap .nm small{display:block;font-family:var(--font-en);font-size:10px;letter-spacing:.16em;color:rgba(238,237,230,.6);font-weight:500;margin-top:4px;}
.s-ft__nap p{color:rgba(238,237,230,.72);font-size:14px;line-height:2;margin:16px 0 0;}
.s-ft__col h4{font-family:var(--font-en);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--c-cta);margin:0 0 14px;}
.s-ft__col a{display:block;color:#EEEDE6;text-decoration:none;font-size:14px;padding:6px 0;opacity:.86;}
.s-ft__col a:hover{opacity:1;color:var(--c-cta);}
.s-ft__cp{border-top:1px solid rgba(255,255,255,.12);}
.s-ft__cp .in{max-width:var(--maxw);margin:0 auto;padding:20px 32px;font-family:var(--font-en);font-size:12px;color:rgba(238,237,230,.56);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;}
.s-ft__cp .in a{color:inherit;text-decoration:none;}
@media(max-width:768px){ .s-ft__info{grid-template-columns:1fr;gap:30px;padding:48px 28px;} }

/* =========================================================
   ▼ 固定ページ共通（service / about / contact / privacy / tokushoho）
   ========================================================= */

/* anim リバール（固定ページは IntersectionObserver で .in 付与） */
.anim{transition:opacity .7s ease, transform .7s ease;}
.j .anim{transform:translateY(20px);}
.anim.in{opacity:1;transform:none;}
.page-service .s-price__table.anim{transform:translateY(28px) scale(.985);}
.page-service .s-price__table.anim.in{transform:none;}
.page-service .s-flow__step.anim:nth-child(2){transition-delay:.08s}.page-service .s-flow__step.anim:nth-child(3){transition-delay:.16s}.page-service .s-flow__step.anim:nth-child(4){transition-delay:.24s}
.page-about .s-msg__imgcol.anim{transform:translateX(-28px);}.page-about .s-msg__body.anim{transform:translateX(28px);}.page-about .s-msg__imgcol.anim.in,.page-about .s-msg__body.anim.in{transform:none;}
.page-contact .s-contact__formcard.anim{transform:translateY(26px) scale(.985);}.page-contact .s-contact__formcard.anim.in{transform:none;}
@media(prefers-reduced-motion:reduce){ .j .anim{opacity:1;transform:none;} }

/* ページヒーロー（白基調・深緑帯でなく白地＋深緑ラベル） */
.s-pghero{position:relative;background:var(--c-sub);color:var(--c-ink);overflow:hidden;border-bottom:1px solid var(--c-line);}
.s-pghero__in{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;padding:72px 32px 60px;}
.s-pghero__crumb{font-family:var(--font-en);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--c-muted);}
.s-pghero__crumb a{color:var(--c-muted);text-decoration:none;}
.s-pghero__crumb a:hover{color:var(--c-accent);}
.s-pghero__tag{font-family:var(--font-en);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--c-accent);display:inline-flex;gap:12px;align-items:center;margin-top:10px;}
.s-pghero__tag::before{content:"";width:30px;height:2px;background:var(--c-cta);}
.s-pghero h1{font-family:var(--font-min);font-weight:800;font-size:clamp(28px,4.6vw,46px);line-height:1.44;margin:16px 0 0;color:var(--c-accent);}
.s-pghero__lead{font-size:clamp(15px,1.4vw,18px);line-height:2;color:var(--c-ink);margin:18px 0 0;max-width:40em;}
@media(max-width:768px){ .s-pghero__in{padding:60px 24px 48px;} }

/* 代表メッセージ（message-01・about） */
.s-msg{position:relative;padding:96px 0;background:var(--c-bg);overflow:hidden;}
.s-msg__wrap{width:min(1080px,calc(100% - 48px));margin:0 auto;display:grid;grid-template-columns:.78fr 1.22fr;gap:56px;align-items:start;}
.s-msg__imgcol{position:relative;position:sticky;top:96px;}
.s-msg__img{position:relative;aspect-ratio:4/5;border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow);background:var(--c-soft);border:1px solid var(--c-line);}
.s-msg__img img{width:100%;height:100%;object-fit:cover;}
.s-msg__cap{margin-top:10px;font-size:12px;color:var(--c-muted);line-height:1.7;}
.s-msg__dots{position:absolute;right:-18px;bottom:14px;width:120px;height:120px;z-index:-1;background-image:radial-gradient(var(--c-cta) 1.5px,transparent 1.5px);background-size:16px 16px;opacity:.35;}
.s-msg h2{font-family:var(--font-min);font-weight:800;font-size:clamp(22px,3vw,32px);line-height:1.55;margin:14px 0 22px;color:var(--c-accent);}
.s-msg__body h2{margin-top:34px;}
.s-msg__body h2:first-of-type{margin-top:14px;}
.s-msg__body p{font-size:16px;line-height:2.1;margin:0 0 18px;color:var(--c-ink);}
.s-msg__body p b{color:var(--c-accent);}
.s-msg__sign{margin-top:26px;border-top:1px solid var(--c-line);padding-top:20px;}
.s-msg__sign .role{font-size:13px;color:var(--c-muted);}
.s-msg__sign .nm{font-family:var(--font-min);font-weight:700;font-size:20px;color:var(--c-accent);margin-top:2px;}
@media(max-width:860px){ .s-msg{padding:74px 0;} .s-msg__wrap{grid-template-columns:1fr;gap:32px;} .s-msg__imgcol{position:static;} .s-msg__img{aspect-ratio:4/3;} }

/* 問い合わせフォーム（contact） */
.s-contact{position:relative;padding:88px 0;background:var(--c-bg);}
.s-contact__wrap{width:min(820px,calc(100% - 48px));margin:0 auto;}
.s-contact__note{background:var(--c-soft);border:1px solid var(--c-line);border-radius:var(--r-md);padding:22px 26px;font-size:14.5px;line-height:1.95;color:var(--c-ink);margin-bottom:28px;}
.s-contact__note b{color:var(--c-accent);}
.s-contact__formcard{background:var(--c-card);border:1px solid var(--c-line);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:clamp(26px,4vw,46px);}
.s-field{margin-bottom:22px;}
.s-field label{display:block;font-weight:700;font-size:14.5px;margin-bottom:8px;color:var(--c-ink);}
.s-field label .req{color:var(--c-cta-d);font-size:12px;margin-left:6px;font-weight:700;}
.s-field input,.s-field select,.s-field textarea{width:100%;font-family:inherit;font-size:16px;line-height:1.6;padding:14px 16px;border:1.5px solid var(--c-line);border-radius:var(--r-sm);background:#fff;color:var(--c-ink);}
.s-field input::placeholder{color:#9aa79c;}
.s-field input:focus,.s-field select:focus,.s-field textarea:focus{outline:none;border-color:var(--c-accent);box-shadow:0 0 0 3px rgba(31,77,58,.12);}
.s-field textarea{min-height:120px;resize:vertical;}
.s-contact__submit{width:100%;margin-top:6px;}
.s-contact__priv{margin-top:18px;font-size:12.5px;color:var(--c-muted);text-align:center;line-height:1.8;}
.s-contact__priv a{color:var(--c-accent);}

/* 本文プローズ（privacy / tokushoho） */
.s-prose{position:relative;padding:80px 0;background:var(--c-bg);}
.s-prose__wrap{width:min(820px,calc(100% - 48px));margin:0 auto;}
.s-prose h2{font-family:var(--font-min);font-weight:700;font-size:clamp(20px,2.4vw,26px);color:var(--c-accent);margin:42px 0 14px;padding-top:24px;border-top:1px solid var(--c-line);}
.s-prose h2:first-of-type{border-top:none;margin-top:0;padding-top:0;}
.s-prose p{font-size:16px;line-height:2.05;margin:0 0 16px;color:var(--c-ink);}
.s-prose ul{margin:0 0 16px;padding-left:1.35em;}
.s-prose li{font-size:16px;line-height:2;margin-bottom:8px;}
.s-prose__meta{font-size:13px;color:var(--c-muted);margin-top:40px;border-top:1px solid var(--c-line);padding-top:18px;line-height:1.9;}

/* CTA-02（軽いパネル型・service / about の締め） */
.s-cta2{position:relative;padding:90px 0;background:var(--c-sub);overflow:hidden;}
.s-cta2__contour{position:absolute;inset:0;z-index:0;}
.s-cta2__panel{position:relative;z-index:1;width:min(940px,calc(100% - 48px));margin:0 auto;background:var(--c-accent);color:var(--c-white);border-radius:var(--r-lg);padding:clamp(40px,6vw,68px) clamp(28px,5vw,60px);text-align:center;box-shadow:0 40px 80px -46px rgba(31,77,58,.55);overflow:hidden;}
.s-cta2__panel .s-eyebrow{justify-content:center;color:#fff;}
.s-cta2__panel .s-eyebrow::before{background:var(--c-cta);}
.s-cta2 h2{font-family:var(--font-min);font-weight:800;font-size:clamp(23px,3.6vw,38px);line-height:1.5;margin:20px 0 0;}
.s-cta2__lead{color:rgba(255,255,255,.9);font-size:16px;line-height:2;margin:20px auto 0;max-width:32em;}
.s-cta2__btns{margin-top:32px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.s-cta2__sub{margin-top:22px;font-size:12px;color:rgba(255,255,255,.66);letter-spacing:.04em;}
@media(max-width:768px){ .s-cta2{padding:70px 0;} }

/* service ページ用：サービス2本＋アップセル詳細 */
.s-svc{position:relative;padding:96px 0;background:var(--c-bg);overflow:hidden;}
.s-svc__inner{width:min(1080px,calc(100% - 48px));margin:0 auto;}
.s-svc__head{margin-bottom:36px;}
.s-svc__head h2{font-family:var(--font-min);font-weight:800;font-size:clamp(24px,3.6vw,38px);margin:14px 0 0;color:var(--c-accent);}
.s-svc__head p{font-size:14.5px;color:var(--c-muted);margin:14px 0 0;max-width:40em;line-height:1.9;}
.s-svc__core{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.s-svc__card{background:var(--c-card);border:1px solid var(--c-line);border-radius:var(--r-md);padding:30px 30px;box-shadow:var(--shadow-s);}
.s-svc__card.main{border-top:4px solid var(--c-cta);}
.s-svc__card .no{font-family:var(--font-en);font-size:11px;letter-spacing:.16em;color:var(--c-cta-d);font-weight:700;}
.s-svc__card h3{font-family:var(--font-min);font-size:clamp(18px,2vw,22px);font-weight:700;margin:8px 0 6px;color:var(--c-accent);}
.s-svc__card .price{font-family:var(--font-min);font-weight:800;font-size:clamp(20px,2.4vw,26px);color:var(--c-accent);margin:0 0 14px;}
.s-svc__card .price small{font-size:.56em;color:var(--c-muted);font-weight:500;}
.s-svc__card p{font-size:14.5px;line-height:1.95;color:var(--c-ink);margin:0 0 14px;}
.s-svc__card ul{list-style:none;padding:0;margin:0;display:grid;gap:8px;}
.s-svc__card li{position:relative;padding-left:22px;font-size:13.5px;line-height:1.8;color:var(--c-muted);}
.s-svc__card li::before{content:"";position:absolute;left:2px;top:10px;width:8px;height:8px;border-radius:50%;border:2px solid var(--c-cta);}
.s-svc__card .tag{display:inline-block;font-size:12px;font-weight:700;color:var(--c-accent);background:rgba(31,77,58,.08);border-radius:999px;padding:4px 12px;margin-top:14px;}
@media(max-width:768px){ .s-svc{padding:74px 0;} .s-svc__core{grid-template-columns:1fr;} }

.s-detail{position:relative;padding:90px 0;background:var(--c-sub);}
.s-detail__wrap{width:min(1000px,calc(100% - 48px));margin:0 auto;}
.s-detail__head{margin-bottom:36px;}
.s-detail__head h2{font-family:var(--font-min);font-weight:800;font-size:clamp(24px,3.4vw,36px);color:var(--c-accent);margin:14px 0 0;line-height:1.5;}
.s-detail__head p{font-size:14.5px;color:var(--c-muted);margin:14px 0 0;max-width:40em;line-height:1.9;}
.s-detail__item{display:grid;grid-template-columns:auto 1fr;gap:26px;align-items:start;background:var(--c-card);border:1px solid var(--c-line);border-radius:var(--r-md);padding:30px 32px;margin-bottom:18px;box-shadow:var(--shadow-s);}
.s-detail__n{font-family:var(--font-min);font-weight:800;font-size:clamp(30px,4vw,50px);line-height:.9;color:transparent;-webkit-text-stroke:1.3px var(--c-cta);}
.s-detail__item h3{font-family:var(--font-min);font-size:clamp(18px,2vw,22px);font-weight:700;margin:0 0 8px;color:var(--c-accent);}
.s-detail__item .when{display:inline-block;font-size:12px;font-weight:700;color:var(--c-cta-d);background:rgba(194,65,12,.10);border-radius:999px;padding:4px 12px;margin:0 0 12px;}
.s-detail__item p{font-size:15px;line-height:1.95;color:var(--c-ink);margin:0;}
.s-detail__price{position:relative;padding:88px 0;background:var(--c-bg);}
.s-detail__pricewrap{width:min(1000px,calc(100% - 48px));margin:0 auto;}
.s-detail__pricehead{text-align:center;margin-bottom:36px;}
.s-detail__pricehead h2{font-family:var(--font-min);font-weight:800;font-size:clamp(24px,3.6vw,38px);color:var(--c-accent);margin:14px 0 0;}
.s-detail__pricehead p{font-size:14.5px;color:var(--c-muted);margin:14px auto 0;max-width:34em;line-height:1.9;}
@media(max-width:768px){ .s-detail{padding:70px 0;} .s-detail__item{grid-template-columns:1fr;gap:10px;padding:24px;} .s-detail__price{padding:66px 0;} }

/* 料金索引表（service.html に集約） */
.s-price__table{background:var(--c-card);border:1px solid var(--c-line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);}
.s-price__row{display:grid;grid-template-columns:1.5fr 1fr 1.4fr;align-items:center;border-bottom:1px solid var(--c-line);}
.s-price__row:last-child{border-bottom:none;}
.s-price__row.head-row{background:var(--c-accent);color:#fff;}
.s-price__row > div{padding:20px 24px;}
.s-price__row .plan{font-family:var(--font-min);font-weight:700;font-size:16.5px;color:var(--c-ink);}
.s-price__row .plan small{display:block;font-family:var(--font-go);font-weight:400;font-size:12.5px;color:var(--c-muted);margin-top:2px;}
.s-price__row .price{font-family:var(--font-min);font-weight:800;font-size:clamp(18px,2vw,23px);color:var(--c-accent);text-align:right;white-space:nowrap;}
.s-price__row .desc{font-size:13.5px;color:var(--c-ink);line-height:1.8;}
.s-price__row.reco{background:rgba(194,65,12,.07);}
.s-price__row.reco .plan::after{content:"本体";display:inline-block;margin-left:8px;background:var(--c-cta);color:#fff;font-family:var(--font-go);font-size:10px;font-weight:700;letter-spacing:.04em;padding:2px 9px;border-radius:999px;vertical-align:middle;}
.s-price__foot{padding:24px;text-align:center;font-size:14px;color:var(--c-ink);background:var(--c-soft);line-height:1.9;}
.s-price__foot b{color:var(--c-accent);}
@media(max-width:768px){
  .s-price__row{grid-template-columns:1fr;gap:4px;padding:6px 0;}
  .s-price__row > div{padding:6px 20px;}
  .s-price__row .price{text-align:left;}
  .s-price__row.head-row{padding:10px 0;}
}
