/* Presentation compatibility for captured Elementor sections after the builder is retired. */
.wp-block-kalani-captured-section {
	width: 100%;
	max-width: none;
	margin: 0;
	overflow: clip;
}

.wp-block-kalani-captured-section > .elementor,
.wp-block-kalani-captured-section > .elementor > .elementor-section,
.wp-block-kalani-captured-section .elementor-section-stretched {
	width: 100%;
	max-width: none;
}

.wp-block-kalani-captured-section .elementor-invisible {
	visibility: visible;
	opacity: 1;
	transform: none;
}

/* Rehydrate preserved Elementor background slideshows without its runtime. */
.wp-block-kalani-captured-section .kalani-has-background-slideshow {
	position: relative;
	isolation: isolate;
}

.wp-block-kalani-captured-section .kalani-background-slideshow {
	position: absolute;
	z-index: -1;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
}

.wp-block-kalani-captured-section .kalani-background-slideshow__slide {
	position: absolute;
	inset: -3%;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	opacity: 0;
	transition-property: opacity;
	transition-timing-function: ease-in-out;
}

.wp-block-kalani-captured-section .kalani-background-slideshow__slide.is-active {
	opacity: 1;
}

.wp-block-kalani-captured-section .kalani-background-slideshow__slide.is-active.has-ken-burns {
	animation: kalani-ken-burns 10s ease-out both;
}

@keyframes kalani-ken-burns {
	from { transform: scale(1); }
	to { transform: scale(1.09); }
}

/* Use the captured animation settings while retaining a no-JS visible fallback. */
.wp-block-kalani-captured-section .kalani-entrance-pending {
	visibility: hidden;
	opacity: 0;
}

.wp-block-kalani-captured-section .kalani-entrance-visible {
	visibility: visible;
	animation: kalani-fade-in .75s ease-out var(--kalani-animation-delay, 0ms) both;
}

.wp-block-kalani-captured-section [data-kalani-animation*="up"].kalani-entrance-visible {
	animation-name: kalani-fade-in-up;
}

.wp-block-kalani-captured-section [data-kalani-animation*="down"].kalani-entrance-visible {
	animation-name: kalani-fade-in-down;
}

.wp-block-kalani-captured-section [data-kalani-animation*="left"].kalani-entrance-visible {
	animation-name: kalani-fade-in-left;
}

.wp-block-kalani-captured-section [data-kalani-animation*="right"].kalani-entrance-visible {
	animation-name: kalani-fade-in-right;
}

@keyframes kalani-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes kalani-fade-in-up { from { opacity: 0; transform: translateY(2rem); } to { opacity: 1; transform: none; } }
@keyframes kalani-fade-in-down { from { opacity: 0; transform: translateY(-2rem); } to { opacity: 1; transform: none; } }
@keyframes kalani-fade-in-left { from { opacity: 0; transform: translateX(-2rem); } to { opacity: 1; transform: none; } }
@keyframes kalani-fade-in-right { from { opacity: 0; transform: translateX(2rem); } to { opacity: 1; transform: none; } }

/* Captured carousels remain usable without Elementor's JavaScript runtime. */
.wp-block-kalani-captured-section .swiper,
.wp-block-kalani-captured-section .swiper-container,
.wp-block-kalani-captured-section .elementor-main-swiper {
	overflow: hidden;
}

.wp-block-kalani-captured-section .swiper-wrapper {
	display: flex;
	transform: none !important;
	transition: none !important;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	scroll-behavior: smooth;
	scroll-snap-type: inline mandatory;
	scrollbar-width: thin;
}

.wp-block-kalani-captured-section .swiper-slide {
	box-sizing: border-box;
	flex: 0 0 100%;
	height: auto;
	scroll-snap-align: start;
}

.wp-block-kalani-captured-section .swiper-button-disabled,
.wp-block-kalani-captured-section .elementor-swiper-button-disabled {
	opacity: 0.45;
}

.wp-block-kalani-captured-section .elementor-swiper-button,
.wp-block-kalani-captured-section .swiper-button-prev,
.wp-block-kalani-captured-section .swiper-button-next,
.wp-block-kalani-captured-section [data-bdt-slidenav-previous],
.wp-block-kalani-captured-section [data-bdt-slidenav-next] {
	cursor: pointer;
}

/* Accordions and toggles retain keyboard-operable disclosure behavior. */
.wp-block-kalani-captured-section .elementor-tab-title {
	cursor: pointer;
}

.wp-block-kalani-captured-section .elementor-tab-title:focus-visible {
	outline: 3px solid #0b6fb8;
	outline-offset: 3px;
}

.wp-block-kalani-captured-section .elementor-tab-content[hidden] {
	display: none !important;
}

/* The original Everest Forms arrow asset was not part of the preserved bundle. */
.wp-block-kalani-captured-section .bdt-everest-forms .everest-forms select {
	background-image: none !important;
}

/* Prime Slider / UIkit slides are progressively enhanced by legacy.js. */
.wp-block-kalani-captured-section [data-kalani-stack-slider] > * {
	display: none !important;
}

.wp-block-kalani-captured-section [data-kalani-stack-slider] > .kalani-slide-active {
	display: block !important;
}

/* Elementor Pro galleries keep their filters, imagery, and lightbox without its runtime. */
.wp-block-kalani-captured-section .elementor-gallery__container {
	columns: 3 18rem;
	column-gap: 1rem;
}

.wp-block-kalani-captured-section .elementor-gallery__container .e-gallery-item {
	break-inside: avoid;
	display: block;
	margin: 0 0 1rem;
}

.wp-block-kalani-captured-section .e-gallery-image[data-thumbnail] {
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	display: block;
	width: 100%;
}

.wp-block-kalani-captured-section .e-gallery-item[hidden] {
	display: none !important;
}

.kalani-gallery-lightbox {
	background: #111;
	border: 0;
	color: #fff;
	max-height: 94vh;
	max-width: min(94vw, 90rem);
	padding: 3rem 4.5rem;
}

.kalani-gallery-lightbox::backdrop {
	background: rgb(0 0 0 / 82%);
}

.kalani-gallery-lightbox img {
	display: block;
	max-height: calc(94vh - 6rem);
	max-width: calc(94vw - 9rem);
}

.kalani-gallery-lightbox button {
	background: #d1ad54;
	border: 0;
	color: #450d21;
	cursor: pointer;
	font-size: 1.4rem;
	padding: .55rem .8rem;
	position: absolute;
}

.kalani-gallery-lightbox__close { right: .75rem; top: .75rem; }
.kalani-gallery-lightbox__previous { left: .75rem; top: 50%; }
.kalani-gallery-lightbox__next { right: .75rem; top: 50%; }

@media (prefers-reduced-motion: reduce) {
	.wp-block-kalani-captured-section .kalani-background-slideshow__slide,
	.wp-block-kalani-captured-section .kalani-entrance-visible {
		animation: none;
		transition: none;
	}

	.wp-block-kalani-captured-section .swiper-wrapper {
		scroll-behavior: auto;
	}
}
