:root {
	--xks-color-primary: #123f3f;
	--xks-color-primary-bright: #1f6f6a;
	--xks-color-primary-soft: #d8e8df;
	--xks-color-yellow: #c6a15b;
	--xks-color-yellow-deep: #6f5328;
	--xks-color-green: #7c8f69;
	--xks-color-green-deep: #33452f;
	--xks-color-surface: #f7f1e7;
	--xks-color-surface-low: #eee6da;
	--xks-color-surface-container: #e6dccd;
	--xks-color-cream: #fffaf0;
	--xks-color-charcoal: #171915;
	--xks-color-muted: #5c554b;
	--xks-color-outline: #8b8172;
	--xks-color-outline-soft: #d7ccb9;
	--xks-font-heading: "Cormorant Garamond", Georgia, serif;
	--xks-font-body: "Manrope", Arial, sans-serif;
	--xks-radius-sm: 0.125rem;
	--xks-radius-base: 0.25rem;
	--xks-radius-md: 0.375rem;
	--xks-radius-lg: 0.5rem;
	--xks-radius-xl: 0.5rem;
	--xks-shadow-soft: 0 1.5rem 4rem rgba(31, 25, 16, 0.1);
	--xks-shadow-action: 0 0.75rem 1.75rem rgba(85, 58, 24, 0.18);
	--xks-focus-ring: 0 0 0 0.1875rem rgba(198, 161, 91, 0.32);
}

html {
	background: var(--xks-color-charcoal);
}

