.classen-calculator-page { background: #f7f3ec; }
.calculator-hero { padding: clamp(10rem, 17vw, 13rem) 0 clamp(4rem, 8vw, 7rem); background: radial-gradient(circle at 82% 22%, rgba(199,155,85,.27), transparent 30%), linear-gradient(135deg,#171717,#29231d); color:#fff; }
.calculator-hero h1 { max-width: 900px; font-size: clamp(2.6rem, 6vw, 5.4rem); font-weight: 950; line-height: .98; letter-spacing: -.05em; }
.calculator-hero .lead { max-width: 720px; margin-top: 1.5rem; color: rgba(255,255,255,.7); font-size: clamp(1rem,2vw,1.2rem); line-height:1.75; }
.calculator-shell { padding: clamp(3rem,7vw,6rem) 0; }
.calculator-layout { display:grid; gap:1.5rem; align-items:start; }
@media(min-width:1050px){.calculator-layout{grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr)}.order-panel{position:sticky;top:8.5rem}}
.config-panel,.order-panel { border:1px solid rgba(23,23,23,.1); border-radius:1.4rem; background:#fff; box-shadow:0 24px 70px rgba(23,23,23,.08); }
.config-panel { padding: clamp(1.2rem,3vw,2.2rem); }
.order-panel { overflow:hidden; }
.panel-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1.7rem; }
.panel-heading h2,.order-header h2 { font-size:clamp(1.5rem,3vw,2.15rem); font-weight:900; line-height:1.1; letter-spacing:-.025em; }
.step-badge { flex:none; padding:.45rem .7rem; border-radius:999px; background:#f1e5d2; color:#805b26; font-size:.75rem; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.calc-price-alert { display:grid; grid-template-columns:auto 1fr; gap:.85rem; align-items:start; margin:-.35rem 0 1.4rem; border:2px solid rgba(159,77,53,.26); border-radius:1rem; background:linear-gradient(135deg,#fff4cf,#fffaf2); padding:1rem; box-shadow:0 16px 38px rgba(159,77,53,.1); }
.calc-price-alert i { color:#9f4d35; font-size:1.45rem; line-height:1; }
.calc-price-alert strong,.calc-price-alert span { display:block; }
.calc-price-alert strong { font-size:1.05rem; font-weight:950; }
.calc-price-alert span { margin-top:.18rem; color:rgba(23,23,23,.65); font-weight:800; line-height:1.45; }
.config-grid { display:grid; gap:1rem; }
@media(min-width:680px){.config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.field-wide{grid-column:1/-1}}
.calc-field { display:grid; gap:.5rem; }
.calc-field > span { font-size:.78rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; color:rgba(23,23,23,.58); }
.calc-field select,.calc-field input { width:100%; min-height:3.25rem; border:1px solid rgba(23,23,23,.16); border-radius:.8rem; background:#fbfaf7; padding:.75rem .9rem; color:#171717; font-weight:700; outline:none; }
.calc-field select:focus,.calc-field input:focus { border-color:#c79b55; box-shadow:0 0 0 3px rgba(199,155,85,.16); }
.preview-card { display:grid; gap:1rem; align-items:center; margin:1.5rem 0; padding:1rem; border-radius:1rem; background:#f7f3ec; }
@media(min-width:620px){.preview-card{grid-template-columns:110px 1fr}}
.preview-card img { width:110px; height:150px; object-fit:contain; margin:auto; }
.preview-card h3 { font-size:1.25rem; font-weight:900; }
.preview-card p { margin-top:.35rem; color:rgba(23,23,23,.62); line-height:1.55; }
.live-price { display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:1rem; margin-top:1.4rem; padding-top:1.4rem; border-top:1px solid rgba(23,23,23,.1); }
.live-price span { display:block; color:rgba(23,23,23,.55); font-size:.82rem; font-weight:700; }
.live-price strong { display:block; font-size:clamp(1.8rem,4vw,2.6rem); font-weight:950; letter-spacing:-.04em; }
.live-price small { color:rgba(23,23,23,.48); }
.live-breakdown { display:grid; gap:.35rem; max-width:420px; margin:.8rem 0 0; border-radius:.8rem; background:#171717; padding:.8rem; }
.live-breakdown div { display:flex; justify-content:space-between; gap:1rem; }
.live-breakdown dt,.live-breakdown dd { margin:0; color:#fff; font-size:.9rem; font-weight:900; }
.live-breakdown dt { color:rgba(255,255,255,.62); }
.live-exclusion { display:flex; gap:.45rem; align-items:flex-start; max-width:420px; margin:.65rem 0 0; border-radius:.7rem; background:rgba(159,77,53,.1); padding:.65rem .75rem; color:#70331f; font-size:.84rem; font-weight:900; line-height:1.35; }
.live-exclusion i { color:#9f4d35; margin-top:.1rem; }
.add-config { display:inline-flex; min-height:3.25rem; align-items:center; justify-content:center; gap:.55rem; border-radius:.8rem; background:#171717; padding:.75rem 1.15rem; color:#fff; font-weight:900; transition:.2s ease; }
.add-config:hover { transform:translateY(-2px); background:#9f4d35; }
.order-header { padding:1.5rem; background:#171717; color:#fff; }
.order-header p { margin-top:.5rem; color:rgba(255,255,255,.58); }
.order-items { display:grid; gap:.75rem; max-height:440px; overflow:auto; padding:1rem; }
.empty-order { padding:2.5rem 1rem; text-align:center; color:rgba(23,23,23,.5); }
.empty-order i { display:block; margin-bottom:.75rem; font-size:2rem; color:#c79b55; }
.order-item { position:relative; padding:1rem 2.6rem 1rem 1rem; border:1px solid rgba(23,23,23,.1); border-radius:.85rem; background:#fbfaf7; }
.order-item h3 { font-weight:900; }
.order-item p { margin-top:.3rem; color:rgba(23,23,23,.58); font-size:.82rem; line-height:1.5; }
.order-item-breakdown { display:grid; gap:.25rem; margin:.75rem 0 0; border-radius:.65rem; background:#fff; padding:.65rem; }
.order-item-breakdown div { display:flex; justify-content:space-between; gap:1rem; }
.order-item-breakdown dt,.order-item-breakdown dd { margin:0; color:rgba(23,23,23,.72); font-size:.8rem; font-weight:900; }
.order-item-breakdown dt { color:rgba(23,23,23,.48); }
.order-item-price { display:flex; justify-content:space-between; gap:1rem; margin-top:.75rem; font-weight:900; }
.remove-item { position:absolute; top:.65rem; right:.65rem; display:grid; width:1.8rem; height:1.8rem; place-items:center; border-radius:50%; color:#9f4d35; }
.remove-item:hover { background:rgba(159,77,53,.1); }
.order-total { padding:1.25rem 1.5rem 1.5rem; border-top:1px solid rgba(23,23,23,.1); background:#f7f3ec; }
.total-row { display:flex; justify-content:space-between; gap:1rem; }
.total-row strong { font-size:1.8rem; font-weight:950; }
.order-note { margin-top:1rem; border-radius:.75rem; background:#fff4cf; padding:.75rem .85rem; color:rgba(23,23,23,.72); font-size:.8rem; font-weight:800; line-height:1.5; }
.order-note strong { color:#171717; font-weight:950; }
.clear-order { margin-top:1rem; color:#9f4d35; font-size:.82rem; font-weight:900; }
.order-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.75rem; margin-top:1rem; }
.order-actions .clear-order { margin-top:0; }
.print-order { display:inline-flex; min-height:2.75rem; align-items:center; justify-content:center; gap:.5rem; border-radius:.7rem; background:#171717; padding:.65rem 1rem; color:#fff; font-size:.85rem; font-weight:900; }
.print-order:hover { background:#9f4d35; }
.print-logo,.print-meta { display:none; }
.calc-toast { position:fixed; right:1rem; bottom:1rem; z-index:100; transform:translateY(140%); border-radius:.8rem; background:#171717; padding:.9rem 1.1rem; color:#fff; font-weight:800; box-shadow:0 16px 45px rgba(0,0,0,.25); transition:.3s ease; }
.calc-toast.is-visible { transform:translateY(0); }
@media print {
  @page { size:A4; margin:14mm; }
  body { background:#fff !important; color:#111 !important; font-family:Arial,sans-serif; }
  header,.calculator-hero,.config-panel,footer,.brand-story-banner,.back-to-top,.calc-toast { display:none !important; }
  .calculator-shell { padding:0 !important; }
  .calculator-layout { display:block !important; }
  .order-panel { position:static !important; border:0 !important; border-radius:0 !important; box-shadow:none !important; overflow:visible !important; }
  .order-header { padding:0 0 8mm !important; border-bottom:2px solid #111; background:#fff !important; color:#111 !important; }
  .order-header p { color:#555 !important; }
  .print-logo { display:block; float:right; width:41px; height:40px; }
  .print-meta { display:block !important; margin-top:3mm !important; font-size:10pt; }
  .order-items { max-height:none !important; overflow:visible !important; padding:7mm 0 !important; }
  .order-item { break-inside:avoid; padding:4mm !important; border-color:#bbb !important; background:#fff !important; }
  .remove-item,.order-actions { display:none !important; }
  .order-total { padding:6mm 0 0 !important; border-top:2px solid #111 !important; background:#fff !important; }
  .order-note { max-width:160mm; font-size:9pt !important; }
}
