:root{
  --bg:#f7f7f5;--card:#fff;--text:#171717;--muted:#737373;--line:#e8e8e5;
  --accent:#111;--soft:#f0f0ed;--ok:#245d43;--danger:#9f2f2f;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Pretendard,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans KR",sans-serif;background:var(--bg);color:var(--text);word-break:keep-all}
button,input,textarea{font:inherit}
.wrap{width:min(1080px,calc(100% - 32px));margin:0 auto;padding:64px 0 88px;display:grid;grid-template-columns:1fr 1.04fr;gap:56px}
.left{padding-top:2px}
.brand-mark{
  margin-bottom:18px;
}
.brand-mark img{
  display:block;
  width:112px;
  height:auto;
  object-fit:contain;
}
.eyebrow{display:inline-flex;padding:7px 10px;border-radius:999px;background:#ecece8;font-size:12px;font-weight:700;margin-bottom:18px}
h1{font-size:48px;line-height:1.15;letter-spacing:-2px;margin:0 0 18px}
.lead{font-size:18px;line-height:1.7;color:#606060;margin:0 0 32px;max-width:520px}
.points{display:grid;gap:13px;margin-top:26px}
.point{display:flex;gap:12px;align-items:flex-start;color:#454545;font-size:14px;line-height:1.55}
.num{width:25px;height:25px;border-radius:50%;background:#171717;color:#fff;font-size:12px;display:grid;place-items:center;flex:0 0 auto}
.card{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:30px;box-shadow:0 10px 30px rgba(0,0,0,.04)}
.stepbar{display:flex;align-items:center;gap:10px;margin-bottom:28px}
.bar{height:5px;border-radius:999px;background:#ecece8;flex:1;overflow:hidden}
.bar>i{display:block;height:100%;width:33%;background:#171717;border-radius:inherit;transition:.25s}
.steptext{font-size:12px;color:#777;white-space:nowrap}
.step{display:none}.step.active{display:block}
h2{font-size:25px;letter-spacing:-.8px;margin:0 0 8px}
.sub{font-size:14px;color:#858585;margin-bottom:24px}
.field-group{border:0;padding:0;margin:0}
.label{font-size:13px;font-weight:750;margin:20px 0 9px;display:block}
.small-gap{margin-top:13px}
.chips{display:flex;gap:9px;flex-wrap:wrap}
.chip input{position:absolute;opacity:0;pointer-events:none}
.chip span{display:block;padding:12px 15px;border:1px solid #deded9;border-radius:12px;background:#fff;font-size:14px;cursor:pointer;transition:.15s;user-select:none}
.chip input:focus-visible+span{outline:2px solid #333;outline-offset:2px}
.chip input:checked+span{background:#171717;color:#fff;border-color:#171717}
.quick-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.quick-chip{border:1px solid #deded9;border-radius:10px;background:#fff;padding:10px 12px;font-size:13px;cursor:pointer;transition:.15s}
.quick-chip.active{background:#171717;color:#fff;border-color:#171717}
.dynamic-block[hidden],.interior-option[hidden]{display:none!important}
input[type=text],input[type=tel],textarea{width:100%;border:1px solid #deded9;border-radius:12px;background:#fff;padding:13px 14px;font-size:14px;outline:none}
input:focus,textarea:focus{border-color:#555;box-shadow:0 0 0 3px rgba(0,0,0,.04)}
textarea{min-height:92px;resize:vertical;line-height:1.55}
.actions{display:flex;gap:10px;margin-top:28px}
.btn{border:0;border-radius:12px;padding:14px 18px;font-weight:750;font-size:14px;cursor:pointer}
.primary{background:#171717;color:#fff;flex:1}.secondary{background:#efefec;color:#333}
.btn:focus-visible,.quick-chip:focus-visible{outline:2px solid #333;outline-offset:2px}
.privacy{font-size:12px;line-height:1.6;color:#777;margin-top:16px;display:block;cursor:pointer}
.privacy input{vertical-align:-2px;margin-right:6px}
.privacy-details{margin-top:22px;border-top:1px solid var(--line);padding-top:15px;color:#777;font-size:12px}
.privacy-details summary{cursor:pointer;font-weight:700;color:#555}
.privacy-copy{padding:8px 2px 0;line-height:1.65}.privacy-copy p{margin:7px 0}
.form-error{display:none;margin-top:13px;padding:11px 12px;border-radius:10px;background:#fff3f3;color:var(--danger);font-size:13px;line-height:1.5}
.form-error.show{display:block}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Step 2 section spacing */
#interiorField,
#storeEntryField,
#premiumField{
  margin-top:24px;
}
#interiorField > .label,
#storeEntryField > .label,
#premiumField > .label{
  margin-top:0;
}
#needs{
  margin-bottom:2px;
}

@media(max-width:800px){
  .wrap{grid-template-columns:1fr;gap:30px;padding:34px 0 55px}
  h1{font-size:34px;letter-spacing:-1.3px}.lead{font-size:16px}
  .points{display:none}.card{padding:22px;border-radius:18px}
}
@media(max-width:420px){
  .wrap{width:min(100% - 24px,1080px);padding-top:26px}
  h1{font-size:31px}.card{padding:18px}.chip span{padding:11px 13px}
}


.budget-section{margin-top:20px}
.budget-grid{align-items:end}
.sub-label{
  display:block;
  font-size:12px;
  font-weight:750;
  margin:0 0 8px;
  color:#3f3f3f;
}
@media(max-width:800px){
  .brand-mark img{width:96px}
  .budget-grid{grid-template-columns:1fr}
}


/* v17 brand + budget refinements */
.brand-row{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:22px;
}
.brand-mark{
  margin:0;
  flex:0 0 auto;
}
.brand-mark img{
  display:block;
  width:96px;
  height:auto;
  object-fit:contain;
}
.brand-row .eyebrow{
  margin:0;
}

.budget-section{
  margin-top:22px;
}
.budget-section > .label{
  margin-bottom:12px;
}
.budget-grid{
  gap:18px;
  align-items:start;
}
.budget-grid > div{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.budget-grid .sub-label{
  margin:0;
  line-height:1.45;
}
.budget-grid input{
  margin:0;
}
.budget-hint{
  margin-top:10px;
  font-size:12px;
  line-height:1.5;
  color:#909090;
}

@media(max-width:800px){
  .brand-row{
    gap:11px;
    margin-bottom:20px;
  }
  .brand-mark img{
    width:86px;
  }
  .budget-grid{
    grid-template-columns:1fr;
    gap:20px;
  }
}


/* v18 budget controls */
.budget-section{
  margin-top:22px;
}
.budget-section > .label{
  margin-bottom:14px;
}
.budget-item + .budget-item{
  margin-top:18px;
}
.budget-control{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
}
.money-input{
  position:relative;
}
.money-input input{
  width:100%;
  padding-right:54px;
}
.money-input .unit{
  position:absolute;
  right:15px;
  top:50%;
  transform:translateY(-50%);
  font-size:13px;
  color:#777;
  pointer-events:none;
}
.nego-chip{
  display:block;
  flex:0 0 auto;
}
.nego-chip input{
  display:none;
}
.nego-chip span{
  display:block;
  padding:12px 14px;
  border:1px solid #deded9;
  border-radius:12px;
  background:#fff;
  font-size:13px;
  font-weight:700;
  color:#555;
  cursor:pointer;
  white-space:nowrap;
  transition:.15s;
}
.nego-chip input:checked + span{
  background:#171717;
  color:#fff;
  border-color:#171717;
}
.money-input input:disabled{
  background:#f4f4f1;
  color:#aaa;
}

@media(max-width:800px){
  .budget-control{
    grid-template-columns:minmax(0,1fr) auto;
    gap:10px;
  }
  .nego-chip span{
    padding:12px 12px;
  }
}


/* v19 money input */
.money-input input{
  padding-right:14px;
}
.money-input .unit{
  display:none;
}

/* Defensive: hide native number spinners if a browser restores number styling */
.money-input input::-webkit-outer-spin-button,
.money-input input::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}
.money-input input[type=number]{
  -moz-appearance:textfield;
}


/* v20 column alignment */
.wrap{
  align-items:start;
}
.left{
  padding-top:0;
}
.card{
  align-self:start;
}
.brand-row{
  margin-top:0;
  margin-bottom:24px;
}
.left h1{
  margin-top:0;
  margin-bottom:20px;
}
.left .lead{
  margin-bottom:30px;
}
.left .points{
  margin-top:0;
  gap:16px;
}

/* Match the visual top edge of the left content with the card */
@media(min-width:801px){
  .left{
    padding-top:8px;
  }
}

/* Mobile should remain naturally stacked */
@media(max-width:800px){
  .left{
    padding-top:0;
  }
}


/* v21 restore visible input unit while editing */
.money-input input{
  padding-right:54px;
}
.money-input .unit{
  display:block;
  position:absolute;
  right:15px;
  top:50%;
  transform:translateY(-50%);
  font-size:13px;
  color:#777;
  pointer-events:none;
}
.money-input input:not(.is-editing){
  padding-right:14px;
}
