/* =========================================================================
   Eastgate SHAPE Profile form
   Cool-neutral tokens, FSE-consistent (see theme.json presets).
   ========================================================================= */

:root {
	--egs-navy: var(--wp--preset--color--navy, #1e3a5f);
	--egs-navy-deep: var(--wp--preset--color--navy-deep, #0f2340);
	--egs-green: var(--wp--preset--color--green, #00875a);
	--egs-slate: var(--wp--preset--color--slate, #6b7785);
	--egs-surface: var(--wp--preset--color--surface, #eef2f7);
	--egs-border: var(--wp--preset--color--surface-border, #dde4ec);
}

.eg-shape-form {
	max-width: 760px;
	margin: 0 auto;
}

/* Honeypot — visually + AT hidden, still in the DOM for bots. */
.eg-shape-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* ── Sections (S / H / A / P / E) ──────────────────────────────────────── */
.eg-shape-section {
	background: #ffffff;
	border: 1px solid var(--egs-border);
	border-top: 4px solid var(--egs-green);
	border-radius: 0.9rem;
	padding: 1.6rem 1.5rem;
	margin: 0 0 1.25rem;
	box-shadow: 0 1px 2px rgba(15, 35, 64, 0.06), 0 6px 16px -6px rgba(15, 35, 64, 0.12);
}
.eg-shape-section__head {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	margin-bottom: 1.25rem;
}
.eg-shape-section__letter {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	background: linear-gradient(150deg, var(--egs-navy), var(--egs-navy-deep));
	color: #fff;
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1;
}
.eg-shape-section__title {
	margin: 0;
	color: var(--egs-navy);
	font-size: 1.4rem;
	line-height: 1.2;
}
.eg-shape-section__desc {
	margin: 0.25rem 0 0;
	color: var(--egs-slate);
	font-size: 0.95rem;
	line-height: 1.5;
}

/* ── "Who" block (name + email) ────────────────────────────────────────── */
.eg-shape-fieldset--who {
	margin: 0 0 1.25rem;
}
.eg-shape-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 1rem;
}

/* ── Fields ────────────────────────────────────────────────────────────── */
.eg-shape-field {
	margin: 0 0 1.1rem;
}
.eg-shape-field:last-child {
	margin-bottom: 0;
}
.eg-shape-field label,
.eg-shape-field legend {
	display: block;
	font-weight: 700;
	color: var(--egs-navy);
	margin-bottom: 0.4rem;
}
.eg-shape-field .req {
	color: var(--egs-green);
}
.eg-shape-field input[type="text"],
.eg-shape-field input[type="email"],
.eg-shape-field textarea {
	width: 100%;
	padding: 0.7rem 0.85rem;
	border: 1px solid var(--egs-border);
	border-radius: 0.55rem;
	background: #fff;
	font: inherit;
	color: var(--egs-navy);
	box-sizing: border-box;
}
.eg-shape-field textarea {
	resize: vertical;
	min-height: 5rem;
}
.eg-shape-field input:focus,
.eg-shape-field textarea:focus {
	outline: none;
	border-color: var(--egs-green);
	box-shadow: 0 0 0 3px rgba(0, 135, 90, 0.15);
}
.eg-shape-hint {
	display: block;
	margin-top: 0.35rem;
	color: var(--egs-slate);
	font-size: 0.85rem;
}
.eg-shape-field fieldset {
	border: 0;
	padding: 0;
	margin: 0;
}

/* ── Checkboxes (gifts) + radios (personality) ─────────────────────────── */
.eg-shape-checks {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 0.5rem;
}
.eg-shape-radios {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0.5rem;
}
.eg-shape-check,
.eg-shape-radio {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.65rem 0.85rem;
	border: 1px solid var(--egs-border);
	border-radius: 0.55rem;
	background: var(--egs-surface);
	cursor: pointer;
	font-weight: 600;
	color: var(--egs-navy);
	transition: border-color 0.15s ease, background 0.15s ease;
}
.eg-shape-radio {
	justify-content: center;
}
.eg-shape-check:has(input:checked),
.eg-shape-radio:has(input:checked) {
	border-color: var(--egs-green);
	background: rgba(0, 135, 90, 0.08);
}
.eg-shape-check.is-disabled {
	opacity: 0.5;
	cursor: not-allowed;
}
.eg-shape-check input,
.eg-shape-radio input {
	accent-color: var(--egs-green);
	width: 1.05rem;
	height: 1.05rem;
	flex-shrink: 0;
}

/* ── Submit + notices ──────────────────────────────────────────────────── */
.eg-shape-submit {
	margin: 1.75rem 0 0;
}
.eg-shape-submit button {
	appearance: none;
	border: 0;
	cursor: pointer;
	background: var(--egs-green);
	color: #fff;
	font-weight: 700;
	font-size: 1.05rem;
	padding: 0.9rem 2.25rem;
	border-radius: 0.6rem;
	transition: background 0.15s ease, transform 0.15s ease;
}
.eg-shape-submit button:hover {
	background: #00714b;
	transform: translateY(-2px);
}

.eg-shape-notice {
	border-radius: 0.7rem;
	padding: 1.25rem 1.4rem;
	margin: 0 0 1.5rem;
}
.eg-shape-notice h3 {
	margin: 0 0 0.4rem;
	color: var(--egs-navy);
}
.eg-shape-notice p {
	margin: 0;
}
.eg-shape-notice--ok {
	background: rgba(0, 135, 90, 0.08);
	border: 1px solid var(--egs-green);
}
.eg-shape-notice--err {
	background: #fdecec;
	border: 1px solid #e0b4b4;
	color: #8a1f1f;
}

@media (prefers-reduced-motion: reduce) {
	.eg-shape-submit button:hover {
		transform: none;
	}
}
