/* Inner pages: panel typography, details list, map card, and the WPForms skin.
   WPForms is set to "No styles", so everything about the forms is styled here. */

/* ---------- Panel typography ---------- */
.enigma-panel .wp-block-post-content > * + * { margin-top: 1.25rem; }
.enigma-panel .wp-block-post-content > .enigma-details,
.enigma-panel .wp-block-post-content > .enigma-map,
.enigma-panel .wp-block-post-content > .enigma-form-wrap { margin-top: 1.6rem; }
.enigma-panel h2 {
	margin-top: 2.6rem;
	margin-bottom: 0;
	font-size: clamp(1.4rem, 1rem + 1.2vw, 2rem);
	line-height: 1.1;
}
.enigma-panel .wp-block-post-content > h2 { margin-top: 2.6rem; }
.enigma-panel .wp-block-post-content > h2 + * { margin-top: 1rem; }
.enigma-panel p { margin-block: 0; }
.enigma-panel p + p { margin-top: 1.1rem; }
.enigma-lead {
	color: var(--e-cream);
	font-size: clamp(1.1rem, 1rem + 0.5vw, 1.35rem);
	line-height: 1.5;
}
.enigma-note {
	margin-top: 2.4rem !important;
	color: var(--e-muted);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.enigma-panel .wp-block-list {
	list-style: none;
	margin-inline: 0;
	padding: 0;
	display: grid;
	gap: 0;
}
.enigma-panel .wp-block-list li {
	position: relative;
	padding: 14px 0 14px 28px;
	border-top: 1px solid var(--e-line);
	color: var(--e-cream);
}
.enigma-panel .wp-block-list li:last-child { border-bottom: 1px solid var(--e-line); }
.enigma-panel .wp-block-list li::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 1.55em;
	width: 10px;
	height: 1px;
	background: var(--e-gold);
}
.enigma-panel .wp-block-buttons { margin-top: 2rem; gap: 10px; }
.enigma-panel .wp-block-button__link { text-decoration: none; }
.enigma-panel .wp-block-button:nth-child(n + 2) .wp-block-button__link {
	background: transparent;
	color: var(--e-cream);
	border: 1px solid var(--e-line);
}
.enigma-panel .wp-block-button:nth-child(n + 2) .wp-block-button__link:hover { background: var(--e-cream); color: var(--e-ink); }
.enigma-panel .wp-block-button__link:focus-visible { outline: 2px solid var(--e-gold); outline-offset: 3px; }

/* ---------- Details list ---------- */
.enigma-details { display: grid; }
.enigma-details > div {
	display: grid;
	grid-template-columns: 6.5rem 1fr;
	gap: 14px;
	padding: 15px 0;
	border-top: 1px solid var(--e-line);
}
.enigma-details > div:last-child { border-bottom: 1px solid var(--e-line); }
.enigma-details dt { color: var(--e-gold); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; padding-top: 3px; }
.enigma-details dd { margin: 0; color: var(--e-cream); }
.enigma-details a { color: var(--e-cream); text-decoration-color: var(--e-line); text-underline-offset: 4px; }
.enigma-details a:hover { color: var(--e-gold); }

