* { box-sizing: border-box; }
:root {
  --bg: #f7f8fa;
  --surface: #fff;
  --text: #101114;
  --muted: #646873;
  --line: #dedfe3;
  --accent: #2563eb;
  --accent-soft: #eff6ff;
  --dark: #111318;
}
body.dark-mode, html.dark-mode { --bg:#0d0f13; --surface:#15181e; --text:#f5f6f8; --muted:#a5a9b2; --line:#2a2e36; --accent:#60a5fa; --accent-soft:#17253b; --dark:#f5f6f8; background:var(--bg); color:var(--text); }
body { margin:0; font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background:var(--bg); color:var(--text); }
.price-page { min-height:100vh; }
.price-nav { max-width:1180px; margin:auto; padding:24px 24px 12px; display:flex; justify-content:space-between; align-items:center; }
.brand { color:var(--text); text-decoration:none; font-size:1.35rem; font-weight:800; letter-spacing:-.04em; }
.brand span { font-weight:400; }
.back-link { color:var(--muted); text-decoration:none; font-size:.92rem; }
.back-link:hover { color:var(--text); }
.pricing-shell { max-width:1180px; margin:auto; padding:52px 24px 80px; }
.pricing-hero { max-width:760px; margin-bottom:42px; }
.eyebrow,.step-kicker { color:var(--accent); font-size:.75rem; font-weight:800; letter-spacing:.12em; }
.pricing-hero h1 { font-size:clamp(2.2rem,5vw,4.6rem); line-height:1.02; letter-spacing:-.055em; margin:12px 0 18px; }
.pricing-hero p:not(.eyebrow) { color:var(--muted); font-size:1.05rem; line-height:1.7; max-width:650px; }
.pricing-layout { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:24px; align-items:start; }
.configurator,.price-card { background:var(--surface); border:1px solid var(--line); border-radius:22px; }
.configurator { padding:28px; }
.progress-wrap { margin-bottom:38px; }
.progress-meta { display:flex; justify-content:space-between; color:var(--muted); font-size:.8rem; margin-bottom:9px; }
.progress-track { height:6px; background:var(--line); border-radius:99px; overflow:hidden; }
.progress-bar { height:100%; width:25%; background:var(--accent); border-radius:99px; transition:width .3s ease; }
.step { display:none; min-height:400px; }
.step.active { display:block; }
.step h2 { font-size:clamp(1.65rem,3vw,2.35rem); letter-spacing:-.04em; margin:8px 0 8px; }
.muted { color:var(--muted); line-height:1.6; }
.choice-grid { display:grid; grid-template-columns:1fr 1fr; gap:13px; margin-top:28px; }
.choice { position:relative; text-align:left; min-height:180px; padding:20px; border:1px solid var(--line); border-radius:16px; background:transparent; color:var(--text); cursor:pointer; transition:.2s ease; display:flex; flex-direction:column; align-items:flex-start; }
.choice:hover { transform:translateY(-2px); border-color:var(--accent); }
.choice.selected { border:2px solid var(--accent); background:var(--accent-soft); padding:19px; }
.choice-icon { font-size:1.25rem; margin-bottom:24px; color:var(--accent); }
.choice strong { font-size:1rem; }
.choice small { color:var(--muted); line-height:1.45; margin-top:7px; }
.choice-price { margin-top:auto; padding-top:15px; color:var(--accent); font-size:.82rem; font-weight:750; }
.compact .choice { min-height:145px; }
.extras-grid { display:grid; gap:10px; margin-top:26px; }
.extra { display:grid; grid-template-columns:auto 1fr auto; gap:13px; align-items:center; border:1px solid var(--line); padding:15px; border-radius:14px; cursor:pointer; }
.extra:has(input:checked) { border-color:var(--accent); background:var(--accent-soft); }
.extra input { width:19px; height:19px; accent-color:var(--accent); }
.extra span { display:flex; flex-direction:column; gap:4px; }
.extra small { color:var(--muted); }
.extra b { font-size:.82rem; color:var(--accent); white-space:nowrap; }
.step-actions { display:flex; justify-content:space-between; gap:12px; border-top:1px solid var(--line); margin-top:25px; padding-top:20px; }
.primary-btn,.secondary-btn,.reset-btn { border:0; border-radius:11px; padding:13px 18px; font:inherit; font-weight:750; cursor:pointer; text-decoration:none; display:inline-flex; justify-content:center; align-items:center; }
.primary-btn { background:var(--text); color:var(--bg); }
.primary-btn:hover { opacity:.88; }
.secondary-btn { background:transparent; border:1px solid var(--line); color:var(--text); }
.secondary-btn:hover { border-color:var(--accent); }
.price-card { position:sticky; top:20px; padding:26px; }
.price-label { font-size:.72rem; letter-spacing:.12em; font-weight:800; color:var(--muted); }
.price-value { font-size:2.65rem; letter-spacing:-.05em; font-weight:850; margin-top:12px; }
.price-card > p { color:var(--muted); margin-top:2px; font-size:.8rem; }
.mini-line { height:1px; background:var(--line); margin:25px 0; }
.side-summary { display:flex; flex-direction:column; gap:7px; }
.side-summary span { color:var(--muted); font-size:.8rem; }
.side-summary strong { font-size:.95rem; }
.reset-btn { margin-top:30px; width:100%; background:transparent; border:1px solid var(--line); color:var(--muted); }
.final-summary { border:1px solid var(--line); border-radius:15px; padding:18px; margin-top:24px; }
.final-summary .summary-row { display:flex; justify-content:space-between; gap:15px; padding:10px 0; border-bottom:1px solid var(--line); }
.final-summary .summary-row:last-child { border-bottom:0; }
.summary-row span { color:var(--muted); }
.summary-total { font-size:1.1rem; font-weight:800; }
.contact-note { margin-top:18px; padding:20px; border-radius:15px; background:var(--accent-soft); }
.contact-note p { color:var(--muted); line-height:1.55; font-size:.9rem; }
@media (max-width:850px) {
  .pricing-layout { grid-template-columns:1fr; }
  .price-card { position:static; order:-1; }
  .price-value { font-size:2.1rem; }
}
@media (max-width:600px) {
  .price-nav { padding:20px 16px 8px; }
  .pricing-shell { padding:38px 16px 60px; }
  .configurator { padding:20px; border-radius:17px; }
  .choice-grid { grid-template-columns:1fr; }
  .choice { min-height:150px; }
  .extra { grid-template-columns:auto 1fr; }
  .extra b { grid-column:2; }
  .pricing-hero h1 { font-size:2.5rem; }
}

.subheading{font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;margin:26px 0 10px;color:var(--muted)}
.choice-grid.three{grid-template-columns:repeat(3,1fr)}
.monthly-box{margin-top:22px;padding:13px;border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:5px}
.monthly-box span{font-size:.75rem;color:var(--muted)}
.monthly-box strong{font-size:.85rem}
.final-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:15px}
.whatsapp-btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 18px;border-radius:11px;border:1px solid var(--line);text-decoration:none;color:var(--text);font-weight:750}
.whatsapp-btn:hover{border-color:var(--accent)}
@media(max-width:850px){.choice-grid.three{grid-template-columns:1fr}}

.quote-data{margin-top:24px;padding:20px;border:1px solid var(--line);border-radius:15px;background:var(--surface)}
.quote-data-grid{display:grid;grid-template-columns:1fr 1fr 180px;gap:12px}
.quote-data label{display:flex;flex-direction:column;gap:7px;color:var(--muted);font-size:.82rem;font-weight:700}
.quote-data input,.quote-data select{width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--text);font:inherit;outline:none}
.quote-data input:focus,.quote-data select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}
#pdfBtn{border:0}
@media(max-width:700px){.quote-data-grid{grid-template-columns:1fr}}
