/* ── Section ─────────────────────────────────────────────── */
.section-faq {
	background-color: var(--color-bg-light-50);
	background-blend-mode: multiply;
	border-top: 1px solid var(--color-border-section);
}

.section-faq > .container {
	padding-block: var(--size-v-pad-md) var(--size-v-pad-sm);
}

/* ── Title ───────────────────────────────────────────────── */
.faq-title {
	max-width: var(--size-max-heading-center);
	margin-inline: auto;
	margin-bottom: var(--size-section-title-mb);
	color: var(--color-text-pri-dark);
	text-align: center;
}

/* ── FAQ body — constrained width like BookingCta ────────── */
.faq-body {
	max-width: 75ch;
	margin-inline: auto;
}

/* ── FAQ list ────────────────────────────────────────────── */
.faq-list {
	display: flex;
	flex-direction: column;
}

/* ── FAQ item ────────────────────────────────────────────── */
.faq-item {
	position: relative;
}

.faq-item::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	background-color: transparent;
	background-image: radial-gradient(circle, var(--color-border-light-200) 1px, transparent 1px);
	background-size: 5px 2px;
	background-repeat: repeat-x;
}

.faq-item:first-child::before {
	display: none;
}

.faq-item:last-child::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 2px;
	background-color: transparent;
	background-image: radial-gradient(circle, var(--color-border-light-200) 1px, transparent 1px);
	background-size: 5px 2px;
	background-repeat: repeat-x;
}

/* ── Question (summary) ──────────────────────────────────── */
.faq-question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--size-pad-sm);
	padding-block: 1.1rem;
	cursor: pointer;
	list-style: none;
	user-select: none;
}

.faq-question::-webkit-details-marker {
	display: none;
}

.faq-question-text {
	font-size: var(--fs-body-l);
	font-weight: var(--fw-medium);
	line-height: var(--lh-base);
	letter-spacing: var(--ls-xs);
	color: var(--color-text-pri-dark);
}

/* ── Expand icon ─────────────────────────────────────────── */
.faq-icon-wrap {
	width: var(--size-icon-widget-wrap);
	height: var(--size-icon-widget-wrap);
	background: var(--color-accent-green-dark);
	border-radius: var(--radius-btn);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.faq-icon {
	width: var(--size-icon-widget);
	height: var(--size-icon-widget);
	object-fit: contain;
	transition: transform var(--duration-base) var(--ease-default);
}

.faq-item[open] .faq-icon {
	transform: rotate(45deg);
}

/* ── Answer (animated open/close via grid-row trick) ────── */
.faq-answer-wrap {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows var(--duration-slow) var(--ease-reveal);
	margin-top: 0.25rem;
}

.faq-item[open] .faq-answer-wrap {
	grid-template-rows: 1fr;
}

.faq-item.closing .faq-answer-wrap {
	grid-template-rows: 0fr;
}

.faq-item.closing .faq-icon {
	transform: rotate(0deg);
}

.faq-answer {
	overflow: hidden;
	min-height: 0;
	max-width: 70ch;
	color: var(--color-text-sec-dark);
	font-size: var(--fs-body-m);
	font-weight: var(--fw-regular);
	line-height: var(--lh-base);
	letter-spacing: var(--ls-md);
}

.faq-answer-inner {
	padding-bottom: var(--size-pad-sm);
}

.faq-answer p {
	margin: 0 0 0.75rem;
}

.faq-answer p:last-child {
	margin-bottom: 0;
}

.faq-answer a {
	color: var(--color-text-pri-dark);
	font-weight: var(--fw-semibold);
	text-decoration: underline;
}

/* ── CTA ─────────────────────────────────────────────────── */
.faq-cta {
	margin-top: var(--size-section-cta-mt);
}

/* ── Responsive ──────────────────────────────────────────── */
@media only screen and (max-width: 991.98px) {
	.section-faq > .container {
		padding-block: var(--size-v-pad-sm);
	}

	.faq-question {
		align-items: flex-start;
		gap: var(--size-pad-xs);
		padding-block: 1rem;
	}

	.faq-icon-wrap {
		margin-top: 0.4rem;
	}

	.faq-question-text {
		font-size: var(--fs-body-m);
	}

	.faq-answer-inner {
		padding-bottom: var(--size-pad-xs);
	}
}