/* ---------- Map card ---------- */
.enigma-map {
	position: relative;
	display: grid;
	place-items: center;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	border: 1px solid var(--e-line);
	border-radius: var(--e-tile);
	background:
		linear-gradient(var(--e-line) 1px, transparent 1px) 0 0 / 44px 44px,
		linear-gradient(90deg, var(--e-line) 1px, transparent 1px) 0 0 / 44px 44px,
		linear-gradient(160deg, #1d1d1f, #0d0d0e);
	text-decoration: none;
}
.enigma-map__cta {
	position: absolute;
	left: 14px;
	bottom: 14px;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	padding: 0 18px;
	border-radius: 999px;
	background: var(--e-cream);
	color: var(--e-ink);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	transition: background-color var(--e-hover) var(--e-ease);
}
.enigma-map:hover .enigma-map__cta { background: var(--e-gold); }
.enigma-map:focus-visible { outline: 2px solid var(--e-gold); outline-offset: 3px; }

/* ---------- WPForms skin ---------- */
.enigma-form-wrap .wpforms-container { margin: 0; }
.enigma-form-wrap .wpforms-field-container {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px 14px;
}
.enigma-form-wrap *,
.enigma-form-wrap *::before,
.enigma-form-wrap *::after { box-sizing: border-box; }
.enigma-form-wrap .wpforms-field { grid-column: 1 / -1; margin: 0; padding: 0; position: relative; min-width: 0; }
.enigma-form-wrap .wpforms-field-row, .enigma-form-wrap .wpforms-field input, .enigma-form-wrap .wpforms-field select, .enigma-form-wrap .wpforms-field textarea { min-width: 0; }
.enigma-form-wrap .wpforms-field.enigma-half { grid-column: span 1; }
@media (max-width: 560px) {
	.enigma-form-wrap .wpforms-field.enigma-half { grid-column: 1 / -1; }
}
.enigma-form-wrap .wpforms-field-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.enigma-form-wrap .wpforms-field-label {
	display: block;
	margin: 0 0 8px;
	color: var(--e-muted);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.enigma-form-wrap .wpforms-required-label { color: var(--e-gold); }
.enigma-form-wrap .wpforms-field-description {
	margin: 8px 0 0;
	color: var(--e-muted);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
}
.enigma-form-wrap .wpforms-field-description a { color: var(--e-cream); text-underline-offset: 3px; }

.enigma-form-wrap input[type="text"],
.enigma-form-wrap input[type="email"],
.enigma-form-wrap input[type="tel"],
.enigma-form-wrap input[type="date"],
.enigma-form-wrap select,
.enigma-form-wrap textarea {
	width: 100%;
	max-width: none;
	min-height: 48px;
	padding: 12px 16px;
	border: 1px solid rgba(240, 230, 206, 0.46); /* 3:1 against the panel (WCAG 1.4.11) */
	border-radius: 12px;
	background-color: var(--wp--preset--color--panel-raised);
	color: var(--e-cream);
	font: inherit;
	font-size: 1rem;
	line-height: 1.4;
	color-scheme: dark;
	transition: border-color var(--e-hover) var(--e-ease), background-color var(--e-hover) var(--e-ease);
	-webkit-appearance: none;
	appearance: none;
}
.enigma-form-wrap textarea { min-height: 150px; resize: vertical; }
.enigma-form-wrap ::placeholder { color: var(--e-muted); opacity: 0.8; }
.enigma-form-wrap select {
	padding-right: 44px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23F0E6CE' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
}
.enigma-form-wrap input:hover,
.enigma-form-wrap select:hover,
.enigma-form-wrap textarea:hover { border-color: rgba(240, 230, 206, 0.8); }
.enigma-form-wrap input:focus-visible,
.enigma-form-wrap select:focus-visible,
.enigma-form-wrap textarea:focus-visible {
	outline: 2px solid var(--e-gold);
	outline-offset: 2px;
	border-color: var(--e-gold);
}

/* Consent checkbox */
.enigma-form-wrap .wpforms-field-checkbox ul { list-style: none; margin: 0; padding: 0; }
.enigma-form-wrap .wpforms-field-checkbox li { display: flex; align-items: flex-start; gap: 14px; margin: 0; padding: 0; }
.enigma-form-wrap input[type="checkbox"] {
	flex: none;
	width: 24px;
	height: 24px;
	margin: 2px 0 0;
	border: 1px solid rgba(240, 230, 206, 0.55);
	border-radius: 6px;
	background: var(--wp--preset--color--panel-raised);
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	transition: background-color var(--e-hover) var(--e-ease), border-color var(--e-hover) var(--e-ease);
}
.enigma-form-wrap input[type="checkbox"]:checked {
	background-color: var(--e-gold);
	border-color: var(--e-gold);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B0B0C' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
	background-size: 16px;
	background-position: center;
	background-repeat: no-repeat;
}
.enigma-form-wrap input[type="checkbox"]:focus-visible { outline: 2px solid var(--e-gold); outline-offset: 3px; }
.enigma-form-wrap .wpforms-field-checkbox label {
	margin: 0;
	color: var(--e-cream);
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0;
	text-transform: none;
	line-height: 1.5;
	cursor: pointer;
}

/* Validation: colour is never the only signal (message text is shown under the field) */
.enigma-form-wrap label.wpforms-error,
.enigma-form-wrap em.wpforms-error {
	display: block;
	margin-top: 8px;
	color: #ff9e8f;
	font-size: var(--wp--preset--font-size--small);
	font-style: normal;
	letter-spacing: 0;
	text-transform: none;
}
.enigma-form-wrap .wpforms-error:is(input, select, textarea),
.enigma-form-wrap .wpforms-has-error input,
.enigma-form-wrap .wpforms-has-error select,
.enigma-form-wrap .wpforms-has-error textarea { border-color: #ff9e8f; }
.enigma-form-wrap .wpforms-error-container,
.enigma-form-wrap .wpforms-error-alert {
	margin: 0 0 18px;
	padding: 14px 18px;
	border: 1px solid #ff9e8f;
	border-radius: 12px;
	color: #ff9e8f;
	font-size: var(--wp--preset--font-size--small);
}

/* Submit */
.enigma-form-wrap .wpforms-submit-container { margin-top: 26px; }
.enigma-form-wrap .wpforms-submit,
.enigma-form-wrap button[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 34px;
	border: 0;
	border-radius: 999px;
	background: var(--e-cream);
	color: var(--e-ink);
	font: inherit;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color var(--e-hover) var(--e-ease);
}
.enigma-form-wrap .wpforms-submit:hover { background: var(--e-gold); }
.enigma-form-wrap .wpforms-submit:focus-visible { outline: 2px solid var(--e-gold); outline-offset: 3px; }
.enigma-form-wrap .wpforms-submit[disabled] { opacity: 0.6; cursor: progress; }

/* Success message */
.enigma-form-wrap .wpforms-confirmation-container-full,
.enigma-form-wrap .wpforms-confirmation-container {
	margin: 0;
	padding: 24px 26px;
	border: 1px solid var(--e-gold);
	border-radius: var(--e-tile);
	background: var(--wp--preset--color--panel-raised);
	color: var(--e-cream);
}
.enigma-form-wrap .wpforms-confirmation-container-full p { margin: 0; }

/* WPForms wraps checkbox groups in fieldsets */
.enigma-form-wrap fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.enigma-form-wrap legend.wpforms-field-label { padding: 0; float: none; width: 100%; }