body {
	background:
		radial-gradient(circle at 9% 0%, rgba(198, 161, 91, 0.14), transparent 24rem),
		linear-gradient(180deg, #fffaf0 0%, var(--xks-color-surface) 38%, #efe6d8 100%);
	color: var(--xks-color-charcoal);
	font-weight: 500;
}

body,
button,
input,
select,
textarea,
h1,
h2,
h3,
h4,
h5,
h6,
.xks-button,
.xks-section-heading__kicker,
.xks-home-hero__kicker,
.xks-home-pill,
.xks-accommodation-kicker,
.xks-accommodation-card__badge,
.xks-experience-card__kicker,
.xks-retreat-card__badge,
.xks-primary-nav a,
.xks-mobile-nav a {
	letter-spacing: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-weight: 600;
}

p {
	color: color-mix(in srgb, var(--xks-color-muted) 92%, var(--xks-color-charcoal));
}

a {
	color: var(--xks-color-primary);
}

.xks-container {
	width: min(100% - (var(--xks-page-gutter) * 2), var(--xks-container));
}

.xks-site-header {
	border-bottom: 1px solid rgba(23, 25, 21, 0.08);
	background: rgba(255, 250, 240, 0.78);
	box-shadow: 0 0.5rem 1.5rem rgba(23, 25, 21, 0.04);
	backdrop-filter: blur(22px) saturate(135%);
	transition: background-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

.xks-site-header.is-scrolled {
	background: rgba(255, 250, 240, 0.94);
	box-shadow: 0 0.9rem 2.2rem rgba(23, 25, 21, 0.08);
}

.xks-site-branding__name {
	position: relative;
	font-size: 1.35rem;
	font-weight: 700;
}

.xks-site-branding__name::after {
	display: block;
	width: 4.5rem;
	height: 1px;
	margin-top: 0.45rem;
	background: linear-gradient(90deg, var(--xks-color-yellow), transparent);
	content: "";
}

.xks-primary-nav a {
	position: relative;
	font-size: 0.82rem;
	font-weight: 800;
	text-transform: uppercase;
}

.xks-primary-nav a::before {
	position: absolute;
	right: 0;
	bottom: -0.62rem;
	left: 0;
	height: 1px;
	background: currentColor;
	content: "";
	opacity: 0;
	transform: scaleX(0);
	transform-origin: center;
	transition: opacity 180ms ease, transform 180ms ease;
}

.xks-primary-nav a:hover::before,
.xks-primary-nav a:focus-visible::before,
.xks-primary-nav .current-menu-item > a::before,
.xks-primary-nav .current-menu-ancestor > a::before {
	opacity: 0.7;
	transform: scaleX(1);
}

.xks-primary-nav .current-menu-item > a::after,
.xks-primary-nav .current-menu-ancestor > a::after {
	display: none;
}

.xks-button {
	position: relative;
	min-height: 3rem;
	border-radius: var(--xks-radius-base);
	background: var(--xks-color-charcoal);
	color: var(--xks-color-cream);
	padding: 0.85rem 1.35rem;
	font-size: 0.82rem;
	font-weight: 800;
	text-transform: uppercase;
	box-shadow: 0 0.65rem 1.5rem rgba(23, 25, 21, 0.12);
	overflow: hidden;
}

.xks-button::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(120deg, transparent, rgba(255, 250, 240, 0.16), transparent);
	content: "";
	transform: translateX(-120%);
	transition: transform 520ms ease;
}

.xks-button:hover::after,
.xks-button:focus-visible::after {
	transform: translateX(120%);
}

.xks-button:hover {
	background: #000;
	transform: translateY(-2px);
}

.xks-button--accent {
	background: var(--xks-color-yellow);
	color: var(--xks-color-charcoal);
	box-shadow: var(--xks-shadow-action);
}

.xks-button--accent:hover {
	background: #d7b66f;
	color: var(--xks-color-charcoal);
}

.xks-button--secondary {
	border-color: rgba(23, 25, 21, 0.22);
	background: rgba(255, 250, 240, 0.42);
	color: var(--xks-color-charcoal);
	box-shadow: none;
}

.xks-button--secondary:hover {
	border-color: var(--xks-color-yellow);
	background: rgba(198, 161, 91, 0.12);
}

.xks-card,
.xks-home-highlight-card,
.xks-retreat-card,
.xks-retreats-process-card,
.xks-retreats-included-card,
.xks-accommodation-card,
.xks-experience-card,
.xks-contact-form,
.xks-contact-card,
.xks-home-info-card,
.xks-home-package-card,
.xks-home-accommodation-card {
	border-color: rgba(99, 83, 59, 0.16);
	background:
		linear-gradient(180deg, rgba(255, 250, 240, 0.94), rgba(248, 239, 225, 0.86));
	box-shadow: 0 1rem 3rem rgba(54, 43, 29, 0.09);
}

.xks-card:hover,
.xks-retreat-card:hover,
.xks-accommodation-card:hover,
.xks-experience-card:hover,
.xks-home-highlight-card:hover {
	box-shadow: 0 1.7rem 4rem rgba(54, 43, 29, 0.14);
	transform: translateY(-3px);
}

.xks-card,
.xks-retreat-card,
.xks-accommodation-card,
.xks-experience-card,
.xks-home-highlight-card {
	transition: box-shadow 220ms ease, transform 220ms ease, border-color 220ms ease;
}

.xks-home-hero,
.xks-retreats-hero {
	min-height: min(52rem, 92vh);
	text-align: left;
}

.xks-home-hero__overlay,
.xks-retreats-hero__overlay,
.xks-accommodation-hero__overlay,
.xks-experiences-hero__overlay,
.xks-contact-hero__overlay {
	background:
		linear-gradient(180deg, rgba(12, 15, 13, 0.12), rgba(12, 15, 13, 0.28) 42%, rgba(12, 15, 13, 0.68)),
		linear-gradient(90deg, rgba(12, 15, 13, 0.72), rgba(12, 15, 13, 0.28) 52%, rgba(12, 15, 13, 0.08));
}

.xks-home-hero__content,
.xks-retreats-hero__content {
	width: min(100% - (var(--xks-page-gutter) * 2), var(--xks-container));
	max-width: var(--xks-container);
	margin-inline: auto;
	padding-block: 9rem 8rem;
}

.xks-home-hero__kicker {
	margin-inline: 0;
	border-color: rgba(255, 250, 240, 0.46);
	background: rgba(255, 250, 240, 0.08);
	color: #f3dfb4;
}

.xks-home-hero__title,
.xks-retreats-hero h1 {
	max-width: 48rem;
	margin-inline: 0;
	color: var(--xks-color-cream);
	font-weight: 600;
	text-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.32);
}

.xks-home-hero__text,
.xks-retreats-hero p {
	max-width: 36rem;
	margin-inline: 0;
	color: rgba(255, 250, 240, 0.86);
	font-weight: 500;
}

.xks-accommodation-hero,
.xks-experiences-hero,
.xks-contact-hero {
	place-items: center start;
	text-align: left;
}

