/* simulator.css
   見積診断シミュレーター（1画面1問・タップ選択形式）のスタイル。
   フォントは page-simulator.php 側で Google Fonts（Zen Kaku Gothic New / BIZ UDPGothic）を読み込み。
   色は下の変数（--dcf-accent など）を書き換えればまとめて変わります。
*/

.dcf-simulator-page{
    --dcf-ground:#eef4f2;
    --dcf-surface:#ffffff;
    --dcf-surface-2:#f5f9f7;
    --dcf-ink:#12201d;
    --dcf-muted:#5b6b66;
    --dcf-accent:#0b6e5c;
    --dcf-accent-strong:#095548;
    --dcf-accent-soft:#dcece6;
    --dcf-accent-bright:#2fa98c;
    --dcf-border:#d7e0dc;
    --dcf-danger:#b3261e;
    --dcf-danger-soft:#fbe9e7;
    --dcf-font-display:'Zen Kaku Gothic New', 'Hiragino Sans', 'Yu Gothic', sans-serif;
    --dcf-font-body:'BIZ UDPGothic', 'Hiragino Sans', 'Yu Gothic', sans-serif;

    max-width:640px;
    margin:0 auto;
    padding:40px 20px 80px;
    color:var(--dcf-ink);
    font-family:var(--dcf-font-body);
    background:var(--dcf-ground);
    -webkit-font-smoothing:antialiased;
}

.dcf-simulator-page *{box-sizing:border-box;}

