/*
 * fowc-core: layout only. Colors, fonts and spacing come from the theme.
 * Every rule sits inside :where(), so it has no specificity and any theme rule wins,
 * whichever stylesheet loads first.
 */

/* Progress bar: [fowc_progress] */
:where(.fowc-progress) { display: flex; flex-direction: column; gap: 6px; }
:where(.fowc-progress__track) { height: 8px; border-radius: 4px; overflow: hidden; background: color-mix(in srgb, currentColor 18%, transparent); }
:where(.fowc-progress__bar) { height: 100%; background: currentColor; }
:where(.fowc-progress__label) { margin: 0; }

/* Forms: [fowc_form] */
:where(.fowc-form) { display: flex; flex-direction: column; gap: 1.25rem; max-width: 40rem; }
:where(.fowc-form__field) { display: flex; flex-direction: column; gap: .35rem; margin: 0; padding: 0; border: 0; min-width: 0; }
:where(.fowc-form__label) { font-weight: 600; padding: 0; }
:where(.fowc-form) :where(input[type="text"], input[type="email"], input[type="tel"], textarea) { width: 100%; box-sizing: border-box; font: inherit; }
:where(.fowc-form__choice) { display: flex; gap: .5rem; align-items: baseline; }
:where(.fowc-form__note, .fowc-form__hint, .fowc-form__error, .fowc-form__actions) { margin: 0; }
:where(.fowc-form__error) { font-weight: 600; }
:where(.fowc-form__errors, .fowc-form__thanks) { margin: 0 0 1.25rem; padding: 1rem 1.25rem; border: 2px solid currentColor; }
:where(.fowc-form__errors) :where(p, ul) { margin: 0; }

/* Honeypot and screen-reader-only text (also inline on the honeypot, in case this file loads late). */
.fowc-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.fowc-visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
