/**
 * WP Waiver — neutral default styles. Every color/font decision flows
 * through a --wpw-* custom property so themes can restyle the form by
 * overriding variables on .wpw (no selector fights needed).
 */

:where(.wpw) {
	--wpw-text: #1e1e1e;
	--wpw-muted: #5f5f5f;
	--wpw-panel: #ffffff;
	--wpw-field-bg: #ffffff;
	--wpw-border: #d5d5d5;
	--wpw-accent: #2271b1;
	--wpw-accent-text: #ffffff;
	--wpw-req: #b32d2e;
	--wpw-paper: #f5f3ec;
	--wpw-ink: #14130e;
	--wpw-radius: 4px;
	--wpw-font: inherit;

	font-family: var(--wpw-font);
	color: var(--wpw-text);
}
:where(.wpw *), :where(.wpw *::before), :where(.wpw *::after) { box-sizing: border-box; }

:where(.wpw-form) {
	background: var(--wpw-panel);
	border: 1px solid var(--wpw-border);
	border-radius: var(--wpw-radius);
	padding: 36px 40px 40px;
}

:where(.wpw-section) { display: flex; flex-direction: column; gap: 18px; }
:where(.wpw-sechead) {
	display: flex; align-items: center; gap: 12px;
	margin: 0; font-size: 15px; font-weight: 700;
	letter-spacing: .08em; text-transform: uppercase; color: var(--wpw-accent);
}
:where(.wpw-num) {
	display: inline-flex; align-items: center; justify-content: center;
	width: 26px; height: 26px; flex: none;
	border: 1px solid var(--wpw-accent); border-radius: var(--wpw-radius);
	font-size: 14px;
}
:where(.wpw-divider) { border: none; border-top: 1px solid var(--wpw-border); margin: 32px 0; }

:where(.wpw-grid) { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
:where(.wpw-full) { grid-column: 1 / -1; }
:where(.wpw-field) { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
:where(.wpw-label) {
	font-size: 13px; font-weight: 600; letter-spacing: .06em;
	text-transform: uppercase; color: var(--wpw-muted);
}
:where(.wpw-req) { font-style: normal; color: var(--wpw-req); }
:where(.wpw-input) {
	height: 46px; padding: 0 13px; width: 100%;
	background: var(--wpw-field-bg); color: var(--wpw-text);
	border: 1px solid var(--wpw-border); border-radius: var(--wpw-radius);
	font: inherit; font-size: 15px;
}
:where(.wpw-input:focus) { outline: none; border-color: var(--wpw-accent); }

:where(.wpw-terms) {
	max-height: 260px; overflow-y: auto;
	padding: 18px 22px;
	background: var(--wpw-field-bg);
	border: 1px solid var(--wpw-border); border-radius: var(--wpw-radius);
	font-size: 14px; line-height: 1.75; color: var(--wpw-muted);
}
:where(.wpw-terms p) { margin: 0 0 1em; }
:where(.wpw-terms p:last-child) { margin-bottom: 0; }
:where(.wpw-terms b), :where(.wpw-terms strong) { color: var(--wpw-text); }

:where(.wpw-ack) {
	display: flex; gap: 13px; align-items: flex-start;
	padding: 15px 17px; cursor: pointer;
	background: var(--wpw-field-bg);
	border: 1px solid var(--wpw-border); border-radius: var(--wpw-radius);
	font-size: 15px; line-height: 1.55; color: var(--wpw-muted);
}
:where(.wpw-ack input) { width: 18px; height: 18px; margin: 2px 0 0; flex: none; cursor: pointer; accent-color: var(--wpw-accent); }

:where(.wpw-sigpad-wrap) { position: relative; }
:where(.wpw-sigpad) {
	width: 100%; height: 180px; display: block;
	background: var(--wpw-paper);
	border: 1px solid var(--wpw-border); border-radius: var(--wpw-radius);
	touch-action: none; cursor: crosshair;
}
:where(.wpw-sig-clear) {
	position: absolute; top: 10px; right: 10px;
	padding: 5px 13px; cursor: pointer;
	font: inherit; font-size: 12px; font-weight: 600;
	letter-spacing: .1em; text-transform: uppercase;
	background: transparent; color: var(--wpw-muted);
	border: 1px solid var(--wpw-border); border-radius: var(--wpw-radius);
	transition: all .15s ease;
}
:where(.wpw-sig-clear:hover) { color: var(--wpw-text); border-color: var(--wpw-muted); }

:where(.wpw-sigrow) { display: grid; grid-template-columns: 1.6fr 1fr; gap: 18px; align-items: end; }
:where(.wpw-dateval) {
	height: 46px; display: flex; align-items: center; padding: 0 13px;
	background: var(--wpw-field-bg); color: var(--wpw-muted);
	border: 1px solid var(--wpw-border); border-radius: var(--wpw-radius);
	font-size: 15px;
}
:where(.wpw-note) { margin: 0; font-size: 13px; color: var(--wpw-muted); }

:where(.wpw-captcha) { margin-top: 4px; }

:where(.wpw-btn) {
	align-self: flex-start; margin-top: 6px;
	padding: 14px 30px; cursor: pointer;
	font: inherit; font-size: 15px; font-weight: 700;
	letter-spacing: .08em; text-transform: uppercase;
	background: var(--wpw-accent); color: var(--wpw-accent-text);
	border: none; border-radius: var(--wpw-radius);
	transition: filter .15s ease;
}
:where(.wpw-btn:hover) { filter: brightness(.9); }

:where(.wpw-error) {
	margin: 0 0 18px; font-size: 15px; font-weight: 600;
	letter-spacing: .04em; text-transform: uppercase; color: var(--wpw-req);
}
:where(#wpw-sig-hint) { margin: 6px 0 0; font-size: 13px; }

:where(.wpw-hp) { position: absolute; left: -9999px; opacity: 0; height: 0; overflow: hidden; }

:where(.wpw-confirm) {
	display: flex; flex-direction: column; align-items: center; gap: 18px;
	padding: 64px 40px; text-align: center;
	background: var(--wpw-panel);
	border: 1px solid var(--wpw-border); border-radius: var(--wpw-radius);
}
:where(.wpw-checkmark) {
	width: 72px; height: 72px; display: flex; align-items: center; justify-content: center;
	font-size: 34px; color: var(--wpw-accent);
	border: 2px solid var(--wpw-accent); border-radius: 50%;
}
:where(.wpw-confirm-title) { margin: 0; font-size: 30px; text-transform: uppercase; }
:where(.wpw-confirm-text) { margin: 0; color: var(--wpw-muted); max-width: 46ch; line-height: 1.6; }
:where(.wpw-confirm-btns) { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 8px; flex-wrap: wrap; }

@media (max-width: 640px) {
	:where(.wpw-form) { padding: 24px 20px 28px; }
	:where(.wpw-grid), :where(.wpw-sigrow) { grid-template-columns: 1fr; }
}
