@font-face {
  font-family: "NanumSquare Neo";
  src: url("./assets/fonts/NanumSquareNeo-Variable.woff") format("woff");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

:root {
  --blue-950: #0b132b;
  --blue-900: #121d3a;
  --blue-800: #19294d;
  --blue-700: #ff6a00;
  --blue-600: #ff8c33;
  --blue-100: #ffe3cf;
  --blue-50: #fff7f1;
  --ink: #132038;
  --muted: #68758a;
  --line: #dfe6ef;
  --white: #ffffff;
  --shadow: 0 24px 60px rgba(8, 51, 111, 0.12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; color: var(--ink); background: #fff; font-family: "NanumSquare Neo", "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; word-break: keep-all; }
button, input, select, textarea, option { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }

.site-header { height: 76px; padding: 0 max(24px, calc((100vw - 1180px) / 2)); display: flex; align-items: center; justify-content: space-between; background: rgba(255,255,255,.92); border-bottom: 1px solid rgba(220,230,242,.8); backdrop-filter: blur(14px); position: sticky; top: 0; z-index: 50; }
.brand { display: inline-flex; align-items: center; width: 198px; height: 66px; overflow: hidden; }
.brand-official { display: block; width: 100%; height: 100%; object-fit: contain; }
.main-nav { display: flex; align-items: center; gap: 34px; margin-left: auto; margin-right: 34px; }
.main-nav a { position: relative; padding: 27px 0; color: #46536a; font-size: 13px; font-weight: 750; }
.main-nav a::after { content:""; position: absolute; left: 0; right: 100%; bottom: 17px; height: 2px; background: var(--blue-700); transition: right .18s ease; }
.main-nav a:hover { color: var(--blue-950); }.main-nav a:hover::after { right: 0; }
.header-phone { margin-right: 10px; padding: 8px 13px; display: grid; grid-template-columns: 22px auto; column-gap: 8px; align-items: center; border: 1px solid #dce3ec; border-radius: 999px; color: var(--blue-950); background: #fff; }
.header-phone svg { grid-row: 1/3; width: 20px; fill: none; stroke: var(--blue-700); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.header-phone span { color: #7b8798; font-size: 9px; line-height: 1; }
.header-phone strong { font-size: 13px; line-height: 1.15; white-space: nowrap; }
.header-cta { padding: 11px 18px; border-radius: 999px; color: #fff; background: var(--blue-700); font-size: 14px; font-weight: 750; box-shadow: 0 6px 18px rgba(255,106,0,.2); }

.hero {
  min-height: 680px;
  overflow: hidden;
  position: relative;
  background-color: #081329;
  background-image:
    linear-gradient(90deg, rgba(5,15,34,.9) 0%, rgba(5,15,34,.72) 31%, rgba(5,15,34,.26) 54%, rgba(5,15,34,.03) 76%),
    linear-gradient(0deg, rgba(7,17,38,.8) 0%, rgba(7,17,38,.28) 13%, rgba(7,17,38,0) 35%),
    url("./assets/chadam-hero-original.png");
  background-repeat: no-repeat;
  background-position: center, center, center 47%;
  background-size: cover, cover, cover;
}
.hero::before { content:""; position: absolute; inset: 0; pointer-events: none; box-shadow: inset 0 -1px rgba(255,106,0,.2); }
.hero-inner { position: relative; z-index: 1; min-height: 680px; max-width: 1280px; margin: auto; padding: 88px 24px 92px; display: grid; grid-template-columns: .98fr 1.02fr; gap: 36px; align-items: center; }
.hero-copy { max-width: 610px; }
.eyebrow { margin: 0 0 14px; color: var(--blue-600); font-size: 12px; font-weight: 850; letter-spacing: .14em; }
.hero-label { display: inline-flex; max-width: 100%; margin: 0 0 17px; padding: 8px 14px; border: 1px solid rgba(255,140,51,.25); border-radius: 999px; color: #ffb37a; background: rgba(255,106,0,.09); font-size: 14px; font-weight: 600; line-height: 1.5; }
.hero h1 { margin: 0; color: #fff; font-size: clamp(40px, 4.2vw, 62px); line-height: 1.14; letter-spacing: -.055em; }
.hero h1 span { color: var(--blue-700); }
.hero-lead { max-width: 570px; margin: 24px 0 30px; color: #b7c2d7; font-size: 17px; line-height: 1.75; }
.primary-link { display: inline-flex; align-items: center; justify-content: center; gap: 12px; padding: 17px 22px; border-radius: 12px; color: #fff; background: linear-gradient(135deg, var(--blue-700), var(--blue-600)); box-shadow: 0 12px 26px rgba(255,106,0,.23); font-weight: 800; }
.primary-link svg { width: 19px; fill: none; stroke: currentColor; stroke-width: 2; }
.hero-actions { width: min(100%, 410px); display: flex; flex-direction: column; align-items: stretch; gap: 14px; }
.hero-actions .primary-link { width: 100%; min-height: 80px; padding: 18px 16px; font-size: 20px; }
.hero-contact-card { width: 100%; min-height: 88px; padding: 15px 16px; display: flex; align-items: center; gap: 16px; border: 0; border-radius: 16px; color: #0b1830; background: #fff; box-shadow: 0 12px 32px rgba(0,0,0,.24); }
.hero-contact-icons { flex-shrink: 0; display: flex; align-items: center; gap: 10px; }
.hero-call-action { display: block; flex: 0 0 48px; width: 48px; height: 48px; border-radius: 50%; }
.hero-call-icon { width: 100%; height: 100%; display: grid; place-items: center; border-radius: 50%; color: #fff; background: #ef172c; }
.hero-call-icon svg, .hero-sms-action svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.hero-contact-number { min-width: 0; display: grid; gap: 5px; text-align: left; }
.hero-contact-number > span { color: #596980; font-size: 14px; font-weight: 600; }
.hero-contact-number a { display: inline-flex; align-items: center; min-height: 28px; border-radius: 4px; }
.hero-contact-number strong { color: #0b1830; font-size: 24px; font-weight: 800; letter-spacing: -.03em; white-space: nowrap; }
.hero-sms-action { flex: 0 0 48px; width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: #ff6a00; }
.hero-call-action:hover .hero-call-icon { background: #b91c1c; }
.hero-sms-action:hover { background: #e55b00; }
@media (max-width: 760px) {
  body.is-hero-contact-visible .floating-contact { opacity: 0; pointer-events: none; }
}
.hero-points { list-style: none; display: flex; gap: 22px; flex-wrap: wrap; margin: 24px 0 0; padding: 0; color: #aebbd0; font-size: 13px; }
.hero-points span { color: var(--blue-600); font-weight: 900; }
.hero-visual { min-height: 470px; display: grid; place-items: center; position: relative; }
.visual-glow { display: none; position: absolute; width: 470px; height: 470px; border-radius: 50%; background: radial-gradient(circle, rgba(255,106,0,.18) 0, rgba(255,106,0,0) 70%); }
.brand-photo { display: none; position: relative; z-index: 2; width: min(540px, 90vw); aspect-ratio: 3/2; overflow: hidden; border: 1px solid rgba(255,140,51,.35); border-radius: 28px; background: #0b132b; box-shadow: 0 38px 85px rgba(0,0,0,.35); }
.brand-photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 68% center; }
.photo-gradient { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,19,43,0) 48%, rgba(11,19,43,.18) 66%, rgba(11,19,43,.94) 100%); }
.photo-badge { position: absolute; z-index: 2; left: 24px; right: 24px; bottom: 22px; display: grid; gap: 5px; }
.photo-badge span { color: var(--blue-600); font-size: 10px; font-weight: 900; letter-spacing: .16em; }
.photo-badge strong { color: #fff; font-size: 15px; }
.floating-chip { position: absolute; z-index: 3; padding: 12px 16px; border: 1px solid rgba(255,255,255,.7); background: rgba(255,255,255,.82); box-shadow: 0 12px 30px rgba(8,51,111,.13); backdrop-filter: blur(12px); border-radius: 999px; color: var(--blue-800); font-size: 13px; font-weight: 800; }
.chip-one { right: 2%; top: 12%; }.chip-two { left: 11%; bottom: 13%; }

.estimator-section { padding: 100px 24px 110px; background: #fff; }
.section-heading { max-width: 1180px; margin: 0 auto 38px; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.section-heading h2, .trust-section h2 { margin: 0; color: var(--blue-950); font-size: clamp(30px, 3.2vw, 44px); letter-spacing: -.045em; }
.section-heading > div > p:last-child { color: var(--muted); margin: 12px 0 0; }
.data-manage-button { min-width: 205px; padding: 12px 15px; display: grid; grid-template-columns: 32px 1fr; column-gap: 10px; align-items: center; border: 1px solid #d8e0eb; border-radius: 13px; background: #fff; cursor: pointer; text-align: left; box-shadow: 0 8px 24px rgba(11,19,43,.06); }
.data-manage-button > span { grid-row: 1/3; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; color: var(--blue-700); background: var(--blue-50); font-size: 18px; font-weight: 900; }.data-manage-button strong { color: var(--blue-950); font-size: 12px; }.data-manage-button small { margin-top: 3px; color: #7c899c; font-size: 9px; }
.estimator-shell { max-width: 1180px; margin: auto; display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 24px; align-items: start; }
.flow-panel { min-height: 650px; padding: 34px 40px 30px; border: 1px solid var(--line); border-radius: 24px; background: #fff; box-shadow: var(--shadow); }
.progress { display: grid; grid-template-columns: auto 1fr auto 1fr auto; align-items: center; padding-bottom: 30px; border-bottom: 1px solid #edf1f6; }
.progress > i { height: 1px; background: var(--line); }
.progress-step { border: 0; background: none; padding: 0 9px; display: flex; align-items: center; gap: 8px; color: #98a3b2; cursor: pointer; }
.progress-step:disabled { cursor: default; }
.progress-step span { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: #eef2f7; font-size: 12px; font-weight: 850; }
.progress-step em { font-style: normal; font-size: 12px; font-weight: 700; white-space: nowrap; }
.progress-step.is-active, .progress-step.is-done { color: var(--blue-700); }
.progress-step.is-active span { color: #fff; background: var(--blue-700); box-shadow: 0 5px 12px rgba(7,87,213,.22); }
.progress-step.is-done span { color: var(--blue-700); background: var(--blue-100); }
.form-step { display: none; padding-top: 34px; animation: stepIn .32s ease; }
.form-step.is-active { display: block; }
@keyframes stepIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.step-kicker { color: var(--blue-600); font-size: 11px; font-weight: 850; letter-spacing: .1em; }
.step-head h3 { margin: 8px 0 8px; color: var(--blue-950); font-size: 28px; letter-spacing: -.035em; }
.step-head p { margin: 0; color: var(--muted); font-size: 14px; }
fieldset { min-inline-size: 0; margin: 31px 0 0; padding: 0; border: 0; }
legend { margin-bottom: 12px; font-size: 14px; font-weight: 800; }
.option-grid { display: grid; gap: 10px; }.option-grid.three { grid-template-columns: repeat(3, 1fr); }.option-grid.two { grid-template-columns: repeat(2, 1fr); }
.choice { min-height: 112px; padding: 18px; border: 1px solid var(--line); background: #fff; border-radius: 14px; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; cursor: pointer; text-align: left; transition: .18s ease; }
.choice:hover, .origin-choice:hover, .segmented button:hover { border-color: #91bbed; background: #f8fbff; }
.choice.is-selected, .origin-choice.is-selected { border: 2px solid var(--blue-600); background: var(--blue-50); box-shadow: 0 6px 16px rgba(7,87,213,.08); }
.choice-icon { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 8px; color: var(--blue-700); background: var(--blue-100); font-size: 12px; font-weight: 900; }
.choice strong, .origin-choice strong { font-size: 15px; }.choice small, .origin-choice small { color: #8490a1; font-size: 11px; }
.choice-wide { min-height: 94px; flex-direction: row; align-items: center; gap: 13px; }
.choice-wide > span:last-child { display: flex; flex-direction: column; gap: 5px; }
.field-error, .contact-error { display: none; margin: 8px 0 0; color: #d2364d; font-size: 12px; }.field-error.is-visible, .contact-error.is-visible { display: block; }
.vehicle-origin { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 30px; }
.origin-choice { padding: 17px; border: 1px solid var(--line); background: #fff; border-radius: 14px; display: grid; grid-template-columns: 40px 1fr; column-gap: 12px; align-items: center; cursor: pointer; text-align: left; }
.origin-choice > span { grid-row: 1 / 3; width: 40px; height: 40px; display: grid; place-items: center; color: var(--blue-700); background: var(--blue-100); border-radius: 12px; font-size: 11px; font-weight: 900; }
.select-stack { display: grid; gap: 14px; margin-top: 22px; }
.select-stack label, .contact-grid label { display: grid; gap: 8px; }
.select-stack label > span, .contact-grid label > span { font-size: 13px; font-weight: 750; }
select, input { width: 100%; height: 52px; padding: 0 15px; border: 1px solid var(--line); border-radius: 11px; background: #fff; color: var(--ink); outline: none; transition: .18s ease; }
select:focus, input:focus { border-color: var(--blue-600); box-shadow: 0 0 0 3px rgba(20,115,230,.1); }
select:disabled { color: #9ba5b3; background: #f7f9fb; }
.catalog-note { margin: 15px 0 0; color: #8792a2; font-size: 11px; line-height: 1.55; }
.option-picker { margin-top: 17px; padding: 16px; border: 1px solid #e2e8f0; border-radius: 13px; background: #f8fafc; }.option-picker[hidden] { display: none; }.option-picker-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 11px; }.option-picker-head strong { font-size: 13px; }.option-picker-head span { color: #8792a2; font-size: 10px; }.option-list { display: grid; gap: 7px; }.option-item { padding: 10px 11px; display: flex; align-items: center; gap: 10px; border: 1px solid #e0e6ee; border-radius: 10px; background: #fff; cursor: pointer; }.option-item input { position: absolute; opacity: 0; width: 1px; height: 1px; }.option-check { width: 20px; height: 20px; display: grid; place-items: center; border: 1px solid #bdc7d4; border-radius: 6px; color: transparent; font-size: 11px; }.option-item input:checked + .option-check { color: #fff; border-color: var(--blue-700); background: var(--blue-700); }.option-name { flex: 1; font-size: 12px; font-weight: 700; }.option-price { color: var(--blue-700); font-size: 11px; font-weight: 800; }.option-empty { margin: 0; color: #8a96a6; font-size: 11px; }
.segmented { display: grid; gap: 8px; }.segmented.three { grid-template-columns: repeat(3,1fr); }.segmented.five { grid-template-columns: repeat(5,1fr); }.segmented.two { grid-template-columns: repeat(2,1fr); }
.segmented button { min-height: 48px; border: 1px solid var(--line); background: #fff; border-radius: 11px; cursor: pointer; font-size: 13px; font-weight: 700; }
.segmented button.is-selected { color: #fff; border-color: var(--blue-700); background: var(--blue-700); box-shadow: 0 6px 14px rgba(7,87,213,.18); }
.help { position: relative; width: 18px; height: 18px; margin-left: 3px; padding: 0; border: 1px solid #a9b3c1; background: #fff; border-radius: 50%; color: #728095; font-size: 11px; cursor: help; }
.help::after { content: attr(data-tooltip); position: absolute; z-index: 5; left: 24px; top: -9px; width: 220px; padding: 10px 12px; border-radius: 9px; color: #fff; background: var(--blue-950); font-size: 11px; line-height: 1.5; text-align: left; opacity: 0; pointer-events: none; transition: opacity .15s; }
.help:hover::after, .help:focus::after { opacity: 1; }
@media (max-width: 640px) {
  .help.mileage-help::after { left: -90px; }
}
.form-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 32px; padding-top: 23px; border-top: 1px solid #edf1f6; }
.form-actions button { min-width: 112px; height: 48px; border-radius: 11px; cursor: pointer; font-size: 14px; font-weight: 800; }
.back-button { border: 1px solid var(--line); background: #fff; }.next-button { border: 0; color: #fff; background: var(--blue-700); box-shadow: 0 7px 16px rgba(7,87,213,.2); }
.back-button[hidden], .next-button[hidden] { display: none; }
.form-actions[hidden] { display: none; }

/* Compact two-column quote summary. */
.summary-panel { position: sticky; top: 100px; padding: 18px; border-radius: 20px; color: #fff; background: #111c36; box-shadow: 0 20px 44px rgba(11,19,43,.22); overflow: hidden; }
.summary-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.summary-top h3 { margin: 0; font-size: 20px; line-height: 1.3; }
.summary-panel button { padding: 3px 0; border: 0; color: #a7c7ee; background: none; font-size: 11px; cursor: pointer; white-space: nowrap; }
.summary-top #reset-button { color: #b9c7db; font-size: 12px; }
.summary-profile { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: center; gap: 8px; }
.summary-profile > div { min-width: 0; display: flex; align-items: baseline; flex-wrap: wrap; gap: 5px; }
.summary-profile span { color: #a7b7cf; font-size: 12px; }
.summary-profile strong { font-size: 13px; font-weight: 700; line-height: 1.5; }
.summary-divider { height: 1px; margin: 8px 0; background: #34415a; }
.summary-vehicle-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.summary-vehicle-heading > div { min-width: 0; display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 6px; }
.summary-vehicle-heading strong { font-size: 15px; line-height: 1.45; }
.summary-vehicle-heading span { color: #a7c7ee; font-size: 12px; }
.summary-vehicle p { margin: 5px 0 0; color: #a7b7cf; font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.summary-options { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: baseline; gap: 7px; margin-top: 6px; }
.summary-options > span { color: #a7b7cf; font-size: 11px; }
.summary-options strong { min-width: 0; font-size: 12px; line-height: 1.5; font-weight: 600; overflow-wrap: anywhere; }
.summary-panel .is-empty { color: #a7b7cf; font-weight: 400; }
.summary-contract-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; color: #a7b7cf; font-size: 11px; }
.summary-contract-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 14px; }
.summary-contract-grid > div { min-width: 0; display: flex; align-items: baseline; justify-content: space-between; gap: 6px; }
.summary-contract-grid span { color: #a7b7cf; font-size: 12px; white-space: nowrap; }
.summary-contract-grid strong { font-size: 13px; line-height: 1.4; font-weight: 700; }
.quote-result { position: relative; margin-top: 10px; }
.quote-highlight { padding: 10px 14px; border-radius: 12px; background: #202c46; }
.quote-highlight > span { display: block; color: #a7b7cf; font-size: 12px; }
.quote-highlight > strong { display: block; margin-top: 7px; color: #fff; font-size: 26px; line-height: 1.25; letter-spacing: -.025em; }
.quote-highlight .quote-source { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); clip-path: inset(50%); white-space: nowrap; }
.quote-highlight .quote-source.model-quote-notice { position: static; width: auto; height: auto; margin: 8px 0 0; overflow: visible; clip: auto; clip-path: none; white-space: normal; color: #b4c7df; font-size: 11px; line-height: 1.5; }
.price-breakdown { margin: 10px 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 10px; }
.price-breakdown[hidden] { display: none; }
.price-breakdown > div { min-width: 0; display: flex; justify-content: space-between; align-items: baseline; gap: 4px; }
.price-breakdown > div[hidden] { display: none; }
.price-breakdown > div:first-child { grid-column: 1 / -1; }
.price-breakdown dt { color: #a7b7cf; font-size: 12px; white-space: nowrap; }
.price-breakdown dd { margin: 0; color: #fff; font-size: 12px; font-weight: 700; white-space: nowrap; }
.quote-result > small { display: block; margin-top: 8px; color: #a7b7cf; font-size: 11px; line-height: 1.5; }
.contract-application-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(260px, .85fr); gap: 24px; align-items: start; }
.contract-controls fieldset:first-child { margin-top: 31px; }
@media (min-width: 761px) {
  .contract-application-grid { align-items: stretch; }
  .contract-details { display: flex; flex-direction: column; }
  .contract-details > .contract-controls { flex: 1; display: flex; flex-direction: column; justify-content: space-between; }
  .contract-application-grid > .application-card { margin-top: 8px; padding: 20px 22px; }
  .contract-application-grid .application-head h4 { margin-top: 10px; }
  .contract-application-grid .application-head p { margin-top: 6px; }
  .contract-application-grid .contact-grid { margin-top: 16px; gap: 14px; }
  .contract-application-grid .contact-grid label { gap: 7px; }
  .contract-application-grid .contact-grid input { height: 48px; }
  .contract-application-grid .consent { margin-top: 18px; padding: 12px; }
  .contract-application-grid .complete-button { height: 50px; margin-top: 14px; }
  .contract-application-grid .safe-note { margin-top: 8px; }
}
@media (min-width: 961px) and (max-width: 1100px) {
  .contract-application-grid { grid-template-columns: minmax(0,1fr); gap: 20px; }
  .contract-application-grid > .application-card { margin-top: 0; }
}
.mobile-quote-slot { display: none; }
.mobile-wizard-bar, .mobile-selection-review { display: none; }
.application-card { margin-top: 31px; padding: 22px; border: 2px solid #ff6b00; border-radius: 18px; background: #fff6ed; box-shadow: 0 8px 24px rgba(255,107,0,.1); }
.application-head > span { display: inline-block; padding: 5px 11px; border-radius: 999px; color: #fff; background: #ff6b00; font-size: 11px; font-weight: 800; line-height: 1.4; }
.application-head h4 { margin: 12px 0 0; display: flex; align-items: center; gap: 9px; color: var(--blue-950); font-size: 24px; line-height: 1.3; letter-spacing: -.025em; }
.application-head h4::before { content: ""; flex: 0 0 4px; height: 24px; border-radius: 3px; background: #ff6b00; }
.application-head p { margin: 8px 0 0; color: #526079; font-size: 13px; line-height: 1.5; }
.application-card .contact-grid input { background: #fff; border-color: #d8cfc6; }
.application-card .contact-grid input:focus { border-color: #ff6b00; }
.application-card .consent { border-color: #e2d8cf; background: #fff; }
.application-card .consent small { color: #657186; font-size: 11px; line-height: 1.5; }
.application-card .safe-note { color: #657186; line-height: 1.5; }
.contact-grid { display: grid; grid-template-columns: 1fr; gap: 15px; margin-top: 20px; }.contact-grid label > span b { color: #e03e55; }
.consent { margin-top: 20px; padding: 14px; display: flex; align-items: center; gap: 11px; border: 1px solid var(--line); border-radius: 12px; cursor: pointer; }
.consent input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.checkmark { flex: 0 0 22px; height: 22px; display: grid; place-items: center; border: 1px solid #bdc7d4; border-radius: 6px; color: transparent; font-size: 13px; }
.consent input:checked + .checkmark { color: #fff; border-color: var(--blue-700); background: var(--blue-700); }.consent > span:last-child { display: grid; gap: 4px; }.consent strong { font-size: 12px; }.consent small { color: #7c8899; font-size: 10px; }
.complete-button { width: 100%; height: 54px; margin-top: 16px; border: 0; border-radius: 12px; color: #fff; background: var(--blue-700); font-weight: 850; cursor: pointer; box-shadow: 0 8px 18px rgba(7,87,213,.2); }
.safe-note { margin: 9px 0 0; color: #8a95a4; font-size: 10px; text-align: center; }
.completion { display: none; margin-top: 18px; padding: 16px; align-items: center; justify-content: center; gap: 12px; text-align: center; border: 1px solid #a8dfc2; border-radius: 13px; background: #f0fbf5; }.completion.is-visible { display: flex; }.completion > .completion-icon { flex-shrink: 0; }.completion > div { min-width: 0; }
.completion-icon { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: #159a59; font-weight: 900; }.completion strong { color: #126a40; font-size: 13px; }.completion p { margin: 4px 0 0; color: #587365; font-size: 10px; line-height: 1.5; }.completion button { padding: 8px 9px; border: 1px solid #90cfaf; border-radius: 8px; color: #126a40; background: #fff; font-size: 11px; cursor: pointer; }

.trust-section { max-width: 1180px; margin: 0 auto; padding: 90px 24px 110px; display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; align-items: center; }
.trust-section > div > p:last-child { margin: 18px 0 0; color: var(--muted); line-height: 1.75; font-size: 15px; }
.trust-section ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.trust-section li { display: grid; grid-template-columns: 50px 1fr; padding: 20px 22px; border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.trust-section li > span { grid-row: 1/3; color: var(--blue-600); font-size: 13px; font-weight: 900; }.trust-section li strong { font-size: 15px; }.trust-section li p { margin: 5px 0 0; color: var(--muted); font-size: 12px; }
footer { padding: 30px max(24px, calc((100vw - 1180px)/2)); display: flex; justify-content: space-between; gap: 30px; color: #96a8bd; background: var(--blue-950); font-size: 11px; }
.footer-brand { display: flex; align-items: center; gap: 12px; }.footer-brand strong { color: #fff; font-size: 20px; }.footer-brand span { color: #9fb6cf; }
.footer-contact { display: grid; justify-items: end; gap: 5px; text-align: right; }.footer-contact a { color: #dce7f5; font-size: 12px; }.footer-contact a strong { color: #fff; font-size: 14px; }.footer-contact p { margin: 0; }
.business-footer { align-items: start; flex-wrap: wrap; }
.footer-company { min-width: 0; flex: 1 1 620px; }
.footer-business-info { display: flex; flex-wrap: wrap; gap: 7px 22px; margin: 18px 0 0; color: #b8c7d9; font-size: 12px; line-height: 1.8; }
.footer-business-info > div { display: flex; flex-wrap: wrap; column-gap: 8px; }
.footer-business-info dt { color: #94a9c1; }
.footer-business-info dd { margin: 0; overflow-wrap: anywhere; }
.footer-business-info .footer-address { flex-basis: 100%; }
.business-footer .footer-contact { flex: 0 1 320px; line-height: 1.8; }
@media (max-width: 760px) {
  .business-footer .footer-company, .business-footer .footer-contact { flex: 0 1 auto; }
  .business-footer .footer-brand { flex-wrap: wrap; gap: 5px 12px; }
  .footer-business-info { gap: 6px 16px; font-size: 11px; }
  .footer-business-info .footer-address { display: block; }
}
.floating-contact { position: fixed; z-index: 75; right: max(8px, env(safe-area-inset-right)); top: auto; bottom: max(24px, env(safe-area-inset-bottom)); display: flex; flex-direction: row; gap: 8px; transform: none; }
.floating-contact-item { width: 72px; min-height: 82px; padding: 8px 5px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; border: 0; border-radius: 18px; cursor: pointer; box-shadow: 0 13px 30px rgba(11,19,43,.18); transition: transform .18s ease, box-shadow .18s ease; }
.floating-contact-item:hover { transform: translateY(-3px); box-shadow: 0 17px 34px rgba(11,19,43,.24); }
.floating-contact-item strong { font-size: 11px; line-height: 1; white-space: nowrap; }
.floating-contact-item[hidden] { display: none; }
@media (min-width: 761px) and (max-width: 1399px) {
  .estimator-section { padding-right: 96px; }
}
@media (min-width: 641px) and (max-width: 1399px) {
  .floating-contact { flex-direction: column; }
}
@media (min-width: 1400px) and (max-width: 1559px) {
  .estimator-section { padding-right: 176px; }
}
.floating-kakao { color: #241f00; background: #fee500; }
.floating-phone { color: #fff; background: linear-gradient(145deg, #dc2626, #b91c1c); }
.floating-sms { color: #fff; background: linear-gradient(145deg, #ff7a00, #e85d04); }
.contact-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; color: inherit; background: rgba(255,255,255,.15); }
.contact-icon svg { width: 25px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.kakao-icon { color: #fee500; background: #241f00; font-size: 9px; font-weight: 950; letter-spacing: -.04em; }
.mobile-fixed-bar { display: none; }
.data-modal[hidden] { display: none; }.data-modal { position: fixed; z-index: 120; inset: 0; display: grid; place-items: center; padding: 24px; }.data-modal-backdrop { position: absolute; inset: 0; background: rgba(6,12,28,.72); backdrop-filter: blur(5px); }.data-dialog { position: relative; width: min(720px, 100%); max-height: min(820px, calc(100vh - 40px)); overflow-y: auto; padding: 28px; border-radius: 22px; background: #fff; box-shadow: 0 30px 100px rgba(0,0,0,.35); }.data-dialog-head { display: flex; justify-content: space-between; gap: 20px; }.data-dialog-head span { color: var(--blue-700); font-size: 9px; font-weight: 900; letter-spacing: .13em; }.data-dialog-head h2 { margin: 5px 0 0; color: var(--blue-950); font-size: 23px; letter-spacing: -.035em; }.modal-close { width: 34px; height: 34px; border: 1px solid #dfe5ed; border-radius: 50%; background: #fff; color: #778397; cursor: pointer; font-size: 22px; line-height: 1; }.data-status-card { margin-top: 21px; padding: 16px 18px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 20px; border-radius: 14px; color: #fff; background: linear-gradient(135deg, var(--blue-900), var(--blue-950)); }.data-status-card > div { display: grid; gap: 4px; }.data-status-card span { color: #aebbd0; font-size: 9px; }.data-status-card strong { font-size: 13px; }.data-status-card small { color: #8fa1bd; font-size: 9px; }.data-status-card dl { display: flex; gap: 20px; margin: 0; }.data-status-card dl > div { text-align: center; }.data-status-card dt { color: #9baac0; font-size: 9px; }.data-status-card dd { margin: 4px 0 0; color: #ff9b54; font-size: 17px; font-weight: 900; }.data-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 15px; }.data-actions button, .upload-button { min-height: 74px; padding: 14px; display: grid; grid-template-columns: 30px 1fr; column-gap: 9px; align-items: center; border: 1px solid #dfe5ed; border-radius: 13px; background: #fff; cursor: pointer; text-align: left; }.data-actions button > span, .upload-button > span { grid-row: 1/3; width: 30px; height: 30px; display: grid; place-items: center; color: var(--blue-700); background: var(--blue-50); border-radius: 8px; font-size: 17px; font-weight: 900; }.data-actions strong { font-size: 12px; }.data-actions small { color: #8390a1; font-size: 9px; }.upload-button input { position: absolute; width: 1px; height: 1px; opacity: 0; }.upload-result { display: none; margin-top: 12px; padding: 11px 13px; border-radius: 10px; font-size: 11px; line-height: 1.5; white-space: pre-line; }.upload-result.is-success { display: block; color: #0f6d40; background: #ecf9f2; }.upload-result.is-error { display: block; color: #b42338; background: #fff0f2; }.sheet-guide { margin-top: 18px; }.sheet-guide h3 { margin: 0 0 9px; font-size: 13px; }.sheet-guide ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; }.sheet-guide li { padding: 10px 11px; display: grid; grid-template-columns: 72px 1fr; gap: 9px; border-radius: 9px; background: #f7f9fc; }.sheet-guide strong { color: var(--blue-900); font-size: 10px; }.sheet-guide span { color: #748195; font-size: 9px; line-height: 1.5; }.formula-guide { margin-top: 13px; padding: 11px 12px; border: 1px solid #e1e7ef; border-radius: 10px; }.formula-guide summary { color: var(--blue-900); font-size: 11px; font-weight: 800; cursor: pointer; }.formula-guide p { margin: 8px 0 0; color: #718095; font-size: 10px; line-height: 1.6; }.local-data-note { margin: 13px 0 0; color: #8390a1; font-size: 9px; line-height: 1.55; }.data-dialog-foot { margin-top: 20px; padding-top: 15px; display: flex; justify-content: space-between; gap: 10px; border-top: 1px solid #edf1f5; }.data-dialog-foot button { padding: 11px 14px; border-radius: 10px; cursor: pointer; font-size: 11px; font-weight: 800; }.data-dialog-foot > button:first-child { border: 1px solid #dfe5ed; color: #6f7b8d; background: #fff; }.data-dialog-foot .data-done { border: 0; color: #fff; background: var(--blue-700); }
.admin-page { min-height: 100vh; background: #f3f6fb; }
.admin-header { min-height: 76px; padding: 8px max(24px, calc((100vw - 980px) / 2)); display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #dfe6ef; background: #fff; }
.admin-only-badge { padding: 8px 12px; border-radius: 999px; color: #fff; background: var(--blue-950); font-size: 12px; font-weight: 800; }
.admin-main { width: min(980px, calc(100% - 40px)); margin: 0 auto; padding: 54px 0 80px; }
.admin-panel { padding: 34px; border: 1px solid var(--line); border-radius: 24px; background: #fff; box-shadow: var(--shadow); }
.admin-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.admin-title-row > div > span { color: var(--blue-700); font-size: 11px; font-weight: 900; letter-spacing: .13em; }
.admin-title-row h1 { margin: 7px 0 0; color: var(--blue-950); font-size: 30px; letter-spacing: -.04em; }
.admin-title-row p { margin: 10px 0 0; color: var(--muted); font-size: 16px; line-height: 1.65; }
.admin-back { flex: 0 0 auto; padding: 11px 14px; border: 1px solid #dfe5ed; border-radius: 10px; color: var(--blue-900); background: #fff; font-size: 13px; font-weight: 800; }
.admin-panel .sheet-guide h2 { margin: 0 0 9px; font-size: 15px; }
.admin-panel .data-dialog-foot .data-done { display: inline-flex; align-items: center; justify-content: center; padding: 11px 18px; border-radius: 10px; font-size: 11px; font-weight: 800; }
.toast { position: fixed; left: 50%; bottom: 28px; z-index: 100; padding: 12px 17px; border-radius: 999px; color: #fff; background: #17283d; box-shadow: 0 12px 30px rgba(0,0,0,.18); font-size: 12px; opacity: 0; transform: translate(-50%, 12px); pointer-events: none; transition: .2s ease; }.toast.is-visible { opacity: 1; transform: translate(-50%, 0); }

@media (max-width: 960px) {
  .main-nav { display: none; }.header-phone { margin-left: auto; }.hero { background: radial-gradient(circle at 64% 18%, #1b2d53 0%, #121d3a 32%, #0b132b 78%); }.hero::before { width: 540px; height: 540px; inset: auto auto -210px -260px; border: 90px solid rgba(255,106,0,.055); border-radius: 50%; box-shadow: none; }.hero-inner { grid-template-columns: 1fr; padding-top: 64px; text-align: center; }.hero-copy { max-width: none; display: flex; flex-direction: column; align-items: center; }.hero-visual { min-height: 360px; }.visual-glow, .brand-photo { display: block; }.hero-lead { max-width: 660px; }.chip-one { right: 1%; top: 17%; }.chip-two { left: 1%; bottom: 20%; }.estimator-shell { grid-template-columns: 1fr; }.flow-panel { order: 1; }.summary-panel { position: static; order: 2; }.summary-group { grid-template-columns: 1fr 1fr; }.summary-divider { margin: 13px 0; }.quote-result { display: block; }.trust-section { grid-template-columns: 1fr; gap: 35px; }
}

@media (max-width: 760px) {
  .contract-application-grid { grid-template-columns: 1fr; gap: 0; }
  .mobile-quote-slot { display: block; scroll-margin-top: 82px; }
  .mobile-quote-slot .summary-panel { display: block; position: static; margin-top: 24px; padding: 16px; border-radius: 16px; background: #111c36; box-shadow: 0 10px 24px rgba(11,19,43,.12); }
  .mobile-quote-slot .summary-top { margin-bottom: 10px; }
  .mobile-quote-slot .summary-top h3 { font-size: 19px; }
  .mobile-quote-slot .quote-highlight { margin-bottom: 10px; padding: 12px 14px; }
  .mobile-quote-slot .quote-highlight > span { color: #ff9b47; font-size: 12px; font-weight: 800; }
  .mobile-quote-slot .quote-highlight > strong { margin-top: 6px; font-size: 28px; }
  .mobile-quote-slot .summary-profile { gap: 6px; }
  .mobile-quote-slot .summary-profile > div { gap: 4px; }
  .mobile-quote-slot .summary-profile strong { font-size: 12px; }
  .mobile-quote-slot .summary-divider { margin: 7px 0; }
  .mobile-quote-slot .summary-vehicle-heading strong { font-size: 15px; }
  .mobile-quote-slot .summary-vehicle-heading span { padding: 2px 5px; border-radius: 4px; background: #203c65; font-size: 11px; }
  .mobile-quote-slot .summary-vehicle p { margin-top: 3px; font-size: 12px; line-height: 1.45; }
  .mobile-quote-slot .summary-options { margin-top: 7px; gap: 5px; }
  .mobile-quote-slot .summary-options strong { font-size: 12px; line-height: 1.45; }
  .mobile-quote-slot .summary-contract-heading { margin-bottom: 3px; }
  .mobile-quote-slot .summary-contract-grid { gap: 4px 12px; }
  .mobile-quote-slot .summary-contract-grid strong { font-size: 12px; }
  .mobile-quote-slot .quote-result { margin-top: 8px; padding: 8px 0 0; border-top: 1px solid #34415a; background: none; box-shadow: none; }
  .mobile-quote-slot .price-breakdown { margin-top: 0; gap: 7px 10px; }
  .mobile-quote-slot .price-breakdown dt { font-size: 11px; }
  .mobile-quote-slot .price-breakdown dd { font-size: 12px; }
  .mobile-quote-slot .quote-result > small { margin-top: 7px; color: #a7b7cf; font-size: 10px; line-height: 1.45; }
  .application-card { margin-top: 12px; }

  body.is-quote-flow { overflow: hidden; background: #f5f7fb; }
  body.is-quote-flow .site-header,
  body.is-quote-flow .hero,
  body.is-quote-flow .section-heading,
  body.is-quote-flow .trust-section,
  body.is-quote-flow footer,
  body.is-quote-flow .mobile-fixed-bar { display: none; }
  body.is-quote-flow .floating-contact { display: none; }
  body.is-quote-flow .estimator-section { position: fixed; z-index: 200; inset: 0; min-height: 100dvh; padding: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; background: #f5f7fb; }
  body.is-quote-flow .estimator-shell { display: block; min-height: 100%; }
  body.is-quote-flow .flow-panel { min-height: 100dvh; padding: 0 16px; border: 0; border-radius: 0; box-shadow: none; background: #fff; }
  body.is-quote-flow .mobile-wizard-bar { position: sticky; z-index: 12; top: 0; height: 58px; margin: 0 -16px; padding: 0 16px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; border-bottom: 1px solid #e8edf4; background: rgba(255,255,255,.97); backdrop-filter: blur(12px); }
  body.is-quote-flow .mobile-wizard-bar button { justify-self: start; min-width: 58px; padding: 8px 0; border: 0; background: none; color: #43516a; font-size: 22px; cursor: pointer; text-align: left; }
  body.is-quote-flow .mobile-wizard-bar button span { margin-left: 2px; font-size: 14px; font-weight: 750; vertical-align: 2px; }
  body.is-quote-flow .mobile-wizard-bar strong { color: var(--blue-950); font-size: 16px; }
  body.is-quote-flow .mobile-wizard-bar > span { justify-self: end; min-width: 46px; padding: 6px 9px; border-radius: 999px; color: var(--blue-700); background: var(--blue-50); font-size: 12px; font-weight: 850; text-align: center; }
  body.is-quote-flow .progress { position: sticky; z-index: 11; top: 58px; margin: 0 -16px; padding: 14px 16px 12px; border-bottom: 1px solid #e8edf4; background: rgba(255,255,255,.97); backdrop-filter: blur(12px); }
  body.is-quote-flow .progress-step { flex-direction: column; gap: 4px; padding: 0 2px; }
  body.is-quote-flow .progress-step em { display: block; font-size: 11px; }
  body.is-quote-flow #quote-form { min-height: calc(100dvh - 115px); display: flex; flex-direction: column; }
  body.is-quote-flow .form-step.is-active { flex: 1; padding: 26px 2px 24px; }
  body.is-quote-flow #quote-form[data-direction="forward"] .form-step.is-active { animation: mobilePageNext .28s ease; }
  body.is-quote-flow #quote-form[data-direction="back"] .form-step.is-active { animation: mobilePageBack .28s ease; }
  body.is-quote-flow .form-actions { position: sticky; z-index: 10; bottom: 0; margin: auto -16px 0; padding: 12px 16px max(12px, env(safe-area-inset-bottom)); border-top: 1px solid #e5eaf1; background: rgba(255,255,255,.97); box-shadow: 0 -10px 28px rgba(11,19,43,.07); backdrop-filter: blur(12px); }
  body.is-quote-flow .form-actions button { min-height: 52px; }
  body.is-quote-flow .toast { z-index: 300; bottom: calc(76px + env(safe-area-inset-bottom)); }
  body.is-quote-flow .mobile-selection-review { margin: 22px 0 0; padding: 4px 14px; display: grid; border: 1px solid #e1e7ef; border-radius: 14px; background: #f8fafc; }
  body.is-quote-flow .mobile-selection-review > div { min-width: 0; padding: 11px 0; display: grid; grid-template-columns: 72px minmax(0,1fr) auto; align-items: center; gap: 8px; }
  body.is-quote-flow .mobile-selection-review > div + div { border-top: 1px solid #e5eaf1; }
  body.is-quote-flow .mobile-selection-review span { color: #778498; font-size: 12px; }
  body.is-quote-flow .mobile-selection-review strong { overflow: hidden; color: var(--blue-950); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
  body.is-quote-flow .mobile-selection-review button { padding: 5px 2px; border: 0; color: var(--blue-700); background: none; font-size: 12px; font-weight: 800; cursor: pointer; }
}

@keyframes mobilePageNext { from { opacity: 0; transform: translateX(22px); } to { opacity: 1; transform: none; } }
@keyframes mobilePageBack { from { opacity: 0; transform: translateX(-22px); } to { opacity: 1; transform: none; } }

@media (max-width: 640px) {
  .site-header { height: 66px; padding: 0 14px; }.brand { width: 150px; height: 54px; }.header-phone { margin-right: 0; padding: 8px 11px; grid-template-columns: 17px auto; column-gap: 6px; }.header-phone svg { width: 17px; }.header-phone span { display: none; }.header-phone strong { font-size: 12px; }.header-cta { display: none; }
  .hero, .hero-inner { min-height: auto; }.hero-inner { padding: 58px 20px 54px; gap: 24px; }.hero h1 { font-size: 38px; }.hero-lead { margin: 19px 0 25px; font-size: 15px; }.hero-actions { width: 100%; flex-direction: column; }.primary-link { width: 100%; }.hero-contact-card { width: 100%; max-width: 410px; text-align: left; }.hero-contact-card { gap: 12px; padding: 14px; }.hero-contact-number strong { font-size: 24px; }.hero-points { justify-content: center; gap: 8px 14px; }.hero-visual { min-height: 270px; }.brand-photo { width: 96%; border-radius: 20px; }.photo-badge { left: 17px; right: 17px; bottom: 15px; text-align: left; }.photo-badge strong { font-size: 12px; }.floating-chip { font-size: 10px; padding: 9px 11px; }.chip-one { right: 0; top: 7%; }.chip-two { left: 0; top: 22%; bottom: auto; }
  .estimator-section { padding: 72px 16px 80px; }.section-heading { margin-bottom: 25px; flex-direction: column; align-items: stretch; }.section-heading h2 { font-size: 30px; }.data-manage-button { width: 100%; }.flow-panel { min-height: 0; padding: 24px 17px 20px; border-radius: 18px; }.progress { padding-bottom: 22px; }.progress-step { padding: 0 4px; }.progress-step em { display: none; }.progress-step span { width: 27px; height: 27px; }.form-step { padding-top: 26px; }.step-head h3 { font-size: 23px; }.step-head p { line-height: 1.55; }.option-grid.three { gap: 7px; }.choice { min-height: 105px; padding: 13px 10px; }.choice small { font-size: 10px; }.option-grid.two { grid-template-columns: 1fr; }.vehicle-origin { gap: 8px; }.origin-choice { padding: 13px 10px; grid-template-columns: 34px 1fr; column-gap: 8px; }.origin-choice > span { width: 34px; height: 34px; }.segmented.five { gap: 5px; }.segmented.five button { padding: 0; font-size: 12px; }.option-picker-head { align-items: flex-start; flex-direction: column; gap: 4px; }.application-card { padding: 20px 16px; }.form-actions { justify-content: stretch; }.form-actions button { flex: 1; }.summary-panel { padding: 22px 20px; border-radius: 18px; }.summary-group { grid-template-columns: 1fr; }.summary-group > div { grid-template-columns: 70px 1fr auto; }.quote-result { display: block; }.contact-grid { grid-template-columns: 1fr; }.completion { grid-template-columns: auto 1fr; }.completion button { grid-column: 1/-1; }.trust-section { padding: 65px 20px 75px; }.trust-section h2 { font-size: 30px; }.trust-section li { padding: 18px 16px; grid-template-columns: 40px 1fr; }.trust-section li p { line-height: 1.5; } footer { max-width: 100%; padding: 27px 20px 105px; flex-direction: column; gap: 12px; line-height: 1.6; overflow: hidden; }.footer-contact { justify-items: start; text-align: left; }.floating-contact { top: auto; right: 14px; bottom: calc(88px + env(safe-area-inset-bottom)); flex-direction: row; gap: 8px; transform: none; }.floating-contact-item { width: 58px; min-height: 64px; padding: 6px 4px; border-radius: 15px; }.floating-contact-item strong { font-size: 9px; }.contact-icon { width: 34px; height: 34px; }.contact-icon svg { width: 21px; }.mobile-fixed-bar { position: fixed; z-index: 80; left: 10px; right: auto; bottom: 10px; width: calc(100vw - 20px); max-width: calc(100% - 20px); height: 66px; padding: 7px; display: flex; gap: 6px; overflow: hidden; border: 1px solid rgba(255,255,255,.18); border-radius: 19px; background: rgba(11,19,43,.96); box-shadow: 0 12px 35px rgba(0,0,0,.28); backdrop-filter: blur(15px); }.mobile-fixed-bar a { min-width: 0; width: 0; flex: 1 1 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; overflow: hidden; border-radius: 13px; color: #aebbd0; font-size: 10px; }.mobile-fixed-bar a > span { font-size: 15px; line-height: 1; }.mobile-fixed-bar strong { display: block; width: 100%; overflow: hidden; font-size: 10px; text-align: center; text-overflow: ellipsis; white-space: nowrap; }.mobile-fixed-bar .mobile-primary { color: #fff; background: linear-gradient(135deg, var(--blue-700), var(--blue-600)); }.mobile-fixed-bar .mobile-primary strong { font-size: 11px; }.data-modal { padding: 10px; }.data-dialog { padding: 20px 16px; max-height: calc(100vh - 20px); border-radius: 17px; }.data-dialog-head h2 { font-size: 19px; }.data-status-card { grid-template-columns: 1fr; }.data-status-card dl { justify-content: space-between; }.data-actions { grid-template-columns: 1fr; }.sheet-guide li { grid-template-columns: 63px 1fr; }.data-dialog-foot { flex-direction: column; }.data-dialog-foot button { width: 100%; }
}

@media (max-width: 640px) {
  .admin-header { min-height: 68px; padding: 5px 16px; }
  .admin-header .brand { width: 168px; transform: scale(.86); transform-origin: left center; }
  .admin-main { width: min(100% - 24px, 980px); padding: 22px 0 40px; }
  .admin-panel { padding: 22px 16px; border-radius: 18px; }
  .admin-title-row { flex-direction: column; gap: 16px; }
  .admin-title-row h1 { font-size: 24px; }
  .admin-back { width: 100%; text-align: center; }
  .admin-panel .data-status-card { grid-template-columns: 1fr; }
  .admin-panel .data-status-card dl { justify-content: space-between; }
  .admin-panel .data-actions { grid-template-columns: 1fr; }
  .admin-panel .sheet-guide li { grid-template-columns: 63px 1fr; }
  .admin-panel .data-dialog-foot { flex-direction: column; }
  .admin-panel .data-dialog-foot button, .admin-panel .data-dialog-foot .data-done { width: 100%; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } }

/* 2026-10-27: 모바일 상담버튼이 다음 단계 버튼을 가리지 않도록, 단계 제목 포커스 테두리 제거 */
.step-head h3:focus { outline: none; }
@media (max-width: 760px) { body.is-form-actions-visible .floating-contact { opacity: 0; pointer-events: none; } .floating-contact { transition: opacity .2s ease; } }
.hero h1 { word-break: keep-all; }

/* Allow intrinsic form and grid content to shrink on small screens. */
@media (max-width: 960px) { .summary-panel { position: relative; top: auto; } }
.hero-inner > *, .estimator-shell > *, .contract-application-grid > *,
.select-stack label, .contact-grid label, select, input { min-width: 0; }
.summary-group strong, .option-name { min-width: 0; overflow-wrap: anywhere; }
.preview-notice { padding: 12px 16px; border-left: 3px solid var(--blue-700); background: var(--blue-50); font-size: 13px; line-height: 1.65; }
:is(a, button):focus-visible { outline: 3px solid #ad4500; outline-offset: 4px; }
.help::after { visibility: hidden; }
.help:hover::after, .help:focus::after { visibility: visible; }
@media (max-width: 640px) {
  .visual-glow { width: 100%; max-width: 100%; height: auto; aspect-ratio: 1; }
  .hero h1 { font-size: clamp(30px, 9.7vw, 38px); }
  .option-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .help::after { left: -50px; top: 28px; max-width: calc(100vw - 60px); }
  .toast { max-width: calc(100vw - 32px); width: max-content; white-space: normal; text-align: center; }
}
@media (max-width: 360px) {
  .hero-actions .primary-link { min-height: 64px; padding: 16px 10px; gap: 8px; font-size: 15px; }
  .hero-contact-card { padding: 14px 10px; gap: 10px; }
  .hero-contact-icons { gap: 6px; }
  .hero-contact-card .hero-call-action, .hero-contact-card .hero-sms-action { flex-basis: 44px; width: 44px; height: 44px; min-height: 44px; }
  .hero-contact-number > span { font-size: 12px; }
  .hero-contact-number strong { font-size: 19px; }
}

@media (max-width: 360px) {
  .mobile-quote-slot .summary-panel { padding: 13px; }
  .mobile-quote-slot .summary-contract-grid { column-gap: 8px; }
  .mobile-quote-slot .price-breakdown { column-gap: 8px; }
  .mobile-quote-slot .price-breakdown dd { font-size: 11px; }
}

/* Vehicle-independent quick consultation. */
.quick-consult-page { background: #f6f8fb; }
.quick-consult-main { width: min(840px, calc(100% - 40px)); margin: 0 auto; padding: 30px 0 48px; scroll-margin-top: 92px; }
.quick-consult-main [hidden] { display: none; }
.quick-back-link { display: inline-block; padding: 7px 0; color: #68758a; font-size: 13px; }
.quick-consult-intro { margin-top: 12px; }
.quick-consult-intro h1 { margin: 0; color: var(--blue-950); font-size: 32px; letter-spacing: -.035em; }
.quick-consult-intro p { margin: 12px 0 0; color: #68758a; font-size: 15px; line-height: 1.75; }
.quick-consult-layout { margin-top: 24px; display: grid; grid-template-columns: minmax(0, 454px) minmax(0, 1fr); align-items: stretch; gap: 28px; }
.quick-consult-layout > * { min-width: 0; }
.quick-consult-card { margin-top: 0; padding: 24px; }
.quick-consult-card .contact-grid { gap: 16px; margin-top: 16px; }
.quick-consult-card .consent { margin-top: 16px; padding: 12px; }
.quick-consult-card .complete-button { margin-top: 14px; }
.quick-consult-card .quick-optional { margin-left: 5px; color: #7b8798; font-size: 11px; font-weight: 500; }
.quick-consult-card textarea { width: 100%; min-width: 0; min-height: 80px; padding: 12px 15px; border: 1px solid #d8cfc6; border-radius: 11px; outline: none; background: #fff; color: var(--ink); font-size: 14px; line-height: 1.65; resize: vertical; }
.quick-consult-card textarea:focus { border-color: #ff6b00; box-shadow: 0 0 0 3px rgba(255,107,0,.1); }
.quick-consult-card input[aria-invalid="true"] { border-color: #d2364d; }
.quick-consult-card .consent:has(input[aria-invalid="true"]) { border-color: #d2364d; }
.quick-consult-card .consent:has(input:focus-visible) { outline: 3px solid rgba(255,107,0,.3); outline-offset: 2px; }
.quick-field-error { display: block; margin: 0; color: #c92d45; font-size: 12px; line-height: 1.5; }
.quick-field > .quick-field-error { margin-top: 8px; }
.quick-consult-card > .quick-field-error { margin-top: 8px; }
.quick-request-preview { margin-top: 24px; padding: 20px; border: 1px solid #a8dfc2; border-radius: 12px; background: #f0fbf5; text-align: center; }
.quick-request-preview h2 { margin: 0; color: #126a40; font-size: 16px; line-height: 1.5; }
.quick-request-preview > p { margin: 6px 0 0; color: #587365; font-size: 12px; line-height: 1.6; }
.quick-request-preview dl { margin: 18px 0; display: grid; gap: 14px; }
.quick-request-preview dl > div { display: grid; grid-template-columns: 68px minmax(0,1fr); gap: 12px; font-size: 13px; line-height: 1.6; }
.quick-request-preview dt { color: #68758a; }
.quick-request-preview dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.quick-preview-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.quick-preview-actions button { min-height: 40px; padding: 9px 15px; border: 1px solid #dfe6ef; border-radius: 9px; background: #fff; cursor: pointer; font-size: 12px; font-weight: 700; }
.quick-preview-actions button:last-child { color: #fff; background: #17243f; border-color: #17243f; }
.quick-consult-sidebar { display: grid; grid-template-rows: auto 1fr; gap: 18px; }
.quick-direct-card, .quick-quote-card { padding: 25px; border-radius: 18px; }
.quick-direct-card { color: #fff; background: #111c36; box-shadow: 0 12px 30px rgba(17,28,54,.14); }
.quick-side-kicker { display: block; color: #adc7ee; font-size: 12px; font-weight: 750; }
.quick-consult-sidebar h2 { margin: 13px 0 0; font-size: 24px; line-height: 1.45; letter-spacing: -.03em; }
.quick-consult-sidebar p { margin: 12px 0 0; color: #c0cee0; font-size: 13px; line-height: 1.75; }
.quick-side-phone { display: inline-block; margin-top: 22px; font-size: 25px; line-height: 1.4; font-weight: 850; letter-spacing: -.035em; white-space: nowrap; }
.quick-direct-actions { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; margin-top: 18px; }
.quick-direct-actions a { min-height: 50px; padding: 10px 8px; display: flex; align-items: center; justify-content: center; gap: 7px; border-radius: 11px; font-size: 13px; font-weight: 750; }
.quick-direct-actions svg { width: 20px; height: 20px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.quick-call-button { background: #d9232e; }
.quick-sms-button { background: #f56a08; }
.quick-quote-card { border: 1px solid #ffd3af; background: #fff; }
.quick-quote-card .quick-side-kicker { color: #d65400; }
.quick-quote-card h2 { color: #111c36; font-size: 21px; }
.quick-quote-card p { color: #68758a; }
.quick-quote-card > a { min-height: 50px; margin-top: 20px; padding: 12px 14px; display: flex; align-items: center; justify-content: space-between; gap: 8px; border-radius: 11px; color: #fff; background: #ff6b00; font-size: 13px; font-weight: 750; }
.quick-consult-page footer { padding-top: 25px; padding-bottom: 30px; }
@media (max-width: 860px) {
  .quick-consult-main { width: min(680px, calc(100% - 40px)); }
  .quick-consult-layout { grid-template-columns: minmax(0,1fr); gap: 22px; }
  .quick-consult-sidebar { position: static; }
}
@media (max-width: 640px) {
  .has-quick-consult .header-phone { display: none; }
  .has-quick-consult .header-cta { display: inline-flex; align-items: center; justify-content: center; padding: 10px 15px; font-size: 13px; white-space: nowrap; }
  .quick-consult-main { width: calc(100% - 32px); padding: 18px 0 36px; scroll-margin-top: 80px; }
  .quick-consult-intro { margin-top: 10px; }
  .quick-consult-intro h1 { font-size: 27px; }
  .quick-consult-intro p { font-size: 13px; }
  .quick-consult-layout { margin-top: 20px; }
  .quick-consult-card { padding: 22px 17px; }
  .quick-consult-card .application-head p { font-size: 12px; }
  .quick-consult-card .contact-grid { gap: 17px; }
  .quick-request-preview { padding: 15px; }
  .quick-request-preview dl > div { grid-template-columns: 52px minmax(0,1fr); gap: 8px; }
  .quick-direct-card, .quick-quote-card { padding: 23px; }
  .quick-consult-page footer { padding-bottom: 25px; }
}

/* Match the mobile quote card on desktop. */
@media (min-width: 761px) {
  .summary-panel { padding: 16px; border-radius: 16px; }
  .summary-panel .summary-top { margin-bottom: 10px; }
  .summary-panel .summary-top h3 { font-size: 19px; }
  .summary-panel > .quote-highlight { margin-bottom: 10px; padding: 12px 14px; }
  .summary-panel .quote-highlight > span { color: #ff9b47; font-size: 12px; font-weight: 800; }
  .summary-panel .quote-highlight > strong { margin-top: 6px; font-size: 28px; }
  .summary-panel .summary-profile { gap: 6px; }
  .summary-panel .summary-profile > div { gap: 4px; }
  .summary-panel .summary-profile strong { font-size: 12px; }
  .summary-panel .summary-divider { margin: 7px 0; }
  .summary-panel .summary-vehicle-heading span { padding: 2px 5px; border-radius: 4px; background: #203c65; font-size: 11px; }
  .summary-panel .summary-vehicle p { margin-top: 3px; font-size: 12px; line-height: 1.45; }
  .summary-panel .summary-options { margin-top: 7px; gap: 5px; }
  .summary-panel .summary-options strong { font-size: 12px; line-height: 1.45; }
  .summary-panel .summary-contract-heading { margin-bottom: 3px; }
  .summary-panel .summary-contract-grid { gap: 4px 12px; }
  .summary-panel .summary-contract-grid strong { font-size: 12px; }
  .summary-panel .quote-result { margin-top: 8px; padding: 8px 0 0; border-top: 1px solid #34415a; }
  .summary-panel .price-breakdown { margin-top: 0; gap: 7px 10px; }
  .summary-panel .price-breakdown dt { font-size: 11px; }
  .summary-panel .quote-result > small { margin-top: 7px; font-size: 10px; line-height: 1.45; }
}
