/* 大福運転代行 サイト共通CSS
   方針: スマホ最優先(夜・飲酒後に片手で見る)。文字は大きく、1ブロック1メッセージ、電話は常に1タップ。
   PC は 960px 以上で段組み。色は白×紺、ポップなアクセントに行灯のピンク、電話だけ緑。 */
:root{
  --navy:#13244a; --navy2:#0c1833; --ink:#18243f; --gray:#56627a; --line:#d8e0ee;
  --bg2:#eef3fa; --lav:#ece9fb; --pink:#e0409a; --green:#17a34a; --green-d:#0f7b37; --line-g:#06C755;
  --r:22px; --pad:16px; --maxw:1120px;
  --f-round:"M PLUS Rounded 1c","Hiragino Maru Gothic ProN",sans-serif;
  --f-body:"Noto Sans JP","Hiragino Sans",sans-serif;
  --f-hand:"Klee One","Hiragino Mincho ProN",serif;
  --f-en:"Poppins","Noto Sans JP",sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:72px}
body{margin:0;background:#fff;color:var(--ink);font-family:var(--f-body);font-weight:500;font-size:17px;line-height:1.8;letter-spacing:.02em;line-break:strict;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
p,li,dd,figcaption{text-wrap:pretty}
h1,h2,h3,.btn,.nowrap{word-break:auto-phrase}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}
.sp{display:inline}.pc{display:none}
@media (min-width:960px){.sp{display:none}.pc{display:inline}}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- アイコン(SVG sprite を use で参照) ---------- */
.ic{width:1em;height:1em;fill:currentColor;flex:none;vertical-align:middle}
.ic-s{fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}

