/* SEO-21.40 — calculator components consume the canonical website theme tokens.
   Site-wide banner and identity remain owned by gv-public-design-system.css. */
.gv-cost-section{max-width:1180px;margin-inline:auto}
.gv-cost-form{display:block;max-width:960px;margin:24px auto;padding:clamp(16px,3vw,36px);border:1px solid var(--gv-public-outline,var(--border));border-radius:var(--gv20-radius,16px);background:var(--surface-2,var(--surface));color:var(--text);box-shadow:none}
.gv-cost-fieldset{min-width:0;margin:0 0 24px;padding:0 0 22px;border:0;border-bottom:1px solid var(--gv-public-divider,var(--border-soft,var(--border)))}
.gv-cost-fieldset legend{font-size:1.13rem;font-weight:750;margin-bottom:18px;color:var(--text);padding:0}
.gv-cost-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px}
.gv-cost-grid label{display:flex;flex-direction:column;gap:8px;min-width:0}
.gv-cost-grid input,.gv-cost-grid select{width:100%;max-width:100%;min-height:46px;border-radius:9px;padding:9px 12px;box-sizing:border-box;background:var(--control,var(--surface));border:1px solid var(--border);color:var(--text);font:inherit}
.gv-cost-grid :is(input,select):focus-visible,.gv-cost-number-actions button:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px}
.gv-cost-area-group{display:flex;flex-direction:column;gap:8px;min-width:0}
.gv-cost-form .gv-cost-number-field{display:flex;align-items:stretch;min-width:0;position:relative;width:100%;margin:0}
.gv-cost-form .gv-cost-number-field input[type=number]{flex:1 1 auto;min-width:0;width:100%;padding-inline-end:52px}
/* Native browser spinners are intentionally replaced by theme-aware controls. */
.gv-cost-number-field input[type=number]{appearance:textfield;-moz-appearance:textfield}
.gv-cost-number-field input[type=number]::-webkit-inner-spin-button,.gv-cost-number-field input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.gv-cost-number-actions{position:absolute;inset-inline-end:5px;inset-block:5px;display:flex;flex-direction:column;gap:2px;width:36px}
.gv-cost-number-actions button{appearance:none;display:grid;place-items:center;min-width:0;min-height:0;flex:1 1 50%;padding:0;border:1px solid var(--gv-public-outline,var(--border));border-radius:5px;background:var(--surface);color:var(--brand-primary);font-size:1rem;font-weight:800;line-height:1;cursor:pointer}
.gv-cost-number-actions button:hover{background:var(--brand-primary);color:var(--surface)}
.gv-cost-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.gv-cost-check{display:flex!important;flex-direction:row!important;align-items:center;gap:11px;line-height:1.6;margin:8px 0}
.gv-cost-check input[type=checkbox]{width:19px;height:19px;min-height:auto;flex-shrink:0;accent-color:var(--brand-primary)}
.gv-cost-consent{align-items:flex-start;margin-top:14px}
.gv-cost-submit{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.gv-cost-submit small{max-width:490px;line-height:1.6}
.gv-cost-error{max-width:960px;margin:15px auto}
/* Confirmation is shown immediately in the viewport on the post/redirect/get flash. */
.gv-cost-dialog{position:fixed;inset:0;margin:auto;box-sizing:border-box;width:min(94vw,520px);max-height:min(88dvh,760px);overflow:auto;padding:clamp(22px,3vw,34px);border:1px solid var(--gv-public-outline,var(--border));border-radius:var(--gv20-radius,16px);background:var(--surface-2,var(--surface));color:var(--text);text-align:center;box-shadow:0 18px 64px rgba(0,0,0,.28);z-index:16000}
.gv-cost-dialog::backdrop{background:rgba(0,0,0,.74);backdrop-filter:blur(3px)}
.gv-cost-dialog-icon{display:grid;place-items:center;margin:0 auto 14px;width:56px;height:56px;border-radius:50%;border:2px solid var(--brand-primary);color:var(--brand-primary);font-size:1.7rem;font-weight:800}
.gv-cost-dialog h2{font-size:clamp(1.2rem,2.4vw,1.5rem);margin:0 0 12px;color:var(--text)}
.gv-cost-dialog p{margin:0 auto 18px;line-height:1.85;color:var(--text-soft,var(--text));max-width:42ch}
.gv-cost-dialog-reference,.gv-cost-dialog-estimate{display:grid;gap:5px;margin:14px 0;padding:13px;border:1px solid var(--gv-public-divider,var(--border));border-radius:10px;background:var(--surface);color:var(--text)}
.gv-cost-dialog-reference strong,.gv-cost-dialog-estimate strong{font-size:1.15rem;color:var(--brand-primary)}
.gv-cost-dialog-estimate small{font-size:.78rem;line-height:1.5}
.gv-cost-dialog .gv-cost-dialog-note{margin-top:14px}
.gv-cost-dialog-actions{margin:22px 0 0;display:flex;justify-content:center}
.gv-cost-dialog-actions button{min-width:165px}
@media(max-width:700px){.gv-cost-grid,.gv-cost-checks{grid-template-columns:1fr}.gv-cost-form{padding:18px}.gv-cost-submit{display:block}.gv-cost-submit button{width:100%}.gv-cost-submit small{display:block;margin-top:10px}}
@media(prefers-reduced-motion:reduce){.gv-cost-dialog::backdrop{backdrop-filter:none}}