.xks-accommodation-hero__content,
.xks-experiences-hero__content,
.xks-contact-hero__content {
	width: min(100% - (var(--xks-page-gutter) * 2), var(--xks-container));
	max-width: var(--xks-container);
	margin-inline: auto;
	padding-block: 8rem 5.5rem;
}

.xks-accommodation-hero h1,
.xks-experiences-hero h1,
.xks-contact-hero h1 {
	max-width: 42rem;
	color: var(--xks-color-cream);
	text-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.3);
}

.xks-accommodation-hero p,
.xks-experiences-hero p,
.xks-contact-hero p {
	max-width: 34rem;
	margin-inline: 0;
	color: rgba(255, 250, 240, 0.84);
}

.xks-home-section,
.xks-retreats-section,
.xks-accommodation-section,
.xks-experiences-section {
	position: relative;
}

.xks-home-section--soft,
.xks-retreats-section--light,
.xks-accommodation-packages {
	background:
		linear-gradient(180deg, rgba(255, 250, 240, 0.72), rgba(238, 230, 218, 0.9));
}

.xks-home-section h2,
.xks-retreats-intro h2,
.xks-retreats-section-head h2,
.xks-accommodation-intro h2,
.xks-accommodation-final h2,
.xks-accommodation-packages h2,
.xks-accommodation-gallery h2,
.xks-experiences-intro h2,
.xks-experiences-section-head h2,
.xks-experiences-cards__head h2,
.xks-experiences-process h2,
.xks-experiences-flex__cta h2,
.xks-contact-form__header h2,
.xks-contact-sidebar h2 {
	color: var(--xks-color-charcoal);
	font-weight: 600;
}

.xks-section-heading__kicker,
.xks-home-pill,
.xks-accommodation-kicker,
.xks-experience-card__kicker {
	color: var(--xks-color-yellow-deep);
	font-weight: 800;
	text-transform: uppercase;
}

.xks-home-about__image,
.xks-home-about__offset,
.xks-home-restaurant__media img,
.xks-home-video,
.xks-home-video img,
.xks-retreat-card__media img,
.xks-accommodation-card__media img,
.xks-experience-card__media img {
	filter: saturate(0.92) contrast(1.04);
}

.xks-retreat-card__badge {
	background: rgba(255, 250, 240, 0.9);
	color: var(--xks-color-charcoal);
	box-shadow: 0 0.65rem 1.5rem rgba(23, 25, 21, 0.16);
}

.xks-retreat-card--custom {
	background:
		linear-gradient(135deg, rgba(18, 63, 63, 0.96), rgba(23, 25, 21, 0.96)),
		var(--xks-color-charcoal);
	color: var(--xks-color-cream);
}

.xks-retreat-card--custom h3,
.xks-retreat-card--custom p,
.xks-retreat-card--custom li,
.xks-retreat-card--custom span {
	color: rgba(255, 250, 240, 0.9);
}

.xks-home-highlight-card__icon,
.xks-home-info-card__icon,
.xks-retreats-icon {
	background: rgba(198, 161, 91, 0.16);
	color: var(--xks-color-yellow-deep);
}

.xks-contact-field input,
.xks-contact-field select,
.xks-contact-field textarea,
.xks-contact-choice,
.woocommerce input.input-text,
.woocommerce textarea,
.woocommerce select {
	border-color: rgba(99, 83, 59, 0.2);
	background: rgba(255, 250, 240, 0.86);
	color: var(--xks-color-charcoal);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.56);
	transition: border-color 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

.xks-contact-field input:focus,
.xks-contact-field select:focus,
.xks-contact-field textarea:focus,
.woocommerce input.input-text:focus,
.woocommerce textarea:focus,
.woocommerce select:focus {
	border-color: var(--xks-color-yellow);
	background: #fffdf6;
}

.xks-site-footer {
	background:
		linear-gradient(180deg, rgba(23, 25, 21, 0.96), rgba(10, 12, 10, 1)),
		var(--xks-color-charcoal);
}

.xks-site-footer__title {
	font-size: 2rem;
}

.xks-site-footer__bottom {
	border-top-color: rgba(255, 250, 240, 0.14);
}

.xks-reveal {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity 620ms ease, transform 620ms ease;
}

.xks-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

