/* AI 무료견적 v2: 연락처 없는 결과 확인과 선택형 간편 문의 */
.estimate-page--v2 {
    --estimate-green: #4f8f2f;
    --estimate-green-dark: #35691f;
    --estimate-green-soft: #f1f7ed;
    --estimate-ink: #172018;
    --estimate-muted: #667066;
    --estimate-line: #dfe6dc;
    background: #f7f9f6;
    color: var(--estimate-ink);
    display: block;
    min-height: 100vh;
    padding: calc(var(--header-height, 64px) + 28px) 0 120px;
}

.estimate-page--v2 [hidden] {
    display: none !important;
}

.estimate-page--v2 .estimate-shell {
    width: min(calc(100% - 48px), var(--hc-shell, 1440px));
    max-width: var(--hc-shell, 1440px);
    margin: 0 auto;
    padding: 0;
}

.estimate-page--v2 .estimate-layout,
.estimate-page--v2 .estimate-wizard {
    display: block;
    width: 100%;
}

.estimate-page--v2 .estimate-wizard {
    background: #fff;
    border: 1px solid var(--estimate-line);
    border-radius: 18px;
    box-shadow: 0 12px 34px rgba(24, 42, 20, .07);
    padding: 0;
    overflow: hidden;
}

.estimate-page--v2 .estimate-intro {
    padding: 30px 36px 24px;
    border-bottom: 1px solid #edf1eb;
    text-align: left;
}

.estimate-page--v2 .estimate-intro__badge {
    display: inline-block;
    margin: 0 0 10px;
    color: var(--estimate-green-dark);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: -.01em;
}

.estimate-page--v2 .estimate-intro__title {
    margin: 0;
    color: var(--estimate-ink);
    max-width: 680px;
    font-size: clamp(30px, 3vw, 36px);
    font-weight: 800;
    line-height: 1.18;
    letter-spacing: -.045em;
}

.estimate-page--v2 .estimate-intro__desc {
    max-width: 620px;
    margin: 14px 0 0;
    color: var(--estimate-muted);
    font-size: 16px;
    line-height: 1.65;
}

.estimate-page--v2 .estimate-intro__trust {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 16px 0 0;
    color: var(--estimate-green-dark);
    font-size: 13px;
    font-weight: 700;
}

.estimate-page--v2 .estimate-intro__trust span {
    display: inline-flex;
    min-height: 28px;
    padding: 0 10px;
    border: 1px solid #cfe0c8;
    border-radius: 999px;
    background: var(--estimate-green-soft);
    align-items: center;
}

.estimate-page--v2 .estimate-progress {
    padding: 18px 34px 0;
}

.estimate-page--v2 .estimate-progress__top {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 8px 14px;
}

.estimate-page--v2 .estimate-progress__counter,
.estimate-page--v2 [data-estimate-progress-label] {
    color: var(--estimate-muted);
    font-size: 13px;
    font-weight: 700;
}

.estimate-page--v2 [data-estimate-progress-label] {
    text-align: right;
}

.estimate-page--v2 .estimate-progress__top > i {
    grid-column: 1 / -1;
    display: block;
    height: 5px;
    overflow: hidden;
    border-radius: 999px;
    background: #e8eee5;
}

.estimate-page--v2 .estimate-progress__top > i > b {
    display: block;
    width: 0;
    height: 100%;
    background: var(--estimate-green);
    transition: width .22s ease;
}

.estimate-page--v2 .estimate-step-viewport {
    position: relative;
    overflow: visible;
    padding: 24px 34px 34px;
}

