/*
 * IC Cost Calculators: base layout only. Deliberately plain so the theme can
 * style it. Override the custom properties or any class from your theme.
 * Full class and state list: README.md.
 */
.ic-calc {
	--ic-gap: 1rem;
	--ic-border: #d0d5dc;
	--ic-muted: #555;
	--ic-error: #b00020;
	--ic-warn-bg: #fff6e5;
	--ic-radius: 6px;
	margin: 1.5rem 0;
}
.ic-calc *, .ic-calc *::before, .ic-calc *::after { box-sizing: border-box; }
.ic-calc [hidden] { display: none !important; }
.ic-calc-anchor { display: block; height: 0; scroll-margin-top: 90px; }

/* Inputs */
.ic-calc__form { display: grid; gap: var(--ic-gap); grid-template-columns: 1fr; margin: 0 0 var(--ic-gap); }
.ic-calc__field { margin: 0; min-width: 0; border: 0; padding: 0; }
.ic-calc__label { display: block; font-weight: 600; margin: 0 0 .3rem; }
.ic-calc__control { font: inherit; max-width: 100%; }
.ic-calc select.ic-calc__control,
.ic-calc input[type="text"].ic-calc__control,
.ic-calc input[type="number"].ic-calc__control,
.ic-calc input[type="email"].ic-calc__control,
.ic-calc input[type="tel"].ic-calc__control,
.ic-calc textarea.ic-calc__control {
	width: 100%; min-height: 44px; padding: .5rem .65rem;
	border: 1px solid var(--ic-border); border-radius: var(--ic-radius); background: #fff; color: inherit;
}
.ic-calc__number { display: flex; align-items: center; gap: .5rem; }
.ic-calc__unit { white-space: nowrap; color: var(--ic-muted); }
.ic-calc__zip { max-width: 9rem; }
.ic-calc__help, .ic-calc__option-help { margin: .3rem 0 0; font-size: .9em; color: var(--ic-muted); }
.ic-calc__options { display: grid; gap: .4rem; }
.ic-calc__option, .ic-calc__toggle, .ic-calc__consent { display: flex; gap: .5rem; align-items: flex-start; cursor: pointer; }
.ic-calc__option input, .ic-calc__toggle input, .ic-calc__consent input { margin-top: .25em; flex: none; width: 1.1em; height: 1.1em; }
.ic-calc__option .ic-calc__option-help { display: block; margin: 0; }
.ic-calc__field-error { margin: .3rem 0 0; color: var(--ic-error); font-size: .9em; }
.is-invalid > .ic-calc__control,
.is-invalid .ic-calc__number .ic-calc__control { border-color: var(--ic-error); }