/* サイト共通のヘッダー・フッターを出さない単独ページなので、bodyの余白と背景はここで指定する */
.dcf-simulator-body{margin:0; background:#eef4f2;}
.dcf-simulator-body .dcf-simulator-page{min-height:100vh;}

.dcf-visually-hidden{
    position:absolute !important;
    width:1px;height:1px;
    overflow:hidden;
    clip:rect(0 0 0 0);
    white-space:nowrap;
}

/* intro */
.dcf-intro{margin-bottom:24px;}
.dcf-eyebrow{
    font-family:var(--dcf-font-display);
    font-weight:700;
    font-size:13px;
    letter-spacing:.14em;
    color:var(--dcf-accent);
    margin:0 0 10px;
}
.dcf-intro h1{
    font-family:var(--dcf-font-display);
    font-weight:900;
    font-size:clamp(22px,5.4vw,30px);
    line-height:1.45;
    margin:0 0 12px;
    text-wrap:balance;
}
.dcf-lead{
    color:var(--dcf-muted);
    font-size:14.5px;
    line-height:1.8;
    margin:0 0 14px;
}
.dcf-badges{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    list-style:none;
    margin:0;
    padding:0;
}
.dcf-badges li{
    font-size:12.5px;
    font-weight:700;
    color:var(--dcf-accent-strong);
    background:var(--dcf-surface);
    border:1px solid var(--dcf-accent-soft);
    border-radius:999px;
    padding:5px 12px;
}
.dcf-badges li::before{content:"✓ "; color:var(--dcf-accent-bright);}

/* progress */
.dcf-progress{margin:0 0 12px; scroll-margin-top:16px;}
.dcf-progress-head{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    margin-bottom:8px;
}
.dcf-progress-count{
    font-family:var(--dcf-font-display);
    font-weight:700;
    font-size:14px;
}
.dcf-progress-rest{font-size:12.5px; color:var(--dcf-muted);}
.dcf-progress-track{
    height:6px;
    background:var(--dcf-border);
    border-radius:3px;
    overflow:hidden;
}
.dcf-progress-fill{
    height:100%;
    width:0;
    background:linear-gradient(90deg, var(--dcf-accent), var(--dcf-accent-bright));
    border-radius:3px;
    transition:width .4s ease;
}

/* これまでの回答（タップで戻れる） */
.dcf-answers{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    list-style:none;
    margin:0 0 14px;
    padding:0;
}
.dcf-answer{
    font-family:inherit;
    font-size:12.5px;
    color:var(--dcf-ink);
    background:var(--dcf-surface);
    border:1px solid var(--dcf-border);
    border-radius:999px;
    padding:5px 11px;
    cursor:pointer;
    transition:border-color .15s ease, background .15s ease;
}
.dcf-answer:hover{border-color:var(--dcf-accent); background:var(--dcf-accent-soft);}
.dcf-answer-label{color:var(--dcf-muted); margin-right:6px;}

/* panel */
.dcf-card-stack{position:relative;}
.dcf-panel{
    background:var(--dcf-surface);
    border:1px solid var(--dcf-border);
    border-radius:16px;
    padding:26px 22px 22px;
    animation:dcf-in .3s ease;
}
@keyframes dcf-in{
    from{opacity:0; transform:translateY(8px);}
    to{opacity:1; transform:none;}
}
.dcf-q-num{
    font-family:var(--dcf-font-display);
    font-weight:900;
    font-size:13px;
    color:var(--dcf-accent);
    letter-spacing:.08em;
    margin:0 0 4px;
}
.dcf-panel h2{
    font-family:var(--dcf-font-display);
    font-size:clamp(18px,4.6vw,21px);
    font-weight:700;
    line-height:1.5;
    margin:0 0 6px;
}
.dcf-panel-note{
    color:var(--dcf-muted);
    font-size:13.5px;
    line-height:1.75;
    margin:0 0 18px;
}

/* 選択肢の共通 */
.dcf-choice{
    font-family:inherit;
    color:var(--dcf-ink);
    background:var(--dcf-surface);
    border:1.5px solid var(--dcf-border);
    border-radius:12px;
    cursor:pointer;
    text-align:left;
    transition:border-color .15s ease, background .15s ease, transform .1s ease, box-shadow .15s ease;
}
.dcf-choice:hover{border-color:var(--dcf-accent-bright); background:var(--dcf-surface-2);}
.dcf-choice:active{transform:scale(.985);}
.dcf-choice:focus-visible,
.dcf-chip:focus-visible,
.dcf-answer:focus-visible,
.dcf-back:focus-visible,
.dcf-unit:focus-visible{outline:3px solid var(--dcf-accent-bright); outline-offset:2px;}
.dcf-choice.is-selected{
    border-color:var(--dcf-accent);
    background:var(--dcf-accent-soft);
    box-shadow:0 0 0 1px var(--dcf-accent) inset;
}
.dcf-choice-label{display:block; font-weight:700; font-size:15px; line-height:1.45;}
.dcf-choice-label small{font-weight:400; font-size:12.5px; color:var(--dcf-muted); margin-left:2px;}
.dcf-choice-example{display:block; font-size:12.5px; color:var(--dcf-muted); line-height:1.6; margin-top:2px;}

/* Q1 アイコン付きカード */
.dcf-choice-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(140px,1fr));
    gap:10px;
}
.dcf-choice-icon{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:104px;
    padding:16px 10px 14px;
    text-align:center;
}
.dcf-choice-icon svg{
    width:40px;height:40px;
    fill:none;
    stroke:var(--dcf-accent);
    stroke-width:2.2;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.dcf-choice-icon .dcf-choice-label{font-size:14px;}

/* 縦並びの選択肢（Q2・Q5） */
.dcf-choice-list,
.dcf-freq-list{display:flex; flex-direction:column; gap:8px;}
.dcf-choice-row{
    display:flex;
    align-items:center;
    gap:14px;
    width:100%;
    min-height:64px;
    padding:12px 16px;
}
.dcf-choice-row.is-unknown{border-style:dashed;}
.dcf-radio{
    width:20px;height:20px;
    border-radius:50%;
    border:2px solid var(--dcf-border);
    flex-shrink:0;
    position:relative;
    transition:border-color .15s ease;
}
.dcf-choice.is-selected .dcf-radio{border-color:var(--dcf-accent); background:var(--dcf-accent);}
.dcf-choice.is-selected .dcf-radio::after{
    content:"";
    position:absolute; inset:4px;
    border-radius:50%;
    background:#fff;
}
.dcf-choice-body{flex:1; min-width:0;}

/* Q2 数字入力 */
.dcf-custom-area{
    margin-top:12px;
    padding:16px;
    background:var(--dcf-surface-2);
    border:1px solid var(--dcf-border);
    border-radius:12px;
}
.dcf-custom-area > label{display:block; font-weight:700; font-size:14px; margin-bottom:10px;}
.dcf-custom-row{display:flex; gap:10px; align-items:stretch;}
.dcf-custom-row input{
    flex:1;
    min-width:0;
    font-family:var(--dcf-font-display);
    font-weight:700;
    font-size:22px;
    padding:10px 14px;
    border:1px solid var(--dcf-border);
    border-radius:10px;
    background:var(--dcf-surface);
    color:var(--dcf-ink);
}
.dcf-custom-row input:focus-visible{outline:2px solid var(--dcf-accent); outline-offset:1px;}
.dcf-unit-toggle{
    display:flex;
    border:1px solid var(--dcf-border);
    border-radius:10px;
    overflow:hidden;
    background:var(--dcf-surface);
}
.dcf-unit{
    font-family:inherit;
    font-weight:700;
    font-size:15px;
    min-width:52px;
    border:none;
    background:transparent;
    color:var(--dcf-muted);
    cursor:pointer;
}
.dcf-unit.is-selected{background:var(--dcf-accent); color:#fff;}
.dcf-custom-convert{min-height:1.6em; font-size:13px; color:var(--dcf-muted); margin:8px 2px 12px;}

/* Q3 床（素材の見本付き） */
.dcf-choice-grid-2{grid-template-columns:repeat(2, minmax(0,1fr));}
.dcf-choice-swatch{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:4px;
    padding:12px 12px 14px;
    min-height:150px;
}
.dcf-swatch{
    display:block;
    width:100%;
    height:52px;
    border-radius:8px;
    margin-bottom:6px;
    border:1px solid rgba(0,0,0,.06);
}
.dcf-swatch-hard{
    background:
        repeating-linear-gradient(90deg, transparent 0 46px, rgba(90,60,30,.18) 46px 48px),
        repeating-linear-gradient(0deg, #d9b98f 0 12px, #d2b083 12px 13px);
}
.dcf-swatch-carpet{
    background:
        repeating-linear-gradient(90deg, transparent 0 25px, rgba(0,0,0,.12) 25px 26px),
        repeating-linear-gradient(0deg, transparent 0 25px, rgba(0,0,0,.12) 25px 26px),
        radial-gradient(circle at 1px 1px, rgba(255,255,255,.18) 1px, transparent 1.5px) 0 0/4px 4px,
        #6f7c86;
}
.dcf-swatch-mixed{
    background:
        linear-gradient(90deg, transparent 50%, #6f7c86 50%),
        repeating-linear-gradient(0deg, #d9b98f 0 12px, #d2b083 12px 13px);
}
.dcf-swatch-unknown{
    background:var(--dcf-surface-2);
    border:1.5px dashed var(--dcf-border);
    position:relative;
}
.dcf-swatch-unknown::after{
    content:"?";
    position:absolute; inset:0;
    display:flex; align-items:center; justify-content:center;
    font-family:var(--dcf-font-display);
    font-weight:900;
    font-size:24px;
    color:var(--dcf-muted);
}

/* Q4 トイレ数のチップ */
.dcf-chip-grid{
    display:grid;
    grid-template-columns:repeat(4, minmax(0,1fr));
    gap:8px;
}
.dcf-chip{
    font-family:inherit;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:2px;
    min-height:72px;
    background:var(--dcf-surface);
    border:1.5px solid var(--dcf-border);
    border-radius:12px;
    color:var(--dcf-ink);
    cursor:pointer;
    transition:border-color .15s ease, background .15s ease, transform .1s ease;
}
.dcf-chip:hover{border-color:var(--dcf-accent-bright); background:var(--dcf-surface-2);}
.dcf-chip:active{transform:scale(.97);}
.dcf-chip.is-selected{border-color:var(--dcf-accent); background:var(--dcf-accent-soft); box-shadow:0 0 0 1px var(--dcf-accent) inset;}
.dcf-chip-num{font-family:var(--dcf-font-display); font-weight:900; font-size:22px; line-height:1.1;}
.dcf-chip-unit{font-size:11.5px; color:var(--dcf-muted);}
.dcf-chip-more{grid-column:span 2;}

.dcf-tally-wrap{
    margin-top:12px;
    padding:16px;
    background:var(--dcf-surface-2);
    border:1px solid var(--dcf-border);
    border-radius:12px;
}
.dcf-tally-label{font-weight:700; font-size:14px; margin:0 0 10px;}
.dcf-tally{
    display:flex;
    align-items:center;
    gap:12px;
    background:var(--dcf-surface);
    border:1px solid var(--dcf-border);
    border-radius:10px;
    padding:8px 10px;
    margin-bottom:12px;
}
.dcf-tally-btn{
    width:44px;height:44px;
    border-radius:8px;
    border:1px solid var(--dcf-border);
    background:var(--dcf-surface);
    color:var(--dcf-accent);
    font-family:var(--dcf-font-display);
    font-size:20px;
    font-weight:700;
    line-height:1;
    cursor:pointer;
    display:flex;align-items:center;justify-content:center;
}
.dcf-tally-btn:hover{background:var(--dcf-accent-soft);}
.dcf-tally-value{
    flex:1;
    width:0;
    min-width:0;
    text-align:center;
    font-family:var(--dcf-font-display);
    font-weight:900;
    font-size:24px;
    font-variant-numeric:tabular-nums;
    border:none;
    background:transparent;
    color:var(--dcf-ink);
    padding:0;
    -moz-appearance:textfield;
}
.dcf-tally-value::-webkit-outer-spin-button,
.dcf-tally-value::-webkit-inner-spin-button{-webkit-appearance:none; margin:0;}
.dcf-tally-unit{color:var(--dcf-muted); font-size:13px; width:20px;}

/* Q5 頻度のグループ見出し */
.dcf-freq-group{
    font-size:12.5px;
    font-weight:700;
    color:var(--dcf-accent-strong);
    letter-spacing:.06em;
    margin:16px 0 8px;
    display:flex;
    align-items:center;
    gap:10px;
}
.dcf-freq-group:first-child{margin-top:0;}
.dcf-freq-group::after{content:""; flex:1; height:1px; background:var(--dcf-border);}
.dcf-freq-option{min-height:58px;}

/* ヘルプ（折りたたみ） */
.dcf-help{
    margin-top:16px;
    border-radius:10px;
    background:var(--dcf-surface-2);
    font-size:13px;
}
.dcf-help summary{
    cursor:pointer;
    padding:11px 14px;
    font-weight:700;
    color:var(--dcf-accent-strong);
    list-style:none;
}
.dcf-help summary::-webkit-details-marker{display:none;}
.dcf-help summary::before{
    content:"?";
    display:inline-flex;
    align-items:center;justify-content:center;
    width:18px;height:18px;
    margin-right:8px;
    border-radius:50%;
    background:var(--dcf-accent);
    color:#fff;
    font-size:11px;
}
.dcf-help ul{margin:0; padding:0 14px 12px 34px; line-height:1.75; color:var(--dcf-ink);}
.dcf-help li{margin-bottom:4px;}

.dcf-back{
    display:inline-block;
    margin-top:18px;
    padding:6px 2px;
    font-family:inherit;
    font-size:13.5px;
    color:var(--dcf-muted);
    background:none;
    border:none;
    cursor:pointer;
    text-decoration:underline;
    text-underline-offset:3px;
}
.dcf-back:hover{color:var(--dcf-ink);}

/* buttons */
.dcf-btn{
    font-family:var(--dcf-font-body);
    font-weight:700;
    font-size:15px;
    border-radius:999px;
    padding:13px 26px;
    border:1.5px solid transparent;
    cursor:pointer;
    text-decoration:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    transition:opacity .15s ease, background .15s ease, transform .1s ease;
}
.dcf-btn:active{transform:scale(.98);}
.dcf-btn-block{display:flex; width:100%;}
.dcf-btn-lg{font-size:16.5px; padding:16px 26px;}
.dcf-btn-primary{background:var(--dcf-accent); color:#fff;}
.dcf-btn-primary:hover{background:var(--dcf-accent-strong);}
.dcf-btn-primary:disabled{opacity:.45; cursor:not-allowed;}
.dcf-btn-ghost{background:transparent; color:var(--dcf-muted); border-color:var(--dcf-border);}
.dcf-btn-ghost:hover{color:var(--dcf-ink); border-color:var(--dcf-ink);}
.dcf-btn.is-loading{opacity:.6; pointer-events:none;}

/* 連絡先 */
.dcf-ready{
    display:flex;
    gap:12px;
    align-items:flex-start;
    background:var(--dcf-accent-soft);
    border-radius:12px;
    padding:14px 16px;
    margin-bottom:20px;
}
.dcf-ready-icon{
    flex-shrink:0;
    width:28px;height:28px;
    border-radius:50%;
    background:var(--dcf-accent);
    color:#fff;
    display:flex;align-items:center;justify-content:center;
    font-weight:700;
}
.dcf-ready-title{font-family:var(--dcf-font-display); font-weight:700; font-size:16px; margin:2px 0 2px;}
.dcf-ready-text{font-size:13px; color:var(--dcf-accent-strong); line-height:1.65; margin:0;}

.dcf-field-block{margin-bottom:16px;}
.dcf-simulator-page form .dcf-field-block label{display:block; font-weight:700; font-size:14px; margin-bottom:6px;}
.dcf-req{
    display:inline-block;
    color:#fff;
    background:var(--dcf-danger);
    font-size:10.5px;
    font-weight:700;
    border-radius:4px;
    padding:1px 6px;
    margin-left:6px;
    vertical-align:2px;
}
.dcf-simulator-page form input[type="text"],
.dcf-simulator-page form input[type="tel"]{
    width:100%;
    padding:13px 14px;
    border:1px solid var(--dcf-border);
    border-radius:10px;
    font-size:16px;
    font-family:inherit;
    background:var(--dcf-surface);
    color:var(--dcf-ink);
}
.dcf-simulator-page form input:focus-visible{outline:2px solid var(--dcf-accent); outline-offset:1px;}
.dcf-simulator-page form input::placeholder{color:#98a5a0;}
.dcf-simulator-page form.is-validated input:invalid{border-color:var(--dcf-danger); background:var(--dcf-danger-soft);}
.dcf-field-help{font-size:12px; color:var(--dcf-muted); margin:6px 2px 0;}

.dcf-check-row{
    display:flex;
    align-items:center;
    gap:10px;
    font-size:14px;
    color:var(--dcf-ink);
    margin:6px 0 18px;
    padding:12px 14px;
    border:1px solid var(--dcf-border);
    border-radius:10px;
    cursor:pointer;
}
.dcf-check-row input{width:20px; height:20px; margin:0; accent-color:var(--dcf-accent); flex-shrink:0;}
.dcf-check-row a{color:var(--dcf-accent); font-weight:700;}

.dcf-error-note{
    background:var(--dcf-danger-soft);
    color:var(--dcf-danger);
    padding:10px 14px;
    border-radius:8px;
    font-size:13px;
    margin:0 0 14px;
}

/* 結果 */
.dcf-result-panel{padding-bottom:24px;}
.dcf-slip{
    border:1.5px dashed var(--dcf-border);
    border-left:5px solid var(--dcf-accent);
    border-radius:12px;
    padding:22px 20px;
    margin-bottom:18px;
}
.dcf-slip-eyebrow{
    font-size:12.5px;
    letter-spacing:.1em;
    font-weight:700;
    color:var(--dcf-accent);
    margin:0 0 8px;
}
.dcf-slip-price{
    font-family:var(--dcf-font-display);
    font-weight:900;
    font-size:clamp(26px,7vw,38px);
    margin:0;
    font-variant-numeric:tabular-nums;
}
/* 「〇円〜〇円」の「〜」は金額より少し小さく */
.dcf-slip-price .dcf-slip-range{
    font-family:inherit;
    font-size:.7em;
    font-weight:700;
    color:inherit;
    margin:0 2px;
}
.dcf-slip-price span{
    font-family:var(--dcf-font-body);
    font-size:13px;
    font-weight:400;
    color:var(--dcf-muted);
    margin-left:6px;
}
.dcf-slip-price-sub{color:var(--dcf-muted); font-size:14px; margin:4px 0 18px;}
.dcf-slip-detail{
    display:grid;
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:12px 20px;
    margin:0 0 16px;
    padding-top:16px;
    border-top:1px solid var(--dcf-border);
}
.dcf-slip-detail div{display:flex; flex-direction:column; gap:2px;}
.dcf-slip-detail dt{font-size:12px; color:var(--dcf-muted);}
.dcf-slip-detail dd{margin:0; font-weight:700; font-size:14px;}
.dcf-slip-caveat{font-size:11.5px; color:var(--dcf-muted); line-height:1.6; margin:0;}

.dcf-compare{margin-bottom:22px;}
.dcf-compare-title{font-size:13px; font-weight:700; margin:0 0 8px;}
.dcf-compare-list{
    list-style:none;
    margin:0;
    padding:0;
    border:1px solid var(--dcf-border);
    border-radius:10px;
    overflow:hidden;
    font-size:14px;
}
.dcf-compare-list li{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:9px 14px;
    border-bottom:1px solid var(--dcf-border);
}
.dcf-compare-list li:last-child{border-bottom:none;}
.dcf-compare-list li.is-current{background:var(--dcf-accent-soft); font-weight:700;}
.dcf-compare-list em{
    font-style:normal;
    font-size:11px;
    color:#fff;
    background:var(--dcf-accent);
    border-radius:4px;
    padding:1px 6px;
    margin-left:8px;
}
.dcf-compare-price{font-variant-numeric:tabular-nums;}

.dcf-opt{
    display:inline-block;
    color:var(--dcf-muted);
    background:var(--dcf-surface-2);
    border:1px solid var(--dcf-border);
    font-size:10.5px;
    font-weight:700;
    border-radius:4px;
    padding:0 6px;
    margin-left:6px;
    vertical-align:2px;
}
.dcf-simulator-page form input[type="email"]{
    width:100%;
    padding:13px 14px;
    border:1px solid var(--dcf-border);
    border-radius:10px;
    font-size:16px;
    font-family:inherit;
    background:var(--dcf-surface);
    color:var(--dcf-ink);
}

/* 結果画面のCTA（利用状況に合わせた見積依頼） */
.dcf-cta-box{
    display:flex;
    flex-direction:column;
    gap:10px;
    background:var(--dcf-accent-soft);
    border:1.5px solid var(--dcf-accent);
    border-radius:14px;
    padding:22px 18px 18px;
}
.dcf-cta-eyebrow{
    font-size:12px;
    font-weight:700;
    letter-spacing:.08em;
    color:var(--dcf-accent);
    margin:0;
}
.dcf-cta-title{
    font-family:var(--dcf-font-display);
    font-size:clamp(17px,4.4vw,19px);
    font-weight:900;
    line-height:1.55;
    margin:0;
    color:var(--dcf-ink);
    text-wrap:balance;
}
.dcf-cta-text{font-size:13.5px; line-height:1.8; margin:0; color:var(--dcf-ink);}
.dcf-cta-examples{
    list-style:none;
    margin:2px 0;
    padding:12px 14px;
    background:var(--dcf-surface);
    border-radius:10px;
    display:flex;
    flex-direction:column;
    gap:8px;
    font-size:13.5px;
    line-height:1.6;
}
.dcf-cta-examples li{display:flex; gap:10px; align-items:baseline;}
.dcf-cta-examples span{
    flex-shrink:0;
    font-size:11px;
    font-weight:700;
    color:#fff;
    background:var(--dcf-accent);
    border-radius:4px;
    padding:1px 6px;
}
.dcf-cta-request-label{display:block; font-weight:700; font-size:13.5px; margin-top:6px;}
.dcf-cta-box textarea{
    width:100%;
    padding:12px 14px;
    border:1px solid var(--dcf-border);
    border-radius:10px;
    font-size:15px;
    font-family:inherit;
    line-height:1.6;
    background:var(--dcf-surface);
    color:var(--dcf-ink);
    resize:vertical;
}
.dcf-cta-box textarea:focus-visible{outline:2px solid var(--dcf-accent); outline-offset:1px;}
.dcf-cta-box .dcf-btn-lg{font-size:16px; line-height:1.4; margin-top:4px;}
.dcf-cta-box .dcf-btn-ghost{background:var(--dcf-surface);}
.dcf-cta-note{font-size:12.5px; color:var(--dcf-accent-strong); line-height:1.65; margin:0 4px 4px; text-align:center;}

.dcf-consult-thanks{
    background:var(--dcf-accent-soft);
    border:1px solid var(--dcf-accent);
    border-radius:12px;
    padding:22px 20px;
    text-align:center;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:16px;
}
.dcf-consult-thanks-message{
    margin:0;
    font-weight:700;
    font-size:15.5px;
    line-height:1.9;
    color:var(--dcf-accent-strong);
}

[hidden]{display:none !important;}

@media (prefers-reduced-motion: reduce){
    .dcf-simulator-page *{transition:none !important; animation:none !important;}
}

@media (max-width:420px){
    .dcf-simulator-page{padding:28px 16px 64px;}
    .dcf-panel{padding:22px 16px 18px;}
    .dcf-choice-grid{grid-template-columns:repeat(2, minmax(0,1fr));}
    .dcf-choice-icon{min-height:96px;}
}

/* ---- 結果画面をコンパクトに（目安料金を一番上に） ---- */
.dcf-simulator-page.is-result .dcf-intro,
.dcf-simulator-page.is-result .dcf-progress,
.dcf-simulator-page.is-result .dcf-answers{display:none;}
.dcf-simulator-page.is-result .dcf-slip{padding:18px 18px 14px; margin-bottom:12px;}
.dcf-simulator-page.is-result .dcf-slip-price-sub{margin:2px 0 8px;}
.dcf-simulator-page.is-result .dcf-slip-caveat{margin:0 0 12px;}
/* 回答内容は小さなタグを横に並べる */
.dcf-simulator-page.is-result .dcf-slip-detail{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin:0;
    padding-top:12px;
}
.dcf-simulator-page.is-result .dcf-slip-detail div{
    flex-direction:row;
    align-items:baseline;
    gap:4px;
    padding:3px 8px;
    border-radius:6px;
    background:var(--dcf-surface-2);
}
.dcf-simulator-page.is-result .dcf-slip-detail dt{font-size:11px;}
.dcf-simulator-page.is-result .dcf-slip-detail dd{font-size:12.5px;}

/* ほかの頻度の目安（アコーディオン） */
.dcf-compare.dcf-help{margin:0 0 14px;}
.dcf-compare summary span{font-weight:400; font-size:12px; color:var(--dcf-muted);}
.dcf-compare summary::before{content:"＋";}
.dcf-compare[open] summary::before{content:"−";}
.dcf-compare .dcf-compare-list{margin:0 8px 8px; background:var(--dcf-surface); font-size:13.5px;}

/* CTAの余白を詰める */
.dcf-simulator-page.is-result .dcf-cta-box{gap:8px; padding:18px 16px 16px;}
.dcf-simulator-page.is-result .dcf-cta-examples{padding:10px 12px; gap:6px; font-size:13px;}
.dcf-compare .dcf-compare-list li{padding:8px 10px; gap:6px;}
.dcf-compare .dcf-compare-list .dcf-compare-price{white-space:nowrap;}
.dcf-compare .dcf-compare-list em{margin-left:4px; padding:1px 4px; font-size:10.5px;}
.dcf-compare .dcf-compare-list li > span:first-child{display:flex; flex-wrap:wrap; align-items:center; row-gap:2px;}
.dcf-compare .dcf-compare-list em{white-space:nowrap;}
.dcf-slip-price span{white-space:nowrap;}
