:root{
  --paper:#F3F0EA; --paper-2:#E7E3DB; --sheet:#FBFAF7; --ink:#0F0F0D; --mute:#66635C;
  --lime:#D9FF3A; --lime-d:#C4EC1F; --line:rgba(15,15,13,.16); --line-2:rgba(15,15,13,.08);
  --serif:"Zen Old Mincho","Yu Mincho","Hiragino Mincho ProN",serif;
  --sans:"Zen Kaku Gothic New","Hiragino Sans",system-ui,sans-serif;
  --hand:"Klee One","Zen Kaku Gothic New",sans-serif;
  --latin:"Outfit","Zen Kaku Gothic New",sans-serif;
  --gut:clamp(20px,5.6vw,96px); --head:72px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:var(--head);-webkit-text-size-adjust:100%}
body{background:var(--paper);color:var(--ink);font:400 16px/1.95 var(--sans);overflow-x:clip;font-feature-settings:"palt"}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;text-align:left}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.45;letter-spacing:.02em;word-break:auto-phrase;text-wrap:balance}
p{line-break:strict;text-wrap:pretty}
ul,ol{list-style:none}
.wrap{width:100%;max-width:1440px;margin:0 auto;padding-inline:var(--gut)}
:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.h2{font-size:clamp(28px,3.9vw,56px)}
.h3{font-size:clamp(20px,2.1vw,28px)}
.lead{font-size:clamp(15px,1.25vw,18px);color:var(--mute);max-width:36em}
.note{font-size:13px;line-height:1.8;color:var(--mute)}
.num{font-family:var(--latin);font-feature-settings:"tnum","lnum"}

/* 蛍光ペン */
.mk{background:linear-gradient(var(--lime),var(--lime)) 0 88%/0 .42em no-repeat;transition:background-size 1.1s var(--ease) .25s;padding-inline:.04em;margin-inline:-.04em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.in .mk,.mk.in{background-size:100% .42em}

/* ボタン */
.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;background:var(--ink);color:#fff;font-weight:700;font-size:15px;line-height:1.4;padding:12px 12px 12px 26px;border-radius:10px;transition:transform .2s}
.btn i{flex:none;width:44px;height:44px;border-radius:50%;background:var(--lime);color:var(--ink);display:grid;place-items:center;font-style:normal;font-family:var(--latin);overflow:hidden}
.btn i::before{content:"→";transition:transform .45s var(--ease)}
.btn:hover i::before{transform:translateX(6px)}
.btn:active{transform:scale(.98)}
.btn.lime{background:var(--lime);color:var(--ink)}
.btn.lime i{background:var(--ink);color:var(--lime)}
.btn.light{background:var(--sheet);color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.btn .st{display:none}
.btn.sm{white-space:nowrap;font-size:13px;padding:8px 8px 8px 18px;gap:14px}.btn.sm i{width:34px;height:34px}
.tl{font-weight:700;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;padding-bottom:4px;transition:background-size .4s var(--ease)}
.tl:hover{background-size:0 1px;background-position:100% 100%}

/* ヘッダー */
.head{position:fixed;inset:0 0 auto 0;height:var(--head);z-index:60;transition:background .3s,box-shadow .3s}
.head.solid{background:rgba(243,240,234,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line)}
.head .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:20px}
.logo{font:500 19px/1 var(--latin);letter-spacing:.06em;white-space:nowrap}
.nav{display:flex;align-items:center;gap:clamp(14px,2vw,30px);font-size:14px;font-weight:500}
.nav a:not(.btn){position:relative;padding-block:6px}
.nav a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:.5em;background:var(--lime);transform:scaleX(0);transform-origin:0 50%;transition:transform .4s var(--ease);z-index:-1}
.nav a:not(.btn):hover::after{transform:none}

