/* Layout: white page, tire tread bleeding in from top-right; one step visible at a time, stepper above; form panels on cool grey */
:root{
  --red:#E5121B; --red-deep:#B80E15;
  --ink:#0F1418; --ink-2:#3A434B; --steel:#7A8691;
  --panel:#F3F5F7; --line:#DDE2E7; --white:#FFFFFF;
  --f-jp:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --f-en:"Montserrat","Helvetica Neue",Arial,sans-serif;
  --gutter:clamp(16px,5vw,86px);
  --ease:cubic-bezier(.22,.8,.2,1);
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--white);color:var(--ink);font-family:var(--f-jp);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}
img{max-width:100%}
[hidden]{display:none!important}

/* header */
.hd{position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:34px var(--gutter) 0}
.brand{display:flex;align-items:center;gap:clamp(14px,2vw,30px);line-height:1}
.brand__cy{display:block;font-family:var(--f-en);font-weight:900;font-size:clamp(22px,2.2vw,36px);letter-spacing:-.02em;color:var(--red);transform:skewX(-4deg)}
.brand__sm{display:block;margin-top:8px;font-family:var(--f-en);font-weight:700;font-size:clamp(8px,.7vw,11px);letter-spacing:.14em;color:var(--ink-2)}
.brand i{width:2px;height:28px;background:var(--ink)}
.brand__tg{font-family:var(--f-en);font-weight:900;font-size:clamp(20px,2vw,32px);letter-spacing:.02em}
.nav{display:flex;gap:clamp(18px,2.4vw,46px)}
.nav a{position:relative;font-family:var(--f-en);font-weight:500;font-size:13px;letter-spacing:.2em;padding:6px 0;color:var(--ink-2);transition:color .3s}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.nav a:hover{color:var(--ink)}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1)}
.nav a[aria-current="page"]{color:var(--ink);font-weight:700}
.navbtn{display:none;width:44px;height:44px;position:relative}
.navbtn span{position:absolute;left:10px;right:10px;height:2px;background:var(--ink);transition:transform .35s var(--ease),opacity .2s}
.navbtn span:nth-child(1){top:15px}.navbtn span:nth-child(2){top:21px}.navbtn span:nth-child(3){top:27px}
.hd.is-open .navbtn span:nth-child(1){transform:translateY(6px) rotate(35deg)}
.hd.is-open .navbtn span:nth-child(2){opacity:0}
.hd.is-open .navbtn span:nth-child(3){transform:translateY(-6px) rotate(-35deg)}

/* backdrop tire */
.tread{position:absolute;top:70px;right:0;width:min(60vw,950px);aspect-ratio:950/412;z-index:0;pointer-events:none;margin:0}
.tread img{width:100%;height:100%;object-fit:cover;display:block}
.tread::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,var(--white) 0%,rgba(255,255,255,0) 30%),linear-gradient(0deg,var(--white) 0%,rgba(255,255,255,.85) 22%,rgba(255,255,255,0) 58%)}

main{position:relative;z-index:1;padding:0 var(--gutter) 80px}