/* Result */
.ic-calc__result { border: 1px solid var(--ic-border); border-radius: var(--ic-radius); padding: var(--ic-gap); }
.ic-calc__headline { margin: 0; font-size: .9em; text-transform: uppercase; letter-spacing: .04em; color: var(--ic-muted); }
.ic-calc__range { margin: .2rem 0; font-size: 1.8em; font-weight: 700; line-height: 1.2; }
.ic-calc__typical, .ic-calc__region { margin: 0 0 .5rem; }
.ic-calc__region { font-size: .9em; color: var(--ic-muted); }
.ic-calc__breakdown, .ic-calc__advisories { list-style: none; margin: .75rem 0 0; padding: 0; }
.ic-calc__line { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem 1rem; padding: .45rem 0; border-top: 1px solid var(--ic-border); }
.ic-calc__line-value { font-weight: 600; }
.ic-calc__advisory { margin: .4rem 0 0; font-size: .92em; }
.ic-calc__advisory--warning { padding: .5rem .75rem; background: var(--ic-warn-bg); border-left: 4px solid #d98a00; }
.ic-calc__error { color: var(--ic-error); }
.ic-calc.is-error .ic-calc__range, .ic-calc.is-error .ic-calc__typical, .ic-calc.is-error .ic-calc__breakdown { opacity: .4; }

/* Compact mode */
.ic-calc__compact-note { margin: .25rem 0 .5rem; }
.ic-calc__full-link { display: inline-block; margin-top: .5rem; }
.ic-calc__quote-step { margin-top: var(--ic-gap); }
.ic-calc__quote-step-title { margin-top: 0; }
.ic-calc__quote-step-title:focus { outline: none; }
.ic-calc__quote-fields { display: grid; gap: var(--ic-gap); grid-template-columns: 1fr; }

/* Lead form */
.ic-calc__cta { margin: var(--ic-gap) 0 0; }
.ic-calc__cta-button, .ic-calc__submit { font: inherit; min-height: 44px; padding: .6rem 1.2rem; cursor: pointer; }
.ic-calc__lead { margin-top: var(--ic-gap); border: 1px solid var(--ic-border); border-radius: var(--ic-radius); padding: var(--ic-gap); }
.ic-calc__lead-title { margin-top: 0; }
.ic-calc__lead-title:focus, .ic-calc__success:focus, .ic-calc__errors:focus { outline: none; }
.ic-calc__lead-fields { display: grid; gap: var(--ic-gap); grid-template-columns: 1fr; margin-bottom: var(--ic-gap); }
.ic-calc__optional { font-weight: 400; color: var(--ic-muted); }
.ic-calc__consent-text, .ic-calc__disclosure { font-size: .85em; color: var(--ic-muted); }
.ic-calc__lead-field--consent { margin-bottom: var(--ic-gap); }
.ic-calc__errors { margin-bottom: var(--ic-gap); padding: .75rem; border-left: 4px solid var(--ic-error); }
.ic-calc__errors p, .ic-calc__errors ul { margin: 0; }
.ic-calc__lead-form.is-loading .ic-calc__submit { opacity: .6; cursor: progress; }

/* Methodology link, embeds (1.5.0) */
.ic-calc__method { margin: .75rem 0 0; font-size: .9em; }
.ic-calc__quotes-link { display: inline-block; }
.ic-calc__embed { margin: .75rem 0 0; font-size: .9em; }
.ic-calc__embed-button { font: inherit; padding: 0; border: 0; background: none; color: inherit; text-decoration: underline; cursor: pointer; }
.ic-calc__embed-dialog { width: min(40rem, calc(100vw - 2rem)); max-height: calc(100vh - 2rem); padding: var(--ic-gap); border: 1px solid var(--ic-border); border-radius: var(--ic-radius); }
.ic-calc__embed-dialog::backdrop { background: rgba(0, 0, 0, .45); }
.ic-calc__embed-dialog-title { margin-top: 0; }
.ic-calc__embed-close { font: inherit; min-height: 44px; padding: .4rem 1rem; cursor: pointer; }
.ic-embed-code { margin: 0 0 var(--ic-gap, 1rem); }
.ic-embed-code *, .ic-embed-code *::before, .ic-embed-code *::after { box-sizing: border-box; }
.ic-embed-code__label { display: block; font-weight: 600; margin: 0 0 .3rem; }
.ic-embed-code__code { display: block; width: 100%; font: .85em/1.45 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; padding: .5rem; border: 1px solid #d0d5dc; border-radius: 6px; resize: vertical; }
.ic-embed-code__actions { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; margin: .5rem 0 0; }
.ic-embed-code__copy { font: inherit; min-height: 44px; padding: .4rem 1rem; cursor: pointer; }
.ic-embed-code__note { margin: .5rem 0 0; font-size: .9em; }

/* Quote checker and price reports (1.6.0) */
.ic-calc__price-tools { display: grid; gap: .75rem; grid-template-columns: 1fr; margin: var(--ic-gap) 0 0; }
.ic-calc__tool-button { display: grid; grid-template-columns: auto 1fr; column-gap: .75rem; align-items: center; text-align: left; font: inherit; color: inherit; min-height: 44px; padding: .75rem 1rem; border: 1px solid var(--ic-border); border-radius: var(--ic-radius); background: transparent; cursor: pointer; }
.ic-calc__tool-icon { grid-row: span 2; display: inline-flex; }
.ic-calc__tool-title { font-weight: 600; }
.ic-calc__tool-text { font-size: .92em; color: var(--ic-muted); }
.ic-calc__checker, .ic-calc__report { margin-top: var(--ic-gap); border: 1px solid var(--ic-border); border-radius: var(--ic-radius); padding: var(--ic-gap); }
.ic-calc__panel-title { margin-top: 0; }
.ic-calc__panel-title:focus, .ic-calc__report-thanks:focus { outline: none; }
.ic-calc__panel-fields { display: grid; gap: var(--ic-gap); grid-template-columns: 1fr; margin-bottom: var(--ic-gap); }
.ic-calc__panel-field { margin: 0; min-width: 0; border: 0; padding: 0; }
.ic-calc__panel-field.is-invalid .ic-calc__control { border-color: var(--ic-error); }
.ic-calc__checks { display: grid; gap: .4rem; }
.ic-calc__month { display: flex; gap: .5rem; }
.ic-calc .ic-calc__month select.ic-calc__control { width: auto; }
.ic-calc__counter { margin: .2rem 0 0; font-size: .85em; color: var(--ic-muted); }
.ic-calc__panel-submit, .ic-calc__verdict-quotes, .ic-calc__optin-send { font: inherit; min-height: 44px; padding: .6rem 1.2rem; cursor: pointer; }
.ic-calc__verdict { margin-top: var(--ic-gap); }
.ic-calc__verdict-title { font-weight: 700; margin: 0 0 .25rem; }
.ic-calc__verdict-bar { position: relative; height: 10px; margin: 1rem 0 2rem; border-radius: 5px; background: var(--ic-border); }
.ic-calc__verdict-range { position: absolute; top: 0; bottom: 0; border-radius: 5px; background: #8bb89c; }
.ic-calc__verdict-marker { position: absolute; top: -5px; width: 4px; height: 20px; margin-left: -2px; border-radius: 2px; background: currentColor; }
.ic-calc__verdict-low, .ic-calc__verdict-high { position: absolute; top: 14px; font-size: .8em; color: var(--ic-muted); transform: translateX(-50%); white-space: nowrap; }
.ic-calc__verdict-note { font-size: .9em; color: var(--ic-muted); }
.ic-calc__verdict-heading { margin: var(--ic-gap) 0 .3rem; }
.ic-calc__verdict-questions, .ic-calc__verdict-flags { margin: 0; padding-left: 1.2rem; }
.ic-calc__verdict-actions { display: grid; gap: .75rem; margin-top: var(--ic-gap); justify-items: start; }
.ic-calc__optin { display: flex; gap: .5rem; align-items: flex-start; cursor: pointer; }
.ic-calc__optin input { margin-top: .25em; flex: none; width: 1.1em; height: 1.1em; }
.ic-calc__optin-status:empty { display: none; }
.ic-calc__report-summary { font-size: .92em; color: var(--ic-muted); }
.ic-calc__reported { margin-top: .75rem; padding-top: .5rem; border-top: 1px solid var(--ic-border); }
.ic-calc__reported-title { margin: 0; font-size: .9em; text-transform: uppercase; letter-spacing: .04em; color: var(--ic-muted); }
.ic-calc__reported-line { margin: .2rem 0; }
.ic-calc__reported-meta { margin: .2rem 0 0; font-size: .85em; color: var(--ic-muted); }
.ic-tool__picker { margin: 0 0 var(--ic-gap, 1rem); }
.ic-tool__picker select { min-height: 44px; max-width: 100%; }
@media (min-width: 640px) {
	.ic-calc__price-tools { grid-template-columns: 1fr 1fr; }
	.ic-calc__panel-fields { grid-template-columns: 1fr 1fr; }
	.ic-calc__checks, .ic-calc__panel-field--type, .ic-calc__panel-field--note, .ic-calc__panel-field--month { grid-column: 1 / -1; }
}
@media print { .ic-calc__price-tools, .ic-calc__checker, .ic-calc__report { display: none !important; } }

/* Hidden helpers */
.ic-calc__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.ic-calc__visually-hidden { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Editor-only notice for broken configs */
.ic-calc-notice { margin: 1.5rem 0; padding: 1rem; border: 2px dashed #b00020; background: #fff5f5; font-size: .95rem; }

@media (min-width: 640px) {
	.ic-calc__form { grid-template-columns: 1fr 1fr; }
	.ic-calc__field--radio, .ic-calc__field--toggle { grid-column: 1 / -1; }
	.ic-calc__lead-fields, .ic-calc__quote-fields { grid-template-columns: 1fr 1fr; }
	.ic-calc--compact .ic-calc__form { grid-template-columns: 1fr; }
	.ic-calc__lead-field--address, .ic-calc__lead-field--notes { grid-column: 1 / -1; }
}
