/* =========================================================
   간편견적 · 비용계산기 전용 스타일 (estimate.html)
   루트 styles.css의 CSS 변수를 재사용합니다.
   ========================================================= */
:root{--ok:#16A34A;--danger:#E5484D}

.est-header{position:relative;color:#fff;text-align:center;padding:120px 0 72px;
  background:linear-gradient(135deg,var(--blue),#3E5BE6);overflow:hidden}
.est-header::after{content:"";position:absolute;right:-80px;top:-80px;width:320px;height:320px;
  border-radius:50%;background:rgba(255,255,255,.06)}
.est-header .container{position:relative}
.est-header h1{font-size:clamp(1.8rem,4vw,2.7rem);font-weight:900}
.est-header p{margin-top:12px;font-size:1.08rem;color:rgba(255,255,255,.9)}

.est-wrap{padding:50px 0 88px}
.calc-card{max-width:720px;margin:0 auto;background:var(--white);border:1px solid var(--line);
  border-radius:24px;padding:clamp(24px,4vw,46px);box-shadow:var(--shadow-md)}

/* 스텝 인디케이터 */
.steps-ind{display:flex;justify-content:center;gap:40px;margin-bottom:36px;flex-wrap:wrap}
.st{display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:700;color:var(--ink-3)}
.st .n{width:32px;height:32px;border-radius:50%;background:var(--line);color:var(--ink-3);
  display:grid;place-items:center;font-size:.85rem;font-weight:800;transition:.2s}
.st.active{color:var(--blue)}
.st.active .n{background:var(--blue);color:#fff}
.st.done{color:var(--ok)}
.st.done .n{background:var(--ok);color:#fff}

.panel-title{font-size:1.3rem;font-weight:900;letter-spacing:-.02em}
.panel-sub{color:var(--ink-2);margin:6px 0 24px}

/* 폼 */
.f-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.f-group{display:flex;flex-direction:column}
.f-group.full{grid-column:1/-1}
.f-label{font-weight:800;font-size:.9rem;margin-bottom:8px}
.f-label .req{color:var(--danger)}
.f-input,.f-select,.f-textarea{width:100%;padding:13px 14px;border-radius:12px;
  border:1.6px solid var(--line);background:#fff;font-family:inherit;font-size:1rem;
  font-weight:600;color:var(--ink);transition:border-color .15s}
.f-input:focus,.f-select:focus,.f-textarea:focus{outline:none;border-color:var(--blue)}
.f-textarea{resize:vertical;min-height:88px}
.f-select{appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23565B78' stroke-width='2'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center}

.opt-list{display:flex;flex-direction:column;gap:10px}
.opt-item{display:flex;align-items:center;gap:11px;padding:12px 15px;border:1.6px solid var(--line);
  border-radius:12px;cursor:pointer;transition:.15s;font-weight:600;font-size:.95rem}
.opt-item:hover{border-color:var(--blue);background:var(--blue-050)}
.opt-item input{width:19px;height:19px;accent-color:var(--blue);flex:none}

/* 결과 박스 */
.result{margin-top:24px;background:var(--blue-050);
  border:1.6px solid var(--blue-100);border-radius:16px;padding:26px;text-align:center;display:none}
.result.show{display:block;animation:fade .35s ease}
.result .rlabel{color:var(--ink-2);font-weight:700;font-size:.95rem}
.result .ramount{font-size:2.3rem;font-weight:900;color:var(--blue);margin-top:6px}
.result .rsupport{margin-top:10px;color:var(--ok);font-weight:800;font-size:.98rem}
.result .rnote{margin-top:8px;color:var(--ink-3);font-size:.82rem}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.calc-actions{display:flex;gap:12px;justify-content:center;margin-top:24px;flex-wrap:wrap}

.disclaimer{background:#FFF7E2;border-radius:12px;padding:16px 18px;margin-top:24px;
  font-size:.83rem;color:var(--ink-2);line-height:1.7}
.disclaimer b{color:var(--ink)}

.fs-title{font-size:1.1rem;font-weight:900;margin-bottom:18px;padding-bottom:12px;
  border-bottom:2px solid var(--blue-050)}

/* 인테리어 크로스셀 */
.interior{background:linear-gradient(135deg,var(--blue-050),#FFF7E2);border:2px dashed var(--blue);
  border-radius:16px;padding:22px;margin:24px 0}
.interior h4{font-size:1.05rem;font-weight:900;color:var(--blue)}
.interior p{font-size:.9rem;color:var(--ink-2);margin-top:6px}
.int-opts{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.int-opt{padding:10px 18px;border:1.6px solid var(--line);border-radius:999px;font-size:.9rem;
  font-weight:700;cursor:pointer;transition:.15s;background:#fff}
.int-opt:hover,.int-opt.sel{border-color:var(--blue);background:var(--blue);color:#fff}

.agree{display:flex;align-items:flex-start;gap:11px;padding:14px 16px;border:1.6px solid var(--blue-100);
  background:var(--blue-050);border-radius:12px;font-size:.92rem;font-weight:600;margin-top:16px}
.agree input{width:19px;height:19px;accent-color:var(--blue);flex:none;margin-top:1px}
.agree a{color:var(--blue);text-decoration:underline}

/* 완료 */
.done-box{display:none;text-align:center;padding:24px 8px}
.done-box.show{display:block;animation:fade .35s ease}
.done-ic{width:88px;height:88px;border-radius:50%;margin:0 auto 22px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--ok),#22C55E);color:#fff}
.done-ic svg{width:44px;height:44px}
.done-box h3{font-size:1.6rem;font-weight:900}
.done-box p{color:var(--ink-2);margin-top:8px;line-height:1.6}
.done-box .hl{color:var(--blue);font-weight:800}
.done-next{margin-top:28px;padding-top:26px;border-top:1px solid var(--line)}
.done-next h4{font-size:1.05rem;font-weight:800;margin-bottom:14px}
.done-next .row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* 검증·요약·칩 */
.f-input.err,.f-select.err,.f-textarea.err{border-color:var(--danger);background:#FFF5F5}
.agree.err{border-color:var(--danger);background:#FFF5F5}
.factors{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:14px}
.factor{background:rgba(42,76,219,.08);color:var(--blue);border:1px solid var(--blue-100);
  border-radius:999px;padding:4px 11px;font-size:.8rem;font-weight:700}
.recap{display:none;background:var(--blue-050);border:1px solid var(--blue-100);border-radius:14px;
  padding:14px 18px;margin-bottom:22px;flex-wrap:wrap;gap:6px 14px;align-items:center;
  font-size:.9rem;font-weight:700;color:var(--ink-2)}
.recap .amt{margin-left:auto;color:var(--blue);font-weight:900;white-space:nowrap}
.done-recap{margin-top:14px;font-size:1rem;color:var(--ink-2)}
.done-recap b{color:var(--blue)}

@media (max-width:640px){
  .f-grid{grid-template-columns:1fr}
  .steps-ind .st span{display:none}
  .calc-actions .btn{width:100%}
  .recap .amt{margin-left:0}
}