/* stepper */
.stepper{list-style:none;margin:26px auto 0;padding:0;max-width:1000px;display:grid;grid-template-columns:repeat(4,1fr);position:relative}
.stepper::before{content:"";position:absolute;left:12.5%;right:12.5%;top:5px;height:1.5px;background:#C9D0D6}
.stepper::after{content:"";position:absolute;left:12.5%;top:5px;height:1.5px;width:calc(75% * var(--sp,0));background:var(--red);transition:width .6s var(--ease)}
.stepper li{position:relative;z-index:1;display:grid;justify-items:center;gap:2px;text-align:center;color:#A3ACB4}
.stepper li i{width:11px;height:11px;border-radius:50%;background:#C9D0D6;transition:background .3s,transform .3s var(--ease)}
.stepper b{font-family:var(--f-en);font-weight:700;font-size:19px;line-height:1.3;margin-top:4px}
.stepper span{font-size:12px;font-weight:700;letter-spacing:.02em}
.stepper li.is-done{color:var(--ink-2)}
.stepper li.is-done i{background:var(--ink-2)}
.stepper li.is-now{color:var(--red)}
.stepper li.is-now i{background:var(--red);transform:scale(1.2)}

/* step heads */
.view{animation:vin .6s var(--ease) both}
@keyframes vin{from{opacity:.0;transform:translateY(14px)}to{opacity:1;transform:none}}
.eyebrow{display:flex;align-items:center;gap:16px;margin:clamp(28px,4vw,56px) 0 0;font-family:var(--f-en);font-weight:500;font-size:clamp(14px,1.2vw,19px);letter-spacing:.14em;color:var(--ink-2)}
.eyebrow::before{content:"";width:42px;height:1.5px;background:var(--ink-2)}
.h1{margin:clamp(10px,1.4vw,20px) 0 0;font-weight:900;font-size:clamp(40px,5.5vw,92px);line-height:1.15;letter-spacing:-.04em;text-shadow:0 0 16px #fff,0 0 30px rgba(255,255,255,.9)}
.h1 span{display:block}
.lead{margin:clamp(10px,1.2vw,18px) 0 0;font-size:clamp(14px,1.2vw,19px);font-weight:500;letter-spacing:.04em;text-shadow:0 0 10px #fff}

/* topic cards */
.topics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:clamp(30px,3.6vw,56px)}
.topic{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto auto;align-items:center;gap:0 clamp(14px,1.6vw,26px);padding:clamp(18px,1.8vw,30px) clamp(16px,1.7vw,28px);background:rgba(245,246,248,.94);border:1.5px solid #E1E5E9;text-align:left;transition:border-color .3s,background .3s,transform .4s var(--ease),box-shadow .3s}
.topic svg{grid-row:1/4;width:clamp(44px,3.8vw,64px);height:auto;transition:transform .5s var(--ease),color .3s}
.topic .no{font-family:var(--f-en);font-weight:700;font-size:14px}
.topic .en{font-family:var(--f-en);font-weight:800;font-size:clamp(22px,2.2vw,36px);line-height:1.15;letter-spacing:.01em}
.topic .jp{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:clamp(12px,1.02vw,16px);font-weight:700;letter-spacing:.04em;margin-top:6px;white-space:nowrap}
.topic .jp::after{content:"";flex:none;width:32px;height:12px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 12'%3E%3Cpath d='M0 6h30M25 1l5 5-5 5' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat center/contain;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 12'%3E%3Cpath d='M0 6h30M25 1l5 5-5 5' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat center/contain;transition:transform .4s var(--ease)}
.topic:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(15,20,24,.08);background:#fff}
.topic:hover svg{transform:rotate(-6deg)}
.topic:hover .jp::after{transform:translateX(6px)}
.topic[aria-checked="true"]{border-color:var(--red);background:#FFF5F5;box-shadow:0 0 0 1px var(--red)}
.topic[aria-checked="true"] .jp::after{color:var(--red)}

/* panels & fields */
.panel{margin-top:16px;background:var(--panel);padding:clamp(20px,2.4vw,40px) clamp(18px,2.4vw,40px)}
.panel__h{display:flex;align-items:center;flex-wrap:wrap;gap:10px 24px;margin:0 0 22px}
.panel__h .no{font-family:var(--f-en);font-weight:700;font-size:22px;color:var(--red)}
.panel__h .no::after{content:"";display:inline-block;vertical-align:middle;width:48px;height:1px;background:var(--ink-2);margin-left:22px}
.panel__h b{font-family:var(--f-en);font-weight:800;font-size:22px}
.panel__h b small{font-family:var(--f-jp);font-size:.84em;font-weight:700;margin-left:10px;padding-left:10px;border-left:1.5px solid var(--ink)}
.panel__h p{margin:0 0 0 auto;font-size:12px;color:var(--ink-2)}
.quick{display:grid;grid-template-columns:1fr 1fr .8fr 1fr auto;gap:18px;align-items:end}
.grid2{display:grid;grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr);gap:22px 26px;align-items:center}
.f{display:grid;gap:8px;min-width:0}
.lab{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:700;letter-spacing:.04em;white-space:nowrap}
.req,.opt{font-size:10.5px;font-weight:700;padding:1px 5px;line-height:1.4}
.req{color:var(--red);border:1px solid var(--red)}
.opt{color:#fff;background:#9AA3AB}
.in,.sel,.ta{width:100%;height:54px;border:1.5px solid transparent;border-radius:0;background:#fff;color:var(--ink);font:inherit;font-size:15px;padding:0 18px;appearance:none;-webkit-appearance:none;transition:border-color .25s}
.ta{height:auto;min-height:130px;padding:14px 18px;resize:vertical;line-height:1.7}
.sel{padding-right:44px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%230F1418' stroke-width='1.8'/%3E%3C/svg%3E") no-repeat right 18px center}
.in::placeholder,.ta::placeholder{color:#A6AEB5}
.in:focus,.sel:focus,.ta:focus{outline:none;border-color:var(--ink)}
.f.is-err .in,.f.is-err .sel,.f.is-err .ta,.f.is-err .opts{border-color:var(--red);box-shadow:inset 0 0 0 1px var(--red)}
.err{margin:0;font-size:12px;color:var(--red);min-height:0}
.unitw{position:relative}
.unitw .u{position:absolute;right:18px;top:50%;transform:translateY(-50%);font-size:14px;pointer-events:none}
.pref{display:grid;grid-template-columns:1fr 1fr;gap:20px}

/* option chips (radio) */
.opts{display:grid;gap:10px;border:1.5px solid transparent}
.opts--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.opts--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.opt-c{min-width:0;position:relative;display:flex;align-items:center;gap:16px;min-height:54px;padding:10px 18px;background:#fff;border:1.5px solid transparent;cursor:pointer;transition:border-color .25s,background .25s}
.opt-c input{position:absolute;opacity:0;pointer-events:none}
.opt-c .dot{flex:none;width:24px;height:24px;border-radius:50%;border:1.5px solid #8A949D;display:grid;place-items:center;transition:border-color .25s}
.opt-c .dot::after{content:"";width:12px;height:12px;border-radius:50%;background:var(--red);transform:scale(0);transition:transform .3s var(--ease)}
.opt-c b{white-space:nowrap;display:block;font-family:var(--f-en);font-weight:700;font-size:16px;letter-spacing:.01em;line-height:1.3}
.opt-c .jp{font-family:var(--f-jp)}
.opt-c small{display:block;font-size:11.5px;color:var(--steel);font-weight:500}
.opt-c:hover{border-color:#B9C1C8}
.opt-c:has(input:checked){border-color:var(--red)}
.opt-c:has(input:checked) .dot{border-color:var(--red)}
.opt-c:has(input:checked) .dot::after{transform:scale(1)}
.opt-c:has(input:focus-visible){outline:2px solid var(--red);outline-offset:2px}
.opt-c.is-off{opacity:.35;pointer-events:none}

.detail{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);gap:clamp(24px,3vw,48px);align-items:end;margin-top:clamp(22px,2.6vw,36px)}
.detail .panel{margin-top:0}
.detail.is-wide{grid-template-columns:minmax(0,2.5fr) minmax(0,1fr)}
.pair .opts--3{grid-template-columns:repeat(auto-fill,minmax(88px,1fr))}
.pair .opts--3 .opt-c{grid-column:auto!important}
.promise{position:relative;z-index:2}
.promise h2,.promise p{text-shadow:0 0 12px #fff,0 0 24px #fff}
.rows{display:grid;grid-template-columns:clamp(110px,10vw,150px) minmax(0,1fr);gap:24px 20px;align-items:start}
.rows>.lab{min-height:54px}
.promise h2{margin:0;font-weight:900;font-size:clamp(26px,2.9vw,46px);line-height:1.4;letter-spacing:-.01em}
.promise p{margin:18px 0 0;font-size:14px;color:var(--ink-2)}

/* actions */
.acts{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:clamp(24px,2.6vw,40px)}
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:22px;height:62px;min-width:min(300px,100%);padding:0 36px;font-weight:700;font-size:16px;letter-spacing:.08em;overflow:hidden;isolation:isolate;transition:color .35s}
.btn svg{width:26px;height:12px;flex:none;transition:transform .4s var(--ease)}
.btn--go{background:var(--red);color:#fff;min-width:min(374px,100%)}
.btn--go::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--ink);transform:translateX(-101%);transition:transform .5s var(--ease)}
.btn--go:hover::before{transform:none}
.btn--go:hover svg{transform:translateX(6px)}
.btn--back{border:1.5px solid var(--ink);background:#fff}
.btn--back:hover{background:var(--ink);color:#fff}
.btn--back:hover svg{transform:translateX(-6px)}
.quick .btn--go{min-width:0;width:100%;height:54px}

/* confirm */
.conf{width:100%;border-collapse:collapse;background:#fff}
.conf th,.conf td{text-align:left;padding:16px 20px;border-bottom:1px solid var(--line);vertical-align:top;font-size:14.5px}
.conf th{width:26%;font-weight:700;background:#FAFBFC;white-space:nowrap}
.conf td{white-space:pre-wrap;word-break:break-word}
.conf tr.sec th{background:var(--ink);color:#fff;font-family:var(--f-en);letter-spacing:.14em;font-size:12px;padding:10px 20px}
.conf .edit{float:right;font-family:var(--f-jp);letter-spacing:.04em;color:#fff;text-decoration:underline;text-underline-offset:3px;font-size:12px}
.agree{display:flex;align-items:flex-start;gap:12px;margin-top:22px;font-size:14px;cursor:pointer}
.agree input{width:20px;height:20px;accent-color:var(--red);margin-top:3px;flex:none}
.agree a{text-decoration:underline;text-underline-offset:3px}
.note{margin:12px 0 0;font-size:12px;color:var(--steel)}

/* done */
.done{max-width:760px;margin:clamp(40px,6vw,90px) 0 0}
.done .mark{width:74px;height:74px;border-radius:50%;background:var(--red);display:grid;place-items:center;color:#fff;animation:pop .6s var(--ease) both}
.done .mark svg{width:34px;height:34px}
@keyframes pop{0%{transform:scale(.4)}70%{transform:scale(1.08)}100%{transform:none}}
.done .h1{font-size:clamp(34px,4.4vw,66px)}
.done .box{margin-top:26px;background:var(--panel);padding:22px 26px;font-size:14px;line-height:1.9}
.done .box b{font-family:var(--f-en)}
.tel{font-family:var(--f-en);font-weight:700;letter-spacing:.06em;user-select:all}

.ft{margin-top:20px;border-top:1px solid var(--line);padding:26px var(--gutter);display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 30px;font-size:12px;color:var(--steel);letter-spacing:.06em}
.ft b{color:var(--ink);font-weight:700}

/* responsive */

/* step 3 extras */
.tread{height:auto;aspect-ratio:auto}
.tread img{height:auto;transition:opacity .45s}
.tread img.is-swap{opacity:0}
.lab--2{line-height:1.4;white-space:normal}
.lab small.multi{font-size:10.5px;font-weight:500;color:var(--steel);margin-left:-4px}
.opts--2{grid-template-columns:repeat(2,minmax(0,300px))}
.reveal{margin-top:10px;animation:vin .45s var(--ease) both}
.hint{margin:8px 0 0;font-size:12px;color:var(--steel)}
.hint--red{color:var(--red);font-weight:700}
.rows--test{grid-template-columns:clamp(110px,9vw,140px) minmax(0,1fr);gap:18px 20px}
.pair{display:grid;grid-template-columns:minmax(0,.8fr) auto minmax(0,1.5fr);gap:16px 22px;align-items:start}
.pair>.lab{min-height:54px}
.tawrap{position:relative}
.tawrap .ta{min-height:250px;padding-bottom:36px}
.count{position:absolute;right:28px;bottom:12px;font-size:13px;color:#A6AEB5;font-variant-numeric:tabular-nums}
.count.is-near{color:var(--red)}
.promise__en{margin:0 0 14px;font-family:var(--f-en);font-weight:500;font-size:16px;letter-spacing:.14em;color:var(--ink-2)}
.btn--line{margin-top:26px;width:100%;height:clamp(64px,5.2vw,88px);background:#06C755;color:#fff;justify-content:center;gap:18px;font-size:clamp(16px,1.35vw,22px);letter-spacing:.04em}
.btn--line .lineic{display:grid;place-items:center;width:clamp(40px,3vw,50px)}
.btn--line .lineic svg{width:100%;height:auto}
.btn--line::before{content:"";position:absolute;inset:0;z-index:-1;background:#049A42;transform:translateX(-101%);transition:transform .5s var(--ease)}
.btn--line:hover::before{transform:none}
.btn--line:hover>svg{transform:translateX(6px)}
.attach{display:grid;grid-template-columns:clamp(110px,10vw,150px) minmax(0,1fr) minmax(0,.9fr);gap:24px;max-width:1150px;align-items:start}
.up__t{margin:0;font-size:15px}
.up__t small{display:block;font-size:14px;color:var(--steel);margin-top:2px}
.slots{display:grid;grid-template-columns:repeat(3,minmax(0,148px));gap:12px;margin-top:20px}
.slot{position:relative;display:grid;gap:10px;justify-items:center}
.slot input{position:absolute;width:1px;height:1px;opacity:0}
.slot__box{position:relative;width:100%;aspect-ratio:148/152;display:grid;place-content:center;justify-items:center;gap:12px;background:#fff;border:1.5px dashed #C4CBD1;cursor:pointer;overflow:hidden;transition:border-color .25s,background .25s}
.slot__box:hover,.slot.is-drag .slot__box{border-color:var(--red);background:#FFF7F7}
.slot input:focus-visible+.slot__n,.slot:focus-within .slot__box{outline:2px solid var(--red);outline-offset:2px}
.plus{width:38px;height:38px;border-radius:50%;background:#fff;box-shadow:0 1px 6px rgba(15,20,24,.14);position:relative}
.plus::before,.plus::after{content:"";position:absolute;left:50%;top:50%;width:18px;height:1.8px;background:var(--ink);transform:translate(-50%,-50%)}
.plus::after{transform:translate(-50%,-50%) rotate(90deg)}
.slot__l{font-size:14px;font-weight:700}
.slot__n{font-size:13px;color:var(--ink-2)}
.slot__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.slot__rm{position:absolute;top:6px;right:6px;z-index:2;width:30px;height:30px;border-radius:50%;background:rgba(15,20,24,.8);color:#fff;display:grid;place-items:center}
.slot__rm svg{width:12px;height:12px}
.slot.has .slot__box{border-style:solid;border-color:var(--ink)}
.up__n{margin:16px 0 0;font-size:13px;color:var(--ink-2)}
.viline{border-left:1.5px solid #C9D0D6;padding-left:clamp(20px,2.6vw,40px);align-self:stretch}
.viline h3{margin:0;font-size:clamp(22px,1.8vw,29px);font-weight:900;line-height:1.45}
.viline p{margin:12px 0 0;font-size:14.5px;line-height:1.7;color:var(--ink-2)}
.viline .btn--line{height:clamp(60px,5vw,86px);font-size:clamp(15px,1.25vw,20px)}
.conf .thumbs{display:flex;gap:8px;flex-wrap:wrap}
.conf .thumbs img{width:84px;height:84px;object-fit:cover;border:1px solid var(--line)}
.mini{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px;visibility:hidden}
.mini.is-open{visibility:visible}
.mini__bg{position:absolute;inset:0;background:rgba(10,14,18,.6);opacity:0;transition:opacity .3s}
.mini.is-open .mini__bg{opacity:1}
.mini__box{position:relative;width:min(420px,100%);background:#fff;padding:32px 28px 28px;text-align:center;transform:scale(.94);opacity:0;transition:transform .45s var(--ease),opacity .3s}
.mini.is-open .mini__box{transform:none;opacity:1}
.mini__qr{width:160px;height:160px;margin:18px auto;border:1.5px dashed #B8C3CD;display:grid;place-items:center;font-size:12px;color:var(--steel)}
.mini h3{margin:10px 0 0;font-size:20px;font-weight:900}
.mini p{margin:0;font-size:13px;line-height:1.8;color:var(--ink-2)}
.mini__x{position:absolute;right:8px;top:8px;width:40px;height:40px;display:grid;place-items:center}
@media (max-width:1100px){
  .detail.is-wide{grid-template-columns:1fr}
  .pair{grid-template-columns:1fr}
  .pair>.lab{min-height:0}
  .attach{grid-template-columns:1fr}
  .viline{border-left:0;padding-left:0;border-top:1.5px solid #C9D0D6;padding-top:22px}
}
@media (max-width:760px){
  .rows--test{grid-template-columns:1fr}
  .opts--2{grid-template-columns:1fr 1fr}
  .tawrap .ta{min-height:200px}
  .slots{gap:8px}
  .slot__l{font-size:12px}
  .plus{width:32px;height:32px}
  .lab--2 br{display:none}
  .btn--line{font-size:15px;gap:12px;padding:0 16px}
  #h-v6{font-size:min(7.2vw,34px)}
}

/* confirm / cta / done / final */
.h1--md{font-size:clamp(36px,4.6vw,76px)}
.cf{display:grid;grid-template-columns:minmax(0,1fr) clamp(320px,29vw,490px);gap:clamp(24px,3vw,48px);align-items:start}
.cfb{position:relative;display:grid;grid-template-columns:clamp(150px,15vw,250px) minmax(0,1fr) auto;gap:16px 24px;align-items:start;margin-top:14px;background:var(--panel);padding:clamp(18px,1.8vw,28px) clamp(18px,2vw,34px)}
.cf__main .cfb:first-of-type{margin-top:clamp(24px,2.6vw,40px)}
.cfb__h{display:flex;align-items:baseline;gap:18px}
.cfb__h .n{font-family:var(--f-en);font-weight:500;font-size:clamp(28px,2.4vw,40px);color:#B6BDC3;line-height:1}
.cfb__h b{font-size:clamp(16px,1.3vw,21px);font-weight:900;letter-spacing:.04em}
.cfb__dl{margin:0;display:grid;grid-template-columns:minmax(90px,.45fr) minmax(0,1fr);background:#fff;padding:4px 18px}
.cfb__dl dt,.cfb__dl dd{margin:0;padding:10px 0;border-bottom:1px solid #EDF0F2;font-size:14.5px}
.cfb__dl dt{font-size:12.5px;color:var(--ink-2);padding-right:12px}
.cfb__dl dd{white-space:pre-wrap;word-break:break-word}
.cfb__dl dt:nth-last-of-type(1),.cfb__dl dd:last-of-type{border-bottom:0}
.cfb__dl .empty{color:#A6AEB5}
.cfb__edit{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;letter-spacing:.04em;white-space:nowrap;transition:color .25s}
.cfb__edit svg{width:14px;height:14px}
.cfb__edit:hover{color:var(--red)}
.cfb__ph{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.cfb__ph .th{position:relative;width:clamp(84px,6vw,100px);aspect-ratio:1.4;overflow:visible}
.cfb__ph .th img{width:100%;height:100%;object-fit:cover;display:block}
.cfb__ph .th button{position:absolute;top:-8px;right:-8px;width:24px;height:24px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center}
.cfb__ph .th button svg{width:9px;height:9px}
.cfb__ph p{margin:0;font-size:13.5px;color:var(--ink-2)}
.rqc{position:sticky;top:20px;margin-top:clamp(20px,3vw,40px);background:rgba(255,255,255,.96);box-shadow:0 18px 50px rgba(15,20,24,.12);padding:clamp(20px,2vw,32px) clamp(18px,1.8vw,30px)}
.rqc__top{display:flex;justify-content:space-between;align-items:center;font-family:var(--f-en);font-weight:500;font-size:clamp(14px,1.2vw,19px);letter-spacing:.14em;color:var(--ink-2)}
.rqc__t{display:flex;align-items:baseline;gap:clamp(20px,2.6vw,44px);margin:12px 0 0;padding-bottom:18px;border-bottom:1.5px solid var(--line)}
.rqc__t b{font-family:var(--f-en);font-weight:800;font-size:clamp(30px,2.6vw,42px);color:var(--red);line-height:1.1}
.rqc__t span{font-size:14px;font-weight:500}
.rqc__rows{list-style:none;margin:0;padding:0}
.rqc__rows li{display:grid;grid-template-columns:30px minmax(0,1fr) minmax(0,1.1fr);gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.rqc__rows svg{width:30px;height:30px}
.rqc__rows .k{font-size:13.5px;font-weight:700}
.rqc__rows .v{font-weight:900;font-size:clamp(15px,1.3vw,21px);word-break:break-word}
.rqc__rows .v.en{font-family:var(--f-en);font-weight:700}
.rqc__rows .v.empty{color:#A6AEB5;font-weight:500;font-size:14px}
.rqc__memo{margin-top:14px;background:var(--panel);padding:16px 18px}
.rqc__memo .k{display:flex;align-items:center;gap:12px;font-size:13.5px;font-weight:700}
.rqc__memo .k svg{width:24px;height:24px}
.rqc__memo p{margin:6px 0 0 36px;font-size:13.5px;white-space:pre-wrap;word-break:break-word;color:var(--ink-2)}
.rqc__go{width:100%;min-width:0;margin-top:24px;height:clamp(62px,4.7vw,78px);font-size:clamp(15px,1.15vw,18px)}
.cta{max-width:905px;margin-top:clamp(24px,2.8vw,42px)}
.info{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:clamp(20px,3vw,40px);background:var(--panel);padding:clamp(18px,2vw,30px) clamp(20px,3vw,50px)}
.info svg{width:clamp(44px,3.3vw,56px);height:auto;color:#8A949D;padding-right:clamp(20px,2.4vw,36px);border-right:1.5px solid #C9D0D6;box-sizing:content-box}
.info p{margin:0;font-size:clamp(15px,1.3vw,21px);line-height:1.65;letter-spacing:.04em}
.cta .agree{margin-top:18px;justify-content:center}
.btn--xl{width:100%;min-width:0;height:clamp(72px,5.3vw,90px);font-size:clamp(20px,2vw,33px);margin-top:14px;gap:36px}
.btn--xl svg{width:42px;height:18px}
.cta__n{margin:16px 0 0;text-align:center;font-size:13.5px;line-height:1.8;color:var(--ink-2)}
.flow4{list-style:none;margin:clamp(30px,3.4vw,54px) 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:900px;position:relative}
.flow4 li{position:relative;display:grid;justify-items:center;text-align:center;gap:10px;padding:0 10px}
.flow4 li+li::before{content:"";position:absolute;left:-14px;top:74px;width:28px;height:12px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 12'%3E%3Cpath d='M0 6h26M21 1l5 5-5 5' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat center/contain;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 12'%3E%3Cpath d='M0 6h26M21 1l5 5-5 5' fill='none' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat center/contain}
.flow4 .no{font-family:var(--f-en);font-weight:700;font-size:clamp(20px,1.7vw,28px)}
.flow4 svg{width:clamp(60px,4.6vw,78px);height:auto}
.flow4 h3{margin:6px 0 0;font-size:clamp(16px,1.3vw,21px);font-weight:900;letter-spacing:.02em}
.flow4 p{margin:0;font-size:clamp(12px,.95vw,15px);line-height:1.75;color:var(--ink-2)}
.v5-on .flow4 li{animation:vin .6s var(--ease) both}
.v5-on .flow4 li:nth-child(2){animation-delay:.15s}.v5-on .flow4 li:nth-child(3){animation-delay:.3s}.v5-on .flow4 li:nth-child(4){animation-delay:.45s}
.mailn{display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,3vw,50px);align-items:center;max-width:900px;margin-top:clamp(28px,3vw,44px);padding-top:clamp(24px,2.6vw,36px);border-top:1.5px solid var(--line)}
.mailic svg{width:clamp(52px,4vw,66px);height:auto}
.mailn b{font-size:clamp(15px,1.2vw,19px)}
.mailn p{margin:4px 0 0;font-size:13.5px;color:var(--ink-2)}
/* final band */
.fin{position:relative;overflow:hidden;background:var(--white);padding:clamp(60px,6vw,110px) var(--gutter) 30px;border-top:1px solid var(--line)}
.fin__img{position:absolute;right:0;top:0;width:min(46vw,770px);margin:0;aspect-ratio:770/700}
.fin__img img{width:100%;height:100%;object-fit:cover;display:block}
.fin__img::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--white) 0%,rgba(255,255,255,0) 30%),linear-gradient(0deg,var(--white) 0%,rgba(255,255,255,0) 22%)}
.fin__in{position:relative;z-index:1;max-width:900px}
.fin .eyebrow{margin-top:0}
.fin .h1{font-size:clamp(42px,5.4vw,90px)}
.fin__lead{margin:clamp(14px,1.6vw,26px) 0 0;font-size:clamp(16px,1.7vw,28px);font-weight:500;line-height:1.6;letter-spacing:.04em;text-shadow:0 0 10px #fff}
.btn--line-xl{max-width:794px;height:clamp(76px,7.5vw,128px);font-size:clamp(22px,2.6vw,43px);gap:clamp(20px,3vw,50px);margin-top:clamp(26px,3vw,50px)}
.btn--line-xl .lineic{width:clamp(56px,5.6vw,94px)}
.btn--line-xl>svg{width:clamp(36px,3.4vw,54px);height:auto}
.fin__pts{position:relative;z-index:1;list-style:none;margin:clamp(40px,4.4vw,72px) 0 0;padding:clamp(24px,2.6vw,40px) 0 0;border-top:1.5px solid var(--line);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.fin__pts li{display:flex;gap:clamp(12px,1.6vw,28px);align-items:flex-start}
.fin__pts svg{flex:none;width:clamp(34px,2.6vw,44px);height:auto;transition:transform .4s var(--ease),color .3s}
.fin__pts li:hover svg{transform:translateY(-3px);color:var(--red)}
.fin__pts b{display:block;font-size:clamp(13px,1vw,16px)}
.fin__pts span{display:block;margin-top:4px;font-size:clamp(11.5px,.88vw,14px);color:var(--ink-2)}
.tread.is-tall{top:90px;width:min(42vw,700px)}
@media (max-width:1100px){
  .cf{grid-template-columns:1fr}
  .rqc{position:relative;top:auto}
  .cfb{grid-template-columns:1fr auto}
  .cfb__dl,.cfb__ph{grid-column:1/-1;grid-row:2}
  .flow4{grid-template-columns:1fr 1fr;row-gap:30px}
  .flow4 li:nth-child(3)::before{display:none}
  .fin__pts{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .h1--md{font-size:min(7.4vw,34px)}
  .cfb{padding:16px}
  .cfb__dl{grid-template-columns:1fr;padding:4px 14px}
  .cfb__dl dt{border-bottom:0;padding-bottom:0}
  .rqc__rows li{grid-template-columns:26px 1fr;row-gap:2px}
  .rqc__rows .v{grid-column:2}
  .info{grid-template-columns:1fr;text-align:left}
  .info svg{border-right:0;padding-right:0}
  .info p br,.cta__n br{display:none}
  .btn--xl{font-size:20px;gap:18px}
  .cta .agree{justify-content:flex-start}
  .flow4 li::before{display:none}
  .mailn{grid-template-columns:1fr}
  .fin{padding-top:0}
  .fin__img{position:relative;width:calc(100% + 2 * var(--gutter));margin:0 calc(var(--gutter) * -1);aspect-ratio:770/560}
  .fin__img::before{background:linear-gradient(0deg,var(--white) 0%,rgba(255,255,255,0) 30%)}
  .fin .h1{font-size:min(8.6vw,40px)}
  .fin__lead{font-size:15px}
  .fin__lead br{display:none}
  .btn--line-xl{height:68px;font-size:19px}
  .btn--line-xl .lineic{width:42px}
  .fin__pts{grid-template-columns:1fr}
  .tread.is-tall{top:60px;width:100vw}
}

@media (max-width:1100px){
  .quick{grid-template-columns:1fr 1fr}
  .quick .btn--go{grid-column:1/-1}
  .topics{grid-template-columns:1fr 1fr}
  .detail{grid-template-columns:1fr}
  .promise{order:-1}
}
@media (max-width:760px){
  .hd{padding-top:16px}
  .brand i{height:20px}
  .brand__sm{display:none}
  .navbtn{display:block}
  .nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:#fff;padding:8px var(--gutter) 16px;box-shadow:0 20px 30px rgba(15,20,24,.08);visibility:hidden;opacity:0;transform:translateY(-6px);transition:opacity .25s,transform .3s var(--ease),visibility 0s .3s}
  .nav a{padding:14px 0;border-bottom:1px solid var(--line)}
  .nav a::after{display:none}
  .hd.is-open .nav{visibility:visible;opacity:1;transform:none;transition:opacity .25s,transform .3s var(--ease)}
  .tread{top:60px;width:100vw;opacity:.55}
  .stepper span{font-size:10px}
  .stepper b{font-size:15px}
  .h1{font-size:min(8.4vw,40px)}
  .pref{grid-column:auto!important}
  .stepper li:not(.is-now) span{visibility:hidden}
  .opt-c{padding:10px 12px;gap:10px}
  .opt-c b{font-size:14px}
  .opt-c .dot{width:20px;height:20px}
  .opts--3 .opt-c:last-child:nth-child(odd){grid-column:1/-1}
  .topic{grid-template-columns:1fr;padding:16px}
  .topic svg{grid-row:auto;width:38px;margin-bottom:6px}
  .topic .en{font-size:21px}
  .topic .jp{font-size:12px;white-space:normal}
  .quick{grid-template-columns:1fr}
  .panel__h p{margin:0;flex-basis:100%}
  .grid2{grid-template-columns:1fr;gap:10px}
  .grid2 .lab{margin-top:10px}
  .pref{grid-template-columns:1fr;gap:10px}
  .rows{grid-template-columns:1fr;gap:10px}
  .rows>.lab{min-height:0;margin-top:12px}
  .opts--3,.opts--4{grid-template-columns:1fr 1fr}
  .acts{flex-direction:column-reverse;align-items:stretch}
  .btn,.btn--go{min-width:0;width:100%}
  .conf th,.conf td{display:block;width:auto;padding:10px 14px}
  .conf th{border-bottom:0;padding-bottom:2px;background:#fff;color:var(--steel);font-size:12px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
}

/* LINE dialog: QR + link */
.mini__qr:has(img){border:0}
.mini__qr a,.mini__qr img{display:block;width:100%;height:100%}
.mini .mini__t{margin:0 0 14px;font-size:12.5px;line-height:1.7;color:var(--ink-2)}
.mini__line{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:52px;background:#06C755;color:#fff;font-weight:800;font-size:15px;text-decoration:none;transition:filter .2s}
.mini__line:hover{filter:brightness(1.08)}
.mini__line svg{width:24px;height:22px;flex:none}