.estimate-page--v2 .estimate-step {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.estimate-page--v2 .estimate-step legend {
    width: 100%;
    margin: 0;
    color: var(--estimate-ink);
    font-size: 25px;
    font-weight: 800;
    line-height: 1.3;
    letter-spacing: -.035em;
}

.estimate-page--v2 .estimate-step > p {
    margin: 8px 0 18px;
    color: var(--estimate-muted);
    font-size: 14px;
}

.estimate-page--v2 .estimate-selected-count {
    display: inline-flex;
    margin: -8px 0 14px;
    color: var(--estimate-green-dark);
    font-size: 13px;
    font-weight: 750;
}

.estimate-page--v2 .estimate-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.estimate-page--v2 .estimate-options > button {
    display: flex;
    position: relative;
    min-height: 86px;
    min-width: 0;
    padding: 16px 48px 16px 18px;
    border: 1px solid var(--estimate-line);
    border-radius: 12px;
    background: #fff;
    color: var(--estimate-ink);
    text-align: left;
    align-items: stretch;
    flex-direction: column;
    justify-content: center;
    word-break: keep-all;
    overflow-wrap: anywhere;
    cursor: pointer;
    transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}

.estimate-page--v2 .estimate-options > button:hover {
    border-color: #9fbd91;
    background: #fbfdf9;
}

.estimate-page--v2 .estimate-options--category > button.is-popular {
    border-color: #a8c998;
    background: #fbfdf9;
}

.estimate-page--v2 .estimate-options--category > button.is-popular::before {
    position: absolute;
    top: 8px;
    right: 9px;
    padding: 3px 7px;
    border-radius: 999px;
    background: var(--estimate-green-soft);
    color: var(--estimate-green-dark);
    content: "가장 많이 선택";
    font-size: 10px;
    font-weight: 850;
    line-height: 1.2;
}

.estimate-page--v2 .estimate-options > button[aria-pressed="true"] {
    border-color: var(--estimate-green);
    background: var(--estimate-green-soft);
    color: var(--estimate-ink);
    box-shadow: inset 0 0 0 1px var(--estimate-green);
}

.estimate-page--v2 .estimate-options > button[aria-pressed="true"] .estimate-option-text,
.estimate-page--v2 .estimate-options > button[aria-pressed="true"] .estimate-option-text strong,
.estimate-page--v2 .estimate-options > button[aria-pressed="true"] > strong {
    color: var(--estimate-ink);
}

.estimate-page--v2 .estimate-options > button[aria-pressed="true"] .estimate-option-text span,
.estimate-page--v2 .estimate-options > button[aria-pressed="true"] > span:not(.estimate-option-text):not(.estimate-option-icon) {
    color: var(--estimate-muted);
}

.estimate-page--v2 .estimate-options > button[aria-pressed="true"]::after {
    position: absolute;
    top: 50%;
    right: 16px;
    transform: translateY(-50%);
    color: var(--estimate-green-dark);
    content: "✓";
    font-size: 16px;
    font-weight: 900;
}

.estimate-page--v2 .estimate-option-text,
.estimate-page--v2 .estimate-options > button > span:not(.estimate-option-icon) {
    display: block;
    min-width: 0;
}

.estimate-page--v2 .estimate-options strong {
    display: block;
    color: inherit;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.35;
}

.estimate-page--v2 .estimate-options button span span,
.estimate-page--v2 .estimate-options button > span:not(.estimate-option-text) {
    display: block;
    margin-top: 5px;
    color: var(--estimate-muted);
    font-size: 13px;
    line-height: 1.45;
}

.estimate-page--v2 .estimate-loading {
    min-height: 360px;
    padding: 80px 28px;
    text-align: center;
}

.estimate-page--v2 .estimate-loading__mark {
    width: 34px;
    height: 34px;
    margin: 0 auto 18px;
    border: 3px solid #dce8d6;
    border-top-color: var(--estimate-green);
    border-radius: 50%;
    animation: estimate-spin .8s linear infinite;
}

@keyframes estimate-spin { to { transform: rotate(360deg); } }

.estimate-page--v2 .estimate-loading strong,
.estimate-page--v2 .estimate-loading span {
    display: block;
}

.estimate-page--v2 .estimate-loading strong {
    font-size: 20px;
}

.estimate-page--v2 .estimate-loading span {
    margin-top: 8px;
    color: var(--estimate-muted);
    font-size: 14px;
}

.estimate-page--v2 .estimate-loading > i { display: none; }

.estimate-page--v2 .estimate-ai-result {
    display: block;
    padding: 36px;
    border: 0;
    border-radius: 0;
    background: #fff;
    box-shadow: none;
}

.estimate-page--v2 .estimate-ai-result__header {
    margin-bottom: 22px;
}

.estimate-page--v2 .estimate-ai-result__badge {
    display: inline-block;
    margin-bottom: 8px;
    color: var(--estimate-green-dark);
    font-size: 13px;
    font-weight: 800;
}

.estimate-page--v2 .estimate-ai-result__header h2 {
    margin: 0;
    font-size: 29px;
    letter-spacing: -.04em;
}

.estimate-page--v2 .estimate-ai-result__description,
.estimate-page--v2 .estimate-ai-result__summary {
    margin: 10px 0 0;
    color: var(--estimate-muted);
    line-height: 1.6;
}

.estimate-page--v2 .estimate-ai-result__metrics {
    display: grid;
    grid-template-columns: 1.35fr 1fr;
    gap: 12px;
    margin: 0 0 18px;
}

.estimate-page--v2 .estimate-ai-result__metric {
    display: flex;
    min-height: 128px;
    padding: 22px;
    border: 1px solid var(--estimate-line);
    border-radius: 12px;
    background: #fbfcfa;
    flex-direction: column;
    justify-content: center;
}

.estimate-page--v2 .estimate-ai-result__metric span,
.estimate-page--v2 .estimate-ai-result__metric small {
    color: var(--estimate-muted);
    font-size: 13px;
}

.estimate-page--v2 .estimate-ai-result__metric strong {
    margin: 6px 0 3px;
    color: var(--estimate-ink);
    font-size: clamp(23px, 4vw, 34px);
    line-height: 1.25;
    letter-spacing: -.04em;
}

.estimate-page--v2 .estimate-result-next {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 5px 24px;
    margin: -2px 0 18px;
    padding: 20px;
    border: 1px solid #9fc88d;
    border-radius: 13px;
    background: linear-gradient(135deg, #f4faef 0%, #edf7e8 100%);
    align-items: center;
}

.estimate-page--v2 .estimate-result-next__eyebrow {
    grid-column: 1;
    margin: 0;
    color: var(--estimate-green-dark);
    font-size: 12px;
    font-weight: 850;
}

.estimate-page--v2 .estimate-result-next h3 {
    grid-column: 1;
    margin: 0;
    color: #20331b;
    font-size: 19px;
    line-height: 1.4;
    letter-spacing: -.025em;
}

.estimate-page--v2 .estimate-result-next__copy {
    grid-column: 1;
    margin: 1px 0 0;
    color: #52654b;
    font-size: 13px;
    line-height: 1.5;
}

.estimate-page--v2 .estimate-result-next__cta {
    grid-column: 2;
    grid-row: 1 / span 3;
    min-width: 230px;
    min-height: 52px;
    padding: 0 20px;
    border: 0;
    border-radius: 10px;
    background: var(--estimate-green-dark);
    color: #fff;
    font-size: 15px;
    font-weight: 850;
    cursor: pointer;
}

.estimate-page--v2 .estimate-result-next__cta:hover { background: #285418; }

.estimate-page--v2 .estimate-result-next small {
    grid-column: 1 / -1;
    margin-top: 4px;
    color: #64745f;
    font-size: 11px;
}

.estimate-page--v2 .estimate-ai-result__selected {
    display: grid;
    gap: 0;
    padding: 4px 18px;
    border: 1px solid var(--estimate-line);
    border-radius: 12px;
}

.estimate-page--v2 .estimate-ai-result__selection {
    margin-top: 2px;
    border: 1px solid var(--estimate-line);
    border-radius: 11px;
    background: #fff;
    overflow: hidden;
}

.estimate-page--v2 .estimate-ai-result__selection summary {
    position: relative;
    padding: 14px 44px 14px 17px;
    color: #455045;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
    list-style: none;
}

.estimate-page--v2 .estimate-ai-result__selection summary::-webkit-details-marker { display: none; }
.estimate-page--v2 .estimate-ai-result__selection summary::after { position: absolute; top: 50%; right: 17px; content: "+"; transform: translateY(-50%); font-size: 18px; font-weight: 500; }
.estimate-page--v2 .estimate-ai-result__selection[open] summary { border-bottom: 1px solid #edf1eb; }
.estimate-page--v2 .estimate-ai-result__selection[open] summary::after { content: "−"; }
.estimate-page--v2 .estimate-ai-result__selection .estimate-ai-result__selected { padding: 2px 17px; border: 0; border-radius: 0; }

.estimate-page--v2 .estimate-ai-result__selected-row {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 16px;
    padding: 14px 0;
    border-bottom: 1px solid #edf1eb;
}

.estimate-page--v2 .estimate-ai-result__selected-row:last-child { border-bottom: 0; }
.estimate-page--v2 .estimate-ai-result__selected-row span { color: var(--estimate-muted); font-size: 13px; }
.estimate-page--v2 .estimate-ai-result__selected-row strong { font-size: 14px; line-height: 1.55; }

.estimate-page--v2 .estimate-result-section,
.estimate-page--v2 .estimate-ai-result__breakdown,
.estimate-page--v2 .estimate-ai-result__lists {
    margin-top: 24px;
}

.estimate-page--v2 .estimate-result-section h3 { margin: 0 0 12px; font-size: 18px; }
.estimate-page--v2 .estimate-result-checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin: 0; padding: 0; list-style: none; }
.estimate-page--v2 .estimate-result-checks li { position: relative; padding-left: 20px; color: #3f493f; font-size: 14px; }
.estimate-page--v2 .estimate-result-checks li::before { position: absolute; left: 0; color: var(--estimate-green); content: "✓"; font-weight: 900; }
.estimate-page--v2 .estimate-result-guides { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.estimate-page--v2 .estimate-result-guides .estimate-result-section { padding: 18px; border: 1px solid var(--estimate-line); border-radius: 12px; }
.estimate-page--v2 .estimate-result-guides h3 { font-size: 15px; }
.estimate-page--v2 .estimate-result-guides ul { margin: 0; padding-left: 18px; color: var(--estimate-muted); font-size: 13px; line-height: 1.65; }

.estimate-page--v2 .estimate-result-essentials {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 18px;
}

.estimate-page--v2 .estimate-result-essentials > div {
    padding: 15px 16px;
    border-left: 3px solid #b8c9b1;
    background: #f7f9f6;
}

.estimate-page--v2 .estimate-result-essentials strong { display: block; color: #354235; font-size: 13px; }
.estimate-page--v2 .estimate-result-essentials p { margin: 5px 0 0; color: var(--estimate-muted); font-size: 12px; line-height: 1.55; }

.estimate-page--v2 .estimate-ai-result__price-reason,
.estimate-page--v2 .estimate-ai-result__note,
.estimate-page--v2 .estimate-ai-result__disclaimer {
    margin: 16px 0 0;
    padding: 13px 15px;
    border-radius: 10px;
    background: #f6f8f5;
    color: var(--estimate-muted);
    font-size: 13px;
    line-height: 1.65;
}

.estimate-page--v2 .estimate-ai-result__actions {
    display: flex;
    gap: 8px;
    margin-top: 18px;
}

.estimate-page--v2 .estimate-ai-result__actions button,
.estimate-page--v2 .estimate-quick-success button {
    min-height: 44px;
    padding: 0 16px;
    border: 1px solid var(--estimate-line);
    border-radius: 9px;
    background: #fff;
    color: #3e483e;
    font-weight: 750;
    cursor: pointer;
}

.estimate-page--v2 .estimate-benefit {
    margin-top: 30px;
    padding: 28px;
    border: 1px solid #a8c998;
    border-radius: 14px;
    background: var(--estimate-green-soft);
}

.estimate-page--v2 .estimate-benefit__eyebrow { margin: 0 0 8px; color: var(--estimate-green-dark); font-size: 13px; font-weight: 850; }
.estimate-page--v2 .estimate-benefit h3 { margin: 0; color: #20331b; font-size: 22px; line-height: 1.45; letter-spacing: -.03em; }
.estimate-page--v2 .estimate-benefit__prices { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 20px; }
.estimate-page--v2 .estimate-benefit__prices > div { padding: 16px; border: 1px solid #d2dfcc; border-radius: 10px; background: rgba(255,255,255,.78); }
.estimate-page--v2 .estimate-benefit__prices span,
.estimate-page--v2 .estimate-benefit__prices strong { display: block; }
.estimate-page--v2 .estimate-benefit__prices span { color: var(--estimate-muted); font-size: 12px; }
.estimate-page--v2 .estimate-benefit__prices strong { margin-top: 6px; font-size: 19px; letter-spacing: -.03em; }
.estimate-page--v2 .estimate-benefit__prices .is-discount { border-color: var(--estimate-green); background: #fff; }
.estimate-page--v2 .estimate-benefit__prices .is-discount strong { color: var(--estimate-green-dark); }
.estimate-page--v2 .estimate-benefit__cta,
.estimate-page--v2 .estimate-quick__submit {
    width: 100%;
    min-height: 54px;
    margin-top: 18px;
    border: 0;
    border-radius: 10px;
    background: var(--estimate-green-dark);
    color: #fff;
    font-size: 16px;
    font-weight: 800;
    cursor: pointer;
}
.estimate-page--v2 .estimate-benefit__cta:hover,
.estimate-page--v2 .estimate-quick__submit:hover { background: #285418; }
.estimate-page--v2 .estimate-benefit__hint { margin: 10px 0 0; text-align: center; color: #46613d; font-size: 13px; }
.estimate-page--v2 .estimate-benefit__notice { margin: 16px 0 0; color: #71806c; font-size: 11px; line-height: 1.55; }
.estimate-page--v2 details.estimate-benefit__notice summary { width: fit-content; cursor: pointer; font-weight: 750; }
.estimate-page--v2 details.estimate-benefit__notice p { margin: 8px 0 0; }

.estimate-page--v2 .estimate-quick {
    margin-top: 18px;
    padding: 28px;
    border: 1px solid var(--estimate-line);
    border-radius: 14px;
    background: #fff;
}
.estimate-page--v2 .estimate-quick__head { display: flex; gap: 18px; align-items: flex-start; justify-content: space-between; }
.estimate-page--v2 .estimate-quick__head > div { min-width: 0; }
.estimate-page--v2 .estimate-quick__head p { margin: 0 0 5px; color: var(--estimate-green-dark); font-size: 13px; font-weight: 700; }
.estimate-page--v2 .estimate-quick__head h3 { margin: 0 0 22px; font-size: 23px; }
.estimate-page--v2 .estimate-quick__close { display: inline-flex; width: 44px; height: 44px; flex: 0 0 auto; padding: 0; border: 1px solid var(--estimate-line); border-radius: 50%; background: #fff; color: #4d574d; align-items: center; justify-content: center; font-size: 24px; line-height: 1; cursor: pointer; }
.estimate-page--v2 .estimate-contact-type { margin: 0 0 18px; padding: 0; border: 0; }
.estimate-page--v2 .estimate-contact-type legend { margin-bottom: 8px; font-size: 14px; font-weight: 750; }
.estimate-page--v2 .estimate-contact-type > div { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.estimate-page--v2 .estimate-contact-type label { cursor: pointer; }
.estimate-page--v2 .estimate-contact-type input { position: absolute; opacity: 0; pointer-events: none; }
.estimate-page--v2 .estimate-contact-type span { display: flex; min-height: 46px; border: 1px solid var(--estimate-line); border-radius: 9px; align-items: center; justify-content: center; font-size: 14px; font-weight: 750; }
.estimate-page--v2 .estimate-contact-type input:checked + span { border-color: var(--estimate-green); background: var(--estimate-green-soft); color: var(--estimate-green-dark); box-shadow: inset 0 0 0 1px var(--estimate-green); }
.estimate-page--v2 .estimate-quick__field { display: block; margin-top: 15px; }
.estimate-page--v2 .estimate-quick__field > span { display: flex; margin-bottom: 7px; font-size: 14px; font-weight: 750; justify-content: space-between; }
.estimate-page--v2 .estimate-quick__field em { color: #b23d31; font-size: 12px; font-style: normal; }
.estimate-page--v2 .estimate-quick__field small { color: #8a938a; font-weight: 500; }
.estimate-page--v2 .estimate-quick__field input,
.estimate-page--v2 .estimate-quick__field textarea {
    width: 100%;
    min-height: 48px;
    box-sizing: border-box;
    padding: 12px 13px;
    border: 1px solid #ccd5c8;
    border-radius: 9px;
    background: #fff;
    color: var(--estimate-ink);
    font: inherit;
}
.estimate-page--v2 .estimate-quick__field textarea { min-height: 92px; resize: vertical; }
.estimate-page--v2 .estimate-quick__field input:focus,
.estimate-page--v2 .estimate-quick__field textarea:focus { border-color: var(--estimate-green); outline: 2px solid rgba(79,143,47,.15); }
.estimate-page--v2 .estimate-quick__privacy-details { margin-top: 18px; color: var(--estimate-muted); font-size: 12px; }
.estimate-page--v2 .estimate-quick__privacy-details summary { cursor: pointer; font-weight: 700; }
.estimate-page--v2 .estimate-quick__privacy-details ul { margin: 9px 0 0; padding-left: 18px; line-height: 1.6; }
.estimate-page--v2 .estimate-quick__agree { display: flex; gap: 9px; margin-top: 16px; align-items: flex-start; cursor: pointer; font-size: 13px; line-height: 1.5; }
.estimate-page--v2 .estimate-quick__agree input { width: 19px; height: 19px; flex: 0 0 auto; accent-color: var(--estimate-green-dark); }
.estimate-page--v2 .estimate-quick__agree em { color: #b23d31; font-style: normal; font-weight: 800; }
.estimate-page--v2 .estimate-quick__status { min-height: 20px; margin: 12px 0 -5px; color: #b23d31; font-size: 13px; }
.estimate-page--v2 .estimate-quick__status[data-state="success"] { color: var(--estimate-green-dark); }
.estimate-page--v2 .estimate-quick__submit:disabled { opacity: .6; cursor: wait; }

.estimate-page--v2 .estimate-quick-success { margin-top: 18px; padding: 36px 24px; border: 1px solid #b7d2aa; border-radius: 14px; background: var(--estimate-green-soft); text-align: center; }
.estimate-page--v2 .estimate-quick-success > span { display: inline-flex; width: 40px; height: 40px; border-radius: 50%; background: var(--estimate-green-dark); color: #fff; align-items: center; justify-content: center; font-weight: 900; }
.estimate-page--v2 .estimate-quick-success h3 { margin: 14px 0 8px; font-size: 23px; }
.estimate-page--v2 .estimate-quick-success p { margin: 0; color: var(--estimate-muted); font-size: 14px; line-height: 1.65; }
.estimate-page--v2 .estimate-quick-success button { margin-top: 18px; }

.estimate-page--v2 .estimate-result-sticky { display: none; }

.estimate-page--v2 + footer,
body.is-estimate-result footer { display: block; }

.estimate-page--v2 .estimate-actions,
.estimate-actions {
    position: fixed;
    z-index: 40;
    right: 0;
    bottom: 0;
    left: 0;
    padding: 10px max(16px, env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
    border-top: 1px solid var(--estimate-line);
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(10px);
}

.estimate-page--v2 .estimate-actions__row,
.estimate-actions__row {
    display: flex;
    width: min(100%, 780px);
    margin: 0 auto;
    gap: 8px;
}

.estimate-page--v2 .estimate-actions button,
.estimate-actions button {
    min-height: 50px;
    border-radius: 9px;
    font-size: 15px;
    font-weight: 800;
}

.estimate-page--v2 .estimate-back { width: 120px; border: 1px solid var(--estimate-line); background: #fff; color: #465046; }
.estimate-page--v2 .estimate-next { flex: 1; border: 0; background: var(--estimate-green-dark); color: #fff; }
.estimate-page--v2 .estimate-next:disabled { background: #d9ded7; color: #8b938a; }
.estimate-page--v2 .estimate-status { width: min(100%, 780px); min-height: 0; margin: 0 auto 6px; color: #b23d31; font-size: 12px; text-align: center; }
body.is-estimate-result .estimate-actions { display: none; }
body.is-estimate-started:not(.is-estimate-result) .estimate-page--v2 .estimate-intro { display: none; }
body.is-estimate-result .estimate-page--v2 .estimate-intro,
body.is-estimate-result .estimate-page--v2 .estimate-progress { display: none; }

@media (min-width: 1100px) {
    .estimate-page--v2 { padding-top: calc(var(--header-height, 64px) + 46px); }
    .estimate-page--v2 .estimate-wizard { max-width: var(--hc-shell, 1440px); margin: 0 auto; }
    .estimate-page--v2 .estimate-intro { padding: 38px 48px 30px; }
    .estimate-page--v2 .estimate-intro__title { max-width: 860px; }
    .estimate-page--v2 .estimate-intro__desc { max-width: 760px; }
    .estimate-page--v2 .estimate-progress { padding: 22px 48px 0; }
    .estimate-page--v2 .estimate-step-viewport { padding: 32px 48px 48px; }
    .estimate-page--v2 .estimate-options { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
    .estimate-page--v2 .estimate-options--category { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .estimate-page--v2 .estimate-options > button { min-height: 104px; padding: 20px 52px 20px 22px; border-radius: 14px; }
    .estimate-page--v2 .estimate-ai-result { padding: 48px; }
}

@media (min-width: 768px) {
    body.hicoding-estimate-page:not(.is-estimate-result) .estimate-page--v2 {
        display: grid;
        grid-template-columns: minmax(0, 820px);
        grid-template-areas:
            "wizard"
            "actions";
        min-height: 100svh;
        padding: calc(var(--header-height, 64px) + 24px) 0 24px;
        box-sizing: border-box;
        align-content: center;
        justify-content: center;
    }

    .estimate-page--v2 .estimate-actions {
        position: static;
        width: min(calc(100% - 48px), var(--hc-shell, 1440px));
        max-width: var(--hc-shell, 1440px);
        margin: 16px auto 0;
        padding: 0;
        border: 0;
        background: transparent;
        backdrop-filter: none;
    }

    .estimate-page--v2 .estimate-actions__row,
    .estimate-page--v2 .estimate-status {
        width: min(100%, 820px);
    }
}

@media (max-width: 767px) {
    body.hicoding-estimate-page:not(.is-estimate-result) {
        overflow: hidden;
    }

    body.hicoding-estimate-page:not(.is-estimate-result) footer { display: none; }

    .estimate-page--v2 {
        height: 100dvh;
        min-height: 0;
        box-sizing: border-box;
        padding: calc(var(--header-height, 64px) + 8px) 0 calc(74px + env(safe-area-inset-bottom));
        overflow: hidden;
        background: #fff;
    }

    body.is-estimate-first-step .estimate-page--v2 { padding-bottom: 12px; }

    .estimate-page--v2 .estimate-shell { width: 100%; height: 100%; }
    .estimate-page--v2 .estimate-layout,
    .estimate-page--v2 .estimate-wizard { height: 100%; }
    .estimate-page--v2 .estimate-wizard { display: flex; border: 0; border-radius: 0; box-shadow: none; flex-direction: column; overflow: hidden; }
    .estimate-page--v2 .estimate-intro { padding: 10px 18px 9px; flex: 0 0 auto; }
    .estimate-page--v2 .estimate-intro__badge { margin-bottom: 4px; font-size: 11px; }
    .estimate-page--v2 .estimate-intro__title { font-size: 24px; line-height: 1.2; }
    .estimate-page--v2 .estimate-intro__desc { margin-top: 7px; font-size: 12px; line-height: 1.45; }
    .estimate-page--v2 .estimate-intro__trust { gap: 4px; margin-top: 8px; font-size: 10px; }
    .estimate-page--v2 .estimate-intro__trust span { min-height: 23px; padding: 0 7px; }
    body.is-estimate-started:not(.is-estimate-result) .estimate-page--v2 .estimate-intro { display: none; }
    .estimate-page--v2 .estimate-progress { padding: 10px 18px 0; flex: 0 0 auto; }
    .estimate-page--v2 .estimate-progress__top { gap: 5px 10px; }
    .estimate-page--v2 .estimate-progress__counter,
    .estimate-page--v2 [data-estimate-progress-label] { font-size: 11px; }
    .estimate-page--v2 .estimate-step-viewport { min-height: 0; padding: 13px 18px 20px; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; flex: 1 1 auto; }
    .estimate-page--v2 .estimate-step legend { font-size: 19px; line-height: 1.3; word-break: keep-all; }
    .estimate-page--v2 .estimate-step > p { margin: 5px 0 11px; font-size: 12px; }
    .estimate-page--v2 .estimate-options { grid-template-columns: 1fr; gap: 7px; }
    .estimate-page--v2 .estimate-options--category { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .estimate-page--v2 .estimate-options > button { min-height: 64px; padding: 10px 42px 10px 13px; border-radius: 9px; touch-action: manipulation; }
    .estimate-page--v2 .estimate-options--category > button { min-height: 78px; padding: 10px 30px 10px 11px; }
    .estimate-page--v2 .estimate-options--category > button.is-popular { padding-top: 22px; }
    .estimate-page--v2 .estimate-options--category > button.is-popular::before { top: 5px; right: 6px; padding: 2px 5px; font-size: 8.5px; }
    .estimate-page--v2 .estimate-options > button[aria-pressed="true"]::after { right: 12px; }
    .estimate-page--v2 .estimate-options--category > button[aria-pressed="true"]::after { right: 9px; }
    .estimate-page--v2 .estimate-options strong { font-size: 13.5px; line-height: 1.35; }
    .estimate-page--v2 .estimate-options button span span,
    .estimate-page--v2 .estimate-options button > span:not(.estimate-option-text) { margin-top: 3px; font-size: 11.5px; line-height: 1.4; }
    .estimate-page--v2 .estimate-options--category button span span { font-size: 10.5px; line-height: 1.35; }
    .estimate-page--v2 .estimate-selected-count { margin-bottom: 9px; font-size: 11px; }

    body.is-estimate-result .estimate-page--v2 { height: auto; min-height: 100vh; padding: var(--header-height, 64px) 0 calc(112px + env(safe-area-inset-bottom)); overflow: visible; background: #f7f9f6; }
    body.is-estimate-result .estimate-page--v2 .estimate-wizard { display: block; height: auto; overflow: visible; }
    body.is-estimate-result .estimate-page--v2 .estimate-intro,
    body.is-estimate-result .estimate-page--v2 .estimate-progress { display: none; }
    body.is-estimate-result .estimate-page--v2 .estimate-step-viewport { padding: 0; overflow: visible; }
    .estimate-page--v2 .estimate-ai-result { padding: 22px 18px 26px; }
    .estimate-page--v2 .estimate-ai-result__header { margin-bottom: 17px; }
    .estimate-page--v2 .estimate-ai-result__header h2 { font-size: 24px; line-height: 1.28; }
    .estimate-page--v2 .estimate-ai-result__metrics { grid-template-columns: 1fr; }
    .estimate-page--v2 .estimate-ai-result__metric { min-height: 104px; padding: 16px; }
    .estimate-page--v2 .estimate-ai-result__metric:nth-child(2) { min-height: 68px; flex-direction: row; align-items: center; justify-content: space-between; }
    .estimate-page--v2 .estimate-ai-result__metric:nth-child(2) strong { margin: 0; font-size: 22px; }
    .estimate-page--v2 .estimate-ai-result__metrics .estimate-ai-result__metric:first-child { order: -1; }
    .estimate-page--v2 .estimate-result-next { display: block; margin: -2px 0 18px; padding: 15px; }
    .estimate-page--v2 .estimate-result-next h3 { margin-top: 4px; font-size: 17px; line-height: 1.38; }
    .estimate-page--v2 .estimate-result-next__copy { margin-top: 5px; font-size: 12px; }
    .estimate-page--v2 .estimate-result-next__cta { width: 100%; min-width: 0; min-height: 50px; margin-top: 12px; }
    .estimate-page--v2 .estimate-result-next small { display: block; margin-top: 8px; text-align: center; font-size: 10px; }
    .estimate-page--v2 .estimate-ai-result__selected-row { grid-template-columns: 1fr; gap: 5px; }
    .estimate-page--v2 .estimate-result-section,
    .estimate-page--v2 .estimate-ai-result__breakdown,
    .estimate-page--v2 .estimate-ai-result__lists { margin-top: 18px; }
    .estimate-page--v2 .estimate-result-section h3 { margin-bottom: 9px; font-size: 16px; }
    .estimate-page--v2 .estimate-result-checks { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 10px; }
    .estimate-page--v2 .estimate-result-checks li { font-size: 12px; line-height: 1.45; }
    .estimate-page--v2 .estimate-result-essentials { grid-template-columns: 1fr; gap: 7px; margin-top: 16px; }
    .estimate-page--v2 .estimate-result-essentials > div { padding: 12px 13px; }
    .estimate-page--v2 .estimate-result-guides { grid-template-columns: 1fr; }
    .estimate-page--v2 .estimate-ai-result__actions { flex-direction: column; }
    .estimate-page--v2 .estimate-benefit,
    .estimate-page--v2 .estimate-quick { padding: 21px 16px; }
    .estimate-page--v2 .estimate-benefit h3 { font-size: 18px; line-height: 1.45; }
    .estimate-page--v2 .estimate-benefit__prices { grid-template-columns: 1fr; }
    .estimate-page--v2 .estimate-result-sticky {
        display: flex;
        position: fixed;
        z-index: 60;
        right: 0;
        bottom: 0;
        left: 0;
        gap: 12px;
        padding: 10px max(16px, env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
        border-top: 1px solid #dce7d7;
        background: rgba(255,255,255,.97);
        box-shadow: 0 -10px 28px rgba(25,43,21,.1);
        backdrop-filter: blur(10px);
        align-items: center;
        justify-content: space-between;
    }
    .estimate-page--v2 .estimate-result-sticky > div { min-width: 0; }
    .estimate-page--v2 .estimate-result-sticky strong,
    .estimate-page--v2 .estimate-result-sticky span { display: block; }
    .estimate-page--v2 .estimate-result-sticky strong { color: var(--estimate-ink); font-size: 13px; line-height: 1.35; }
    .estimate-page--v2 .estimate-result-sticky span { margin-top: 2px; color: var(--estimate-muted); font-size: 10px; }
    .estimate-page--v2 .estimate-result-sticky button { min-width: 104px; min-height: 48px; padding: 0 15px; border: 0; border-radius: 9px; background: var(--estimate-green-dark); color: #fff; font-size: 14px; font-weight: 850; }
    body.is-estimate-quick-open .estimate-result-sticky,
    body.is-estimate-submitted .estimate-result-sticky { display: none; }
    .estimate-page--v2 .estimate-quick {
        position: fixed;
        z-index: 80;
        right: 0;
        bottom: 0;
        left: 0;
        max-height: min(88dvh, 720px);
        margin: 0;
        padding: 22px 18px calc(18px + env(safe-area-inset-bottom));
        border-width: 1px 0 0;
        border-radius: 18px 18px 0 0;
        box-shadow: 0 -16px 44px rgba(22,32,20,.2);
        overflow-y: auto;
    }
    .estimate-page--v2 .estimate-quick__head { position: sticky; z-index: 2; top: -22px; margin: -22px -18px 4px; padding: 18px 18px 0; background: #fff; }
    body.is-estimate-quick-open::before { position: fixed; z-index: 70; inset: 0; background: rgba(12,18,11,.42); content: ""; }
    .estimate-page--v2 .estimate-quick__submit { position: sticky; bottom: 0; box-shadow: 0 -8px 14px #fff; }
}

@media (max-width: 390px) {
    .estimate-page--v2 .estimate-intro__title { font-size: 22px; }
    .estimate-page--v2 .estimate-options > button { min-height: 62px; }
    .estimate-page--v2 .estimate-options--category > button { min-height: 76px; padding: 9px 28px 9px 10px; }
    .estimate-page--v2 .estimate-options--category > button.is-popular { padding-top: 22px; }
}

@media (prefers-reduced-motion: reduce) {
    .estimate-page--v2 *,
    .estimate-page--v2 *::before,
    .estimate-page--v2 *::after { scroll-behavior: auto !important; transition: none !important; }
}
