:root {
  --ink: #28221f;
  --paper: #fffefa;
  --rose: #9c6c65;
  --rose-deep: #5f4540;
  --blush: #e8d7d1;
  --sand: #f8f3ef;
  --line: #e6ddd6;
  --muted: #857a74;
}

* { box-sizing: border-box; }
html { background: var(--paper); }
body {
  min-width: 320px;
  margin: 0;
  color: var(--ink);
  background: radial-gradient(circle at 7% 13%, rgba(235,222,216,.84), transparent 25rem), radial-gradient(circle at 93% 59%, rgba(244,237,232,.9), transparent 24rem), var(--paper);
  font-family: Pretendard, "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

button, input, select { font: inherit; }
button { cursor: pointer; }
button:focus-visible, input:focus-visible, select:focus-visible, a:focus-visible { outline: 3px solid rgba(189,113,121,.32); outline-offset: 3px; }

.site-header { display: flex; align-items: center; justify-content: space-between; max-width: 1180px; padding: 18px 28px; margin: auto; }
.brand { display: inline-flex; align-items: center; gap: 11px; color: inherit; text-decoration: none; }
.brand-logo { width: 42px; height: 42px; object-fit: cover; border-radius: 50%; box-shadow: 0 5px 16px rgba(130,73,79,.18); }
.brand > span { display: grid; gap: 2px; }
.brand small { color: var(--rose-deep); font-size: 8px; font-weight: 800; letter-spacing: 1.25px; }
.brand strong { font-size: 14px; letter-spacing: -.45px; }
.admin-link, .signed-in { color: var(--muted); font-size: 12px; text-decoration: none; }
.admin-actions { display: flex; align-items: center; gap: 12px; }
.admin-link { padding: 8px 11px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.55); }
.admin-link:hover { color: var(--rose-deep); border-color: #dbafb3; }
.eyebrow { margin: 0; color: var(--rose-deep); font-size: 10px; font-weight: 800; letter-spacing: 1.65px; }

.quote-page { position: relative; min-height: 100vh; overflow: hidden; }
.quote-page::after {
  position: absolute;
  z-index: -1;
  top: 150px;
  right: -195px;
  width: 500px;
  height: 680px;
  content: "";
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 48% 52% 0 0 / 4% 4% 0 0;
  transform: rotate(-5deg);
  background: linear-gradient(90deg, transparent 0 21%, rgba(255,255,255,.55) 21.2% 22%, transparent 22.2% 51%, rgba(255,255,255,.55) 51.2% 52%, transparent 52.2% 78%, rgba(255,255,255,.55) 78.2% 79%, transparent 79.2%), linear-gradient(135deg, #d9beb5, #ebe0d9);
  box-shadow: inset 0 0 60px rgba(255,255,255,.3);
}
.quote-hero { display: grid; grid-template-columns: minmax(0,1fr) minmax(410px,.88fr); gap: clamp(44px,8vw,115px); align-items: center; max-width: 1110px; padding: 55px 28px 88px; margin: auto; }
.hero-copy { position: relative; }
.hero-brand { display: flex; align-items: center; gap: 15px; margin-bottom: 16px; }
.hero-brand img { width: 72px; height: 72px; object-fit: cover; border-radius: 50%; box-shadow: 0 11px 25px rgba(151,86,93,.2); }
.hero-copy h1, .admin-intro h1, .access-denied h1 { margin: 0 0 20px; font-family: Georgia, "Noto Serif KR", serif; font-size: clamp(45px,5.5vw,75px); font-weight: 500; line-height: 1.06; letter-spacing: -3.8px; }
.hero-copy > p:not(.eyebrow) { max-width: 465px; margin: 0; color: var(--muted); font-size: 16px; line-height: 1.8; }
.origin-card { max-width: 455px; padding: 18px 0 0; margin: 31px 0 0; border-top: 1px solid var(--line); }
.origin-card dt { color: var(--rose-deep); font-size: 10px; font-weight: 800; letter-spacing: 1px; }
.origin-card dd { margin: 7px 0 0; color: #6d5d60; font-size: 12px; line-height: 1.65; }

.advisor-card { position: relative; padding: 30px; overflow: hidden; border: 1px solid rgba(220,211,205,.92); border-radius: 34px 7px 34px 7px; background: linear-gradient(145deg,rgba(255,255,255,.92),rgba(255,253,249,.85)); box-shadow: 0 23px 70px rgba(57,43,39,.1); }
.advisor-card::before { position: absolute; top: -55px; right: -33px; width: 145px; height: 220px; content: ""; opacity: .37; transform: rotate(-6deg); border-left: 2px solid #e4d3cb; border-right: 2px solid #e4d3cb; background: linear-gradient(90deg, transparent 48%, #e4d3cb 48.5% 51.5%, transparent 52%); }
.advisor-heading { position: relative; display: flex; gap: 12px; align-items: center; }
.advisor-mark { width: 39px; height: 39px; object-fit: cover; border-radius: 50%; box-shadow: 0 4px 10px rgba(151,86,93,.18); }
.advisor-heading p { margin: 0 0 4px; color: var(--rose-deep); font-size: 9px; font-weight: 800; letter-spacing: 1.2px; }
.advisor-heading h2 { margin: 0; font-size: 18px; letter-spacing: -.7px; }
.advisor-message { position: relative; padding: 15px 17px; margin: 23px 0 17px; border: 1px solid #e9dfda; border-radius: 4px 18px 18px; background: #fffdfa; }
.advisor-message strong { font-size: 13px; }
.advisor-message p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.quote-form { position: relative; display: grid; gap: 12px; }
.quote-form label, .settings-form label { display: grid; gap: 6px; color: #655156; font-size: 11px; font-weight: 700; }
.quote-form input, .quote-form select, .settings-form input { width: 100%; min-height: 44px; padding: 9px 11px; color: var(--ink); border: 1px solid #ddd4ce; border-radius: 7px 14px 7px 14px; outline: 0; background: rgba(255,255,255,.92); font-size: 13px; transition: border-color .18s, box-shadow .18s; }
.quote-form input:focus, .quote-form select:focus, .settings-form input:focus { border-color: var(--rose); box-shadow: 0 0 0 3px rgba(156,108,101,.12); }
.quote-form input::placeholder { color: #aaa09a; }
.venue-input-control { position: relative; display: block; }
.quote-form .venue-input-control input { padding-right: 53px; box-sizing: border-box; }
.venue-search-button { position: absolute; top: 50%; right: 5px; display: grid; place-items: center; width: 37px; height: 34px; padding: 0; color: #75514b; border: 0; border-radius: 6px 11px 6px 11px; background: #f7efeb; transform: translateY(-50%); }
.venue-search-button:hover { color: #fff; background: var(--rose); }
.venue-search-button:disabled { cursor: wait; opacity: .55; }
.venue-search-button svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 2; }
.style-note { color: #9b7c7f; font-size: 10px; font-weight: 500; line-height: 1.45; }
.performance-block, .option-block, .music-option-block { display: grid; gap: 10px; padding: 13px; border: 1px solid #e9e0da; border-radius: 7px 16px 7px 16px; background: rgba(255,254,250,.76); }
.performance-title { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.performance-title strong { color: #75565b; font-size: 12px; }
.performance-title span { color: #9e8486; font-size: 10px; font-weight: 500; }
.included-pill { display: inline-flex; align-items: center; gap: 4px; padding: 5px 7px; color: #70514b !important; border: 1px solid #ddc8c0; border-radius: 999px; background: #f9f0ec; font-size: 10px !important; font-weight: 700 !important; white-space: nowrap; }
.included-pill b { color: var(--rose); font-weight: 800; }
.included-prelude-copy { display: grid; gap: 3px; padding: 10px 11px; color: #654c47; border: 1px solid #e7d8d1; border-radius: 5px 12px 5px 12px; background: linear-gradient(105deg,#fdf8f5,#fffefa); font-size: 10px; line-height: 1.5; }
.included-prelude-copy strong { font-size: 11px; }
.included-prelude-copy span { color: #96777a; font-weight: 500; }
.part2-start-copy { display: grid; gap: 3px; padding: 10px 11px; color: #76565a; border: 1px solid #ebd8d5; border-radius: 5px 12px 5px 12px; background: #fffaf9; font-size: 10px; line-height: 1.5; }
.part2-start-copy strong { font-size: 11px; }
.part2-start-copy span { color: #96777a; font-weight: 500; }
.performance-block label em { padding-left: 3px; color: #b16c73; font-size: 9px; font-style: normal; font-weight: 700; }
.part-fee-note { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2px 12px; padding: 10px 11px; color: #76565a; border: 1px solid #dfc7c1; border-radius: 5px 12px 5px 12px; background: linear-gradient(105deg,#fff7f5,#fffefa); }
.part-fee-note span { font-size: 10px; font-weight: 700; }
.part-fee-note strong { color: #8c5059; font-size: 16px; letter-spacing: -.03em; }
.part-fee-note small { grid-column: 1 / -1; color: #9a7a7b; font-size: 9px; font-weight: 500; line-height: 1.45; }
.selection-price { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 2px 10px; padding: 9px 10px; color: #785657; border: 1px solid #e4cfca; border-radius: 5px 11px 5px 11px; background: #fff9f7; }
.selection-price span { min-width: 0; color: #835a5d; font-size: 10px; font-weight: 700; line-height: 1.4; }
.selection-price strong { color: #9b505c; font-size: 14px; letter-spacing: -.02em; white-space: nowrap; }
.selection-price small { grid-column: 1 / -1; color: #9c7d7c; font-size: 9px; font-weight: 500; line-height: 1.45; }
.ensemble-note { padding: 8px 10px; color: #756864; border-radius: 5px 11px 5px 11px; background: #f8f3ef; font-size: 10px; font-weight: 500; line-height: 1.5; }
.style-previews { display: grid; gap: 8px; padding: 12px; margin-top: -3px; border: 1px solid #e9e0da; border-radius: 7px 16px 7px 16px; background: rgba(255,254,250,.76); }
.style-preview-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.style-preview-heading p { margin: 0; color: #75565b; font-size: 11px; font-weight: 800; }
.style-preview-heading span { color: #a38a8c; font-size: 9px; line-height: 1.4; text-align: right; }
.style-preview-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.style-preview-card { display: flex; align-items: center; width: 100%; gap: 8px; min-height: 57px; padding: 9px; color: var(--ink); text-align: left; border: 1px solid #ead6d4; border-radius: 5px 12px 5px 12px; background: rgba(255,255,255,.8); cursor: pointer; transition: border-color .18s, box-shadow .18s, transform .18s; }
.style-preview-card:hover { border-color: #c77e85; box-shadow: 0 6px 15px rgba(146,80,88,.1); transform: translateY(-1px); }
.style-preview-card.is-selected { border-color: #b86e77; background: #fff4f3; box-shadow: inset 3px 0 0 #b86e77; }
.style-preview-card > span:last-child { display: grid; gap: 3px; min-width: 0; }
.style-preview-card strong { color: #66484d; font-size: 10px; line-height: 1.3; }
.style-preview-card small { color: #997d7f; font-size: 9px; font-weight: 500; line-height: 1.35; }
.style-preview-player { overflow: hidden; border: 1px solid #e4d0cf; border-radius: 5px 14px 5px 14px; background: #fff; }
.style-preview-player > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px; color: #725257; background: #fff7f6; font-size: 10px; }
.style-preview-player > div button { padding: 3px 0; color: #9e5d66; border: 0; border-bottom: 1px solid #ddb3b5; background: transparent; font-size: 9px; font-weight: 800; }
.style-preview-player iframe { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; }
.outdoor-notice, .always-package-guide { display: grid; gap: 4px; padding: 12px; border-radius: 6px 15px 6px 15px; font-size: 10px; line-height: 1.55; }
.outdoor-notice { color: #72564b; border: 1px solid #e9cfaa; background: linear-gradient(105deg,#fff8eb,#fffdf8); }
.outdoor-notice strong { color: #8a5c42; font-size: 11px; }
.outdoor-notice span { color: #826b5e; font-weight: 500; }
.jazz-vocal-option { display: grid; gap: 8px; padding: 11px; color: #644d47; border: 1px solid #e3d3cc; border-radius: 6px 14px 6px 14px; background: linear-gradient(120deg,#fcf7f4,#fffefa); }
.jazz-vocal-option > div { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.jazz-vocal-option strong { color: #854c56; font-size: 12px; }
.jazz-vocal-option span { color: #a2787d; font-size: 9px; font-weight: 600; }
.jazz-vocal-option small { color: #8e6c70; font-size: 9px; font-weight: 500; line-height: 1.5; }
.jazz-vocal-preview { display: grid; gap: 9px; padding: 10px; border: 1px solid rgba(217,183,161,.62); border-radius: 6px 12px 6px 12px; background: rgba(255,255,255,.52); }
.jazz-vocal-preview-heading { display: grid; gap: 2px; }
.jazz-vocal-preview-heading strong { color: #8b5e50; font-size: 10px; }
.jazz-vocal-preview-heading span { color: #a48679; font-size: 9px; font-weight: 500; }
.jazz-vocal-sample-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.jazz-vocal-sample-list button { display: flex; align-items: center; min-width: 0; min-height: 38px; padding: 8px 11px; color: #895b58; border: 1px solid #e4cfc3; border-radius: 999px; background: #fffdfb; font-size: 10px; font-weight: 700; line-height: 1.25; cursor: pointer; text-align: left; }
.jazz-vocal-sample-list button span { display: grid; flex: 0 0 auto; place-items: center; width: 18px; height: 18px; margin-right: 6px; color: #fff; border-radius: 50%; background: #b48475; font-size: 7px; }
.jazz-vocal-sample-list button strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jazz-vocal-sample-list button small { margin-left: auto; padding-left: 7px; color: #b08c80; font-size: 8px; font-weight: 700; white-space: nowrap; }
.jazz-vocal-sample-list button.is-selected { color: #834d56; border-color: #cc8e94; background: #fff0ef; box-shadow: inset 0 0 0 1px rgba(174,97,107,.14); }
.jazz-vocal-sample-list button.is-selected span { background: #a96169; }
.jazz-vocal-preview-player { position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 8px 18px 8px 18px; background: #352827; box-shadow: 0 10px 22px rgba(77,51,47,.18); }
.jazz-vocal-preview-player iframe { position: absolute; inset: 0; display: block; width: 100%; height: 100%; border: 0; }
.emcee-option { display: grid; gap: 8px; padding: 11px; color: #644d47; border: 1px solid #e0d4cc; border-radius: 6px 14px 6px 14px; background: linear-gradient(120deg,#fdf9f5,#fffefa); }
.emcee-option > div { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.emcee-option strong { color: #865849; font-size: 12px; }
.emcee-option span { color: #a37e6d; font-size: 9px; font-weight: 600; }
.emcee-option small { color: #8a7165; font-size: 9px; font-weight: 500; line-height: 1.5; }
.emcee-option .emcee-price { color: #8c4f50; font-weight: 700; }
.emcee-option > .emcee-preview { display: grid; grid-template-columns: minmax(0,1fr); width: 100%; min-width: 0; gap: 8px; padding: 10px; box-sizing: border-box; border: 1px solid rgba(217,183,161,.62); border-radius: 6px 12px 6px 12px; background: rgba(255,255,255,.52); }
.emcee-preview > * { min-width: 0; }
.emcee-preview-heading { display: grid; gap: 2px; }
.emcee-preview-heading strong { color: #8b5e50; font-size: 10px; }
.emcee-preview-heading span { color: #a48679; font-size: 9px; font-weight: 500; }
.emcee-preview-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; gap: 10px; box-sizing: border-box; }
.emcee-preview-tabs button { display: grid; place-content: center; min-width: 0; min-height: 67px; padding: 10px; color: #895b58; border: 1px solid #dcb9ac; border-radius: 8px 18px 8px 18px; background: #fffdfb; font-size: 13px; font-weight: 800; line-height: 1.25; cursor: pointer; text-align: center; }
.emcee-preview-tabs button small { margin-top: 4px; color: #a48679; font-size: 9px; font-weight: 600; }
.emcee-preview-tabs button.is-selected { color: #fff; border-color: #8d5f58; background: linear-gradient(110deg,#a7746d,#835852); box-shadow: inset 0 0 0 2px rgba(255,255,255,.22); }
.emcee-preview-tabs button.is-selected small { color: #f8e6e4; }
.emcee-preview-tabs button:focus-visible { outline: 2px solid rgba(130,68,78,.75); outline-offset: -5px; }
.emcee-sample-list { display: grid; gap: 12px; }
.emcee-sample-list > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.emcee-sample-list button { display: flex; align-items: center; min-width: 0; min-height: 38px; padding: 8px 11px; color: #895b58; border: 1px solid #e4cfc3; border-radius: 999px; background: #fffdfb; font-size: 10px; font-weight: 700; line-height: 1.25; cursor: pointer; text-align: left; }
.emcee-sample-list button span { display: grid; flex: 0 0 auto; place-items: center; width: 18px; height: 18px; margin-right: 6px; color: #fff; border-radius: 50%; background: #b48475; font-size: 7px; }
.emcee-sample-list button strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.emcee-sample-list button small { margin-left: auto; padding-left: 7px; color: #b08c80; font-size: 8px; font-weight: 700; white-space: nowrap; }
.emcee-sample-list button.is-selected { color: #834d56; border-color: #cc8e94; background: #fff0ef; box-shadow: inset 0 0 0 1px rgba(174,97,107,.14); }
.emcee-sample-list button.is-selected span { background: #a96169; }
.emcee-sample-list > div button:last-child:nth-child(odd) { grid-column: span 2; }
.emcee-sample-list button span { margin-right: 4px; font-size: 8px; }
.emcee-preview-player { position: relative; width: 100%; aspect-ratio: 16 / 9; margin: 2px 0 0; overflow: hidden; border-radius: 8px 18px 8px 18px; background: #352827; box-shadow: 0 10px 22px rgba(77,51,47,.18); }
.emcee-preview-player iframe { position: absolute; inset: 0; display: block; width: 100% !important; min-width: 100% !important; height: 100% !important; border: 0; }
.consultation-note { display: grid; gap: 4px; padding: 12px; color: #765a4f; border: 1px solid #e8cfa3; border-radius: 6px 15px 6px 15px; background: #fff9ed; font-size: 11px; line-height: 1.55; }
.consultation-note strong { color: #8c5f3f; }
.line-items .discount-line span, .line-items .discount-line strong { color: #f1d2d2; }
.live-quote-summary { position: fixed; z-index: 100; right: clamp(18px,3vw,42px); bottom: clamp(18px,3vw,34px); display: flex; align-items: center; justify-content: space-between; width: min(330px,calc(100vw - 48px)); gap: 12px; padding: 13px; color: #654943; border: 1px solid #d8bcb3; border-radius: 7px 16px 7px 16px; background: linear-gradient(110deg,#fffaf7,#fffefa); box-shadow: 0 14px 34px rgba(54,39,35,.18); }
.live-quote-summary div { display: grid; gap: 2px; }
.live-quote-summary span { color: #a46770; font-size: 9px; font-weight: 800; letter-spacing: .5px; }
.live-quote-summary strong { color: #874650; font-size: 20px; letter-spacing: -1px; }
.live-quote-summary small { color: #96757a; font-size: 9px; font-weight: 600; }
.live-quote-summary em { color: #9d7378; font-size: 9px; font-style: normal; font-weight: 600; text-align: right; line-height: 1.45; }
.live-quote-summary.is-updating { opacity: .75; }
.package-picker { display: grid; gap: 12px; padding: 14px; border: 1px solid #e6c0c0; border-radius: 8px 18px 8px 18px; background: linear-gradient(120deg,#fff5f4,#fffafa); }
.package-picker-heading p { margin: 0 0 3px; color: #ad656e; font-size: 9px; font-weight: 800; letter-spacing: .7px; }
.package-picker-heading h3 { margin: 0; color: #754b53; font-size: 14px; }
.package-picker-heading span { display: block; margin-top: 4px; color: #8d6c70; font-size: 10px; font-weight: 500; line-height: 1.5; }
.package-picker-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.package-picker-card { display: grid; align-content: start; min-height: 123px; padding: 11px; color: #704c52; text-align: left; border: 1px solid #e7cdca; border-radius: 6px 13px 6px 13px; background: rgba(255,255,255,.86); cursor: pointer; transition: border-color .18s, box-shadow .18s, transform .18s; }
.package-picker-card:hover { border-color: #bf7780; box-shadow: 0 6px 14px rgba(146,80,88,.1); transform: translateY(-1px); }
.package-picker-card.is-selected { border-color: #a95a65; background: #fff0ef; box-shadow: inset 3px 0 0 #a95a65; }
.package-picker-card small { color: #a07e80; font-size: 8px; font-weight: 600; line-height: 1.4; }
.package-picker-card strong { margin-top: 6px; color: #75414b; font-size: 12px; }
.package-picker-card span { margin-top: 3px; color: #8e6c70; font-size: 9px; font-weight: 600; }
.package-picker-card b { margin-top: 10px; color: #9e4f5c; font-size: 12px; }
.package-picker-card em { margin-top: 3px; color: #b15b67; font-size: 9px; font-style: normal; font-weight: 800; }
.package-picker-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.package-picker-footer small { max-width: 315px; color: #9d7c7e; font-size: 9px; line-height: 1.5; }
.package-picker-footer button, .package-selected-summary button { flex: 0 0 auto; padding: 7px 9px; color: #824b55; border: 1px solid #dbaeb1; border-radius: 5px 10px 5px 10px; background: #fff; font-size: 9px; font-weight: 800; }
.package-picker-footer button:disabled { color: #b59b9c; border-color: #eadbda; cursor: default; }
.package-selected-summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px; color: #765157; border: 1px solid #e6c0c0; border-radius: 7px 16px 7px 16px; background: #fff8f7; }
.package-selected-summary p { margin: 0 0 3px; color: #ad656e; font-size: 9px; font-weight: 800; letter-spacing: .6px; }
.package-selected-summary strong, .package-selected-summary span { display: block; }
.package-selected-summary strong { color: #75414b; font-size: 12px; }
.package-selected-summary span { margin-top: 3px; color: #8d6c70; font-size: 9px; font-weight: 500; line-height: 1.5; }
.always-package-guide { color: #775258; border: 1px solid #e4b7b9; background: linear-gradient(105deg,#fff2f1,#fffafa); }
.always-package-guide p { margin: 0; color: #ad656e; font-size: 9px; font-weight: 800; letter-spacing: .6px; }
.always-package-guide strong { color: #754b53; font-size: 11px; }
.always-package-guide span { color: #8d6c70; font-weight: 500; }
.always-package-guide small { color: #a07f82; font-size: 9px; font-weight: 600; }
.video-play { display: grid; flex: 0 0 auto; place-items: center; width: 25px; height: 25px; padding-left: 2px; color: #fff; border-radius: 50%; background: linear-gradient(135deg,#c67c85,#92505a); font-size: 9px; box-shadow: 0 3px 7px rgba(146,80,88,.17); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.primary-button { min-height: 46px; padding: 11px 16px; color: #fff; border: 0; border-radius: 7px 15px 7px 15px; background: linear-gradient(110deg,#a8756d,#765049); box-shadow: 0 9px 18px rgba(74,51,46,.19); font-size: 13px; font-weight: 800; letter-spacing: -.15px; }
.primary-button:hover { background: linear-gradient(110deg,#b27e75,#69463f); }
.primary-button:disabled, .secondary-button:disabled { cursor: not-allowed; opacity: .6; }
.map-status, .form-error { margin: 12px 0 0; color: #8f6f70; font-size: 11px; line-height: 1.55; }
.form-error { color: #b33d52; }

.result-panel { max-width: 1054px; padding: 30px; margin: 0 auto 78px; border-radius: 31px 7px 31px 7px; background: linear-gradient(135deg,#28221f,#4a3732); box-shadow: 0 22px 45px rgba(45,33,30,.23); color: #fff; }
.result-panel .eyebrow { color: #f4c7c4; }
.result-panel h2 { margin: 8px 0 24px; font-family: Georgia, "Noto Serif KR", serif; font-size: 30px; font-weight: 500; letter-spacing: -1.2px; }
.result-layout { display: grid; grid-template-columns: 1.1fr .9fr; gap: 26px; }
.line-items p { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; margin: 0; border-bottom: 1px solid rgba(255,255,255,.17); color: #f1e3e2; font-size: 12px; }
.line-items strong { color: #fff; white-space: nowrap; }
.total-box { padding: 21px; border-radius: 17px 4px 17px 4px; background: #fff9f8; color: var(--ink); }
.total-box span, .total-box strong { display: block; }
.total-box span { color: #9c7a7d; font-size: 11px; }
.total-box strong { margin-top: 5px; color: var(--rose-deep); font-size: 26px; letter-spacing: -1.1px; }
.estimate-total { display: flex; align-items: baseline; flex-wrap: wrap; gap: 7px; margin-top: 5px; }
.total-box .estimate-total strong { margin-top: 0; }
.total-box .estimate-total .vat-inline { padding: 3px 5px; margin: 0; color: #9c6870; border: 1px solid #e7c8c6; border-radius: 999px; background: #fff; font-size: 9px; font-weight: 800; line-height: 1.15; white-space: nowrap; }
.total-box p, .total-box small { display: block; margin: 11px 0 0; color: #806367; font-size: 11px; line-height: 1.55; }
.total-box .vat-excluded { color: var(--rose-deep); font-weight: 800; }
.total-box p b { float: right; color: var(--rose-deep); font-weight: 800; }
.total-box hr { margin: 13px 0 11px; border: 0; border-top: 1px solid #ead8d6; }
.total-box .grand-total { color: #773f49; font-size: 29px; }
.package-recommendation, .package-applied { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 17px 19px; margin-top: 17px; border: 1px solid rgba(244,202,197,.55); border-radius: 7px 19px 7px 19px; background: rgba(255,247,246,.12); }
.package-recommendation p { margin: 0 0 4px; color: #f2c4c1; font-size: 10px; font-weight: 800; letter-spacing: .7px; }
.package-recommendation h3 { margin: 0; font-size: 16px; }
.package-recommendation span, .package-recommendation small, .package-applied span { display: block; margin-top: 4px; color: #f3dddd; font-size: 11px; line-height: 1.5; }
.package-recommendation .secondary-button { flex: 0 0 auto; color: #77444e; border-color: #e8bab6; background: #fff9f8; }
.package-applied { padding: 13px 16px; margin-top: 17px; color: #f5ddda; }
.package-applied strong { color: #fff; font-size: 12px; }
.package-applied .secondary-button { flex: 0 0 auto; color: #77444e; border-color: #e8bab6; background: #fff9f8; }
.package-preview { margin-top: 17px; padding: 19px; border: 1px solid rgba(244,202,197,.55); border-radius: 19px 7px 19px 7px; background: rgba(255,247,246,.1); }
.package-preview-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 13px; }
.package-preview-heading p { margin: 0 0 4px; color: #f2c4c1; font-size: 10px; font-weight: 800; letter-spacing: .7px; }
.package-preview-heading h3 { margin: 0; color: #fff; font-size: 16px; }
.package-preview-heading > span { color: #f3dddd; font-size: 10px; white-space: nowrap; }
.package-preview-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.package-preview-grid article { position: relative; display: flex; flex-direction: column; min-height: 202px; padding: 16px; border: 1px solid rgba(255,240,238,.38); border-radius: 12px 4px 12px 4px; background: rgba(255,252,251,.96); color: var(--ink); }
.package-preview-grid article.is-recommended { border-color: #e8aeb4; box-shadow: inset 0 0 0 1px rgba(180,91,105,.22); }
.package-preview-grid article > b { position: absolute; top: -9px; left: 12px; padding: 4px 7px; color: #fff; border-radius: 9px 3px 9px 3px; background: #ae606b; font-size: 9px; letter-spacing: -.2px; }
.package-preview-grid h4 { margin: 0; color: #75414b; font-size: 14px; }
.package-preview-grid > article > p { margin: 5px 0 12px; color: #9a787a; font-size: 10px; }
.package-preview-grid dl { display: grid; gap: 7px; padding-top: 10px; margin: 0; border-top: 1px solid #ecdcda; }
.package-preview-grid dl div { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.package-preview-grid dt { color: #917276; font-size: 10px; }
.package-preview-grid dd { margin: 0; color: #624249; font-size: 11px; font-weight: 700; white-space: nowrap; }
.package-preview-grid dd + * { margin: 0; }
.package-preview-grid .package-saving, .package-preview-grid .package-no-saving { display: block; margin-top: 12px; font-size: 12px; }
.package-preview-grid .package-saving { color: #ac5260; }
.package-preview-grid .package-no-saving { color: #84696d; }
.package-preview-grid .secondary-button { width: 100%; min-height: 31px; padding: 7px; margin-top: auto; color: #75414b; border-color: #e5b9b9; background: #fffafa; font-size: 10px; }
.package-preview-grid small { margin-top: auto; color: #907276; font-size: 9px; line-height: 1.45; }
.package-preview-note { display: block; margin-top: 11px; color: #f0d6d4; font-size: 9px; line-height: 1.5; }
.quote-share { display: grid; grid-template-columns: 1fr auto; gap: 14px 20px; padding: 18px 19px; margin-top: 17px; color: #75414b; border: 1px solid rgba(244,202,197,.72); border-radius: 7px 19px 7px 19px; background: rgba(255,249,248,.13); }
.quote-share small, .quote-share strong, .quote-share span { display: block; }
.quote-share small { color: #f4c7c4; font-size: 9px; font-weight: 800; letter-spacing: .8px; }
.quote-share strong { margin-top: 4px; color: #fff; font-size: 16px; }
.quote-share span { margin-top: 4px; color: #f3dddd; font-size: 11px; line-height: 1.5; }
.quote-share-actions { display: flex; align-items: center; gap: 8px; }
.share-button, .share-copy-button { min-height: 38px; border-radius: 6px 13px 6px 13px; font-size: 11px; font-weight: 800; white-space: nowrap; }
.share-button { padding: 9px 12px; color: #75414b; border: 1px solid #e6b8b9; background: #fff9f8; }
.share-button:hover { background: #fff0ef; }
.share-button i { font-style: normal; }
.share-copy-button { padding: 9px 10px; color: #f7e7e5; border: 1px solid rgba(255,239,237,.5); background: transparent; }
.share-copy-button:hover { background: rgba(255,255,255,.1); }
.quote-share-status { grid-column: 1 / -1; padding-top: 10px; margin: 0; border-top: 1px solid rgba(255,255,255,.18); color: #f3dddd; font-size: 10px; line-height: 1.5; }
.contact-cta { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 19px; margin-top: 17px; color: #75414b; border: 1px solid #e6b8b9; border-radius: 19px 7px 19px 7px; background: linear-gradient(110deg,#fff8f7,#fce9e8); text-decoration: none; }
.contact-cta:hover { border-color: #c87882; background: #fff3f2; }
.contact-cta span, .contact-cta strong, .contact-cta em { display: block; }
.contact-cta small { color: #b06470; font-size: 10px; font-weight: 800; letter-spacing: .7px; }
.contact-cta strong { margin-top: 4px; color: #733e48; font-size: 16px; }
.contact-cta em { margin-top: 4px; color: #967579; font-size: 10px; font-style: normal; line-height: 1.5; }
.contact-cta > b { flex: 0 0 auto; padding: 11px 13px; color: #fff; border-radius: 6px 13px 6px 13px; background: #9f5662; font-size: 11px; }
.contact-cta i { font-style: normal; }
.consultation-panel { max-width: 810px; }
.consultation-copy { max-width: 600px; margin: 0 0 8px; color: #f2e5e3; line-height: 1.7; }
.site-footer { max-width: 1054px; padding: 0 28px 45px; margin: 0 auto; color: #8a7476; font-size: 10px; line-height: 1.7; }
.site-footer p { margin: 0; }
.site-footer a { color: var(--rose-deep); text-decoration: none; }

.admin-page { min-height: 100vh; padding-bottom: 80px; background: linear-gradient(145deg,#fffafa,#f9ebea); }
.admin-intro, .settings-form, .admin-status, .access-denied { max-width: 820px; padding-inline: 28px; margin: 38px auto 0; }
.admin-intro h1, .access-denied h1 { font-size: 52px; }
.admin-intro > p:not(.eyebrow), .access-denied p { max-width: 660px; color: var(--muted); line-height: 1.7; }
.settings-form { display: grid; gap: 16px; }
.settings-form section { display: grid; gap: 14px; padding: 26px; border: 1px solid var(--line); border-radius: 21px 5px 21px 5px; background: rgba(255,255,255,.82); box-shadow: 0 8px 24px rgba(134,87,89,.04); }
.settings-form h2 { margin: 0 0 3px; font-size: 18px; letter-spacing: -.5px; }
.settings-form small { color: #9d8585; font-size: 10px; font-weight: 500; }
.settings-two-column { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.check-label { display: flex !important; align-items: center; gap: 8px; }
.check-label input { width: 16px; min-height: auto; }
.setting-note { padding: 12px; margin: 0; color: #775f63; border-radius: 6px 13px 6px 13px; background: #faece9; font-size: 11px; line-height: 1.6; }
.settings-footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 4px 0; }
.settings-footer p { margin: 0; color: #5e7d6c; font-size: 12px; }
.settings-footer .primary-button { width: auto; }
.analytics-dashboard { max-width: 820px; padding-inline: 28px; margin: 28px auto 0; }
.analytics-dashboard > * { box-sizing: border-box; }
.analytics-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; padding: 23px 26px; border: 1px solid #e4cdca; border-radius: 21px 5px 21px 5px; background: rgba(255,255,255,.78); }
.analytics-heading .eyebrow { margin: 0; }
.analytics-heading h2 { margin: 7px 0 5px; font-size: 23px; letter-spacing: -.7px; }
.analytics-heading span { display: block; max-width: 510px; color: #8e7375; font-size: 10px; line-height: 1.55; }
.analytics-heading label { flex: 0 0 105px; color: #80676a; font-size: 10px; font-weight: 700; }
.analytics-heading select { min-height: 36px; padding: 7px; margin-top: 5px; font-size: 11px; }
.analytics-status { padding: 18px 0 0; margin: 0; color: #8b7476; font-size: 12px; }
.analytics-kpis { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; margin-top: 12px; }
.analytics-kpis article, .analytics-grid > article { padding: 17px; border: 1px solid #e7d3d0; border-radius: 14px 4px 14px 4px; background: rgba(255,255,255,.83); }
.analytics-kpis span, .analytics-kpis small { display: block; color: #92777a; font-size: 10px; }
.analytics-kpis strong { display: block; margin: 7px 0 3px; color: #813f4c; font-size: 24px; letter-spacing: -1px; }
.analytics-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; margin-top: 10px; }
.analytics-grid > article { min-height: 132px; }
.analytics-grid h3 { margin: 0 0 12px; color: #694a50; font-size: 13px; }
.analytics-grid p { margin: 0; color: #886e71; font-size: 10px; line-height: 1.6; }
.analytics-funnel, .analytics-list, .analytics-recent { display: grid; gap: 8px; padding: 0; margin: 0; list-style: none; }
.analytics-funnel li, .analytics-list li { display: flex; justify-content: space-between; gap: 12px; color: #7e6468; font-size: 11px; }
.analytics-funnel strong, .analytics-list strong { color: #844450; }
.analytics-highlight { display: block; margin: -3px 0 7px; color: #a34f5e; font-size: 26px; letter-spacing: -1px; }
.analytics-recent li { display: flex; align-items: start; justify-content: space-between; gap: 11px; padding-bottom: 7px; border-bottom: 1px solid #f0e2df; }
.analytics-recent li:last-child { padding-bottom: 0; border: 0; }
.analytics-recent span, .analytics-recent strong, .analytics-recent small { display: block; }
.analytics-recent strong { color: #74565b; font-size: 10px; }
.analytics-recent small, .analytics-recent time { color: #a18486; font-size: 9px; line-height: 1.45; }
.analytics-recent time { flex: 0 0 auto; }
.admin-status { color: var(--muted); }
.access-denied { padding-top: 50px; }
.access-denied strong { color: var(--rose-deep); }
.key-action { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 4px 0; }
.key-action p { margin: 0; color: #5e7d6c; font-size: 12px; }
.secondary-button { min-height: 40px; padding: 9px 13px; color: #8b4d57; border: 1px solid #dbadb0; border-radius: 6px 13px 6px 13px; background: #fff9f8; font-size: 12px; font-weight: 800; }
.secondary-button:hover { background: #feeceb; }
.venue-search { display: grid; gap: 9px; margin-top: -2px; }
.venue-search > div:first-child { display: flex; align-items: center; gap: 10px; }
.venue-search > div:first-child span { color: #947d7e; font-size: 10px; line-height: 1.45; }
.selected-venue { padding: 9px 11px; margin: 0; color: #7a4f57; border-radius: 6px 12px 6px 12px; background: #fff2f1; font-size: 11px; }
.venue-results { display: grid; gap: 6px; padding: 0; margin: 0; list-style: none; }
.venue-results button { display: grid; width: 100%; gap: 3px; padding: 11px; text-align: left; color: var(--ink); border: 1px solid #e4d0cf; border-radius: 7px 13px 7px 13px; background: #fff; }
.venue-results button:hover { border-color: #c87d84; background: #fffafa; }
.venue-results strong { font-size: 12px; }
.venue-results span, .venue-results small { color: #90787a; font-size: 10px; font-weight: 500; line-height: 1.4; }
.venue-map { overflow: hidden; border: 1px solid #e4d0cf; border-radius: 7px 16px 7px 16px; background: #fffafa; }
.venue-map-canvas { width: 100%; height: 250px; background: #f7ecea; }
.venue-map-status { padding: 9px 11px; margin: 0; color: #80676a; font-size: 10px; font-weight: 600; line-height: 1.5; }

.policy-page { min-height: 100vh; padding-bottom: 70px; background: linear-gradient(145deg,#fffafa,#f9ebea); }
.policy-content { max-width: 790px; padding: 8px 28px 40px; margin: 25px auto; }
.policy-content h1 { margin: 9px 0 23px; font-family: Georgia, "Noto Serif KR", serif; font-size: clamp(38px,5vw,56px); font-weight: 500; letter-spacing: -2.4px; }
.policy-content > p { color: var(--muted); line-height: 1.75; }
.policy-content section { padding: 21px 0; border-top: 1px solid var(--line); }
.policy-content h2 { margin: 0 0 10px; font-size: 16px; }
.policy-content section p { margin: 0; color: #68575a; font-size: 13px; line-height: 1.75; }
.policy-content a { color: var(--rose-deep); }
.policy-business { display: grid; gap: 8px; margin: 0; }
.policy-business div { display: grid; grid-template-columns: 115px 1fr; gap: 12px; }
.policy-business dt { color: #997b7d; font-size: 12px; font-weight: 800; }
.policy-business dd { margin: 0; color: #68575a; font-size: 13px; line-height: 1.55; }
.policy-updated { margin-top: 15px !important; color: #a08889 !important; font-size: 11px; }
.analytics-preference { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px; margin-top: 12px; border: 1px solid #ead2cf; border-radius: 11px 4px 11px 4px; background: #fffafa; }
.analytics-preference h2 { margin: 0 0 4px !important; font-size: 12px !important; }
.analytics-preference p { max-width: 470px; margin: 0 !important; font-size: 10px !important; }
.analytics-preference button { flex: 0 0 auto; padding: 8px 10px; color: #864c55; border: 1px solid #dbaeb1; border-radius: 5px 10px 5px 10px; background: #fff; font-size: 10px; font-weight: 800; }

@media (max-width: 760px) {
  .site-header { padding-inline: 18px; }
  .admin-actions { gap: 8px; }
  .signed-in { max-width: 115px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .quote-hero { grid-template-columns: 1fr; gap: 34px; padding: 38px 18px 70px; }
  .quote-page::after { top: 380px; right: -310px; opacity: .55; }
  .hero-copy h1 { font-size: 51px; }
  .advisor-card { padding: 21px; }
  .admin-intro, .settings-form, .admin-status, .access-denied, .analytics-dashboard { padding-inline: 18px; }
  .result-layout { grid-template-columns: 1fr; }
  .result-panel { padding: 23px; margin-inline: 18px; }
  .settings-two-column { grid-template-columns: 1fr; }
  .package-recommendation, .package-applied { align-items: flex-start; flex-direction: column; gap: 12px; }
  .package-recommendation .secondary-button { width: 100%; }
  .package-preview { padding: 16px; }
  .package-preview-heading { align-items: flex-start; flex-direction: column; gap: 4px; }
  .package-preview-grid { grid-template-columns: 1fr; }
  .package-preview-grid article { min-height: 0; }
  .package-picker-grid { grid-template-columns: 1fr; }
  .package-picker-card { min-height: 0; }
  .package-picker-footer, .package-selected-summary { align-items: flex-start; flex-direction: column; }
  .package-picker-footer button, .package-selected-summary button { width: 100%; }
  .quote-form { padding-bottom: 82px; }
  .live-quote-summary { right: 12px; bottom: max(10px,env(safe-area-inset-bottom)); left: 12px; width: auto; min-height: 61px; padding: 10px 13px; align-items: center; border-radius: 8px 15px 8px 15px; }
  .live-quote-summary div { display: block; min-width: 0; }
  .live-quote-summary span { display: block; margin-bottom: 2px; font-size: 8px; }
  .live-quote-summary strong { font-size: 19px; }
  .live-quote-summary small { display: inline; margin-left: 6px; font-size: 8px; }
  .live-quote-summary em { display: none; }
  .quote-share { grid-template-columns: 1fr; }
  .quote-share-actions { width: 100%; }
  .share-button, .share-copy-button { flex: 1; }
  .contact-cta { align-items: flex-start; flex-direction: column; }
  .contact-cta > b { width: 100%; box-sizing: border-box; text-align: center; }
  .analytics-heading { align-items: stretch; flex-direction: column; gap: 12px; padding: 20px; }
  .analytics-heading label { flex-basis: auto; width: 100%; }
  .analytics-kpis, .analytics-grid { grid-template-columns: 1fr 1fr; }
  .style-preview-heading { align-items: flex-start; flex-direction: column; gap: 3px; }
  .style-preview-heading span { text-align: left; }
  .admin-intro h1, .access-denied h1 { font-size: 42px; }
  .settings-footer, .key-action { align-items: stretch; flex-direction: column; }
  .settings-footer .primary-button, .key-action .secondary-button { width: 100%; }
}

@media (max-width: 440px) {
  .brand-logo { width: 38px; height: 38px; }
  .brand strong { font-size: 13px; }
  .hero-brand img { width: 58px; height: 58px; }
  .hero-copy h1 { font-size: 45px; letter-spacing: -2.8px; }
  .form-grid { grid-template-columns: 1fr; }
  .performance-title { align-items: flex-start; flex-direction: column; gap: 3px; }
  .style-preview-grid { grid-template-columns: 1fr; }
  .analytics-kpis, .analytics-grid { grid-template-columns: 1fr; }
  .analytics-preference { align-items: flex-start; flex-direction: column; }
}
