/**
 * Smartvest forms. Uses the theme's design tokens, with fallbacks.
 */
.sv-form-wrap {
	--sv-ink: var(--wp--preset--color--ink, #140b06);
	--sv-text: var(--wp--preset--color--contrast, #180f09);
	--sv-muted: var(--wp--preset--color--muted, #665b53);
	--sv-gold: var(--wp--preset--color--gold, #c97c1a);
	--sv-gold-deep: var(--wp--preset--color--gold-deep, #96590d);
	--sv-gold-soft: var(--wp--preset--color--gold-soft, #ffe6bf);
	--sv-base: var(--wp--preset--color--base, #fefbf8);
	--sv-surface: var(--wp--preset--color--surface, #f7f1e7);
	--sv-line: var(--wp--preset--color--rule, rgba(20, 11, 6, 0.14));
	--sv-field-line: var(--wp--preset--color--border-strong, #948a80);
	--sv-error: var(--wp--preset--color--error, #c81e1e);
	--sv-ease: cubic-bezier(0.22, 1, 0.36, 1);
	color: var(--sv-text);
	font-size: 0.9375rem;
	scroll-margin-top: 6rem;
}
.sv-form-wrap [hidden] { display: none !important; }
.sv-form-wrap :is(input, select, textarea, fieldset, [data-sv-summary]) { scroll-margin-top: 6rem; }
.sv-form-wrap *, .sv-form-wrap *::before, .sv-form-wrap *::after { box-sizing: border-box; }

.sv-hp { position: absolute !important; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }

/* Type */
.sv-label, .sv-form-wrap legend.sv-label {
	display: block;
	margin: 0 0 0.5rem;
	padding: 0;
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.22em;
	line-height: 1.5;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--sv-ink) 72%, transparent);
}
.sv-req { margin-left: 0.25em; color: var(--sv-gold-deep); }
.sv-hint { margin: 0.4rem 0 0; font-size: 0.75rem; color: var(--sv-muted); }
.sv-error { margin: 0.4rem 0 0; font-size: 0.8125rem; color: var(--sv-error); }
.sv-form__title { margin: 0 0 0.5rem; font-size: 1.25rem; font-weight: 500; letter-spacing: -0.01em; color: var(--sv-ink); }
.sv-form__intro { margin: 0 0 1.5rem; color: var(--sv-muted); }
.sv-form__legal { margin: 1.25rem 0 0; font-size: 0.75rem; color: var(--sv-muted); }
.sv-form__legal a { color: inherit; }

/* Layout */
.sv-form { margin: 0; }
.sv-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem 1.5rem; }
@media (min-width: 640px) { .sv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sv-field--full, .sv-field--html, .sv-field--files { grid-column: 1 / -1; }
.sv-field { min-width: 0; }

.sv-section { margin: 0; padding: 2rem 0 0; border: 0; border-top: 1px solid var(--sv-line); min-width: 0; }
.sv-section + .sv-section { margin-top: 2rem; }
.sv-step > .sv-section:first-of-type, .sv-step > .sv-step__title + .sv-section { border-top: 0; padding-top: 0.5rem; }
.sv-section__title { float: left; width: 100%; margin: 0 0 1.25rem; padding: 0; font-size: 1.125rem; font-weight: 500; letter-spacing: -0.01em; color: var(--sv-ink); }
.sv-section__title + * { clear: both; }
.sv-section__num { margin-right: 0.5rem; font-size: 0.75rem; letter-spacing: 0.2em; color: var(--sv-gold-deep); vertical-align: 0.15em; }
.sv-section__intro { margin: 0 0 1.25rem; color: var(--sv-muted); }
.sv-step + .sv-step { margin-top: 3rem; }
.sv-step__title { margin: 0 0 1.5rem; font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.22em; text-transform: uppercase; color: color-mix(in srgb, var(--sv-ink) 62%, transparent); }
.sv-step__title:focus { outline: none; }
.sv-form--wizard.is-enhanced .sv-step:not(.is-current) { display: none; }
.sv-form--wizard.is-enhanced .sv-step + .sv-step { margin-top: 0; }

/* Controls */
.sv-form input[type="text"], .sv-form input[type="email"], .sv-form input[type="tel"], .sv-form input[type="date"],
.sv-form select, .sv-form textarea {
	display: block;
	width: 100%;
	min-height: 2.75rem;
	margin: 0;
	padding: 0.6rem 0.75rem;
	border: 1px solid var(--sv-field-line);
	border-radius: 2px;
	background: var(--sv-base);
	color: var(--sv-ink);
	font: inherit;
	font-size: 0.9375rem;
	line-height: 1.4;
	transition: border-color 0.15s var(--sv-ease), box-shadow 0.15s var(--sv-ease);
}
.sv-form textarea { min-height: 8rem; resize: vertical; }
.sv-form select { appearance: none; padding-right: 2.25rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath fill='%23665b53' d='M216.49 104.49l-80 80a12 12 0 0 1-17 0l-80-80a12 12 0 0 1 17-17L128 159l71.51-71.52a12 12 0 0 1 17 17Z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 0.75rem center; background-size: 0.75rem; }
.sv-form ::placeholder { color: color-mix(in srgb, var(--sv-muted) 75%, transparent); }
.sv-form :is(input, select, textarea):focus-visible { outline: 2px solid var(--sv-gold); outline-offset: 1px; border-color: var(--sv-gold); }
.sv-form [aria-invalid="true"], .sv-form fieldset[aria-invalid="true"] .sv-choice__option { border-color: var(--sv-error) !important; }
.sv-form :is(input, select, textarea):disabled { opacity: 0.6; }

/* Underline variant (contact) */
.sv-form--underline :is(input[type="text"], input[type="email"], input[type="tel"], textarea) { border-width: 0 0 1px; border-radius: 0; padding-inline: 0; background: transparent; }

/* Checkbox */
.sv-check { display: flex; gap: 0.75rem; align-items: flex-start; cursor: pointer; line-height: 1.5; }
.sv-check input { flex: none; width: 1.125rem; height: 1.125rem; margin: 0.15rem 0 0; accent-color: var(--sv-gold-deep); cursor: pointer; }

/* Radio / checkbox groups */
.sv-choice { margin: 0; padding: 0; border: 0; min-width: 0; }
.sv-choice__options { display: grid; gap: 0.75rem; }
.sv-choice__option { position: relative; display: flex; gap: 0.75rem; align-items: flex-start; cursor: pointer; }
.sv-choice__option input { flex: none; width: 1.125rem; height: 1.125rem; margin: 0.2rem 0 0; accent-color: var(--sv-gold-deep); }
.sv-choice__text { display: grid; gap: 0.25rem; }
.sv-choice__label { font-weight: 500; color: var(--sv-ink); }
.sv-choice__note { font-size: 0.8125rem; color: var(--sv-muted); }

.sv-choice--cards .sv-choice__options { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) { .sv-choice--cards .sv-choice__options { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sv-choice--cards .sv-choice__option { padding: 1.1rem 1.25rem; border: 1px solid var(--sv-field-line); background: var(--sv-base); transition: border-color 0.15s var(--sv-ease), background-color 0.15s var(--sv-ease); }
.sv-choice--cards .sv-choice__option:has(input:checked) { border-color: var(--sv-gold); background: color-mix(in srgb, var(--sv-gold-soft) 45%, var(--sv-base)); }
.sv-choice--cards .sv-choice__option:has(input:focus-visible) { outline: 2px solid var(--sv-gold); outline-offset: 2px; }

.sv-choice--toggle .sv-choice__options { display: inline-flex; gap: 0; border: 1px solid var(--sv-field-line); }
.sv-choice--toggle .sv-choice__option { padding: 0.65rem 1.25rem; align-items: center; }
.sv-choice--toggle .sv-choice__option + .sv-choice__option { border-left: 1px solid var(--sv-field-line); }
.sv-choice--toggle .sv-choice__option input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.sv-choice--toggle .sv-choice__option:has(input:checked) { background: var(--sv-ink); }
.sv-choice--toggle .sv-choice__option:has(input:checked) .sv-choice__label { color: var(--sv-base); }
.sv-choice--toggle .sv-choice__option:has(input:focus-visible) { outline: 2px solid var(--sv-gold); outline-offset: 2px; z-index: 1; }

/* Documents */
.sv-checklist { margin: 0 0 1.25rem; padding-left: 1.1rem; color: var(--sv-text); }
.sv-checklist li + li { margin-top: 0.35rem; }
.sv-drop { position: relative; border: 1px dashed var(--sv-field-line); background: var(--sv-base); transition: border-color 0.15s var(--sv-ease), background-color 0.15s var(--sv-ease); }
.sv-drop.is-over { border-color: var(--sv-gold); background: color-mix(in srgb, var(--sv-gold-soft) 40%, var(--sv-base)); }
.sv-drop__label { display: grid; gap: 0.35rem; justify-items: center; padding: 2rem 1rem; text-align: center; cursor: pointer; }
.sv-drop__title { font-weight: 500; color: var(--sv-ink); }
.sv-drop__meta { font-size: 0.75rem; color: var(--sv-muted); }
.sv-drop input[type="file"] { display: block; width: 100%; padding: 0 1rem 1.25rem; font: inherit; font-size: 0.8125rem; color: var(--sv-muted); }
.sv-form.is-enhanced .sv-drop input[type="file"] { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; opacity: 0; cursor: pointer; }
.sv-form.is-enhanced .sv-drop:has(input:focus-visible) { outline: 2px solid var(--sv-gold); outline-offset: 2px; }
.sv-file-list { margin: 0.75rem 0 0; padding: 0; list-style: none; }
.sv-file { display: flex; gap: 1rem; align-items: center; padding: 0.6rem 0; border-bottom: 1px solid var(--sv-line); font-size: 0.875rem; }
.sv-file__name { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--sv-ink); }
.sv-file__size { flex: none; color: var(--sv-muted); font-variant-numeric: tabular-nums; }

/* Terms and review */
.sv-terms { max-height: 15rem; overflow-y: auto; padding: 1.25rem; border: 1px solid var(--sv-line); background: var(--sv-surface); font-size: 0.8125rem; line-height: 1.6; color: var(--sv-text); }
.sv-terms:focus-visible { outline: 2px solid var(--sv-gold); outline-offset: 2px; }
.sv-terms p { margin: 0 0 0.9rem; }
.sv-terms p:last-child { margin-bottom: 0; }
.sv-review__group { padding: 1rem 0; border-bottom: 1px solid var(--sv-line); }
.sv-review__group:first-child { padding-top: 0; }
.sv-review__head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.sv-review__title { margin: 0 0 0.5rem; font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.22em; text-transform: uppercase; color: color-mix(in srgb, var(--sv-ink) 62%, transparent); }
.sv-review__list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.35rem 1.5rem; margin: 0; }
@media (min-width: 640px) { .sv-review__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sv-review__row { display: grid; grid-template-columns: 10rem minmax(0, 1fr); gap: 0.75rem; font-size: 0.875rem; }
.sv-review__row dt { color: var(--sv-muted); }
.sv-review__row dd { margin: 0; color: var(--sv-ink); overflow-wrap: anywhere; }

/* Progress */
.sv-progress { display: flex; flex-wrap: wrap; gap: 0; margin: 0 0 2.5rem; padding: 0; list-style: none; border-top: 1px solid var(--sv-line); }
.sv-progress__item { flex: 1 1 0; min-width: 4.5rem; display: grid; gap: 0.2rem; padding: 0.9rem 0.75rem 0 0; border-top: 2px solid transparent; margin-top: -1px; color: var(--sv-muted); }
.sv-progress__num { font-size: 0.75rem; font-weight: 500; letter-spacing: 0.2em; }
.sv-progress__label { font-size: 0.8125rem; }
.sv-progress__item.is-done { border-top-color: color-mix(in srgb, var(--sv-gold) 55%, transparent); }
.sv-progress__item.is-done .sv-progress__num { color: var(--sv-gold-deep); }
.sv-progress__item[aria-current="step"] { border-top-color: var(--sv-gold); color: var(--sv-ink); }
.sv-progress__item[aria-current="step"] .sv-progress__num { color: var(--sv-gold-deep); }
@media (max-width: 599.98px) { .sv-progress__label { display: none; } .sv-progress__item[aria-current="step"] .sv-progress__label { display: block; } }

/* Alerts */
.sv-alert { margin: 0 0 1.5rem; padding: 1rem 1.25rem; border-left: 3px solid var(--sv-error); background: color-mix(in srgb, var(--sv-error) 6%, var(--sv-base)); }
.sv-alert:focus { outline: none; }
.sv-alert--ok { border-left-color: var(--sv-gold); background: color-mix(in srgb, var(--sv-gold-soft) 45%, var(--sv-base)); }
.sv-alert__title { margin: 0; font-weight: 500; color: var(--sv-ink); }
.sv-alert p { margin: 0.25rem 0 0; }
.sv-alert__list { margin: 0.5rem 0 0; padding-left: 1.1rem; font-size: 0.875rem; }
.sv-alert__list li + li { margin-top: 0.25rem; }
.sv-alert__list a { display: inline-block; min-height: 1.5rem; padding: 0.15rem 0; line-height: 1.25rem; color: var(--sv-error); }

/* Buttons */
.sv-form__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; margin-top: 2rem; }
.sv-form--wizard .sv-form__actions { justify-content: space-between; padding-top: 1.5rem; border-top: 1px solid var(--sv-line); }
.sv-form--wizard .sv-form__actions [data-sv-back][hidden] + * { margin-left: auto; }
.sv-btn {
	display: inline-flex;
	gap: 0.75rem;
	align-items: center;
	justify-content: center;
	min-height: 3rem;
	padding: 0.75rem 1.75rem;
	border: 1px solid transparent;
	border-radius: 0;
	font: inherit;
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	line-height: 1.3;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s var(--sv-ease), color 0.2s var(--sv-ease), border-color 0.2s var(--sv-ease);
}
.sv-btn:focus-visible { outline: 2px solid var(--sv-gold); outline-offset: 3px; }
.sv-btn[disabled] { opacity: 0.6; cursor: progress; }
.sv-btn--primary { background: var(--sv-gold); border-color: var(--sv-gold); color: var(--sv-ink); }
.sv-btn--primary:hover { background: #b56f17; border-color: #b56f17; }
.sv-btn--ink { background: var(--sv-ink); border-color: var(--sv-ink); color: var(--sv-base); }
.sv-btn--ink:hover { background: var(--sv-gold); border-color: var(--sv-gold); color: var(--sv-ink); }
.sv-btn--ghost { background: transparent; border-color: var(--sv-ink); color: var(--sv-ink); }
.sv-btn--ghost:hover { background: var(--sv-ink); color: var(--sv-base); }
.sv-btn--arrow::after { content: ""; width: 1rem; height: 1rem; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M224.49 136.49l-72 72a12 12 0 0 1-17-17L187 140H40a12 12 0 0 1 0-24h147l-51.49-51.52a12 12 0 0 1 17-17l72 72a12 12 0 0 1-.02 17.01Z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M224.49 136.49l-72 72a12 12 0 0 1-17-17L187 140H40a12 12 0 0 1 0-24h147l-51.49-51.52a12 12 0 0 1 17-17l72 72a12 12 0 0 1-.02 17.01Z'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform 0.2s var(--sv-ease); }
.sv-btn--arrow:hover::after { transform: translateX(3px); }
.sv-link-btn { margin: 0; padding: 0; border: 0; background: none; font: inherit; font-size: 0.8125rem; font-weight: 500; color: var(--sv-ink); text-decoration: underline; text-underline-offset: 0.2em; cursor: pointer; }
.sv-link-btn:hover { color: var(--sv-gold-deep); }
.sv-link-btn:focus-visible { outline: 2px solid var(--sv-gold); outline-offset: 2px; }
.sv-section--repeat > .sv-link-btn { margin-top: 1rem; }
.sv-add { margin-top: 1.5rem; }
.sv-turnstile { margin-top: 1.5rem; }

/* Success */
.sv-success { padding: clamp(1.5rem, 1rem + 2vw, 2.5rem); border: 1px solid var(--sv-line); background: var(--wp--preset--color--white, #fff); }
.sv-success:focus { outline: none; }
.sv-success__title { margin: 0; font-size: 1.5rem; font-weight: 500; letter-spacing: -0.01em; color: var(--sv-ink); }
.sv-success__text { margin: 0.75rem 0 0; color: var(--sv-muted); }
.sv-success__ref { display: inline-flex; flex-wrap: wrap; gap: 0.75rem; align-items: baseline; margin: 1.25rem 0 0; padding: 0.75rem 1rem; border: 1px solid var(--sv-gold); background: color-mix(in srgb, var(--sv-gold-soft) 40%, var(--sv-base)); }
.sv-success__ref span { font-size: 0.6875rem; font-weight: 500; letter-spacing: 0.22em; text-transform: uppercase; color: color-mix(in srgb, var(--sv-ink) 70%, transparent); }
.sv-success__ref strong { font-size: 1.125rem; font-weight: 600; letter-spacing: 0.04em; color: var(--sv-ink); font-variant-numeric: tabular-nums; }
.sv-success__steps { margin: 1.25rem 0 0; padding-left: 1.25rem; color: var(--sv-text); }
.sv-success__steps li + li { margin-top: 0.4rem; }

/* Newsletter (inline) */
.sv-form-wrap--inline .sv-form .sv-grid { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 640px) {
	.sv-form--inline .sv-step { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 0.75rem; align-items: end; }
	.sv-form--inline .sv-section { grid-column: 1 / -1; }
}
.sv-form--inline .sv-form__actions { margin-top: 1rem; }
.sv-newsletter-action .sv-btn { margin-top: 0.5rem; }

/* Application picker */
.sv-picker { display: grid; gap: 2.5rem; }
.sv-picker__cards { display: grid; gap: 1px; background: var(--sv-line, rgba(20, 11, 6, 0.14)); border: 1px solid var(--wp--preset--color--rule, rgba(20, 11, 6, 0.14)); }
@media (min-width: 782px) { .sv-picker__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.sv-picker__card { display: grid; gap: 0.75rem; align-content: start; padding: clamp(1.75rem, 1rem + 2.5vw, 2.5rem); background: var(--wp--preset--color--base, #fefbf8); color: inherit; text-decoration: none; transition: background-color 0.2s; }
.sv-picker__card:hover { background: var(--wp--preset--color--surface, #f7f1e7); }
.sv-picker__card:focus-visible { outline: 2px solid var(--wp--preset--color--gold, #c97c1a); outline-offset: -2px; }
.sv-picker__title { font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem); font-weight: 500; letter-spacing: -0.01em; color: var(--wp--preset--color--ink, #140b06); }
.sv-picker__text { color: var(--wp--preset--color--muted, #665b53); }
.sv-picker__go { margin-top: 0.5rem; font-size: 0.875rem; font-weight: 500; color: var(--wp--preset--color--ink, #140b06); text-decoration: underline; text-underline-offset: 0.25em; }
.sv-picker__info { display: grid; gap: 1.5rem 2.5rem; padding-top: 2rem; border-top: 1px solid var(--wp--preset--color--rule, rgba(20, 11, 6, 0.14)); }
@media (min-width: 782px) { .sv-picker__info { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.sv-picker__item p, .sv-picker__item ul { margin: 0; font-size: 0.875rem; }
.sv-picker__item ul { padding-left: 1.1rem; }
.sv-picker .sv-label { color: color-mix(in srgb, var(--wp--preset--color--ink, #140b06) 72%, transparent); }
.sv-picker .sv-hint { margin-top: 0.5rem; }

@media (prefers-reduced-motion: reduce) {
	.sv-form-wrap *, .sv-picker * { transition: none !important; }
}