/* ---------- ヘッダー(デモ案1) ---------- */
.hd{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);box-shadow:0 1px 0 rgba(19,36,74,.08)}
.hd .wrap{display:flex;align-items:center;justify-content:space-between;height:64px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy)}
.logo .lg{height:38px;width:auto}
.logo .lg-w{display:none}
.logo .ja{font-family:var(--f-round);font-weight:800;font-size:15px;letter-spacing:.04em;line-height:1.2;padding-left:10px;border-left:1.5px solid var(--line);white-space:nowrap}
.menu-btn{width:48px;height:48px;border:0;background:none;color:var(--navy);display:grid;place-items:center;cursor:pointer;margin-right:-8px}
.menu-btn span{display:block;width:26px;height:3px;border-radius:2px;background:currentColor;box-shadow:0 -8px 0 currentColor,0 8px 0 currentColor}
.gnav{display:none}
.hd-tel{display:none}
@media (min-width:960px){
  .hd .wrap{height:76px}
  .logo .lg{height:44px}
  .logo .ja{font-size:16px}
  .menu-btn{display:none}
  .gnav{display:flex;gap:26px;margin-left:auto;margin-right:30px}
  .gnav a{text-decoration:none;font-weight:700;font-size:14.5px;color:var(--ink)}
  .gnav a:hover{color:var(--pink)}
  .hd-tel{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--navy)}
  .hd-tel .ic{width:24px;height:24px}
  .hd-tel b{display:block;font-family:var(--f-en);font-weight:700;font-size:23px;letter-spacing:.02em;line-height:1.25}
  .hd-tel small{display:block;font-size:11.5px;color:var(--gray);line-height:1.3;margin-top:3px}
}
/* スマホのメニュー */
.drawer{position:fixed;inset:0;z-index:80;background:rgba(12,24,51,.55);opacity:0;pointer-events:none;transition:opacity .25s}
.drawer.open{opacity:1;pointer-events:auto}
.drawer nav{position:absolute;top:0;right:0;width:min(86vw,360px);height:100%;background:#fff;padding:14px 16px 28px;overflow:auto;transform:translateX(100%);transition:transform .3s}
.drawer.open nav{transform:none}
.drawer .close{display:block;margin-left:auto;width:48px;height:48px;border:0;background:none;font-size:34px;line-height:1;color:var(--navy);cursor:pointer}
.drawer ul{list-style:none;margin:14px 0 24px;padding:0}
.drawer .telbig{min-height:96px;margin-top:4px}
.drawer li a{display:flex;justify-content:space-between;align-items:center;padding:17px 4px;border-bottom:1px solid var(--line);text-decoration:none;font-weight:700;font-size:18px;color:var(--navy)}
.drawer li a::after{content:"";width:9px;height:9px;border-top:2.5px solid var(--pink);border-right:2.5px solid var(--pink);transform:rotate(45deg)}

/* ---------- ボタン ---------- */
.btn{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;text-decoration:none;border-radius:999px;font-weight:700;overflow:hidden;isolation:isolate;transition:transform .12s,box-shadow .12s}
.btn::before{content:"";position:absolute;top:-60%;left:-60%;width:36%;height:220%;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.45),rgba(255,255,255,0));transform:skewX(-22deg);z-index:-1;animation:shine 3.6s ease-in-out infinite}
@keyframes shine{0%{left:-60%}28%,100%{left:140%}}
.tel{background:linear-gradient(180deg,#22b458,var(--green));color:#fff;box-shadow:0 6px 0 var(--green-d),0 12px 24px rgba(10,80,40,.28)}
.tel:active{transform:translateY(4px);box-shadow:0 2px 0 var(--green-d)}
.tel .ic{width:40px;height:40px}
.telbig{container-type:inline-size;padding:16px 20px 16px 22px;min-height:112px;width:100%}
.telbig .t{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2;min-width:0}
.telbig .l1{font-size:min(16px,calc((100cqi - 56px) / 11));letter-spacing:.06em;white-space:nowrap}
.telbig .num{font-family:var(--f-en);font-weight:700;font-size:clamp(18px,calc((100cqi - 56px) / 8),40px);letter-spacing:.01em;line-height:1.15;white-space:nowrap}
.telbig .l3{font-size:min(14px,calc((100cqi - 56px) / 12.5));opacity:.95;letter-spacing:.04em;white-space:nowrap}
.telbig .sep{display:none}
.telbig .hrs{display:none}
.linebtn{background:#fff;color:var(--line-g);border:2px solid #9fd2f0;min-height:64px;font-size:18px;box-shadow:0 4px 14px rgba(19,36,74,.08)}
.linebtn .ic{width:38px;height:38px}
.btn.navy{background:var(--navy);color:#fff;min-height:64px;font-size:18px;padding:0 28px}
.btn.ghost{background:#fff;color:var(--navy);border:2.5px solid var(--navy);min-height:60px;font-size:17px;padding:0 30px}
.btn.ghost::after,.btn.navy::after{content:"";width:9px;height:9px;border-top:2.5px solid currentColor;border-right:2.5px solid currentColor;transform:rotate(45deg);margin-left:4px}
.btn.ghost::before,.btn.navy::before,.linebtn::before{display:none}
@media (prefers-reduced-motion:reduce){.btn::before{animation:none;display:none}}

/* ---------- FV(デモ案1の再現) ---------- */
.fv{position:relative;background:linear-gradient(180deg,#fff 0,var(--lav) 55%,#f5f3fe 100%);overflow:hidden}
.fv-photo{position:relative;height:clamp(520px,150vw,680px);background:#0e1640}
.fv-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 100%}
.fv-photo::after{content:"";position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(28,34,110,.62) 0,rgba(28,34,110,.30) 42%,rgba(28,34,110,.05) 62%,rgba(28,34,110,.25) 100%),
  linear-gradient(0deg,rgba(236,233,251,1) 0,rgba(236,233,251,0) 22%)}
.fv-copy{position:absolute;z-index:2;left:var(--pad);right:var(--pad);top:clamp(34px,10vw,56px);color:#fff}
.fv h1{margin:14px 0 0;font-family:var(--f-hand);font-weight:600;font-size:clamp(36px,10.4vw,62px);line-height:1.28;letter-spacing:0;white-space:nowrap;transform:rotate(-3deg);transform-origin:0 100%;text-shadow:0 2px 18px rgba(10,14,60,.55)}
.fv h1 .catch-art{display:block;width:min(88vw,380px);height:auto;filter:drop-shadow(0 2px 12px rgba(10,14,60,.55))}
.fv .sub{margin:22px 0 0;font-weight:700;font-size:clamp(17px,4.8vw,20px);line-height:1.65;text-shadow:0 1px 10px rgba(10,14,60,.7)}
.fv .status{display:inline-flex;align-items:center;gap:8px;margin:0 0 16px;padding:6px 14px 6px 12px;border-radius:999px;background:rgba(255,255,255,.94);color:var(--navy);font-weight:700;font-size:14px;line-height:1.3}
.fv .status i{width:10px;height:10px;border-radius:50%;background:#9aa3b8}
.fv .status.open i{background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.22);animation:pulse 1.8s ease-in-out infinite}
@keyframes pulse{50%{box-shadow:0 0 0 7px rgba(34,197,94,.08)}}
.fv-tag{display:none}
.fv-body{position:relative;z-index:3;margin-top:-64px;padding:0 var(--pad) 40px}
.feats{list-style:none;margin:0 0 22px;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.feats li{background:rgba(255,255,255,.96);border-radius:18px;padding:16px 4px 14px;text-align:center;box-shadow:0 6px 18px rgba(28,34,110,.14);color:var(--navy)}
.feats .ic{width:38px;height:38px;margin:0 auto 8px;display:block}
.feats b{display:block;font-size:15.5px;line-height:1.35}
.feats small{display:block;font-size:13px;font-weight:700;line-height:1.4;margin-top:2px;color:#3a4870}
.fv-cta{display:grid;gap:18px}
.wari-band{display:flex;flex-direction:column;align-items:center;margin:0 0 20px;padding:12px 12px 10px;border-radius:18px;background:linear-gradient(180deg,#ec4fa8,var(--pink));color:#fff;text-align:center;box-shadow:0 5px 0 #b82a7c}
.wari-band b{font-family:var(--f-round);font-weight:800;font-size:clamp(30px,9vw,40px);line-height:1.1;letter-spacing:.08em}
.wari-band span{font-size:13.5px;font-weight:700;line-height:1.5;margin-top:4px}
.fv .more{display:block;text-align:center;margin-top:18px;font-weight:700;font-size:15.5px;color:var(--navy);text-decoration:none}
.fv .more::after{content:"";display:inline-block;width:8px;height:8px;border-right:2.5px solid var(--pink);border-bottom:2.5px solid var(--pink);transform:rotate(45deg);margin:0 0 4px 10px}
@media (min-width:960px){
  .fv{background:#0b1233;min-height:680px}
  .fv-photo{position:absolute;inset:0 0 0 20%;height:auto;background:#0b1233}
  .fv-photo img{object-position:50% 45%}
  .fv-photo::after{background:linear-gradient(90deg,#0b1233 0,rgba(11,18,51,.7) 14%,rgba(11,18,51,.15) 40%,rgba(11,18,51,0) 60%),linear-gradient(180deg,rgba(11,18,51,.2),rgba(11,18,51,0) 40%,rgba(11,18,51,.3))}
  .fv-in{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;padding:56px 24px 56px;min-height:680px}
  .fv-copy{position:relative;left:auto;right:auto;top:auto;max-width:620px}
  .fv h1{margin-top:18px}
  .fv h1 .catch-art{width:540px}
  .fv .sub{font-size:22px;margin-top:20px}
  .fv-tag{display:block;position:absolute;z-index:2;right:calc(50% - 560px + 90px);top:64px;color:#fff;font-family:var(--f-hand);font-weight:600;font-size:28px;line-height:1.55;transform:rotate(-8deg);text-shadow:0 2px 10px rgba(10,14,60,.6)}
  .fv-tag svg{display:block;width:250px;height:30px;margin:2px 0 0 40px;color:#fff}
  .fv-body{margin:0;padding:0;max-width:560px}
  .wari-band{flex-direction:row;gap:14px;justify-content:center;margin:0 0 22px;padding:10px 18px}
  .wari-band b{font-size:34px}
  .wari-band span{margin:0;font-size:14px}
  .feats{display:flex;gap:16px;margin:26px 0 22px}
  .feats li{width:140px;height:140px;border-radius:50%;padding:0;display:flex;flex-direction:column;justify-content:center;background:rgba(255,255,255,.93);border:3px solid #b9b3f0}
  .feats .ic{width:36px;height:36px;margin-bottom:8px}
  .feats b{font-size:16px}.feats small{font-size:12.5px}
  .fv-cta{grid-template-columns:1fr;gap:14px}
  .fv .linebtn{min-height:56px}
  .telbig{min-height:98px;justify-content:flex-start}
  /* ボタンが十分広いときだけ営業時間を右に並べる。狭いときは番号の下(スマホと同じ) */
  @container (min-width:470px){
    .telbig .num{font-size:clamp(18px,calc((100cqi - 210px) / 8),36px)}
    .telbig .sep{display:block;width:1px;align-self:stretch;margin:6px 4px;background:rgba(255,255,255,.55)}
    .telbig .l3{display:none}
    .telbig .hrs{display:block;font-size:14px;line-height:1.5}
  }
  .fv .more{display:none}
}

/* ---------- セクション共通 ---------- */
.sec{padding:64px 0}
.sec.navy{background:var(--navy);color:#fff}
.sec.bg2{background:var(--bg2)}
.eyebrow{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-family:var(--f-en);font-weight:700;font-size:14px;letter-spacing:.2em;color:var(--pink)}
.eyebrow::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--pink);box-shadow:10px 0 0 rgba(224,64,154,.45)}
.h2{margin:0 0 28px;font-family:var(--f-round);font-weight:800;font-size:clamp(26px,7vw,40px);line-height:1.35;letter-spacing:.02em;color:var(--navy)}
.navy .h2{color:#fff}
.center{text-align:center}.center .eyebrow{justify-content:center}
.lead{margin:-10px 0 28px;font-size:17px}
.note{font-size:14px;color:var(--gray);line-height:1.7}
.navy .note{color:#c6cfe4}
@media (min-width:960px){.sec{padding:100px 0}.h2{font-size:42px;margin-bottom:36px}}

/* ---------- 料金シミュレーター ---------- */
.sim-sec{position:relative;overflow:hidden}
.sim-sec::before{content:"";position:absolute;right:-60px;top:-50px;width:220px;height:220px;border:14px solid rgba(255,255,255,.05);border-radius:50%}
.sim{max-width:620px;margin:0 auto;background:#fff;color:var(--navy);border-radius:28px;padding:26px 18px 22px;box-shadow:0 18px 40px rgba(0,0,0,.25)}
.sim label.k{display:block;font-weight:700;font-size:17px;margin:0 0 6px}
.dist{display:grid;grid-template-columns:64px 1fr 64px;align-items:center;gap:8px}
.step{width:64px;height:64px;border-radius:50%;border:0;background:var(--navy);color:#fff;font-size:36px;font-weight:700;line-height:1;display:grid;place-items:center;cursor:pointer;touch-action:manipulation;box-shadow:0 4px 0 #0a1530}
.step:active{transform:translateY(3px);box-shadow:0 1px 0 #0a1530}
.dist .val{display:flex;align-items:baseline;justify-content:center;gap:4px}
.dist input{width:1.3em;border:0;border-bottom:3px dashed var(--line);background:none;text-align:center;font-family:var(--f-round);font-weight:800;font-size:60px;line-height:1.1;color:var(--navy);padding:0;border-radius:0;min-width:0}
.dist input:focus{outline:none;border-bottom-color:var(--pink)}
.dist .u{font-family:var(--f-round);font-weight:800;font-size:28px}
.range{width:100%;margin:18px 0 6px;-webkit-appearance:none;appearance:none;height:34px;background:none}
.range::-webkit-slider-runnable-track{height:12px;border-radius:6px;background:linear-gradient(90deg,var(--navy) var(--p,15%),#dfe6f2 var(--p,15%))}
.range::-webkit-slider-thumb{-webkit-appearance:none;width:34px;height:34px;margin-top:-11px;border-radius:50%;background:var(--pink);border:4px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.range::-moz-range-track{height:12px;border-radius:6px;background:#dfe6f2}
.range::-moz-range-progress{height:12px;border-radius:6px;background:var(--navy)}
.range::-moz-range-thumb{width:28px;height:28px;border-radius:50%;background:var(--pink);border:4px solid #fff}
.chips{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.chips button{min-height:50px;border:0;border-radius:14px;background:var(--bg2);color:var(--navy);font-family:var(--f-round);font-weight:800;font-size:18px;cursor:pointer;touch-action:manipulation}
.chips button.on{background:var(--navy);color:#fff}
.res{margin:22px 0 0;padding:20px 0 0;border-top:3px dotted var(--line);text-align:center}
.res .cap{display:block;font-weight:700;font-size:16px}
.res .cap b{color:var(--pink)}
.res .yen{display:block;font-family:var(--f-round);font-weight:800;font-size:clamp(54px,15vw,70px);line-height:1.15;letter-spacing:.01em}
.res .yen small{font-size:.42em;margin-left:4px}
.res .note{margin:8px 0 18px;text-align:left;color:var(--gray)}
.disc{display:flex;align-items:center;justify-content:center;gap:10px;margin:6px 0 0}
.disc[hidden]{display:none}
.disc .lbl{background:var(--pink);color:#fff;border-radius:8px;padding:3px 10px;font-weight:700;font-size:15px}
.disc .tx{display:flex;flex-direction:column;align-items:flex-start;line-height:1.35;font-size:15px;font-weight:700}
.disc s{color:var(--gray);font-weight:500}
.disc b{color:var(--pink);font-size:18px}
.sim .telmid{min-height:76px;font-size:clamp(16px,5.2vw,20px);padding:0 14px;white-space:nowrap}
.sim .telmid .ic{width:32px;height:32px}
.maplink{display:block;margin:22px auto 0;text-align:center;color:#fff;font-weight:700;font-size:15.5px;line-height:1.7}
.maplink:is(.dark){color:var(--navy)}

/* ---------- 3ステップ ---------- */
.steps{list-style:none;margin:0 auto;padding:0;max-width:640px;display:grid;gap:0}
.steps li{position:relative;display:grid;grid-template-columns:58px minmax(0,1fr) 44px;align-items:center;gap:10px;padding:14px 0 30px}
.steps li:not(:last-child)::after{content:"";position:absolute;left:27px;top:92px;bottom:0;border-left:5px dotted var(--navy);opacity:.8}
.steps .n{font-family:var(--f-round);font-weight:800;font-size:66px;line-height:1;color:var(--pink);text-align:center}
.steps h3{margin:0;font-family:var(--f-round);font-weight:800;font-size:21px;line-height:1.35;color:var(--navy)}
.steps p{margin:4px 0 0;font-size:15px;color:var(--gray);line-height:1.6}
.steps .ic{width:44px;height:44px;color:var(--navy)}
.nodrink{display:flex;align-items:center;justify-content:center;gap:16px;max-width:640px;margin:12px auto 0;padding:22px 20px;border-radius:22px;background:var(--bg2);color:var(--navy);font-family:var(--f-round);font-weight:800;font-size:22px;line-height:1.4}
.nodrink .ic{width:52px;height:52px}
@media (min-width:960px){
  .steps{max-width:none;grid-template-columns:repeat(3,1fr);gap:24px}
  .steps li{grid-template-columns:1fr;justify-items:center;text-align:center;background:#fff;border:2px solid var(--line);border-radius:26px;padding:32px 22px}
  .steps li:not(:last-child)::after{left:auto;right:-20px;top:50%;bottom:auto;width:16px;border:0;border-top:5px dotted var(--navy)}
  .steps .ic{order:-1}
}

/* ---------- 選ばれる理由 ---------- */
.lamp{position:relative;margin:0 0 18px;border-radius:24px;overflow:hidden}
.lamp img{width:100%;aspect-ratio:3/2;object-fit:cover}
.lamp figcaption{position:absolute;left:14px;bottom:14px;background:var(--pink);color:#fff;border-radius:999px;padding:6px 16px;font-weight:700;font-size:16px}
.tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.tiles li{background:#fff;border-radius:22px;padding:22px 8px 20px;text-align:center;box-shadow:0 4px 16px rgba(19,36,74,.07)}
.tiles .ci{width:64px;height:64px;margin:0 auto 12px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center}
.tiles .ci .ic{width:34px;height:34px}
.tiles h3{margin:0;font-family:var(--f-round);font-weight:800;font-size:18px;line-height:1.4;color:var(--navy)}
.tiles p{margin:6px 0 0;font-size:14px;line-height:1.55;color:var(--gray)}
.reason-btn{margin:26px auto 0;width:fit-content}
@media (min-width:960px){
  .reason-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:36px;align-items:start}
  .lamp{margin:0}.lamp img{aspect-ratio:4/3.3}
  .tiles{gap:16px}
}

/* ---------- 料金のめやす+エリア ---------- */
.pcard{background:#fff;border:2px solid var(--line);border-radius:24px;padding:6px 20px}
.pcard dl{margin:0}
.pcard .row{display:flex;justify-content:space-between;align-items:baseline;padding:14px 0;border-bottom:2px dotted var(--line)}
.pcard .row:last-child{border:0}
.pcard dt{font-family:var(--f-round);font-weight:800;font-size:20px;color:var(--navy)}
.pcard dd{margin:0;font-family:var(--f-round);font-weight:800;font-size:34px;line-height:1.1;color:var(--navy)}
.pcard dd small{font-size:.5em;margin-left:2px}
.pcard .wari dd{color:var(--pink)}
.pcard dd s{display:block;font-family:var(--f-body);font-weight:500;font-size:14px;color:var(--gray);text-align:right;line-height:1.2}
.pcard .wl{display:block;width:fit-content;margin-top:4px;background:var(--pink);color:#fff;border-radius:6px;padding:1px 8px;font-family:var(--f-body);font-weight:700;font-size:12.5px}
.pnote{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 14px;margin:12px 2px 0}
.tlink{font-weight:700;color:var(--navy);text-decoration:none;border-bottom:2px solid var(--pink)}
.tlink::after{content:" →"}
.area{margin-top:56px}
.area .big{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--navy);color:#fff;border-radius:999px;padding:14px 20px;font-family:var(--f-round);font-weight:800;font-size:22px}
.area .big .ic{width:26px;height:26px;color:var(--pink)}
.cities{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.cities li{border:2px solid var(--navy);border-radius:999px;text-align:center;padding:9px 4px;font-weight:700;font-size:16px;color:var(--navy);background:#fff}
.area .note{margin-top:14px;font-size:15.5px;color:var(--navy);font-weight:700}
.hours{margin-top:22px;display:flex;align-items:center;gap:14px;background:var(--bg2);border-radius:20px;padding:16px 18px;color:var(--navy)}
.hours .ic{width:40px;height:40px;flex:none}
.hours b{display:block;font-family:var(--f-round);font-weight:800;font-size:22px;line-height:1.3}
.hours span{font-size:14.5px;color:var(--gray);line-height:1.5;display:block}
@media (min-width:960px){
  .pa-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px}
  .area{margin-top:0}
}

/* ---------- FAQ ---------- */
.faq{max-width:780px;margin:0 auto;display:grid;gap:10px}
.faq details{background:var(--bg2);border-radius:18px}
.faq summary span:not(.q){word-break:auto-phrase}
.faq summary{list-style:none;display:grid;grid-template-columns:38px 1fr 24px;align-items:center;gap:12px;padding:16px 16px;cursor:pointer;font-weight:700;font-size:17px;line-height:1.5;color:var(--navy)}
.faq summary::-webkit-details-marker{display:none}
.faq summary .q{width:38px;height:38px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-family:var(--f-en);font-weight:700;font-size:17px}
.faq summary::after{content:"+";font-size:28px;font-weight:700;line-height:1;text-align:center}
.faq details[open] summary::after{content:"−"}
.faq .a{padding:0 18px 18px 66px;margin:0;font-size:16px;line-height:1.75}
.faq .a::before{content:"A. ";color:var(--pink);font-weight:800}
.faq-more{margin:24px auto 0;width:fit-content}

/* ---------- 最終CTA ---------- */
.call{position:relative;color:#fff;padding:0 0 56px;background:var(--navy);overflow:hidden}
.call .ph{position:relative;height:clamp(300px,82vw,420px)}
.call .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%}
.call .ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(19,36,74,.1) 0,rgba(19,36,74,.1) 45%,var(--navy) 100%),linear-gradient(90deg,rgba(19,36,74,.65),rgba(19,36,74,0) 70%)}
.call .ph h2{position:absolute;z-index:2;left:var(--pad);bottom:24px;margin:0;font-family:var(--f-round);font-weight:800;font-size:clamp(30px,8.4vw,44px);line-height:1.35;text-shadow:0 2px 14px rgba(0,0,0,.5)}
.call .acts{display:grid;gap:16px;padding:10px var(--pad) 0;max-width:620px;margin:0 auto}
.call .note{text-align:center;color:#c6cfe4}
@media (min-width:960px){
  .call{padding:0}
  .call .inner{position:relative;max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1fr 520px;gap:40px;align-items:center;padding:90px 24px}
  .call .ph{position:absolute;inset:0 45% 0 0;height:auto}
  .call .ph img{object-position:50% 22%}
  .call .ph::after{background:linear-gradient(90deg,rgba(19,36,74,.35),rgba(19,36,74,.55) 60%,var(--navy) 100%)}
  .call .ph h2{position:relative}
  .call .copy{position:relative;z-index:2}
  .call .copy h2{margin:0;font-family:var(--f-round);font-weight:800;font-size:48px;line-height:1.35;text-shadow:0 2px 14px rgba(0,0,0,.5)}
  .call .acts{position:relative;z-index:2;padding:0;margin:0;width:100%}
}
.call .copy{display:none}
@media (min-width:960px){.call .copy{display:block}.call .ph h2{display:none}}

/* ---------- フッター ---------- */
.ft{background:var(--navy2);color:#dfe5f2;padding:44px 0 120px;font-size:14.5px}
.ft .logo{color:#fff}.ft .logo .lg-n{display:none}.ft .logo .lg-w{display:block}.ft .logo .ja{border-left-color:rgba(255,255,255,.3)}
.ft .info{margin:18px 0 0;line-height:1.9}
.ft .info a{color:#fff;font-weight:700}
.ft .lic{margin:18px 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.ft .lic button{border:1.5px solid #8d9bc0;background:none;color:#fff;border-radius:999px;padding:6px 16px;font:inherit;font-weight:700;cursor:pointer}
.ft ul{list-style:none;margin:24px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 16px}
.ft ul a{display:block;padding:8px 0;color:#fff;text-decoration:none;font-weight:700}
.ft .copy{margin:28px 0 0;font-size:12.5px;color:#8f9bb8}
@media (min-width:960px){.ft{padding:56px 0 40px}.ft .cols{display:grid;grid-template-columns:1.2fr 1fr;gap:40px}.ft ul{grid-template-columns:repeat(3,1fr);margin:0;align-content:start}}

/* ---------- 下部固定バー(スマホ) ----------
   2つのボタンは高さ・角丸・影の厚みを揃える。電話=緑(主)、料金=紺(従) */
.bar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:8px;padding:8px 10px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);box-shadow:0 -4px 18px rgba(19,36,74,.15);transform:translateY(110%);transition:transform .3s}
.bar.show{transform:none}
.bar a{height:60px;border-radius:16px}
.bar .tel{justify-content:center;gap:10px;padding:0 12px;box-shadow:0 4px 0 var(--green-d)}
.bar .tel .ic{width:28px;height:28px}
.bar .tel span{display:flex;flex-direction:column;line-height:1.2;text-align:left}
.bar .tel b{font-size:18px;font-weight:700;letter-spacing:.04em}
.bar .tel small{font-family:var(--f-en);font-size:14px;font-weight:600;letter-spacing:.03em;opacity:.95}
.bar .yen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:var(--navy);color:#fff;text-decoration:none;font-weight:700;font-size:14px;line-height:1;box-shadow:0 4px 0 #0a1530}
.bar .yen .ic{width:22px;height:22px}
.bar a:active{transform:translateY(3px);box-shadow:0 1px 0 rgba(0,0,0,.25)}
@media (min-width:960px){.bar{display:none}}
html.shot .bar{display:none}

/* ---------- 認定証ポップアップ ---------- */
dialog.lic{width:min(92vw,560px);border:0;border-radius:26px;padding:0;color:var(--ink);box-shadow:0 20px 60px rgba(0,0,0,.35)}
dialog.lic::backdrop{background:rgba(12,24,51,.6)}
.lic .hd2{background:var(--navy);color:#fff;padding:20px 22px 18px;position:relative}
.lic .hd2 small{display:block;font-family:var(--f-en);font-weight:700;letter-spacing:.2em;color:#f7a8d3;font-size:12px}
.lic .hd2 h2{margin:2px 0 0;font-family:var(--f-round);font-weight:800;font-size:22px;line-height:1.4}
.lic .x{position:absolute;right:10px;top:10px;width:44px;height:44px;border:0;background:none;color:#fff;font-size:32px;line-height:1;cursor:pointer}
.lic .bd{padding:18px 22px 22px}
.lic table{width:100%;border-collapse:collapse;font-size:15.5px}
.lic th,.lic td{padding:12px 4px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;line-height:1.55}
.lic th{width:38%;color:var(--gray);font-weight:700}
.lic td{font-weight:700;color:var(--navy)}
.lic td.no{font-family:var(--f-round);font-size:22px}
.lic details{margin-top:14px}
.lic details summary{cursor:pointer;font-weight:700;color:var(--navy);font-size:15px}
.lic details img{margin-top:10px;border:1px solid var(--line);border-radius:8px}
.lic .close2{margin:18px auto 0;width:100%}

/* ---------- 下層ページ ---------- */
.ph-hero{background:var(--navy);color:#fff;padding:36px 0 34px;position:relative;overflow:hidden}
.ph-hero::after{content:"";position:absolute;right:-40px;bottom:-60px;width:200px;height:200px;border:14px solid rgba(255,255,255,.06);border-radius:50%}
.ph-hero .crumb{font-size:13px;color:#b8c2da;margin:0 0 10px}
.ph-hero .crumb a{color:#fff}
.ph-hero h1{margin:0;font-family:var(--f-round);font-weight:800;font-size:clamp(30px,8vw,44px);line-height:1.3}
.ph-hero p{margin:8px 0 0;font-size:16px;color:#dfe5f2}
.prose{max-width:820px;margin:0 auto}
.prose h2{margin:48px 0 16px;font-family:var(--f-round);font-weight:800;font-size:26px;line-height:1.4;color:var(--navy);padding-left:16px;border-left:6px solid var(--pink)}
.prose h2:first-child{margin-top:0}
.prose p{margin:0 0 14px}
.dtable{width:100%;border-collapse:collapse;background:#fff;border-radius:18px;overflow:hidden;font-size:16px}
.dtable th,.dtable td{padding:15px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;line-height:1.65}
.dtable th{width:32%;background:var(--bg2);color:var(--navy);font-weight:700}
@media (max-width:600px){.dtable.stack th,.dtable.stack td{display:block;width:100%}.dtable.stack th{border-bottom:0;padding-bottom:4px}.dtable.stack td{padding-top:4px}}
.ftable{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;background:#fff;border:2px solid var(--line);border-radius:20px;padding:6px 14px;margin:0}
.ftable div{display:flex;justify-content:space-between;align-items:baseline;padding:10px 2px;border-bottom:1px dotted var(--line);font-size:15.5px}
.ftable dt{font-weight:700;color:var(--gray)}
.ftable dd{margin:0;font-family:var(--f-round);font-weight:800;font-size:18px;color:var(--navy);white-space:nowrap}
.ftable dt{white-space:nowrap}
.ftable .hl dd{color:var(--pink)}
.wari-box{background:#fdf0f7;border:2px solid #f3b6d6;border-radius:20px;padding:18px 18px 16px;margin:0 0 18px}
.wari-box .h{margin:0 0 4px;font-family:var(--f-round);font-weight:800;font-size:26px;color:var(--pink)}
.wari-box p{margin:0 0 6px}
.wari-box .ex{margin:10px 0 0;padding-top:10px;border-top:1px dashed #f3b6d6;font-weight:700;color:var(--navy)}
.wari-box .ex b{font-family:var(--f-round);font-size:22px;color:var(--pink)}
.wari-box .ex small{font-weight:500;color:var(--gray);font-size:14px}
.ftable{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:419px){.ftable{gap:0 12px;padding:6px 10px}.ftable div{font-size:14px}.ftable dd{font-size:17px}}
@media (max-width:339px){.ftable{grid-template-columns:1fr;padding:6px 14px}}
@media (min-width:960px){.ftable{grid-template-columns:repeat(3,1fr);gap:0 36px;padding:10px 28px}}
.checks{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:10px}
.checks li{position:relative;padding:14px 16px 14px 50px;background:var(--bg2);border-radius:16px;font-weight:700;color:var(--navy);line-height:1.6}
.checks li::before{content:"";position:absolute;left:18px;top:21px;width:16px;height:9px;border-left:3.5px solid var(--pink);border-bottom:3.5px solid var(--pink);transform:rotate(-45deg)}
.flow-d{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.flow-d li{display:grid;grid-template-columns:54px 1fr;gap:14px;align-items:start;background:#fff;border:2px solid var(--line);border-radius:20px;padding:18px 16px}
.flow-d .n{width:54px;height:54px;border-radius:50%;background:var(--pink);color:#fff;display:grid;place-items:center;font-family:var(--f-round);font-weight:800;font-size:26px}
.flow-d h3{margin:4px 0 4px;font-family:var(--f-round);font-weight:800;font-size:20px;color:var(--navy);line-height:1.4}
.flow-d p{margin:0;font-size:16px;line-height:1.7}
.terms{font-size:15px;line-height:1.9}
.terms h3{margin:28px 0 6px;font-size:16.5px;color:var(--navy)}
.terms p{margin:0 0 8px}
.pay{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.pay li{border:2px solid var(--navy);border-radius:999px;padding:6px 16px;font-weight:700;color:var(--navy);background:#fff}
.sub-cta{background:var(--bg2);border-radius:26px;padding:26px 12px;margin-top:48px;text-align:center}
.sub-cta p{margin:0 0 14px;font-family:var(--f-round);font-weight:800;font-size:21px;color:var(--navy);line-height:1.5}
.sub-cta .telbig{max-width:520px;margin:0 auto}

/* ---------- 動き ---------- */
.rv{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.rv.in{opacity:1;transform:none}
html.shot .rv,html.noanim .rv{opacity:1;transform:none;transition:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}
