/* Price estimator (all design styles, homepage). */
.cv-est__box { display: grid; gap: var(--space-6); padding: var(--space-6); background: var(--color-surface, #fff); color: var(--color-text); border: 1px solid var(--color-border); border-radius: var(--radius-lg, 12px); }
.cv-est__title { margin: 0 0 var(--space-2); }
.cv-est__lead { margin: 0; color: var(--color-text-muted); }
.cv-est__eg { margin: var(--space-2) 0 0; font-size: .85rem; color: var(--color-text-muted); }
.cv-est__opts { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: var(--space-2); }
.cv-est__opt { display: grid; grid-template-columns: auto 1fr; grid-template-areas: "box name" "box price"; gap: 0 var(--space-3); align-items: center; min-height: 48px; padding: var(--space-3) var(--space-4); border: 2px solid var(--color-border); border-radius: var(--radius-md, 8px); cursor: pointer; }
.cv-est__opt input { grid-area: box; width: 22px; height: 22px; margin: 0; accent-color: var(--color-primary); }
.cv-est__opt:has(input:checked) { border-color: var(--color-primary); background: var(--color-primary-light); }
.cv-est__opt:has(input:focus-visible) { outline: 3px solid var(--cv-focus, var(--color-primary)); outline-offset: 2px; }
.cv-est__optname { grid-area: name; font-weight: 700; overflow-wrap: anywhere; }
.cv-est__optprice { grid-area: price; color: var(--color-text-muted); font-size: .9rem; }
.cv-est__qty { display: block; margin-top: var(--space-4); }
.cv-est__qty span { display: block; margin-bottom: 4px; font-weight: 700; }
.cv-est__qtyin { width: 100%; max-width: 12rem; min-height: 48px; padding: 0 var(--space-3); font: inherit; border: 2px solid var(--color-border); border-radius: var(--radius-md, 8px); background: #fff; color: #111; }
.cv-est__qtyin:focus-visible { outline: 3px solid var(--cv-focus, var(--color-primary)); outline-offset: 2px; }
.cv-est__result { margin-top: var(--space-4); }
.cv-est__total { margin: 0; font-size: clamp(1.4rem, 4vw, 2rem); font-weight: 700; min-height: 1.3em; overflow-wrap: anywhere; }
.cv-est__note { margin: var(--space-1) 0 var(--space-4); color: var(--color-text-muted); }
.cv-est__cta[hidden] { display: none; }
@media (min-width: 900px) { .cv-est__box { grid-template-columns: .8fr 1.2fr; padding: var(--space-10); } }
