/*
 * Layered conflict fixes only.
 * Assumes the page already loads:
 * - wp-includes/css/dist/block-library/style.min.css
 * - child-theme-headerless.min.css
 */

:root {
	--wp-gallery-gap: var(--wp--style--unstable-gallery-gap, 16px);
}

/* Gallery-specific reset to neutralize global figure/image rules. */
figure.wp-block-gallery.has-nested-images {
	align-items: normal !important;
	display: flex !important;
	flex-wrap: wrap !important;
	gap: var(--wp-gallery-gap) !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.wp-block-gallery.has-nested-images {
	--gallery-columns: 3;
}

.wp-block-gallery.has-nested-images.columns-default {
	--gallery-columns: 3;
}

.wp-block-gallery.has-nested-images.columns-1 {
	--gallery-columns: 1;
}

.wp-block-gallery.has-nested-images.columns-2 {
	--gallery-columns: 2;
}

.wp-block-gallery.has-nested-images.columns-3 {
	--gallery-columns: 3;
}

.wp-block-gallery.has-nested-images.columns-4 {
	--gallery-columns: 4;
}

.wp-block-gallery.has-nested-images.columns-5 {
	--gallery-columns: 5;
}

.wp-block-gallery.has-nested-images.columns-6 {
	--gallery-columns: 6;
}

.wp-block-gallery.has-nested-images.columns-7 {
	--gallery-columns: 7;
}

.wp-block-gallery.has-nested-images.columns-8 {
	--gallery-columns: 8;
}

.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) {
	box-sizing: border-box !important;
	clear: none !important;
	display: flex !important;
	float: none !important;
	flex: 0 0 calc((100% - (var(--gallery-columns) - 1) * var(--wp-gallery-gap)) / var(--gallery-columns)) !important;
	flex-direction: column !important;
	margin: 0 !important;
	max-width: calc((100% - (var(--gallery-columns) - 1) * var(--wp-gallery-gap)) / var(--gallery-columns)) !important;
	min-width: 0 !important;
	position: relative !important;
	width: auto !important;
}

.wp-block-gallery.has-nested-images figure.wp-block-image > a,
.wp-block-gallery.has-nested-images figure.wp-block-image > div {
	display: block;
	margin: 0 !important;
}

.wp-block-gallery.has-nested-images figure.wp-block-image img {
	display: block !important;
	height: auto !important;
	max-width: 100% !important;
	width: 100% !important;
}

/*
 * Match legacy/expected WP gallery behavior for columns-default (3 columns):
 * if the last row has 2 items, make them 50/50.
 */
.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):nth-child(3n + 1):nth-last-child(2),
.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):nth-child(3n + 1):nth-last-child(2) ~ figure.wp-block-image:not(#individual-image) {
	flex-basis: calc((100% - var(--wp-gallery-gap)) / 2) !important;
	max-width: calc((100% - var(--wp-gallery-gap)) / 2) !important;
}

.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image > a,
.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image > div {
	display: flex !important;
}

.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image img {
	flex: 1 0 0%;
	height: 100% !important;
	object-fit: cover !important;
}

/* Keep trigger usable if external button styles override block-library. */
.wp-lightbox-container .lightbox-trigger {
	align-items: center;
	background: rgba(90, 90, 90, 0.25);
	border: 0;
	border-radius: 4px;
	box-shadow: none;
	color: #fff;
	display: flex;
	height: 24px;
	justify-content: center;
	opacity: 0;
	padding: 0;
	position: absolute;
	right: 16px;
	top: 16px;
	width: 24px;
	z-index: 20;
}

.wp-lightbox-container img:hover + .lightbox-trigger,
.wp-lightbox-container .lightbox-trigger:hover,
.wp-lightbox-container .lightbox-trigger:focus {
	opacity: 1;
}

/* Ensure overlay wins against site-wide z-index/visibility utilities. */
.wp-lightbox-overlay {
	z-index: 999999 !important;
}

.wp-lightbox-overlay.active {
	pointer-events: auto;
	visibility: visible;
}

/* Keep navigation controls visible if globally restyled. */
.wp-lightbox-overlay .wp-lightbox-close-button,
.wp-lightbox-overlay .wp-lightbox-navigation-button-prev,
.wp-lightbox-overlay .wp-lightbox-navigation-button-next {
	align-items: center;
	background: rgba(0, 0, 0, 0.35);
	border: 0;
	box-shadow: none;
	color: #fff;
	display: inline-flex;
	justify-content: center;
	line-height: 1;
	min-height: 44px;
	min-width: 44px;
	padding: 0;
}

.wp-lightbox-overlay .wp-lightbox-close-button {
	background: none;
	position: absolute;
	right: 12px;
	top: 12px;
	z-index: 4;
}

.wp-lightbox-overlay .wp-lightbox-navigation-button-prev {
	border-radius: 999px;
	left: 12px;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 4;
}

.wp-lightbox-overlay .wp-lightbox-navigation-button-next {
	border-radius: 999px;
	position: absolute;
	right: 12px;
	top: 50%;
	transform: translateY(-50%);
	z-index: 4;
}

.wp-lightbox-overlay .wp-lightbox-navigation-button-prev[hidden],
.wp-lightbox-overlay .wp-lightbox-navigation-button-next[hidden] {
	display: none;
}

@media (max-width: 900px) {
	.wp-block-gallery.has-nested-images {
		--gallery-columns: min(2, var(--gallery-columns));
	}

	.wp-block-gallery.has-nested-images.columns-1 {
		--gallery-columns: 1;
	}
}

@media (max-width: 560px) {
	.wp-block-gallery.has-nested-images {
		--gallery-columns: 1;
	}
}

/* =========================
 * Core Accordion Support
 * ========================= */

.wp-block-accordion {
	box-sizing: border-box;
}

.wp-block-accordion-item.is-open > .wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon {
	transform: rotate(45deg);
}

@media (prefers-reduced-motion: no-preference) {
	.wp-block-accordion-item {
		transition: grid-template-rows 0.3s ease-out;
	}

	.wp-block-accordion-item > .wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon {
		transition: transform 0.2s ease-in-out;
	}
}

.wp-block-accordion-heading__toggle {
	align-items: center;
	background: none;
	border: none;
	color: inherit;
	cursor: pointer;
	display: flex;
	font-family: inherit;
	font-size: inherit;
	font-style: inherit;
	font-weight: inherit;
	justify-content: flex-start;
	letter-spacing: inherit;
	line-height: inherit;
	overflow: hidden;
	padding: var(--wp--preset--spacing--20, 1em) 0;
	text-align: inherit;
	text-decoration: inherit;
	text-transform: inherit;
	width: 100%;
	word-spacing: inherit;
}

.wp-block-accordion-heading__toggle:not(:focus-visible) {
	outline: none;
}

.wp-block-accordion-heading__toggle:hover .wp-block-accordion-heading__toggle-title {
	text-decoration: underline;
}

.wp-block-accordion-heading__toggle-title {
	flex: 1;
}

.wp-block-accordion-heading__toggle-icon {
	align-items: center;
	display: flex;
	height: 1.2em;
	justify-content: center;
	width: 1.2em;
}

.wp-block-accordion-panel[inert],
.wp-block-accordion-panel[aria-hidden="true"] {
	display: none;
	margin-block-start: 0;
}