/* 暗い導入部 */
.dark{background:var(--ink);color:#fff;position:relative}
.head.on-dark{color:#fff}
.head.on-dark.solid{background:rgba(15,15,13,.86);box-shadow:0 1px 0 rgba(255,255,255,.12)}
.head.on-dark .btn{background:var(--lime);color:var(--ink)}
.head.on-dark .btn i{background:var(--ink);color:var(--lime)}
.head .logo,.head .nav{transition:color .4s}
/* 流れる困りごと */
.drift{position:absolute;inset:0;display:grid;grid-template-rows:repeat(4,1fr);align-items:center;overflow:hidden;padding-block:calc(var(--head) + 2vh) 4vh}
.drift::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(15,15,13,.96) 0,rgba(15,15,13,.9) 24%,rgba(15,15,13,0) 46%),linear-gradient(90deg,rgba(15,15,13,.82) 0,rgba(15,15,13,.6) 55%,rgba(15,15,13,.42) 100%);transition:background-color .6s}
.drift-row{overflow:hidden}
.drift-t{display:flex;gap:clamp(14px,2vw,28px);width:max-content;will-change:transform}
.drift-t span{flex:none;font:600 clamp(18px,2.7vw,40px)/1 var(--hand);white-space:nowrap;padding:clamp(14px,1.8vw,26px) clamp(18px,2.4vw,36px);border-radius:14px;background:#1D1D1A;color:#B9B7AE}
.drift-t span:nth-child(3n+2){background:var(--lime);color:var(--ink)}
.drift-t span:nth-child(4n){background:var(--sheet);color:var(--ink)}
/* 文字が順に灯る */
.say-sec{min-height:130vh;display:flex;align-items:center;padding-block:20vh}
.say-h{font-size:clamp(34px,7vw,112px);line-height:1.3;font-weight:500}
.say-h b{font-family:var(--latin);font-weight:500}
.say-p{font:500 clamp(17px,2vw,30px)/1.9 var(--serif);margin-top:clamp(28px,4vw,60px);max-width:26em}
.ch{color:rgba(255,255,255,.16);transition:color .35s ease}
.ch.on{color:#fff}
b .ch.on{color:var(--lime)}
/* 段になってせり上がる切り替え */
.gst{position:fixed;inset:0;z-index:70;pointer-events:none;display:grid;grid-template-columns:12% 10% 14% 11% 16% 12% 13% 12%;visibility:hidden}
.gst.show{visibility:visible}
.gst span{background:var(--cover,var(--paper-2));margin-right:-2px;transform:translateY(101%)}
.gst.opening{visibility:visible;--cover:var(--ink)}
.gst.opening span{transform:none;transition:transform .7s steps(5,end)}
.gst.opening.go span{transform:translateY(-101%)}
.gst.opening span:nth-child(1){transition-delay:.12s}.gst.opening span:nth-child(2){transition-delay:.3s}.gst.opening span:nth-child(3){transition-delay:.04s}.gst.opening span:nth-child(4){transition-delay:.22s}.gst.opening span:nth-child(5){transition-delay:.38s}.gst.opening span:nth-child(6){transition-delay:.16s}.gst.opening span:nth-child(7){transition-delay:.26s}.gst.opening span:nth-child(8){transition-delay:.08s}
.gst-copy{position:absolute;inset:0;display:none;place-items:center;font:500 clamp(22px,4vw,48px) var(--latin);letter-spacing:.06em;color:#fff;transition:opacity .3s}
.gst.opening .gst-copy{display:grid}
.gst.opening.go .gst-copy{opacity:0}
/* せり上がって現れる */
.js .rise{opacity:0;transform:translateY(72px);filter:blur(8px);transition:opacity .76s cubic-bezier(.16,1,.3,1),transform .76s cubic-bezier(.16,1,.3,1),filter .76s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--d,0)*90ms)}
.js .rise.in{opacity:1;transform:none;filter:none}

/* ヒーロー */
.hero{min-height:100svh;display:flex;align-items:flex-end;position:relative;overflow:hidden;padding-top:calc(var(--head) + 40px);padding-bottom:clamp(32px,6vh,72px)}
.hero-in{position:relative;z-index:1}
.hero-pre{font-size:clamp(13px,1.1vw,16px);color:#B9B7AE;margin-bottom:clamp(14px,2vw,26px)}
.hero h1{font-size:clamp(33px,8.4vw,140px);line-height:1.22;letter-spacing:0;font-weight:500;white-space:nowrap}
.hero h1 .ln{display:block;overflow:hidden;padding-block:.05em}
.hero h1 .ln>span{display:inline-block;transform:translateY(110%);animation:up 1.1s var(--ease) 1.1s forwards}
.hero h1 .ln:nth-child(2)>span{animation-delay:1.24s}
@keyframes up{to{transform:none}}
.grad{background:linear-gradient(100deg,#fff 0,var(--lime) 22%,#8CF0C8 44%,#fff 62%,var(--lime) 82%,#fff 100%) 0 50%/300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:up 1.1s var(--ease) 1.24s forwards,gr 26s linear 2s infinite!important}
@keyframes gr{to{background-position:300% 50%}}
.hero-low{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(20px,4vw,64px);align-items:end;margin-top:clamp(22px,3.4vw,52px);padding-top:clamp(18px,2.4vw,32px);border-top:1px solid rgba(255,255,255,.2)}
.hero-tag{font:700 clamp(15px,1.3vw,18px)/1.6 var(--sans)}
.hero .lead{margin-top:8px;color:#B9B7AE}
.hero-b{display:flex;align-items:center;gap:clamp(16px,2.4vw,36px)}
.price-s{font-size:13px;line-height:1.5;color:#B9B7AE}
.price-s b{display:block;font:500 clamp(26px,2.6vw,38px)/1.2 var(--latin);font-feature-settings:"tnum";color:#fff}
.price-s b small{font:500 .45em var(--sans);margin-left:.2em}
.fade{opacity:0;animation:fd 1s 1.7s ease forwards}.fade.d2{animation-delay:1.85s}.fade.d3{animation-delay:2s}
@keyframes fd{to{opacity:1}}

/* 整理（ピン留め） */
.sort{height:420vh;background:var(--paper-2);position:relative}
.sort-pin{position:sticky;top:0;height:100vh;height:100svh;padding-top:var(--head);display:flex;align-items:center;overflow:hidden}
.sort-g{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(24px,5vw,96px);align-items:center}
.sort .lead{margin-top:18px}
.stepper{margin-top:clamp(20px,4vh,48px);display:grid;gap:0;border-top:1px solid var(--line)}
.stepper li{display:grid;grid-template-columns:2.4em 1fr;gap:4px 10px;padding:14px 0;border-bottom:1px solid var(--line);color:var(--mute);transition:color .4s}
.stepper li b{font:700 clamp(16px,1.5vw,20px)/1.5 var(--serif);grid-column:2}
.stepper li i{font:500 13px/1 var(--latin);font-style:normal;grid-row:1/3;width:2em;height:2em;border-radius:50%;display:grid;place-items:center;margin-top:.1em;transition:background .4s}
.stepper li p{grid-column:2;font-size:14px;line-height:1.7;max-height:0;overflow:hidden;opacity:0;transition:max-height .5s var(--ease),opacity .4s}
.stepper li.on{color:var(--ink)}
.stepper li.on p{max-height:5em;opacity:1}
.stepper li.on i{background:var(--lime)}
.pit{position:relative;height:min(62vh,560px)}
.wo{position:absolute;left:0;top:0;width:100%;height:var(--rh);background:var(--sheet);border-radius:10px;display:flex;align-items:center;gap:14px;padding:0 clamp(14px,1.6vw,24px);font:700 clamp(14px,1.45vw,19px)/1.4 var(--serif);box-shadow:0 18px 30px -22px rgba(15,15,13,.45);will-change:transform;transform-origin:50% 50%}
.wo i{flex:none;font:500 13px var(--latin);font-style:normal;color:var(--mute);width:1.6em;opacity:var(--o,0)}
.wo em{font:700 11px/1 var(--sans);font-style:normal;margin-left:auto;background:var(--ink);color:var(--lime);padding:7px 10px;border-radius:99px;white-space:nowrap;opacity:0;transform:scale(.8);transition:opacity .4s,transform .4s var(--ease)}
.wo.first{transition:background .5s}
.pit.done .wo.first{background:var(--lime)}
.pit.done .wo.first em{opacity:1;transform:none}

/* セクション共通 */
.sec{padding-block:clamp(80px,11vw,180px)}
.sec.line{border-top:1px solid var(--line)}
.two{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:clamp(24px,5vw,96px);align-items:end}

/* かんたん見積もり */
.est-in{display:flex;justify-content:space-between;align-items:center;gap:20px 40px;flex-wrap:wrap;margin-top:clamp(16px,2vw,28px);padding:clamp(22px,3.4vw,52px);border-radius:clamp(14px,1.8vw,24px);box-shadow:inset 0 0 0 1.5px var(--ink)}
.est-in p{color:var(--mute);margin-top:6px}
.est-fab{position:fixed;right:clamp(12px,2vw,28px);bottom:calc(clamp(12px,2vw,28px) + env(safe-area-inset-bottom,0px));z-index:55;background:var(--ink);color:#fff;font-weight:700;font-size:14px;padding:16px 22px;border-radius:99px;box-shadow:0 0 0 1.5px var(--lime),0 18px 30px -14px rgba(15,15,13,.6);transition:transform .4s var(--ease),background .3s,color .3s,opacity .4s,visibility .4s;opacity:0;visibility:hidden;transform:translateY(16px)}
.est-fab.on{opacity:1;visibility:visible;transform:none}
.est-fab.on:hover{transform:translateY(-3px);background:var(--lime);color:var(--ink)}
.est{border:0;padding:0;background:none;margin:auto;width:min(720px,calc(100vw - 24px));max-height:min(860px,calc(100dvh - 24px));color:var(--ink)}
.est::backdrop{background:rgba(15,15,13,.62);backdrop-filter:blur(4px)}
.est[open]{animation:estIn .45s var(--ease)}
@keyframes estIn{from{opacity:0;transform:translateY(24px)}}
.est-app{background:var(--paper);border-radius:20px;overflow:hidden;display:flex;flex-direction:column;max-height:inherit}
.est-head{display:flex;justify-content:space-between;align-items:center;padding:18px clamp(18px,3vw,32px);background:var(--ink);color:#fff}
.est-head h2{font:700 16px var(--sans);letter-spacing:.04em}
.est-x{width:36px;height:36px;border-radius:50%;background:#2A2A26;position:relative}
.est-x::before,.est-x::after{content:"";position:absolute;left:11px;right:11px;top:50%;height:1.5px;background:#fff;transform:rotate(45deg)}
.est-x::after{transform:rotate(-45deg)}
.est-prog{display:flex;align-items:center;gap:14px;padding:16px clamp(18px,3vw,32px) 0;font-size:13px}
.est-track{flex:1;height:6px;border-radius:9px;background:var(--paper-2);overflow:hidden}
.est-track span{display:block;height:100%;width:0;background:var(--ink);border-radius:9px;transition:width .5s var(--ease)}
.est-live{display:flex;justify-content:space-between;gap:8px 20px;flex-wrap:wrap;margin:14px clamp(18px,3vw,32px) 0;padding:10px 16px;border-radius:10px;background:var(--ink);color:#fff;font-size:13px}
.est-live[hidden]{display:none}
.est-live b{font:500 17px var(--latin);font-feature-settings:"tnum";color:var(--lime);margin-left:8px}
.est-live.bump b{animation:bump .4s var(--ease)}
@keyframes bump{from{opacity:.3;transform:translateY(4px)}}
.est-live span{display:inline-flex;align-items:baseline}
.est-back{font-size:13px;font-weight:700;padding:4px 10px 4px 0}
.est-back::before{content:"←";font-family:var(--latin);margin-right:6px}
.est-body{padding:clamp(18px,3vw,32px);overflow-y:auto}
.est-body>*{animation:estStep .45s var(--ease)}
@keyframes estStep{from{opacity:0;transform:translateX(18px)}}
.est-q small{font:500 13px var(--latin);color:var(--mute)}
.est-q h3{font:700 clamp(20px,2.6vw,28px)/1.5 var(--serif);margin:4px 0 4px}
.est-q>p{font-size:13px;color:var(--mute);margin-bottom:16px}
.est-opts{display:grid;gap:8px}
.est-opt{display:grid;grid-template-columns:auto 1fr auto;gap:2px 14px;align-items:center;padding:14px 16px;border-radius:12px;background:var(--sheet);box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;transition:background .2s,box-shadow .2s}
.est-opt:hover{box-shadow:inset 0 0 0 1.5px var(--ink)}
.est-opt input{appearance:none;-webkit-appearance:none;width:20px;height:20px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--ink);background:#fff;grid-row:1/3;margin:0}
.est-opt input[type=checkbox]{border-radius:5px}
.est-opt input:checked{background:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink),inset 0 0 0 5px var(--lime)}
.est-opt:has(input:checked){background:var(--lime);box-shadow:inset 0 0 0 1.5px var(--ink)}
.est-opt b{font-size:15px;line-height:1.5}
.est-opt em{font:500 15px var(--latin);font-style:normal;font-feature-settings:"tnum";white-space:nowrap;grid-row:1/3;grid-column:3}
.est-opt span{grid-column:2;font-size:12px;line-height:1.5;color:var(--mute)}
.est-opt:has(input:checked) span{color:var(--ink)}
.est-step{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:14px 16px;border-radius:12px;background:var(--sheet);box-shadow:inset 0 0 0 1px var(--line);font-size:14px;font-weight:700}
.est-step div{display:flex;align-items:center;gap:6px}
.est-step button{width:34px;height:34px;border-radius:50%;background:var(--ink);color:#fff;text-align:center;font:500 18px/1 var(--latin)}
.est-step output{min-width:2em;text-align:center;font:500 18px var(--latin)}
.est-nav{margin-top:20px;display:flex;justify-content:flex-end}
.est-cover h3{font:700 clamp(22px,3vw,32px)/1.5 var(--serif)}
.est-cover p{margin:14px 0 22px}
.est-cover .note{margin:16px 0 0}
.est-sum{background:var(--ink);color:#fff;border-radius:16px;padding:clamp(18px,3vw,30px);display:grid;grid-template-columns:1fr 1fr;gap:16px}
.est-sum p{font-size:13px;color:#B9B7AE}
.est-sum b{display:block;font:500 clamp(34px,6vw,60px)/1.1 var(--latin);font-feature-settings:"tnum";color:var(--lime);letter-spacing:-.02em;white-space:nowrap}
.est-sum b small{font:700 .32em var(--sans);color:#fff;margin-left:.2em;letter-spacing:0}
.est-inc{margin:18px 0}
.est-inc h4{font:700 15px var(--sans);margin-bottom:6px}
.est-inc li{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.6}
.est-inc li span:last-child{font-family:var(--latin);font-feature-settings:"tnum";white-space:nowrap}
.est-act{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.est-act button{padding:13px;border-radius:10px;box-shadow:inset 0 0 0 1px var(--ink);font-size:13px;font-weight:700;text-align:center;transition:background .2s}
.est-act button:hover{background:var(--lime)}
.est-result .btn{width:100%;margin-top:6px}
.print-only{display:none}
@media print{
  body>*:not(.est){display:none!important}
  .est{position:static;display:block;width:100%;max-height:none}
  .est-head,.est-prog,.est-live,.est-act,.est-result .btn,.est-x{display:none!important}
  .est-app,.est-body{max-height:none;overflow:visible;border-radius:0}
  .est-sum{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .print-only{display:block;margin-bottom:16px;font:500 22px var(--latin)}
}

/* まず聞いてください */
.ask{text-align:left}
.ask h2{font-size:clamp(30px,5.6vw,88px);line-height:1.35}
.ask h2 .en{font-family:var(--latin);font-weight:500;letter-spacing:.01em}
.ask p{margin:clamp(20px,2.6vw,36px) 0 24px;font-size:clamp(15px,1.3vw,18px)}

/* 役割 */
.tri{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,48px);margin-top:clamp(40px,5vw,80px)}
.tri li{border-top:1.5px solid var(--ink);padding-top:24px}
.tri h3{margin-bottom:10px}
.tri p{font-size:15px}
.flow{margin-top:clamp(56px,7vw,110px);display:grid;grid-template-columns:auto auto auto auto minmax(0,1fr);justify-content:space-between;align-items:center;gap:clamp(12px,2vw,28px);padding:clamp(22px,3vw,44px);background:var(--paper-2);border-radius:clamp(14px,1.8vw,24px)}
.flow .asker{font:500 clamp(18px,2vw,28px)/1.5 var(--serif)}
.flow .asker small{display:block;font:500 13px var(--sans);color:var(--mute)}
.flow .ar{font-family:var(--latin);font-size:22px}
.flow .mpc{background:var(--lime);border:1.5px solid var(--ink);border-radius:20px;padding:clamp(20px,2.6vw,36px);text-align:center}
.flow .mpc b{display:block;font:500 clamp(20px,2.3vw,32px)/1.3 var(--latin)}
.flow .mpc span{font-size:13px;font-weight:500;white-space:nowrap}
.flow ul{display:flex;flex-wrap:wrap;gap:8px}
.flow ul li{background:var(--sheet);border-radius:99px;padding:8px 18px;font-size:14px;font-weight:500;box-shadow:inset 0 0 0 1px var(--line)}
.aside{margin-top:16px;padding:18px 22px;border-left:4px solid var(--lime-d);background:var(--sheet);font-weight:500;font-size:15px}

/* 料金 */
.plan{background:var(--ink);color:#fff;border-radius:clamp(18px,2.4vw,32px);padding:clamp(28px,5vw,80px);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(24px,5vw,80px);align-items:end;margin-top:clamp(36px,5vw,72px);position:relative;overflow:hidden}
.plan::after{content:"";position:absolute;right:-10%;top:-60%;width:60%;aspect-ratio:1;background:radial-gradient(closest-side,rgba(217,255,58,.2),transparent);pointer-events:none}
.plan h3{font-size:clamp(26px,3.4vw,48px);margin-bottom:16px}
.plan p{color:#CFCDC6;max-width:30em}
.yen{font:500 clamp(64px,10vw,150px)/1 var(--latin);letter-spacing:-.03em;font-feature-settings:"tnum";white-space:nowrap}
.yen small{font:500 .2em var(--sans);letter-spacing:.04em;margin-left:.3em}
.yen-l{font-size:14px;color:#CFCDC6;margin-bottom:6px}
.plan .btn{margin-top:22px;width:100%}
.inc{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,28px);margin-top:clamp(16px,2vw,28px)}
.inc>div{background:var(--sheet);border-radius:clamp(14px,1.8vw,24px);padding:clamp(22px,3.4vw,52px)}
.inc>div.l{background:#F0FBC4;box-shadow:inset 0 6px 0 var(--lime)}
.inc h3{font-size:clamp(18px,1.8vw,24px);margin-bottom:14px}
.inc li{display:flex;gap:14px;padding:15px 0;border-top:1px solid var(--line);font-weight:500;font-size:clamp(14px,1.2vw,17px);line-height:1.6}
.inc li::before{content:"";flex:none;width:12px;height:7px;border-left:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:rotate(-45deg);margin-top:.5em}
.asides{display:grid;gap:12px;margin-top:clamp(16px,2vw,28px)}
.asides .aside{margin:0}

/* サービス */
.grp{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(36px,5vw,72px);border-top:1.5px solid var(--ink)}
.grp>div{padding:clamp(22px,2.6vw,40px) clamp(16px,2.4vw,36px) 0 0}
.grp>div+div{padding-left:clamp(16px,2.4vw,36px);border-left:1px solid var(--line)}
.grp h3{font-size:clamp(18px,1.8vw,24px);margin-bottom:18px;min-height:2.9em}
.grp li a{display:flex;justify-content:space-between;gap:12px;transition:color .2s}
.grp li a::after{content:"→";font-family:var(--latin);transition:transform .4s var(--ease)}
.grp li a:hover::after{transform:translateX(5px)}
.grp li{padding:14px 0;border-top:1px solid var(--line);font-weight:700;font-size:15px;line-height:1.6}
.site{margin-top:clamp(56px,7vw,110px);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,5vw,96px);align-items:end}
.site-hp{align-items:start}
.site-hp>h3{position:sticky;top:calc(var(--head) + 32px)}
.hp-txt{margin-top:22px;color:var(--mute);font-size:15px}
.hp-txt p+p{margin-top:6px}
.hp-more{margin-top:24px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.hp-more summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;font-weight:700;font-size:15px}
.hp-more summary::-webkit-details-marker{display:none}
.hp-more summary i{flex:none;width:36px;height:36px;border-radius:50%;background:var(--sheet);position:relative;transition:background .3s}
.hp-more summary i::before,.hp-more summary i::after{content:"";position:absolute;left:12px;right:12px;top:50%;height:1.5px;background:var(--ink)}
.hp-more summary i::after{transform:rotate(90deg);transition:transform .3s var(--ease)}
.hp-more[open] summary i{background:var(--lime)}
.hp-more[open] summary i::after{transform:none}
.hp-more summary:hover i{background:var(--lime)}
.hp-body{padding:4px 0 28px;display:grid;gap:28px}
.hp-body h4{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;font:700 clamp(16px,1.4vw,19px)/1.5 var(--serif);margin-bottom:8px}
.hp-body h4 span{font:500 clamp(16px,1.4vw,19px) var(--latin);font-feature-settings:"tnum"}
.hp-body p{font-size:14px;line-height:1.85;color:#3B3A36}
.hp-body p+p{margin-top:6px}
.hp-body .note{margin-top:8px}
.hp-list{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin-top:8px}
.hp-list li{display:flex;gap:10px;padding:9px 0;border-top:1px solid var(--line);font-size:14px;line-height:1.6}
.hp-list li::before{content:"";flex:none;width:10px;height:6px;border-left:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);transform:rotate(-45deg);margin-top:.5em}
.hp-tbl{width:100%;border-collapse:collapse;font-size:14px}
.hp-tbl th,.hp-tbl td{padding:12px 0;border-top:1px solid var(--line);text-align:left;font-weight:500;line-height:1.6}
.hp-tbl tr:last-child th,.hp-tbl tr:last-child td{border-bottom:1px solid var(--line)}
.hp-tbl td{text-align:right;white-space:nowrap;padding-left:16px}
.hp-next{margin-top:28px;padding-left:16px;border-left:3px solid var(--lime-d)}
.hp-next p{font-size:15px;color:var(--mute)}
.hp-next p b{color:var(--ink);font-size:clamp(16px,1.4vw,18px)}
.hp-next .tl{display:inline-block;margin-top:12px;font-size:14px}
.rows li{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:18px 0;border-bottom:1px solid var(--ink)}
.rows li b{font:500 clamp(18px,1.8vw,24px) var(--latin);font-feature-settings:"tnum";white-space:nowrap}
.opt{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:clamp(28px,4vw,56px);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.opt li{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:clamp(18px,2.2vw,32px);transition:background .35s}
.opt li:hover{background:var(--lime)}
.opt h4{font:700 clamp(17px,1.6vw,22px)/1.5 var(--serif)}
.opt p{font-size:13px;line-height:1.7;color:var(--mute);margin:6px 0 18px}
.opt li:hover p{color:var(--ink)}
.opt b{font:500 clamp(17px,1.6vw,22px) var(--latin);font-feature-settings:"tnum"}

/* 業種別の例 */
.ex{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(16px,2vw,28px);margin-top:clamp(36px,5vw,72px)}
.tabs{display:grid;gap:8px;align-content:start}
.tabs button{display:flex;justify-content:space-between;align-items:center;padding:20px 22px;border-radius:12px;box-shadow:inset 0 0 0 1px var(--line);font-weight:700;transition:background .3s,box-shadow .3s,transform .3s var(--ease)}
.tabs button span{font:500 13px var(--latin);color:var(--mute)}
.tabs button:hover{background:var(--sheet)}
.tabs button[aria-selected=true]{background:var(--lime);box-shadow:inset 0 0 0 1.5px var(--ink),5px 5px 0 var(--ink);transform:translate(-2px,-2px)}
.tabs button[aria-selected=true] span{color:var(--ink)}
.panel{background:var(--sheet);border-radius:clamp(14px,1.8vw,24px);padding:clamp(22px,3.4vw,52px);display:flex;flex-direction:column;gap:clamp(20px,2.6vw,36px)}
.ba{display:grid;grid-template-columns:1fr auto 1fr;gap:clamp(14px,2vw,32px);align-items:start}
.ba .ar{font-family:var(--latin);font-size:22px;margin-top:3.4em}
.ba .tg{display:inline-block;font:700 12px/1 var(--sans);padding:8px 12px;background:var(--ink);color:#fff;margin-bottom:14px}
.ba .f .tg{background:var(--lime);color:var(--ink)}
.ba h3{font-size:clamp(18px,1.9vw,26px);margin-bottom:10px}
.ba p{font-size:15px;color:var(--mute)}
.panel.sw .ba,.panel.sw .say{animation:sw .5s var(--ease)}
@keyframes sw{from{opacity:0;transform:translateY(14px)}}
.say{background:var(--lime);border-radius:12px;padding:20px 24px;font-weight:700;font-size:clamp(15px,1.4vw,19px)}

/* 向き・不向き */
.fit{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,96px)}
.fit h2{font-size:clamp(22px,2.6vw,38px);margin-bottom:20px}
.fit ul{margin-top:28px;border-top:1px solid var(--line)}
.fit li{display:flex;gap:16px;padding:18px 0;border-bottom:1px solid var(--line);font-weight:500}
.fit li::before{content:"";flex:none;width:18px;height:1.5px;background:var(--ink);margin-top:.95em}
.fit .no{color:var(--mute)}
.fit .no h2{color:var(--ink)}

/* 代表 */
.who{background:var(--paper-2)}
.who-g{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,6vw,110px);align-items:center}
.who p.yrs{font:500 clamp(140px,22vw,340px)/.8 var(--latin);letter-spacing:-.05em;position:relative;display:inline-block;color:var(--ink);isolation:isolate;margin:0}
.yrs::after{content:"";position:absolute;left:-4%;right:-6%;bottom:6%;height:26%;background:var(--lime);z-index:-1;transform:scaleX(0);transform-origin:0 50%;transition:transform 1.2s var(--ease) .2s}
.in .yrs::after{transform:none}
.yrs-l{font:700 clamp(15px,1.4vw,19px)/1.7 var(--sans);margin-top:22px;position:relative;z-index:1}
.who h2{font-size:clamp(26px,3.4vw,50px);margin-bottom:24px}
.who p{margin-bottom:16px;color:#3B3A36}
.who .say{display:inline-block;margin:10px 0 18px}
.next{margin-top:clamp(64px,8vw,130px);padding-top:clamp(40px,5vw,72px);border-top:1px solid var(--line)}
.next h2{font-size:clamp(24px,3vw,44px)}

/* FAQ */
.faq-g{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,5vw,96px);align-items:start}
.faq-g h2{position:sticky;top:calc(var(--head) + 40px)}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;font-weight:700;font-size:clamp(15px,1.35vw,18px);line-height:1.6}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{flex:none;width:42px;height:42px;border-radius:50%;background:var(--sheet);position:relative;transition:background .3s,transform .5s var(--ease)}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:14px;right:14px;top:50%;height:1.5px;background:var(--ink)}
.faq summary i::after{transform:rotate(90deg);transition:transform .4s var(--ease)}
.faq details[open] summary i{background:var(--lime);transform:rotate(180deg)}
.faq details[open] summary i::after{transform:none}
.faq .a{padding:0 62px 26px 0;color:#3B3A36;animation:fd .5s ease}

/* 最後 */
.last{background:var(--lime);padding-block:clamp(80px,11vw,180px);position:relative;overflow:hidden}
.last::after{content:"MPC";position:absolute;right:-2%;bottom:-.24em;font:600 clamp(160px,34vw,560px)/1 var(--latin);letter-spacing:-.04em;color:rgba(15,15,13,.05);pointer-events:none}
.last-g{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,5vw,80px);align-items:center;position:relative;z-index:1}
.last h2{font-size:clamp(30px,5vw,76px);line-height:1.4}
.last p{margin:22px 0 30px;max-width:34em;font-weight:500}
.line-c{background:var(--sheet);border-radius:20px;padding:clamp(18px,2vw,28px);display:flex;gap:18px;align-items:center;box-shadow:0 30px 50px -30px rgba(15,15,13,.4)}
.qr{flex:none;width:clamp(110px,11vw,160px);aspect-ratio:1;border-radius:10px;background:#fff;display:grid;place-items:center;text-align:center;font-size:11px;line-height:1.5;color:var(--mute);overflow:hidden;position:relative}
.qr img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff}
.qr span{padding:8px}
.line-c b{display:block;font-size:clamp(15px,1.25vw,17px);line-height:1.5}
.line-c span{font-size:13px;color:var(--mute)}

footer{background:var(--ink);color:#fff;padding-block:clamp(40px,5vw,72px) calc(28px + env(safe-area-inset-bottom,0px));font-size:14px}
.foot{display:flex;justify-content:space-between;gap:28px;flex-wrap:wrap;align-items:flex-end}
.foot .logo{font-size:clamp(34px,7vw,110px);letter-spacing:.01em;line-height:1}
.foot nav{display:flex;gap:10px 28px;flex-wrap:wrap}
.foot nav a:hover{color:var(--lime)}
.foot small{display:block;margin-top:36px;color:#8C8A83;font-size:12px}

@media(max-width:900px){
  :root{--head:60px}
  .nav a:not(.btn){display:none}
  .btn .lg{display:none}.btn .st{display:inline}
  .hero-g,.sort-g,.two,.site,.ex,.fit,.who-g,.faq-g,.last-g,.plan{grid-template-columns:1fr}
  .hero-low{grid-template-columns:1fr}
  .hero-b{flex-direction:column-reverse;align-items:stretch}
  .hero-b .btn{width:100%}
  .drift-t span{border-radius:10px}
  .drift::after{background:linear-gradient(0deg,rgba(15,15,13,.97) 0,rgba(15,15,13,.92) 62%,rgba(15,15,13,.35) 82%)}
  .say-sec{min-height:110vh}
  .est-sum,.est-act{grid-template-columns:1fr}
  .est-opt em{grid-row:auto;grid-column:2;justify-self:start}
  .est-in .btn{width:100%}
  .sort-pin{align-items:flex-start;padding-top:calc(var(--head) + 18px)}
  .sort .lead{display:none}
  .stepper{margin-top:14px}
  .stepper li{padding:9px 0}
  .stepper li p{font-size:13px}
  .pit{height:auto;min-height:calc(var(--rh)*6 + 50px);margin-top:6px}
  .tri,.grp,.opt,.inc{grid-template-columns:1fr}
  .grp>div+div{padding-left:0;border-left:0;border-top:1.5px solid var(--ink);margin-top:24px}
  .grp h3{min-height:0}
  .site-hp>h3{position:static}
  .hp-list{grid-template-columns:1fr}
  .hp-tbl td{white-space:normal}
  .flow{grid-template-columns:1fr;justify-items:start}
  .flow .ar{transform:rotate(90deg);margin-left:20px}
  .flow .mpc{width:100%}
  .flow .mpc span{white-space:normal}
  .ba{grid-template-columns:1fr}
  .ba .ar{margin:0 0 0 6px;transform:rotate(90deg);justify-self:start}
  .tabs{grid-template-columns:1fr 1fr}
  .tabs button{padding:14px}
  .tabs button span{display:none}
  .faq-g h2{position:static}
  .faq .a{padding-right:0}
  .yrs{font-size:clamp(150px,50vw,260px)}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,::before,::after{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important;transition-delay:0s!important}
  .gst{display:none}
  .ch{color:#fff}
  .sort{height:auto}
  .sort-pin{position:static;height:auto;padding-block:calc(var(--head) + 32px) 72px}
}