@media (max-width: 47.98rem) {
	.xks-home-hero,
	.xks-retreats-hero,
	.xks-accommodation-hero,
	.xks-experiences-hero,
	.xks-contact-hero {
		text-align: left;
	}

	.xks-home-hero__content,
	.xks-retreats-hero__content,
	.xks-accommodation-hero__content,
	.xks-experiences-hero__content,
	.xks-contact-hero__content {
		width: min(100% - 2rem, 24rem);
		padding-block: 6.5rem 4.75rem;
	}

	.xks-home-hero__title,
	.xks-retreats-hero h1,
	.xks-accommodation-hero h1,
	.xks-experiences-hero h1,
	.xks-contact-hero h1 {
		max-width: 19rem;
		font-size: clamp(2.45rem, 11vw, 2.85rem);
		line-height: 1.02;
		overflow-wrap: normal;
	}

	.xks-contact-hero h1 {
		max-width: 17.75rem;
	}

	.xks-home-hero__text,
	.xks-retreats-hero p,
	.xks-accommodation-hero p,
	.xks-experiences-hero p,
	.xks-contact-hero p {
		max-width: 20rem;
		font-size: 1rem;
		line-height: 1.55;
	}

	.xks-home-hero__cta,
	.xks-retreats-hero__actions,
	.xks-accommodation-hero__actions,
	.xks-experiences-hero__actions,
	.xks-contact-hero__actions {
		width: min(100%, 20rem);
	}

	.xks-home-mobile-dock,
	.xks-retreats-mobile-dock,
	.xks-accommodation-dock,
	.xks-experiences-dock,
	.xks-contact-dock,
	.xks-customize-dock {
		right: 0.75rem;
		bottom: 0.75rem;
		left: 0.75rem;
		width: auto;
		max-width: none;
		gap: 0.25rem;
		border: 1px solid rgba(198, 161, 91, 0.24);
		border-radius: var(--xks-radius-lg);
		background: rgba(255, 250, 240, 0.94);
		box-shadow: 0 1rem 2.75rem rgba(23, 25, 21, 0.22);
		padding: 0.5rem max(0.5rem, env(safe-area-inset-right)) max(0.5rem, env(safe-area-inset-bottom)) max(0.5rem, env(safe-area-inset-left));
		backdrop-filter: blur(20px) saturate(132%);
	}

	.xks-home-mobile-dock a,
	.xks-retreats-mobile-dock a,
	.xks-accommodation-dock a,
	.xks-experiences-dock a,
	.xks-contact-dock a,
	.xks-customize-dock a {
		min-width: 0;
		border-radius: var(--xks-radius-md);
		padding: 0.5rem 0.25rem;
		color: var(--xks-color-muted);
		font-size: 0.66rem;
		font-weight: 800;
		line-height: 1.12;
	}

	.xks-home-mobile-dock a.is-active,
	.xks-home-mobile-dock a:hover,
	.xks-retreats-mobile-dock a.is-active,
	.xks-retreats-mobile-dock a:hover,
	.xks-accommodation-dock a.is-active,
	.xks-accommodation-dock a:hover,
	.xks-experiences-dock a.is-active,
	.xks-experiences-dock a:hover,
	.xks-contact-dock a.is-active,
	.xks-contact-dock a:hover,
	.xks-customize-dock a.is-active,
	.xks-customize-dock a:hover {
		background: var(--xks-color-primary);
		color: var(--xks-color-cream);
	}

	.xks-home-mobile-dock .xks-icon,
	.xks-retreats-mobile-dock .xks-icon,
	.xks-accommodation-dock .xks-icon,
	.xks-experiences-dock .xks-icon,
	.xks-contact-dock .xks-icon,
	.xks-customize-dock .xks-icon {
		width: 1.05rem;
		height: 1.05rem;
		font-size: 1.05rem;
	}
}

@media (min-width: 72rem) {
	.xks-home-highlights__rail,
	.xks-retreats-package-grid,
	.xks-accommodation-card-grid,
	.xks-experiences-grid {
		gap: 1.75rem;
	}

	.xks-home-about__media::before,
	.xks-home-restaurant__media::before {
		position: absolute;
		inset: -1.25rem auto auto -1.25rem;
		width: 42%;
		aspect-ratio: 1;
		border: 1px solid rgba(198, 161, 91, 0.42);
		content: "";
		pointer-events: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.xks-reveal {
		opacity: 1;
		transform: none;
	}
}
