/*
 * Page-specific gallery carousel for page 75.
 * Every rule is guarded by WordPress's page body class and the plugin namespace.
 */

body.page-id-75 article.page-content {
	width: 100%;
	max-width: 100%;
	margin-inline: auto;
}

body.page-id-75 .wz-gallery-intro {
	max-width: 52rem;
	margin: 0 auto clamp(2.5rem, 7vw, 5.5rem);
	padding: clamp(1.1rem, 3vw, 1.65rem) clamp(1.25rem, 4vw, 2rem);
	color: var(--color-text, #1a1a2e);
	font-size: clamp(1.05rem, 1.6vw, 1.2rem);
	line-height: 1.75;
	background:
		linear-gradient(115deg, rgb(59 172 200 / 12%), rgb(125 184 58 / 10%)),
		var(--color-paper, #fff);
	border: 1px solid color-mix(in srgb, var(--k-blue, #3bacc8) 28%, transparent);
	border-radius: 28px 18px 31px 20px / 19px 30px 21px 28px;
	box-shadow: var(--shadow-sm, 0 1px 3px rgb(0 0 0 / 12%));
}

body.page-id-75 .wz-gallery-section {
	margin-block: clamp(3.5rem, 8vw, 7rem);
}

body.page-id-75 .wz-gallery-section__title {
	position: relative;
	display: table;
	margin: 0 auto clamp(1.5rem, 4vw, 2.5rem);
	color: var(--color-text, #1a1a2e);
	font-family: var(--font-display, Georgia, serif);
	font-size: clamp(1.8rem, 4vw, 3rem);
	line-height: 1.12;
	text-align: center;
}

/* An uneven translucent stroke evokes the site's watercolor identity. */
body.page-id-75 .wz-gallery-section__title::after {
	content: '';
	display: block;
	width: 84%;
	height: clamp(0.4rem, 1vw, 0.65rem);
	margin: 0.16em auto 0;
	background: linear-gradient(
		90deg,
		rgb(59 172 200 / 48%),
		rgb(125 184 58 / 56%) 48%,
		rgb(224 88 32 / 40%)
	);
	border-radius: 68% 32% 74% 26% / 55% 62% 38% 45%;
	transform: rotate(-1.2deg) skewX(-7deg);
	filter: blur(0.15px);
}

body.page-id-75 .wz-gallery-carousel.wz-gallery-carousel--enhanced {
	--wz-carousel-blue: var(--k-blue, #3bacc8);
	--wz-carousel-indigo: var(--k-indigo, #5b6ccc);
	--wz-carousel-spring: var(--k-spring, #7db83a);
	--wz-carousel-orange: var(--k-orange, #e05820);
	--wz-carousel-ink: var(--color-text, #1a1a2e);
	--wz-carousel-paper: var(--color-paper, #fff);

	position: relative;
	display: block !important;
	box-sizing: border-box;
	width: min(100%, 68rem) !important;
	max-width: 68rem !important;
	margin: 0 auto !important;
	padding: 0 !important;
	background: transparent;
	border: 0;
	isolation: isolate;
}

body.page-id-75 .wz-gallery-carousel__viewport {
	position: relative;
	z-index: 1;
	box-sizing: border-box;
	width: 100%;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--wz-carousel-ink);
	border: clamp(3px, 0.55vw, 7px) solid var(--wz-carousel-paper);
	border-radius: 31px 19px 36px 22px / 24px 34px 21px 30px;
	box-shadow:
		0 22px 55px rgb(26 26 46 / 24%),
		0 5px 16px rgb(26 26 46 / 18%),
		0 0 0 1px rgb(26 26 46 / 10%);
	touch-action: pan-y pinch-zoom;
	-webkit-tap-highlight-color: transparent;
}

body.page-id-75 .wz-gallery-carousel__viewport::after {
	content: '';
	position: absolute;
	z-index: 1;
	inset: 0;
	pointer-events: none;
	background:
		linear-gradient(180deg, rgb(10 16 30 / 24%) 0%, transparent 28%, transparent 70%, rgb(7 10 22 / 42%) 100%),
		radial-gradient(circle at 50% 45%, transparent 45%, rgb(9 12 26 / 18%) 100%);
}

body.page-id-75 .wz-gallery-carousel__backdrop {
	position: absolute;
	z-index: 0;
	inset: -2rem;
	background-color: var(--wz-carousel-ink);
	background-position: center;
	background-size: cover;
	filter: blur(28px) saturate(1.15);
	opacity: 0.52;
	transform: scale(1.1);
	pointer-events: none;
}

body.page-id-75 .wz-gallery-carousel__track {
	position: absolute;
	z-index: 2;
	inset: 0;
	overflow: hidden;
}

body.page-id-75 .wz-gallery-carousel__slide,
body.page-id-75 .wp-block-gallery.has-nested-images.wz-gallery-carousel--enhanced figure.wp-block-image.wz-gallery-carousel__slide {
	position: absolute !important;
	inset: 0 !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent;
	border: 0;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}

/* The previous slide hides immediately; only the incoming slide fades into view. */
body.page-id-75 .wz-gallery-carousel__slide.is-active,
body.page-id-75 .wp-block-gallery.has-nested-images.wz-gallery-carousel--enhanced figure.wp-block-image.wz-gallery-carousel__slide.is-active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition: opacity 520ms var(--ease-out, cubic-bezier(0.4, 0, 0.2, 1));
}

body.page-id-75 .wz-gallery-carousel__slide > a,
body.page-id-75 .wz-gallery-carousel__slide > div {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
}

body.page-id-75 .wz-gallery-carousel__slide img,
body.page-id-75 .wp-block-gallery.has-nested-images.wz-gallery-carousel--enhanced figure.wp-block-image.wz-gallery-carousel__slide img {
	position: relative;
	z-index: 1;
	display: block;
	box-sizing: border-box;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	padding: clamp(0.35rem, 1vw, 0.75rem);
	object-fit: contain !important;
	object-position: center;
	filter: drop-shadow(0 8px 22px rgb(0 0 0 / 24%));
}

body.page-id-75 .wz-gallery-carousel__slide > figcaption,
body.page-id-75 .wp-block-gallery.has-nested-images.wz-gallery-carousel--enhanced figure.wp-block-image.wz-gallery-carousel__slide > figcaption.wp-element-caption {
	position: absolute !important;
	z-index: 4;
	right: clamp(4rem, 9vw, 6rem) !important;
	bottom: clamp(0.7rem, 2vw, 1.25rem) !important;
	left: clamp(4rem, 9vw, 6rem) !important;
	box-sizing: border-box;
	width: auto !important;
	max-height: none !important;
	margin: 0 auto !important;
	padding: 0.65rem 1rem 0.7rem !important;
	overflow: visible !important;
	color: #fff !important;
	font-family: var(--font-body, system-ui, sans-serif);
	font-size: clamp(0.92rem, 1.5vw, 1.08rem) !important;
	font-weight: 700;
	line-height: 1.35;
	text-align: center;
	text-shadow: 0 1px 4px rgb(0 0 0 / 72%);
	background: linear-gradient(105deg, rgb(20 23 42 / 78%), rgb(36 42 65 / 62%)) !important;
	border: 1px solid rgb(255 255 255 / 20%);
	border-radius: 18px 12px 19px 13px / 13px 18px 12px 17px;
	box-shadow: 0 7px 20px rgb(0 0 0 / 18%);
	backdrop-filter: blur(8px);
}

body.page-id-75 .wz-gallery-carousel__toggle,
body.page-id-75 .wz-gallery-carousel__arrow {
	position: absolute;
	z-index: 8;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-width: 48px;
	min-height: 48px;
	margin: 0;
	color: #fff;
	font-family: var(--font-body, system-ui, sans-serif);
	font-weight: 800;
	line-height: 1;
	background: rgb(20 25 48 / 78%);
	border: 1px solid rgb(255 255 255 / 42%);
	box-shadow: 0 6px 20px rgb(0 0 0 / 24%);
	backdrop-filter: blur(9px);
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}

body.page-id-75 .wz-gallery-carousel__toggle {
	top: clamp(0.75rem, 2vw, 1.1rem);
	left: clamp(0.75rem, 2vw, 1.1rem);
	gap: 0.55rem;
	min-width: 44px;
	padding: 0.65rem 0.95rem;
	font-size: 0.92rem;
	border-radius: 18px 12px 19px 13px / 13px 18px 12px 17px;
}

body.page-id-75 .wz-gallery-carousel__toggle-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1em;
	font-size: 0.84em;
	letter-spacing: -0.16em;
}

body.page-id-75 .wz-gallery-carousel__toggle[data-state='playing'] {
	background: color-mix(in srgb, var(--wz-carousel-indigo) 76%, rgb(20 25 48));
}

body.page-id-75 .wz-gallery-carousel__arrow {
	top: 50%;
	width: clamp(48px, 5.5vw, 58px);
	height: clamp(48px, 5.5vw, 58px);
	padding: 0 0 0.12em;
	font-family: Georgia, serif;
	font-size: clamp(2.3rem, 5vw, 3.2rem);
	border-radius: 50% 44% 52% 46% / 47% 53% 45% 55%;
	transform: translateY(-50%);
}

body.page-id-75 .wz-gallery-carousel__arrow--previous {
	left: clamp(0.55rem, 2vw, 1.15rem);
}

body.page-id-75 .wz-gallery-carousel__arrow--next {
	right: clamp(0.55rem, 2vw, 1.15rem);
}

body.page-id-75 .wz-gallery-carousel__toggle:hover,
body.page-id-75 .wz-gallery-carousel__arrow:hover {
	background: color-mix(in srgb, var(--wz-carousel-blue) 72%, rgb(20 25 48));
	border-color: #fff;
}

body.page-id-75 .wz-gallery-carousel__toggle:disabled,
body.page-id-75 .wz-gallery-carousel__arrow:disabled {
	opacity: 0.48;
	cursor: default;
}

body.page-id-75 .wz-gallery-carousel__toggle:focus,
body.page-id-75 .wz-gallery-carousel__arrow:focus,
body.page-id-75 .wz-gallery-carousel__viewport:focus {
	outline: 3px solid #fff;
	outline-offset: 4px;
}

body.page-id-75 .wz-gallery-carousel__toggle:focus-visible,
body.page-id-75 .wz-gallery-carousel__arrow:focus-visible,
body.page-id-75 .wz-gallery-carousel__viewport:focus-visible {
	outline: 4px solid var(--wz-carousel-orange);
	outline-offset: 4px;
	box-shadow: 0 0 0 7px #fff, 0 9px 28px rgb(0 0 0 / 30%);
}

body.page-id-75 .wz-gallery-carousel__counter {
	position: absolute;
	z-index: 7;
	top: clamp(0.75rem, 2vw, 1.1rem);
	right: clamp(0.75rem, 2vw, 1.1rem);
	min-width: 3.7rem;
	margin: 0;
	padding: 0.55rem 0.8rem;
	color: #fff;
	font-family: var(--font-body, system-ui, sans-serif);
	font-size: 0.86rem;
	font-weight: 800;
	line-height: 1;
	text-align: center;
	font-variant-numeric: tabular-nums;
	background: rgb(20 25 48 / 70%);
	border: 1px solid rgb(255 255 255 / 34%);
	border-radius: 14px 10px 15px 11px / 11px 15px 10px 14px;
	box-shadow: 0 5px 18px rgb(0 0 0 / 20%);
	backdrop-filter: blur(8px);
}

body.page-id-75 .wz-gallery-carousel__live {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

body.page-id-75 .wz-gallery-more {
	max-width: 54rem;
	margin: clamp(3rem, 8vw, 6rem) auto 0;
	padding: clamp(1.2rem, 3vw, 1.8rem);
	color: var(--color-text, #1a1a2e);
	background:
		linear-gradient(112deg, rgb(125 184 58 / 13%), rgb(59 172 200 / 12%)),
		var(--color-paper, #fff) !important;
	border: 1px solid color-mix(in srgb, var(--k-spring, #7db83a) 30%, transparent);
	border-radius: 22px 31px 19px 28px / 29px 20px 30px 21px;
	box-shadow: var(--shadow-sm, 0 1px 3px rgb(0 0 0 / 12%));
}

body.page-id-75 .wz-gallery-more a {
	color: var(--k-indigo, #5b6ccc);
	text-decoration-thickness: 0.14em;
	text-underline-offset: 0.16em;
}

body.page-id-75 .wz-gallery-more a:focus-visible {
	outline: 3px solid var(--k-orange, #e05820);
	outline-offset: 3px;
}

body.page-id-75 .wz-gallery-carousel--reduced-motion .wz-gallery-carousel__slide.is-active,
body.page-id-75 .wz-gallery-carousel--reduced-motion .wz-gallery-carousel__backdrop {
	transition: none !important;
}

@media (max-width: 680px) {
	body.page-id-75 .wz-gallery-carousel__viewport {
		aspect-ratio: 4 / 3;
		border-width: 3px;
		border-radius: 22px 13px 25px 15px / 16px 24px 14px 21px;
	}

	body.page-id-75 .wz-gallery-carousel__toggle {
		top: 0.65rem;
		left: 0.65rem;
		min-height: 46px;
		padding-inline: 0.75rem;
	}

	body.page-id-75 .wz-gallery-carousel__counter {
		top: 0.65rem;
		right: 0.65rem;
	}

	body.page-id-75 .wz-gallery-carousel__arrow {
		width: 48px;
		height: 48px;
	}

	body.page-id-75 .wz-gallery-carousel__arrow--previous {
		left: 0.45rem;
	}

	body.page-id-75 .wz-gallery-carousel__arrow--next {
		right: 0.45rem;
	}

	body.page-id-75 .wz-gallery-carousel__slide > figcaption,
	body.page-id-75 .wp-block-gallery.has-nested-images.wz-gallery-carousel--enhanced figure.wp-block-image.wz-gallery-carousel__slide > figcaption.wp-element-caption {
		right: 3.55rem !important;
		bottom: 0.55rem !important;
		left: 3.55rem !important;
		padding: 0.5rem 0.65rem 0.55rem !important;
		font-size: 0.86rem !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	body.page-id-75 .wz-gallery-carousel__slide.is-active,
	body.page-id-75 .wz-gallery-carousel__backdrop,
	body.page-id-75 .wz-gallery-carousel__toggle,
	body.page-id-75 .wz-gallery-carousel__arrow {
		transition: none !important;
		scroll-behavior: auto !important;
	}
}

@media (forced-colors: active) {
	body.page-id-75 .wz-gallery-carousel__toggle,
	body.page-id-75 .wz-gallery-carousel__arrow,
	body.page-id-75 .wz-gallery-carousel__counter {
		border: 2px solid ButtonText;
		forced-color-adjust: auto;
	}
}
