.wp-block-studio-zed-faq-section {
	margin-block: 0;
	max-width: none;
	width: 100%;
}

.faq-section {
	background: var(--sz-stone);
	color: var(--sz-graphite);
	padding: var(--site-spacing) var(--layout-margin-desktop);
}

.faq-section__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
	align-items: start;
	gap: 4rem;
	margin-inline: auto;
	max-width: none;
	width: 100%;
}

.faq-section__heading {
	font-family: var(--font-heading);
	font-size: var(--type-heading-m-size);
	font-weight: 500;
	letter-spacing: 0.02em;
	line-height: var(--type-heading-m-line);
	margin: 0 0 4rem;
	text-transform: uppercase;
}

.faq-section__item {
	border-bottom: var(--stroke-width) solid var(--sz-concrete);
}

.faq-section__item:last-child {
	border-bottom: 0;
}

.faq-section__question {
	align-items: center;
	color: var(--sz-graphite);
	cursor: pointer;
	display: grid;
	font-family: var(--font-body);
	font-size: var(--type-body-l-size);
	font-weight: var(--type-body-l-weight);
	gap: 2rem;
	grid-template-columns: minmax(0, 1fr) auto;
	line-height: var(--type-body-l-line);
	list-style: none;
	padding: 1.75rem 0;
	transition: color var(--control-transition);
}

.faq-section__question::-webkit-details-marker { display: none; }
.faq-section__question::marker { content: ""; }

.faq-section__item.is-open .faq-section__question,
.faq-section__item[open]:not(.is-closing) .faq-section__question {
	color: var(--sz-timber);
}

.faq-section__icon {
	position: relative;
	display: block;
	width: 1rem;
	height: 1rem;
	color: inherit;
}

.faq-section__icon::before,
.faq-section__icon::after {
	content: "";
	position: absolute;
	background: currentColor;
}

.faq-section__icon::before {
	left: 0;
	top: calc(50% - var(--stroke-width) / 2);
	width: 100%;
	height: var(--stroke-width);
}

.faq-section__icon::after {
	top: 0;
	left: calc(50% - var(--stroke-width) / 2);
	height: 100%;
	width: var(--stroke-width);
}

.faq-section__question:hover,
.faq-section__question:focus-visible {
	color: var(--sz-timber);
}

.faq-section__item.is-open .faq-section__icon::after,
.faq-section__item[open]:not(.is-closing) .faq-section__icon::after {
	display: none;
}

.faq-section__media {
	align-self: stretch;
	height: var(--faq-image-height, auto);
	margin: 0;
	position: relative;
}

.faq-section__image {
	display: block;
	width: 100%;
	height: 100%;
	position: absolute;
	inset: 0;
	object-fit: cover;
}

.faq-section__answer-wrap {
	height: auto;
	overflow: hidden;
	transition: height 300ms ease;
}

.faq-section__answer {
	font-family: var(--font-body);
	font-size: var(--type-body-r-size);
	font-weight: var(--type-body-r-weight);
	line-height: var(--type-body-r-line);
	max-width: 72rem;
	padding: 0 4rem 1.75rem 0;
}

.faq-section__answer > :first-child { margin-top: 0; }
.faq-section__answer > :last-child { margin-bottom: 0; }
.faq-section__answer p { margin: 0 0 1rem; }

@media (max-width: 64rem) {
	.faq-section__inner { grid-template-columns: minmax(0, 1fr); }
	.faq-section__media { display: none; }

	.faq-section {
		padding-inline: var(--layout-margin-tablet);
		padding-top: calc(var(--site-spacing) + 1.5rem);
	}

	.faq-section__heading { margin-bottom: 3rem; }

	.faq-section__answer {
		font-size: var(--type-body-r-size);
		font-weight: var(--type-body-r-weight);
		line-height: var(--type-body-r-line);
	}
}

@media (max-width: 48rem) {

	.faq-section {
		padding-inline: var(--layout-margin-mobile);
		padding-top: calc(var(--site-spacing) + 1.25rem);
	}

	.faq-section__heading { margin-bottom: 2rem; }
	.faq-section__question { gap: 1.25rem; padding-block: 1.5rem; }
	.faq-section__answer { padding-right: 2rem; padding-bottom: 1.5rem; }
}

@media (prefers-reduced-motion: reduce) {
	.faq-section__answer-wrap,
	.faq-section__icon {
		transition-duration: 0.01ms;
	}
}
