/* サイトフィット — 生成り・オリーブのあたたかい見た目（iOS の操作感：シート・タブ・リスト）。本文は端末のシステムフォント。 */
[hidden]{display:none !important}
@font-face{font-family:"Zen Maru Subset";src:url("fonts/zen-maru-gothic-bold-subset.v9-20261017.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
:root{
  --bg:#F4EFE6; --card:#FFFCF6; --cell:var(--card); --cell-press:#EAE3D6; --label:#2B2621; --label2:#675E53; --label3:rgba(43,38,33,.32);
  --sep:rgba(43,38,33,.14); --fill:rgba(103,94,83,.10); --fill2:rgba(103,94,83,.06); --seg-on:#FFFCF6;
  --tint:#4F6B45; --tint-soft:#E4EAD9; --beige:#EFE6D3;
  --ok:#4F6B45; --tight:#83620E; --ng:#A3462B; --na:#675E53;
  --ok-soft:#E3E9D8; --tight-soft:#F3E7C6; --ng-soft:#F3DFD5; --na-soft:#ECE6DC;
  --bar:rgba(244,239,230,.94); --bar-line:rgba(43,38,33,.14); --dim:rgba(43,38,33,.38);
  --shadow:0 1px 2px rgba(60,45,30,.05),0 8px 24px rgba(60,45,30,.07);
  --img-filter:none;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic UI","Yu Gothic",Meiryo,system-ui,sans-serif;
  --display:"Zen Maru Subset","Hiragino Maru Gothic ProN",var(--font);
  --spring:cubic-bezier(.32,.72,0,1); --bounce:cubic-bezier(.34,1.45,.64,1);
  --col:460px; --nexth:80px;
  --sat:env(safe-area-inset-top,0px); --sab:env(safe-area-inset-bottom,0px); --sal:env(safe-area-inset-left,0px); --sar:env(safe-area-inset-right,0px);
  color-scheme:light dark;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#1E1A16; --card:#2A241E; --cell-press:#3A322A; --label:#EFE8DC; --label2:#B3A897; --label3:rgba(239,232,220,.3);
    --sep:rgba(239,232,220,.12); --fill:rgba(239,232,220,.09); --fill2:rgba(239,232,220,.05); --seg-on:#4A4036;
    --tint:#A7BE93; --tint-soft:#343D2D; --beige:#3A3229;
    --ok:#A7BE93; --tight:#E0BC62; --ng:#E8957A; --na:#B3A897;
    --ok-soft:#323B2B; --tight-soft:#433820; --ng-soft:#462C23; --na-soft:#352E27;
    --bar:rgba(30,26,22,.92); --bar-line:rgba(239,232,220,.12); --dim:rgba(0,0,0,.55);
    --shadow:0 1px 2px rgba(0,0,0,.3);
    --img-filter:brightness(.72) saturate(.85);
  }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--label);font-family:var(--font);font-size:17px;line-height:1.4;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
button{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;cursor:pointer;text-align:inherit}
a{color:var(--tint);text-decoration:none}
:focus-visible{outline:3px solid var(--tint);outline-offset:2px;border-radius:8px}
svg{display:block}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.disp{font-family:var(--display);font-weight:700}

.app{max-width:var(--col);margin:0 auto;min-height:100vh;min-height:100dvh;position:relative;background:var(--bg);isolation:isolate}
.app::before{content:"";position:fixed;inset:0;max-width:var(--col);margin:0 auto;z-index:-1;pointer-events:none;opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .28 0 0 0 0 .2 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
@media (min-width:600px){
  body{background:color-mix(in srgb,var(--bg) 82%,#7a6a55)}
  .app{box-shadow:0 0 0 .5px var(--bar-line),0 24px 60px rgba(60,45,30,.12)}
}

/* ヘッダー */
.nav{position:sticky;top:0;z-index:20;min-height:calc(56px + var(--sat));padding:var(--sat) calc(6px + var(--sar)) 0 calc(6px + var(--sal));
  display:grid;grid-template-columns:48px 1fr 48px;align-items:center;background:var(--bar);
  -webkit-backdrop-filter:saturate(180%) blur(30px);backdrop-filter:saturate(180%) blur(30px);transition:box-shadow .2s}
.nav.collapsed{box-shadow:0 .5px 0 var(--bar-line)}
.brand{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--label);min-height:44px}
.logo{width:38px;height:26px;color:var(--tint);flex:none}
.brand-txt{display:flex;flex-direction:column;line-height:1.15}
.brand-name{font-size:20px;letter-spacing:.04em}
.brand-catch{font-size:11px;color:var(--label2);letter-spacing:.02em}
.nav-side.right{justify-self:end}
.icon-btn{width:44px;height:44px;display:grid;place-items:center;color:var(--tint);border-radius:22px}
.icon-btn svg{width:24px;height:24px}
.icon-btn:active{opacity:.4}

main{overflow-x:clip;padding:0 calc(14px + var(--sar)) calc(var(--nexth) + var(--sab) + 28px) calc(14px + var(--sal))}
.screen{padding-top:6px}


/* 入力：ヒーロー */
.hero-img{position:relative;margin:0 -14px 14px;height:200px;overflow:hidden;border-radius:0 0 22px 22px}
.hero-img img{width:100%;height:100%;object-fit:cover;filter:var(--img-filter)}
.hero-copy{position:absolute;left:20px;top:22px;margin:0;font-size:22px;line-height:1.45;color:#2B2621;transform:rotate(-4deg);letter-spacing:.06em;
  text-shadow:0 0 8px rgba(255,252,246,.9),0 0 2px rgba(255,252,246,.9)}

/* カード */
.card{background:var(--card);border-radius:20px;padding:16px;box-shadow:var(--shadow);margin-bottom:14px}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.card-title{display:flex;align-items:center;gap:10px;margin:0;font-size:18px;letter-spacing:.03em}
.t-ico{flex:none;width:36px;height:36px;border-radius:12px;background:var(--tint-soft);color:var(--tint);display:grid;place-items:center}
.t-ico svg{width:22px;height:22px}
.card-sub{margin:6px 0 10px 46px;font-size:13px;color:var(--label2)}
.card-sub:empty{display:none}
.num-row{display:grid;grid-template-columns:4.2em 48px 1fr 48px;align-items:center;gap:8px;margin:8px 0}
.num-label{font-size:15px;font-weight:600}
.step{width:48px;height:48px;border-radius:14px;background:var(--tint-soft);color:var(--tint);display:grid;place-items:center}
.step svg{width:22px;height:22px}
.step:active{transform:scale(.94)}
.num-box{min-width:0;display:flex;align-items:baseline;gap:4px;background:var(--bg);border:1px solid var(--sep);border-radius:14px;padding:0 12px;min-height:52px}
.num{flex:1;min-width:0;width:100%;border:0;background:none;font-size:26px;color:var(--label);text-align:right;outline:none;height:50px;padding:0}
.num::placeholder{color:var(--label3);font-size:18px}
.num-box:focus-within{border-color:var(--tint);box-shadow:0 0 0 3px var(--tint-soft)}
.unit{color:var(--label2);font-size:15px}
.types{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}
.type{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px 12px;border-radius:16px;background:var(--bg);border:1.5px solid var(--sep);text-align:center;min-height:44px}
.type[aria-checked="true"]{border-color:var(--tint);background:var(--tint-soft)}
.type[aria-checked="true"]::after{content:"";position:absolute;top:8px;right:8px;width:20px;height:20px;border-radius:10px;background:var(--tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.3 3.3L15 7' fill='none' stroke='%23FFFCF6' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat}
.type-ill{width:72px;height:60px}
.type-name{font-size:14px;font-weight:700;word-break:auto-phrase;text-wrap:balance}
.type-name .ph{display:inline-block}
.type-sub{font-size:12px;color:var(--label2);max-width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.hint{display:flex;gap:8px;align-items:flex-start;margin:12px 0 0;padding:10px 12px;border-radius:14px;background:var(--beige);font-size:13px;color:var(--label)}
.hint svg{flex:none;width:20px;height:20px;color:var(--tight)}
.group-foot{margin:10px 4px 0;font-size:13px;color:var(--label2);line-height:1.5}
.group-foot.warn{color:var(--label)}
.group-foot.warn::before{content:"";display:inline-block;width:8px;height:8px;border-radius:4px;background:var(--tight);margin-right:6px;vertical-align:1px}
.link-btn{min-height:44px;align-items:center;color:var(--tint);font-size:inherit;padding:0 2px;display:inline-flex}
.field-err{margin:8px 4px 0;color:var(--ng);font-size:14px}

/* ボタン */
.btn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 18px;border-radius:999px;font-size:16px;font-weight:700}
.btn svg{width:20px;height:20px}
.btn.primary{background:var(--tint);color:var(--card);box-shadow:0 6px 16px rgba(79,107,69,.25)}
.btn.primary:active{transform:scale(.98)}
.btn.big{width:100%;min-height:56px;font-size:18px;letter-spacing:.06em;margin:4px 0 10px}
.btn.ghost{background:var(--card);color:var(--tint);border:1.5px solid var(--tint)}
.btns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:6px 0 10px}
.sub-action{text-align:center;margin:4px 0 0;font-size:14px}
.sub-action a{display:inline-flex;align-items:center;min-height:44px}
.chip-btn{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border-radius:999px;background:var(--tint-soft);color:var(--tint);font-size:13px;font-weight:700}
.chip-btn .chev{color:var(--tint)}

/* シミュレーション */
.summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.sum{display:flex;align-items:center;gap:8px;background:var(--card);border-radius:16px;padding:10px;box-shadow:var(--shadow);min-width:0}
.sum svg{width:40px;height:34px;flex:none}
.sum > span{min-width:0}
.sum-l{display:block;font-size:12px;color:var(--label2);font-weight:700}
.sum-v{display:block;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stage{position:relative;border-radius:20px;overflow:hidden;margin-bottom:14px;aspect-ratio:1/1;background:#A3B37A;box-shadow:var(--shadow)}
.stage-img{position:absolute;inset:0;width:100%;height:100%;filter:var(--img-filter)}
.overlay{position:absolute;inset:0;width:100%;height:100%}
.ov-plot{fill:rgba(255,255,255,.08);stroke:#fff;stroke-width:2.2;stroke-dasharray:8 6}
.ov-dim{stroke:#fff;stroke-width:1.4;fill:none}
.ov-lbl{fill:#fff;font:700 13px var(--display);paint-order:stroke;stroke:rgba(43,38,33,.55);stroke-width:3px;stroke-linejoin:round}
.ov-tent{fill:#F3E9D2;stroke:#2B2621;stroke-width:1.6}
.ov-tent-line{stroke:#2B2621;stroke-width:.8;opacity:.4;fill:none}
.ov-tarp{fill:rgba(255,252,246,.25);stroke:#FFFCF6;stroke-width:1.6;stroke-dasharray:5 4}
.ov-over{fill:#A3462B;fill-opacity:.7}
.ov-item-lbl{fill:#2B2621;font:700 12px var(--display)}
.pill{display:table;margin:0 auto 14px;padding:6px 12px;border-radius:999px;font-size:13px;font-weight:700;background:var(--card);color:var(--label);box-shadow:var(--shadow)}
.pill::before{content:"";display:inline-block;width:9px;height:9px;border-radius:5px;margin-right:6px;background:var(--v,var(--na))}
.pill.ok{--v:var(--ok)} .pill.tight{--v:var(--tight)} .pill.ng{--v:var(--ng)}
.stage-msg{position:absolute;left:16px;right:16px;bottom:16px;margin:0;padding:10px 12px;border-radius:14px;background:var(--card);font-size:14px;color:var(--label);box-shadow:var(--shadow)}
.list{list-style:none;margin:0;padding:0;background:var(--cell);border-radius:16px;overflow:hidden}
.list > li{position:relative}
.list > li + li::before{content:"";position:absolute;top:0;right:0;left:16px;border-top:.5px solid var(--sep);z-index:1}
.list.inset-plain{margin-top:10px;background:var(--bg)}
.list.inset-plain .row{background:var(--bg)}
.row{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:10px 14px;background:var(--cell);color:var(--label);text-align:left;transition:background-color .25s}
button.row:active,a.row:active{background:var(--cell-press);transition:none}
.r-ico{flex:none;width:32px;height:32px;border-radius:10px;background:var(--tint-soft);color:var(--tint);display:grid;place-items:center}
.r-ico svg{width:22px;height:22px}
.r-label{flex:none;font-size:16px}
.r-value{flex:1;min-width:0;text-align:right;color:var(--label2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chev{flex:none;width:8px;height:14px;color:var(--label3)}
.r-main{flex:1;min-width:0}
.r-title{display:block}
.r-sub{display:block;font-size:13px;color:var(--label2);margin-top:1px}
.check{flex:none;width:18px;height:18px;color:var(--tint)}
.sec-head{margin:22px 6px 8px;font-size:13px;color:var(--label2);font-weight:600}

/* 結果 */
.res-head{position:relative;margin:0 -14px 0;padding:22px 20px 70px;text-align:left;background:url("img/forest.v9-20261017.svg") center bottom/cover no-repeat}
.res-head::after{content:"";position:absolute;inset:0;background:var(--img-filter-overlay,transparent);pointer-events:none}
.hero{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:4px 14px;--v:var(--na);--v-soft:var(--na-soft)}
.hero.ok{--v:var(--ok);--v-soft:var(--ok-soft)} .hero.tight{--v:var(--tight);--v-soft:var(--tight-soft)} .hero.ng{--v:var(--ng);--v-soft:var(--ng-soft)}
.hero-ico{grid-row:1;width:64px;height:64px;padding:7px;border-radius:50%;background:var(--v-soft);color:var(--v)}
.hero-word{margin:0;font-family:var(--display);font-weight:700;font-size:28px;line-height:1.25;color:var(--v);letter-spacing:.04em;text-wrap:balance;word-break:auto-phrase}
.hero-sub{grid-column:1 / -1;margin:4px 0 0;font-family:var(--display);font-weight:700;font-size:15px;line-height:1.5;color:var(--label);text-wrap:balance;word-break:auto-phrase}
.hero-place{margin:10px 0 0;font-size:13px;color:var(--label2);text-wrap:balance}
@supports not (word-break:auto-phrase){ .hero-word .ph,.hero-sub .ph{display:inline-block} }
html.no-auto-phrase .hero-word .ph,html.no-auto-phrase .hero-sub .ph{display:inline-block}
@media (prefers-color-scheme:dark){ .res-head{background-blend-mode:multiply;background-color:#4a4036} }
.res-card{margin-top:-52px;position:relative}
.occ{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center}
.ring{position:relative;width:132px;height:132px}
.ring svg{width:132px;height:132px;transform:rotate(-90deg)}
.ring-bg{fill:none;stroke:var(--fill);stroke-width:14}
.ring-fg{fill:none;stroke:var(--v,var(--tint));stroke-width:14;stroke-linecap:round;transition:stroke-dasharray .8s var(--spring)}
.ring-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ring-l{font-size:12px;color:var(--label2);font-weight:700}
.ring-num{font-size:34px;line-height:1.05;letter-spacing:.01em}
.ring-num small{font-size:16px}
.ring-ref{font-size:11px;color:var(--label2)}
.bubble-wrap{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.bubble{position:relative;padding:8px 14px;border-radius:16px;background:var(--v-soft,var(--tint-soft));color:var(--v,var(--tint));font-size:17px;letter-spacing:.06em}
.bubble::after{content:"";position:absolute;left:50%;bottom:-7px;margin-left:-7px;border:7px solid transparent;border-bottom:0;border-top-color:var(--v-soft,var(--tint-soft))}
.bubble-ill{width:84px;height:62px}
.bubble-note{font-size:12px;color:var(--label2);margin:0}
.areas{list-style:none;margin:14px 0 0;padding:0}
.areas li{display:flex;align-items:center;gap:10px;padding:10px 2px;border-top:.5px solid var(--sep)}
.areas .a-ico{width:28px;height:28px;flex:none;color:var(--label2)}
.areas .a-l{flex:1;font-size:15px}
.areas .a-v{font-size:18px;font-variant-numeric:tabular-nums}
.areas .a-s{font-size:12px;color:var(--label2);margin-left:6px}
.uses{background:var(--beige);border-radius:16px;padding:12px 14px;margin-top:12px}
.uses h3{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:16px}
.uses h3 svg{width:20px;height:20px;color:var(--tight)}
.uses ul{list-style:none;margin:0;padding:0}
.uses li{position:relative;padding:5px 0 5px 26px;font-size:15px}
.uses li::before{content:"";position:absolute;left:2px;top:9px;width:16px;height:16px;border-radius:8px;background:var(--tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.3 3.3L15 7' fill='none' stroke='%23FFFCF6' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/13px no-repeat}
@media (prefers-color-scheme:dark){ .uses li::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.3 3.3L15 7' fill='none' stroke='%232A241E' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")} }
.uses li.note::before{background:var(--tight)}
.badge{flex:none;display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--label2)}
.badge::before{content:"";width:9px;height:9px;border-radius:5px;background:var(--na)}
.badge.ok{color:var(--ok)} .badge.tight{color:var(--tight)} .badge.ng{color:var(--ng)}
.badge.ok::before{background:var(--ok)} .badge.tight::before{background:var(--tight)} .badge.ng::before{background:var(--ng)}
.margin{margin:10px 0 0;font-size:13px;color:var(--label2)}
.st-v.minus{color:var(--ng)}
.empty{background:var(--card);border-radius:20px;padding:28px 20px;text-align:center;color:var(--label2);box-shadow:var(--shadow);margin-top:10px}
.empty-ico{width:56px;height:56px;margin:0 auto 8px;color:var(--label2);opacity:.8}
.empty p{margin:0 0 14px;font-size:15px}
.empty .btn{margin:0 auto;max-width:240px}
.fine{margin:28px 6px 0;font-size:12px;line-height:1.7;color:var(--label2)}
.fine p{margin:0 0 8px}
.fine a{display:inline-block;padding:2px 0}
.pop{animation:pop .5s var(--bounce) both}
.pop .hero-ico{animation:icon .6s var(--bounce) both}
@keyframes pop{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
@keyframes icon{from{opacity:0;transform:scale(.5)}to{opacity:1;transform:none}}

/* 次のステップ */
.nextbar{position:fixed;z-index:20;bottom:0;left:0;right:0;margin:0 auto;max-width:var(--col);padding:12px calc(14px + var(--sar)) calc(12px + env(safe-area-inset-bottom)) calc(14px + var(--sal));background:var(--bar);-webkit-backdrop-filter:saturate(180%) blur(30px);backdrop-filter:saturate(180%) blur(30px);box-shadow:0 -.5px 0 var(--bar-line)}
.nextbar .btn{margin:0}
.btn:disabled{opacity:.4;cursor:default;box-shadow:none}
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){ .nav,.nextbar{background:var(--bg)} }
.steps{display:flex;align-items:center;justify-content:center;list-style:none;padding:12px 8px;margin:0;gap:10px;font-size:14px;color:var(--label2)}
.steps li{display:flex;align-items:center;gap:5px;white-space:nowrap}
.steps li+li::before{content:"→";margin-right:5px;color:var(--label2)}
.steps .n{display:inline-grid;place-items:center;width:24px;height:24px;border:1px solid currentColor;border-radius:50%;font-size:12px}
.steps .n-check{width:14px;height:14px;color:currentColor;fill:none;stroke:currentColor}
.steps .current,.steps .done{color:var(--tint);font-weight:700}
.steps .current .n{background:var(--tint);color:var(--bg)}
.stage{width:min(100%,260px);margin-left:auto;margin-right:auto}
.tent-search{margin:14px 0;min-height:44px}
.tent-opt{overflow-wrap:anywhere}
.tent-opt[aria-selected="true"]{background:var(--tint-soft)}
.manual-row{display:grid;grid-template-columns:5em minmax(0,1fr);align-items:center;gap:10px;margin-top:12px}
summary{min-height:44px;cursor:pointer;padding:10px 0;font-weight:700}
.step-title{font-size:20px;margin:8px 0 14px}
.result-actions{display:grid;gap:10px;margin-top:20px}
.slide-fwd{animation:slide-fwd 280ms ease-out both}
.slide-back{animation:slide-back 280ms ease-out both}
@keyframes slide-fwd{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}
@keyframes slide-back{from{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:translateX(0)}}
@media(max-width:360px){
  .num-row{grid-template-columns:3em 44px minmax(0,1fr) 44px;gap:4px}
  .step{width:44px}
  .num-box{padding:0 6px}
  .brand{gap:4px}
  .logo{width:28px}
  .brand-name{font-size:18px}
  .brand-catch{display:none}
  .sum{padding:6px;gap:4px}
  .sum svg{width:28px;height:28px}
  .sum-v{font-size:13px;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
  .steps{gap:4px;padding:12px 4px;font-size:13px;flex-wrap:wrap}
  .steps li{gap:3px}
  .steps li+li::before{margin-right:1px}
}

/* トースト */
.toast{position:fixed;z-index:60;left:50%;bottom:calc(var(--nexth) + var(--sab) + 18px);transform:translateX(-50%);padding:10px 16px;border-radius:999px;background:var(--label);color:var(--bg);font-size:14px;box-shadow:var(--shadow)}

/* ボトムシート */
.backdrop{position:fixed;inset:0;z-index:40;background:var(--dim);opacity:0;transition:opacity .35s ease}
.backdrop.open{opacity:1}
.sheet{position:fixed;z-index:41;left:0;right:0;bottom:0;margin:0 auto;width:100%;max-width:var(--col);
  height:calc(100dvh - var(--sat) - 12px);max-height:calc(100vh - var(--sat) - 12px);
  background:var(--bg);border-radius:22px 22px 0 0;display:flex;flex-direction:column;
  transform:translateY(105%);transition:transform .5s var(--spring);box-shadow:0 -6px 30px rgba(60,45,30,.16);touch-action:pan-y}
.sheet.open{transform:translateY(0)}
.sheet.dragging{transition:none}
.sheet.auto{height:auto}
.grab{height:16px;display:grid;place-items:center;cursor:grab;touch-action:none;flex:none}
.grabber{width:36px;height:5px;border-radius:3px;background:var(--label3)}
.sheet-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 8px;min-height:44px;flex:none;touch-action:none}
.sheet-head h2{margin:0;font-size:17px;font-weight:600;text-align:center;outline:none}
.txt-btn{color:var(--tint);min-height:44px;padding:0 8px;font-size:17px}
.txt-btn.strong{font-weight:600;justify-self:end}
.txt-btn:active{opacity:.4}
.sheet-tools{padding:4px 16px 8px;flex:none}
.searchbar{display:flex;align-items:center;gap:6px;height:40px;padding:0 10px;border-radius:12px;background:var(--fill);color:var(--label2)}
.searchbar svg{width:16px;height:16px;flex:none}
.searchbar input{flex:1;min-width:0;height:100%;border:0;background:none;font:inherit;font-size:17px;color:var(--label);outline:none;-webkit-appearance:none;appearance:none}
.searchbar input::placeholder{color:var(--label2)}
.searchbar input::-webkit-search-cancel-button{display:none}
.searchbar .clear{width:28px;height:36px;display:grid;place-items:center;color:var(--label3)}
.searchbar .clear svg{width:17px;height:17px}
.seg{display:grid;grid-template-columns:repeat(3,1fr);margin-top:10px;padding:2px;border-radius:11px;background:var(--fill);gap:2px}
.seg button{min-height:36px;border-radius:9px;font-size:13px;font-weight:500;text-align:center;transition:background-color .2s,box-shadow .2s}
.seg button[aria-checked="true"]{background:var(--seg-on);color:var(--tint);box-shadow:0 2px 6px rgba(60,45,30,.12);font-weight:600}
.sheet-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:0 16px calc(24px + var(--sab))}
.sheet-body .sec-head:first-child{margin-top:8px}
.none{padding:30px 10px;text-align:center;color:var(--label2);font-size:15px}
.info-body p{margin:0 0 10px;font-size:15px;line-height:1.6}
.info-body ul{margin:0;padding:12px 16px 12px 32px;background:var(--cell);border-radius:14px;font-size:15px;line-height:1.55}
.info-body li{margin:4px 0}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition-duration:.01ms !important}
}

#backBtn{font-size:32px;line-height:1}

/* プライバシーへのリンク（情報シート・結果末尾） */
.privacy-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 8px;font-size:13px;color:var(--label2)}
.privacy-link:hover,.privacy-link:focus{ text-decoration:underline }
.result-foot{margin:16px 0 0;text-align:center;font-size:13px;color:var(--label2)}

/* プライバシーポリシーページ */
body.page-privacy main{padding-top:20px;padding-bottom:calc(28px + var(--sab));line-height:1.8;overflow-wrap:anywhere}
body.page-privacy .card{padding:20px 16px}
body.page-privacy h1{margin:0 0 20px;font-size:24px;line-height:1.5}
body.page-privacy h2{margin:28px 0 10px;font-family:var(--font);font-size:17px;font-weight:700;line-height:1.8}
body.page-privacy p{margin:0 0 16px}
body.page-privacy .muted{color:var(--label2);font-size:13px}
body.page-privacy .privacy-copyright{text-align:center;margin:24px 0 0}

/* 区画ランディングページ — generated kukaku pages */
body.page-kukaku main{padding:18px calc(14px + var(--sar)) 12px calc(14px + var(--sal));line-height:1.75;overflow-wrap:anywhere}
body.page-kukaku h1,body.page-kukaku h2,body.page-kukaku h3{font-family:var(--font);line-height:1.5}
body.page-kukaku h1{font-size:23px;margin:0 0 18px}
body.page-kukaku h2{font-size:19px;margin:0 0 14px}
body.page-kukaku h3{font-size:16px}
body.page-kukaku p{margin:12px 0}
body.page-kukaku .card{padding:20px 16px;min-width:0}
body.page-kukaku .muted,body.page-kukaku .rule{font-size:13px;color:var(--label2)}
body.page-kukaku .facts{margin:0;font-size:15px}
body.page-kukaku .facts>div{display:flex;flex-wrap:wrap;gap:4px 12px;padding:10px 0;border-bottom:1px solid var(--sep)}
body.page-kukaku dt{flex:0 0 5em;font-weight:600}
body.page-kukaku dd{flex:1 1 150px;min-width:0;margin:0}
body.page-kukaku .notice{padding:12px;border-radius:12px;background:var(--tint-soft);color:var(--label);font-size:14px}
body.page-kukaku .cta-primary{display:flex;align-items:center;justify-content:center;min-height:50px;width:100%;padding:13px 10px;border-radius:14px;background:var(--tint);color:var(--card);font-weight:700;text-align:center;line-height:1.5}
body.page-kukaku .list{margin:10px 0}
body.page-kukaku .row{min-width:0;min-height:44px;text-decoration:none;padding:12px 8px;font-size:15px}
body.page-kukaku .r-title,body.page-kukaku .r-sub{white-space:normal;overflow-wrap:anywhere}
body.page-kukaku .landing-chevron{flex:none;color:var(--label2);font-size:24px}
body.page-kukaku .product-list>li{display:flex;align-items:center;min-width:0}
body.page-kukaku .product-list .row{flex:1;width:auto}
body.page-kukaku .item-source{flex:0 0 44px;font-size:12px}
body.page-kukaku .item-source a{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
body.page-kukaku .text-cta{display:inline-flex;align-items:center;min-height:44px;font-size:14px;text-decoration:underline}
body.page-kukaku .member-cta{margin:0 8px}
body.page-kukaku summary{min-height:44px;padding:10px 0;color:var(--tint);cursor:pointer;font-size:14px}
body.page-kukaku details ul{padding-left:20px;font-size:14px}
body.page-kukaku details .list{padding-left:0}
body.page-kukaku .car-list{padding-left:20px;font-size:14px}
body.page-kukaku .car-list li{padding:10px 0;border-bottom:1px solid var(--sep)}
body.page-kukaku .car-list a{display:inline-flex;align-items:center;min-height:44px}
body.page-kukaku .landing-footer{text-align:center;padding:0 calc(18px + var(--sar)) calc(24px + var(--sab)) calc(18px + var(--sal));line-height:1.75}
body.page-kukaku .landing-footer a{display:inline-flex;align-items:center;min-height:44px}
body.page-kukaku .ad-slot:empty{display:none}
body.page-kukaku a:hover{text-decoration:underline}
@media(prefers-color-scheme:dark){body.page-kukaku .cta-primary{color:var(--bg)}}
