/*
 * Final CTA and FAQ (board #15) — reference:
 * prototypes/h-dusk-coral.html (.final, .faq).
 * Pattern: patterns/final-cta.php. The form itself: assets/css/form.css
 * (cluedit-core block cluedit/contact-form).
 */

/* Reference component colours: exact values live in theme.json
   (settings.custom.color.final, ADR-0006); local aliases only. */
:where(.cluedit-final) {
	--cluedit-final-sub: var(--wp--custom--color--final--sub);
	--cluedit-final-label: var(--wp--custom--color--final--label);
	--cluedit-final-note: var(--wp--custom--color--final--note);
	--cluedit-final-number: var(--wp--custom--color--final--number);
	--cluedit-final-field: var(--wp--custom--color--final--field);
}

/* ---------- Section ---------- */
.cluedit-final {
	position: relative;
	box-sizing: border-box;
	padding: 112px 0 96px;
	overflow: hidden;
	isolation: isolate;
	background-image: var(--wp--preset--gradient--hero);
	scroll-margin-top: 0;
}

.cluedit-final::before {
	content: "";
	position: absolute;
	z-index: 0;
	top: 120px;
	left: 50%;
	width: 2200px;
	height: 900px;
	margin-left: -1100px;
	background: url(../images/final-arcs.svg) center / 100% 100% no-repeat;
	opacity: 0.4;
	pointer-events: none;
	animation: cluedit-final-breathe 10s ease-in-out infinite;
}

@keyframes cluedit-final-breathe {

	50% {
		transform: scale(1.04);
	}
}

.cluedit-final :is(p, h2, h3, .wp-block-group, .wp-block-details) {
	margin-block: 0;
}

.cluedit-final .cluedit-final__wrap {
	position: relative;
	z-index: 1;
	padding-inline: var(--cluedit-pad-x);
}

.cluedit-final .cluedit-final__title {
	max-width: 820px;
	margin: 0 auto 16px;
	color: var(--wp--preset--color--surface);
	font-size: clamp(2.125rem, 3.4vw, 3rem);
	font-weight: 600;
	letter-spacing: -0.03em;
	line-height: 1.1;
	text-align: center;
}

.cluedit-final .cluedit-final__sub {
	max-width: 620px;
	margin-inline: auto;
	color: var(--cluedit-final-sub);
	font-size: var(--wp--preset--font-size--l);
	text-align: center;
}

/* ---------- FAQ (core/details) ---------- */
.cluedit-final .cluedit-faq {
	max-width: 820px;
	margin: 80px auto 0;
	counter-reset: cluedit-faq;
}

.cluedit-final .cluedit-faq__title {
	margin-bottom: 18px;
	color: var(--wp--preset--color--surface);
	font-size: 26px;
	font-weight: 600;
	line-height: 1.08;
}

.cluedit-faq .cluedit-faq__item {
	border-top:
		1px solid
		color-mix(in srgb, var(--wp--preset--color--surface) 18%, transparent);
	counter-increment: cluedit-faq;
}

.cluedit-faq .cluedit-faq__item:last-child {
	border-bottom:
		1px solid
		color-mix(in srgb, var(--wp--preset--color--surface) 18%, transparent);
}

.cluedit-faq .cluedit-faq__item > summary {
	display: grid;
	grid-template-columns: 44px 1fr 24px;
	gap: 8px;
	padding: 20px 0;
	color: var(--wp--preset--color--surface);
	font-size: var(--wp--preset--font-size--l);
	font-weight: 500;
	line-height: 1.55;
	list-style: none;
	cursor: pointer;
}

.cluedit-faq .cluedit-faq__item > summary::-webkit-details-marker {
	display: none;
}

/* 01 / 02 / 03 (decorative, generated). */
.cluedit-faq .cluedit-faq__item > summary::before {
	content: counter(cluedit-faq, decimal-leading-zero);
	padding-top: 3px;
	color: var(--cluedit-final-number, var(--wp--preset--color--on-dark-mute));
	font-size: 14px;
}

.cluedit-faq .cluedit-faq__item > summary::after {
	content: "";
	justify-self: end;
	width: 20px;
	height: 20px;
	margin-top: 3px;
	background-color: var(--wp--preset--color--peach);
	-webkit-mask: url(../icons/plus.svg) center / contain no-repeat;
	mask: url(../icons/plus.svg) center / contain no-repeat;
	transition: transform 0.35s var(--cluedit-ease);
}

.cluedit-faq .cluedit-faq__item[open] > summary::after {
	transform: rotate(45deg);
}

.cluedit-faq .cluedit-faq__item > :not(summary) {
	margin: 0;
	padding: 0 30px 20px 52px;
	color: var(--cluedit-final-sub, var(--wp--preset--color--on-dark));
	font-size: 15.5px;
	line-height: 1.55;
}

/* Smooth open/close where the browser can animate to height:auto.
   Elsewhere assets/js/details.js animates it; without either the
   native instant toggle remains. Reduced/paused motion: instant. */
@supports (interpolate-size: allow-keywords) {

	.cluedit-faq {
		interpolate-size: allow-keywords;
	}

	.cluedit-faq .cluedit-faq__item::details-content {
		block-size: 0;
		overflow: clip;
		opacity: 0;
		transition:
			block-size 0.35s var(--cluedit-ease),
			opacity 0.35s var(--cluedit-ease),
			content-visibility 0.35s allow-discrete;
	}

	.cluedit-faq .cluedit-faq__item[open]::details-content {
		block-size: auto;
		opacity: 1;
	}
}

.cluedit-faq .cluedit-faq__item.is-animating {
	overflow: hidden;
}

/* ---------- Tablet ---------- */
@media (max-width: 1100px) {

	.cluedit-final {
		padding-top: 88px;
	}
}

/* ---------- Mobile ---------- */
@media (max-width: 800px) {

	.cluedit-final {
		padding: 68px 0 56px;
	}

	.cluedit-final .cluedit-final__title {
		font-size: 2.125rem;
	}

	.cluedit-final .cluedit-final__sub {
		font-size: 1rem;
	}

	.cluedit-final .cluedit-faq {
		margin-top: 50px;
	}

	.cluedit-faq .cluedit-faq__item > summary {
		grid-template-columns: 30px 1fr 20px;
		font-size: 1rem;
	}

	.cluedit-faq .cluedit-faq__item > :not(summary) {
		padding-left: 38px;
		font-size: 14px;
	}
}
