/**
 * PW Student Discount
 *
 * One sentence, an email field, a button. Light palette by default; dark rules
 * keyed off html[data-pw-theme="dark"], the attribute PW Dark Mode sets.
 */

.pwsd {
	--pwsd-accent: #0d527a;
	--pwsd-accent-hover: #093c5a;
	--pwsd-on-accent: #ffffff;
	--pwsd-ink: #111111;
	--pwsd-muted: #4a4a4a;
	--pwsd-surface: #ffffff;
	--pwsd-field: #ffffff;
	--pwsd-border: #d9d9d9;
	--pwsd-focus: #0d527a;
	--pwsd-error: #a52517;
	--pwsd-ok: #1f6b3a;

	box-sizing: border-box;
	margin: 1.25em 0;
	padding: 18px 20px 16px;
	background: var(--pwsd-surface);
	border: 1px solid var(--pwsd-border);
	border-radius: 14px;
	color: var(--pwsd-ink);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
	font-size: 16px;
	line-height: 1.45;
}

.pwsd *,
.pwsd *::before,
.pwsd *::after {
	box-sizing: inherit;
}

.pwsd-message,
.pwsd-offer-text {
	margin: 0 0 12px;
	color: var(--pwsd-ink);
}

.pwsd-row {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.pwsd-input {
	flex: 1 1 220px;
	min-width: 0;
	margin: 0;
	padding: 10px 12px;
	font: inherit;
	color: var(--pwsd-ink);
	background: var(--pwsd-field);
	border: 1px solid var(--pwsd-border);
	border-radius: 8px;
	-webkit-appearance: none;
	appearance: none;
}

.pwsd-input:focus {
	outline: 2px solid var(--pwsd-focus);
	outline-offset: 1px;
	border-color: var(--pwsd-focus);
}

.pwsd-button {
	flex: 0 0 auto;
	display: inline-block;
	margin: 0;
	padding: 10px 18px;
	font: inherit;
	font-weight: 700;
	line-height: 1.3;
	color: var(--pwsd-on-accent);
	background: var(--pwsd-accent);
	border: 0;
	border-radius: 8px;
	cursor: pointer;
	text-decoration: none;
	box-shadow: none;
	transition: background-color 0.15s ease;
}

.pwsd-button:hover,
.pwsd-button:focus-visible {
	color: var(--pwsd-on-accent);
	background: var(--pwsd-accent-hover);
	text-decoration: none;
	box-shadow: none;
}

.pwsd-button:focus-visible {
	outline: 2px solid var(--pwsd-focus);
	outline-offset: 2px;
}

.pwsd-button[disabled],
.pwsd.is-busy .pwsd-button {
	opacity: 0.6;
	cursor: default;
}

/* Don't rely on the theme shipping .screen-reader-text. */
.pwsd .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	border: 0;
	white-space: nowrap;
}

/* Honeypot: off-canvas rather than display:none, which some bots respect. */
.pwsd-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.pwsd-status {
	margin: 10px 0 0;
	font-size: 15px;
	color: var(--pwsd-muted);
}

.pwsd-status.is-error {
	color: var(--pwsd-error);
}

.pwsd-status.is-ok {
	color: var(--pwsd-ok);
}

.pwsd-offer .pwsd-claim {
	font-size: 17px;
	padding: 12px 22px;
}

.pwsd-countdown {
	margin: 10px 0 0;
	font-size: 14px;
	color: var(--pwsd-muted);
}

.pwsd-clock {
	font-variant-numeric: tabular-nums;
}

.pwsd.is-expired .pwsd-claim {
	pointer-events: none;
	opacity: 0.5;
}

/* ---- Dark mode (PW Dark Mode sets html[data-pw-theme="dark"]) ---------- */

html[data-pw-theme="dark"] .pwsd {
	--pwsd-accent: #5aa2d0;
	--pwsd-accent-hover: #7cb8de;
	--pwsd-on-accent: #0f1a22;
	--pwsd-ink: #e8eaec;
	--pwsd-muted: #9aa0a6;
	--pwsd-surface: #24282d;
	--pwsd-field: #1b1e22;
	--pwsd-border: #3a3f46;
	--pwsd-focus: #0ebfe9;
	--pwsd-error: #f08a7e;
	--pwsd-ok: #7fd39a;
}

/* PW Dark Mode recolors every <a>; the claim button is an <a>. */
html[data-pw-theme="dark"] .pwsd a.pwsd-button,
html[data-pw-theme="dark"] .pwsd a.pwsd-button:hover,
html[data-pw-theme="dark"] .pwsd a.pwsd-button:focus-visible {
	color: var(--pwsd-on-accent);
}
