/* ==========================================================================
   Lightweight Header + Footer
   Self-contained CSS — no Elementor dependency.
   Dark navy (#1e3750) header, gold (#b99d75) accents.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Design tokens (standalone — not dependent on theme CSS vars)
   -------------------------------------------------------------------------- */
:root {
	--lw-navy:        #1e3750;
	--lw-navy-dark:   #152840;
	--lw-navy-deeper: #0f1e2e;
	--lw-gold:        #b99d75;
	--lw-gold-light:  #c4a680;
	--btn-bg:         #b99d75;
	--lw-gold-muted:  #c4a87a;
	--lw-white:       #ffffff;
	--lw-white-80:    rgba(255, 255, 255, 0.80);
	--lw-white-60:    rgba(255, 255, 255, 0.60);
	--lw-white-15:    rgba(255, 255, 255, 0.15);
	--lw-white-10:    rgba(255, 255, 255, 0.10);

	/* Text color for buttons on gold background — navy by default (dark mode), white in light mode. */
	--lw-btn-on-gold: var(--lw-navy);

	--lw-header-height:        80px;
	--lw-header-height-sticky: 60px;
	--lw-header-z:             1000;
	--lw-mobile-menu-z:        1100;

	--lw-font-body:    'Josefin Sans', 'Jost', sans-serif;
	--lw-font-heading: 'Cinzel', 'Marcellus', Georgia, serif;

	--lw-transition: 0.25s ease;
	--lw-radius-sm:  6px;
	--lw-radius-md:  10px;

	--lw-container-max: 1280px;
	--lw-container-pad: 24px;

	/* Body / light-bg text */
	--lw-body-text:      #1a1b1a;
	--lw-text-dark:      #222;
	--lw-text-heading:   #333;
	--lw-text-secondary: #555;
	--lw-text-muted:     #666;
	--lw-text-hint:      #717171;
	--lw-text-dates:     #444;

	/* Light-background borders & surfaces */
	--lw-input-border:   #ccc;
	--lw-border-medium:  #ddd;
	--lw-border-light:   #eee;
	--lw-border-warm:    #e8e4df;
	--lw-bg-hover:       #f0f0f0;
	--lw-bg-warm:        #faf7f3;
	--lw-bg-empty-hero:  #2a2520;

	/* Gold variants */
	--lw-gold-15:        rgba(185, 157, 117, 0.15);
	--lw-gold-dark:      #8a7348;
	--lw-gold-wcag:      #6b5a36;
	--lw-gold-hover:     #c9b28a;
	--lw-gold-dark-hover:#a38b63;
	--lw-gold-accent:    #d4a76a;
	--lw-gold-a11y-dark: #d0b486;

	/* Badge (gold pill) — text must pass WCAG AA on gold bg (#b99d75) */
	--lw-badge-text:     #1a1a1a;

	/* Google Reviews widget */
	--lw-gr-star:        #f4b400;
	--lw-gr-star-empty:  #dadce0;
	--lw-gr-count:       #70757a;
	--lw-gr-text:        #3c4043;

	/* Loading / spinner */
	--lw-spinner-track:  #e5e7eb;
	--lw-spinner-accent: #2563eb;
	--lw-spinner-text:   #6b7280;

	/* White overlays (on dark backgrounds) */
	--lw-white-08:       rgba(255, 255, 255, 0.08);
	--lw-white-20:       rgba(255, 255, 255, 0.2);
	--lw-white-18:       rgba(255, 255, 255, 0.18);
	--lw-white-30:       rgba(255, 255, 255, 0.3);
	--lw-white-40:       rgba(255, 255, 255, 0.4);
	--lw-white-45:       rgba(255, 255, 255, 0.45);
	--lw-white-70:       rgba(255, 255, 255, 0.7);
	--lw-white-90:       rgba(255, 255, 255, 0.9);

	/* Semantic colors */
	--lw-success:        #22c55e;
	--lw-success-soft:   rgba(34, 197, 94, 0.15);
	--lw-error:          #f87171;
	--lw-error-soft:     rgba(248, 113, 113, 0.12);
	--lw-warning:        #fbbf24;
	--lw-warning-soft:   rgba(217, 119, 6, 0.15);
	--lw-info:           #60a5fa;
	--lw-info-soft:      rgba(37, 99, 235, 0.15);

	/* Homepage section theme — dark by default, swap for light toggle */
	--lw-section-bg:         var(--lw-navy-dark);
	--lw-section-bg-alt:     var(--lw-navy);
	--lw-section-text:       rgba(255, 255, 255, 0.85);
	--lw-section-heading:    #fff;
	--lw-section-muted:      rgba(255, 255, 255, 0.75);
	--lw-section-border:     rgba(255, 255, 255, 0.1);
	--lw-card-bg:            rgba(255, 255, 255, 0.06);
	--lw-card-bg-hover:      rgba(255, 255, 255, 0.1);
	--lw-card-border:        rgba(255, 255, 255, 0.1);
	--lw-card-shadow:        0 4px 20px rgba(0, 0, 0, 0.2);
}

/* Light theme overrides for design tokens.
 * Use literal #fff (not var(--lw-white)) — the early light-mode JS in
 * functions.php remaps --lw-white to navy #1e3750, which would make
 * gold-bg button text invisible. */
body[data-pp-theme="light"] {
	--lw-btn-on-gold: #fff;
}

/* ==========================================================================
   BASE RESET — standalone theme (no parent theme CSS)
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

body {
	margin: 0;
	font-family: var(--lw-font-body);
	font-size: 16px;
	line-height: 1.6;
	color: var(--lw-body-text);
	background: var(--lw-white);
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--lw-font-heading);
	line-height: 1.2;
	margin: 0 0 0.5em;
}

a { color: inherit; }
img { max-width: 100%; height: auto; display: block; }
ul, ol { padding-left: 1.2em; }
p { margin: 0 0 1em; }

/* Form elements baseline */
input, select, textarea, button {
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
	color: inherit;
}

input[type="text"], input[type="email"], input[type="tel"],
input[type="number"], input[type="date"], select, textarea {
	padding: 10px 14px;
	border: 1px solid var(--lw-input-border);
	border-radius: var(--lw-radius-sm);
	background: var(--lw-white);
}

button, input[type="submit"] {
	cursor: pointer;
}

/* Vertical dividers — handled in hero section only, not generic */
.mphb_sc_search-form .cs-daterange {
	position: relative;
}
.mphb_sc_search-form .mphb_sc_search-adults { position: relative; }


/* ==========================================================================
   HEADER
   ========================================================================== */

.lw-header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: var(--lw-header-z);
	height: var(--lw-header-height);
	background: linear-gradient(to bottom, rgba(10, 18, 36, 0.7) 0%, transparent 100%);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	transition: background var(--lw-transition), height var(--lw-transition),
	            box-shadow var(--lw-transition), backdrop-filter var(--lw-transition);
}

/* Solid background for pages without hero (villa detail, blog, etc.) */
.lw-header--solid {
	position: relative;
	background: var(--lw-navy-dark);
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}

/* Remove white gap above solid header */
.lw-page {
	margin-top: 0;
	padding-top: 0;
}

body.lw-page {
	background: var(--lw-navy-dark);
	color: var(--lw-section-text);

	/* Override light-bg variables for dark theme */
	--lw-body-text:      rgba(255, 255, 255, 0.85);
	--lw-text-dark:      #fff;
	--lw-text-heading:   #fff;
	--lw-text-secondary: rgba(255, 255, 255, 0.7);
	--lw-text-muted:     rgba(255, 255, 255, 0.5);
	--lw-text-hint:      rgba(255, 255, 255, 0.4);
	--lw-text-dates:     rgba(255, 255, 255, 0.7);
	--lw-input-border:   rgba(255, 255, 255, 0.15);
	--lw-border-medium:  rgba(255, 255, 255, 0.1);
	--lw-border-light:   rgba(255, 255, 255, 0.06);
	--lw-border-warm:    rgba(255, 255, 255, 0.08);
	--lw-bg-hover:       rgba(255, 255, 255, 0.08);
	--lw-bg-warm:        rgba(255, 255, 255, 0.04);
	--lw-gr-count:       rgba(255, 255, 255, 0.75);
	--lw-gr-text:        rgba(255, 255, 255, 0.85);
	--lw-gr-star-empty:  rgba(255, 255, 255, 0.15);
	--lw-spinner-track:  rgba(255, 255, 255, 0.1);
	--lw-spinner-text:   rgba(255, 255, 255, 0.5);
	--lw-gold-dark:      var(--lw-gold-muted);
	--lw-gold-wcag:      var(--lw-gold-muted);
}
body.lw-page h1, body.lw-page h2, body.lw-page h3,
body.lw-page h4, body.lw-page h5, body.lw-page h6 {
	color: var(--lw-white);
}
body.lw-page a {
	color: var(--lw-gold);
}
body.lw-page a:hover {
	color: var(--lw-white);
}

/* Admin bar offset */
.admin-bar .lw-header {
	top: 32px;
}
@media screen and (max-width: 782px) {
	.admin-bar .lw-header {
		top: 46px;
	}
}

/* Inner layout: 3-column grid (nav | logo | right) */
.lw-header__inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	grid-template-areas: "nav logo right";
	align-items: center;
	height: 100%;
	max-width: var(--lw-container-max);
	margin: 0 auto;
	padding: 8px var(--lw-container-pad);
	position: relative; /* for mega menu positioning */
}

/* --------------------------------------------------------------------------
   Logo (center)
   -------------------------------------------------------------------------- */
.lw-header__logo {
	grid-area: logo;
	display: flex;
	align-items: center;
	justify-content: center;
}
.lw-header__logo a {
	display: block;
	line-height: 0;
	text-decoration: none;
}
.lw-header__logo-img {
	width: auto;
	height: calc(var(--lw-header-height) - 16px);
	display: block;
}

/* --------------------------------------------------------------------------
   Logo SVG entrance animation
   -------------------------------------------------------------------------- */
.evd-logo .logo-sun,
.evd-logo .logo-symbol,
.evd-logo .logo-arabic,
.evd-logo .logo-text {
	animation-fill-mode: forwards;
	animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

.evd-logo .logo-sun {
	opacity: 0;
	transform-origin: 46.7px 22px;
	animation: evd-sun-rise 2s 0.2s forwards cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes evd-sun-rise {
	0%   { opacity: 0; transform: translateY(18px) scale(0.4); }
	35%  { opacity: 1; transform: translateY(-3px) scale(1.2); }
	55%  { transform: translateY(1px) scale(1.05); }
	100% { opacity: 1; transform: translateY(0) scale(1); }
}

.evd-logo .logo-rays .ray {
	stroke: var(--lw-gold);
	stroke-width: 1.2;
	stroke-linecap: round;
	transform-origin: 46.7px 22px;
	will-change: opacity, transform;
	animation: evd-rays-grow 5s 3s infinite ease-in-out;
}
@keyframes evd-rays-grow {
	0%, 100% { opacity: 0; transform: scaleY(0); }
	10%      { opacity: 0.8; }
	25%      { opacity: 1; transform: scaleY(1); }
	40%      { opacity: 0.7; transform: scaleY(1); }
	55%      { opacity: 0; transform: scaleY(0); }
}

.evd-logo .logo-symbol {
	opacity: 0;
	animation: evd-symbol-in 1.4s 0.6s forwards cubic-bezier(0.4, 0, 0.2, 1);
}
@keyframes evd-symbol-in {
	from { opacity: 0; transform: translateY(8px); }
	to   { opacity: 1; transform: translateY(0); }
}

.evd-logo .logo-arabic {
	opacity: 0;
	animation: evd-arabic-write 2s 1.4s forwards cubic-bezier(0.25, 0.1, 0.25, 1);
}
@keyframes evd-arabic-write {
	0%   { opacity: 1; clip-path: inset(0 100% 0 0); }
	100% { opacity: 1; clip-path: inset(0 0 0 0); }
}

.evd-logo .logo-text-ethic {
	opacity: 0;
	animation: evd-text-in 1.2s 1s forwards cubic-bezier(0.4, 0, 0.2, 1);
}

.evd-logo .logo-text-village {
	opacity: 0;
	animation: evd-text-in 1.2s 1.6s forwards cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes evd-text-in {
	from { opacity: 0; transform: translateX(8px); }
	to   { opacity: 1; transform: translateX(0); }
}

.evd-logo--ready .logo-sun,
.evd-logo--ready .logo-symbol,
.evd-logo--ready .logo-arabic,
.evd-logo--ready .logo-text {
	opacity: 1 !important;
	animation: none !important;
	clip-path: none !important;
	filter: none !important;
	transform: none !important;
}
.evd-logo--ready .logo-rays .ray {
	animation: evd-rays-grow 5s 0.5s infinite ease-in-out;
}


@media (prefers-reduced-motion: reduce) {
	.evd-logo .logo-sun,
	.evd-logo .logo-symbol,
	.evd-logo .logo-arabic,
	.evd-logo .logo-text {
		opacity: 1 !important;
		animation: none !important;
		clip-path: none !important;
		filter: none !important;
		transform: none !important;
	}
}

/* --------------------------------------------------------------------------
   Desktop Nav (left)
   -------------------------------------------------------------------------- */
.lw-nav--desktop {
	grid-area: nav;
	position: static; /* mega menu positioning */
}

.lw-nav__list {
	display: flex;
	align-items: center;
	gap: 4px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.lw-nav__item {
	position: relative;
}

.lw-nav__link {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 8px 14px;
	font-family: var(--lw-font-heading);
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 0.10em;
	text-transform: uppercase;
	color: var(--lw-white-80);
	text-decoration: none;
	border-radius: 0;
	transition: color var(--lw-transition);
	white-space: nowrap;
	position: relative;
}

.lw-nav__link::after {
	content: '';
	position: absolute;
	bottom: 2px;
	left: 50%;
	width: 0;
	height: 1.5px;
	background: var(--lw-gold);
	transition: width var(--lw-transition), left var(--lw-transition);
}

.lw-nav__link:hover,
.lw-nav__item--open > .lw-nav__link {
	color: var(--lw-gold);
	background: transparent;
}

.lw-nav__link:hover::after,
.lw-nav__item--open > .lw-nav__link::after {
	width: 60%;
	left: 20%;
}

.lw-nav__chevron {
	flex-shrink: 0;
	width: 8px;
	height: 5px;
	opacity: 0.5;
	transition: transform var(--lw-transition), opacity var(--lw-transition);
}

.lw-nav__link:hover .lw-nav__chevron {
	opacity: 0.8;
}

.lw-nav__item--current > .lw-nav__link::after {
	width: 60%;
	left: 20%;
}

.lw-nav__item--open > .lw-nav__link .lw-nav__chevron {
	transform: rotate(180deg);
}

.lw-nav__item--has-mega {
	position: static;
}

/* Simple text dropdown (Séjours / Stays) */
.lw-nav__item--has-dropdown {
	position: relative;
}
.lw-dropdown {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	background: var(--lw-navy-dark);
	border: 1px solid var(--lw-white-15);
	border-radius: var(--lw-radius-sm);
	padding: 8px 0;
	min-width: 220px;
	list-style: none;
	margin: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.2s, visibility 0.2s;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
	z-index: 100;
}
.lw-nav__item--has-dropdown:hover .lw-dropdown,
.lw-nav__item--has-dropdown.lw-nav__item--open .lw-dropdown {
	opacity: 1;
	visibility: visible;
}
.lw-dropdown__link {
	display: block;
	padding: 10px 20px;
	color: var(--lw-white-80);
	text-decoration: none;
	font-family: var(--lw-font-body);
	font-size: 13px;
	letter-spacing: 0.05em;
	transition: color 0.15s, background 0.15s;
}
.lw-dropdown__link:hover {
	color: var(--lw-gold);
	background: var(--lw-white-08);
}

.lw-mega {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: var(--lw-navy-dark);
	border: 1px solid var(--lw-white-15);
	border-radius: var(--lw-radius-md);
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45);
	padding: 20px 24px;
	z-index: 10;
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s ease, visibility 0.2s;
}

/* Invisible bridge: extends upward to cover the full gap between
   the nav item and the mega menu (half the header height). */
.lw-mega::before {
	content: "";
	position: absolute;
	top: calc(var(--lw-header-height) * -0.5);
	left: 0;
	right: 0;
	height: calc(var(--lw-header-height) * 0.5);
}

.lw-nav__item--has-mega:hover .lw-mega,
.lw-nav__item--has-mega.lw-nav__item--open .lw-mega {
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
}

.lw-mega__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
}

.lw-mega__card {
	display: block;
	text-decoration: none;
	color: var(--lw-white);
	border-radius: var(--lw-radius-sm);
	overflow: hidden;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.lw-mega__card:hover {
	transform: translateY(-3px);
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

.lw-mega__card-img {
	width: 100%;
	height: 0;
	padding-bottom: 66.67%; /* 3:2 ratio via padding hack (works in hidden containers) */
	overflow: hidden;
	border-radius: var(--lw-radius-sm);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	transition: transform 0.3s ease;
}

.lw-mega__card:hover .lw-mega__card-img {
	transform: scale(1.05);
}

.lw-mega__card-body {
	padding: 10px 4px 4px;
	text-align: center;
}

.lw-mega__card-title {
	display: block;
	font-family: var(--lw-font-heading);
	font-size: 15px;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--lw-white);
	margin-bottom: 4px;
}

.lw-mega__card-specs {
	display: block;
	font-family: var(--lw-font-body);
	font-size: 11px;
	color: var(--lw-white-60);
	letter-spacing: 0.02em;
}

.lw-mega__footer {
	display: flex;
	align-items: center;
	gap: 20px;
	padding: 12px 16px;
	border-top: 1px solid var(--lw-white-10);
	margin-top: 4px;
}

.lw-mega__footer-link {
	font-family: var(--lw-font-body);
	font-size: 13px;
	color: var(--lw-white-60);
	text-decoration: none;
	transition: color 0.2s;
}

.lw-mega__footer-link:hover {
	color: var(--lw-gold);
}

.lw-mega__footer-link--primary {
	color: var(--lw-gold);
	font-weight: 600;
}

.lw-mega__footer-link--primary:hover {
	color: var(--lw-white);
}

/* --------------------------------------------------------------------------
   Right side: lang switcher + WhatsApp
   -------------------------------------------------------------------------- */
.lw-header__right {
	grid-area: right;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 12px;
}

/* Language switcher */
.lw-lang-switcher {
	display: flex;
	align-items: center;
	gap: 4px;
}

.lw-lang-switcher__link {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 5px 8px;
	font-family: var(--lw-font-body);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.05em;
	color: var(--lw-white-60);
	text-decoration: none;
	border-radius: var(--lw-radius-sm);
	transition: color var(--lw-transition), background var(--lw-transition);
}

.lw-lang-switcher__link:hover {
	color: var(--lw-white);
	background: var(--lw-white-10);
}

.lw-lang-switcher__link--active {
	color: var(--lw-gold);
	font-weight: 700;
}

.lw-lang-switcher__flag {
	font-size: 16px;
	line-height: 1;
	display: inline-flex;
	align-items: center;
	vertical-align: middle;
	flex-shrink: 0;
	/* Prevent WP emoji replacement from collapsing to 0×0 */
	width: auto !important;
	height: auto !important;
}

/* WhatsApp button in header */
.lw-header__wa-btn {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 8px 14px;
	font-family: var(--lw-font-body);
	font-size: 13px;
	font-weight: 600;
	color: var(--lw-gold);
	text-decoration: none;
	border: 1.5px solid var(--lw-gold);
	border-radius: 999px;
	background: transparent;
	transition: background var(--lw-transition), color var(--lw-transition),
	            box-shadow var(--lw-transition), transform var(--lw-transition);
	white-space: nowrap;
}

.lw-header__wa-btn:hover {
	background: #25d366;
	color: var(--lw-white);
	box-shadow: 0 4px 14px rgba(37, 211, 102, 0.35);
	transform: translateY(-1px);
}

.lw-header__wa-icon {
	flex-shrink: 0;
}

/* Theme toggle (admin only) */
.lw-theme-toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border: 1px solid var(--lw-white-15);
	border-radius: var(--lw-radius-sm);
	background: none;
	cursor: pointer;
	color: var(--lw-gold);
	transition: background var(--lw-transition), color var(--lw-transition);
	padding: 0;
}
.lw-theme-toggle:hover { background: var(--lw-white-10); }

/* Hamburger (hidden on desktop) */
.lw-hamburger {
	display: none;
}

/* --------------------------------------------------------------------------
   Mobile breakpoint (≤ 991px)
   -------------------------------------------------------------------------- */
@media (max-width: 991px) {
	.lw-nav--desktop {
		display: none;
	}

	/* On mobile: hamburger left, logo center, WA right — equal side columns */
	.lw-header__inner {
		grid-template-columns: 44px 1fr 44px;
		grid-template-areas: "hamburger logo right";
		gap: 0;
	}

	/* Show right slot on mobile but hide lang switcher */
	.lw-header__right {
		display: flex;
	}

	.lw-lang-switcher {
		display: none;
	}

	/* WA button: icon-only on mobile, no circle border */
	.lw-header__wa-btn {
		padding: 0;
		width: 32px;
		height: 32px;
		border: none !important;
		border-radius: 0;
		background: none !important;
		color: #25d366 !important;
		justify-content: center;
		gap: 0;
	}

	.lw-header__wa-btn:hover {
		background: none !important;
		box-shadow: none !important;
		transform: none;
		color: #1ebe5c !important;
	}

	.lw-header__wa-icon {
		width: 32px;
		height: 32px;
	}

	.lw-header__wa-label {
		display: none;
	}

	.lw-hamburger {
		grid-area: hamburger;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap: 5px;
		width: 44px;
		height: 44px;
		padding: 8px;
		background: none;
		border: none;
		cursor: pointer;
		border-radius: var(--lw-radius-sm);
		transition: background var(--lw-transition);
	}

	.lw-hamburger:hover {
		background: var(--lw-white-10);
	}

	.lw-hamburger__bar {
		display: block;
		width: 22px;
		height: 2px;
		background: var(--lw-white);
		border-radius: 2px;
		transition: transform var(--lw-transition), opacity var(--lw-transition);
	}

	.lw-header__logo {
		grid-area: logo;
	}


	/* WhatsApp icon-only on mobile (injected via grid area "wa") */
	/* We reuse the desktop right slot but limit to WA only by hiding lang */
	/* Actually on mobile we show WA in the right area via a separate element */
}


/* ==========================================================================
   MOBILE MENU (fullscreen overlay)
   ========================================================================== */

.lw-mobile-menu {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: var(--lw-navy-dark);
	z-index: var(--lw-mobile-menu-z);
	display: flex;
	flex-direction: column;
	overflow-y: auto;
	opacity: 0;
	transform: translateX(-100%);
	transition: opacity var(--lw-transition), transform var(--lw-transition);
}

.lw-mobile-menu[hidden] {
	display: none;
}

.lw-mobile-menu--open {
	opacity: 1;
	transform: translateX(0);
}

/* Top bar: logo + close */
.lw-mobile-menu__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px 24px;
	border-bottom: 1px solid var(--lw-white-15);
	flex-shrink: 0;
}

.lw-mobile-menu__logo-link {
	display: block;
	line-height: 0;
}

.lw-mobile-menu__logo-img {
	width: 140px;
	height: auto;
	display: block;
}

.lw-mobile-menu__close {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	background: var(--lw-white-10);
	border: none;
	border-radius: 50%;
	font-size: 24px;
	color: var(--lw-white);
	cursor: pointer;
	transition: background var(--lw-transition);
	line-height: 1;
}

.lw-mobile-menu__close:hover {
	background: var(--lw-white-15);
}

/* Mobile nav list */
.lw-mobile-nav {
	list-style: none;
	margin: 0;
	padding: 16px 0;
	flex: 1;
}

.lw-mobile-nav__item + .lw-mobile-nav__item {
	border-top: 1px solid var(--lw-white-10);
}

.lw-mobile-nav__link,
.lw-mobile-nav__toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 16px 24px;
	font-family: var(--lw-font-body);
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--lw-white-80);
	text-decoration: none;
	background: none;
	border: none;
	cursor: pointer;
	text-align: left;
	transition: color var(--lw-transition), background var(--lw-transition);
}

.lw-mobile-nav__link:hover,
.lw-mobile-nav__toggle:hover {
	color: var(--lw-gold);
	background: var(--lw-white-10);
}

.lw-mobile-nav__toggle--open {
	color: var(--lw-gold);
}

.lw-mobile-nav__chevron {
	flex-shrink: 0;
	transition: transform var(--lw-transition);
}

.lw-mobile-nav__toggle--open .lw-mobile-nav__chevron {
	transform: rotate(180deg);
}

/* Sub-menu */
.lw-mobile-nav__sub {
	list-style: none;
	margin: 0;
	padding: 0 0 8px 0;
	background: var(--lw-navy-deeper);
}

.lw-mobile-nav__sub-link {
	display: block;
	padding: 12px 24px 12px 36px;
	font-family: var(--lw-font-body);
	font-size: 14px;
	font-weight: 500;
	color: var(--lw-white-60);
	text-decoration: none;
	transition: color var(--lw-transition), background var(--lw-transition);
}

.lw-mobile-nav__sub-link:hover {
	color: var(--lw-gold);
	background: var(--lw-white-10);
}

/* Mobile menu footer */
.lw-mobile-menu__footer {
	padding: 20px 24px;
	border-top: 1px solid var(--lw-white-10);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-shrink: 0;
}

.lw-mobile-lang {
	display: flex;
	align-items: center;
	gap: 8px;
}

.lw-mobile-lang__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--lw-font-body);
	font-size: 14px;
	font-weight: 600;
	color: var(--lw-white-60);
	text-decoration: none;
	transition: color var(--lw-transition);
}

.lw-mobile-lang__link:hover,
.lw-mobile-lang__link--active {
	color: var(--lw-gold);
}

.lw-mobile-lang__flag {
	font-size: 18px;
	line-height: 1;
	display: inline-block;
	/* Prevent WP emoji replacement from collapsing to 0×0 */
	width: auto !important;
	height: auto !important;
}

.lw-mobile-lang__sep {
	color: var(--lw-white-15);
	font-size: 12px;
}

.lw-mobile-menu__wa {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	padding: 0;
	color: #25d366;
	text-decoration: none;
	border: 1.5px solid #25d366;
	border-radius: 50%;
	background: transparent;
	transition: background var(--lw-transition), color var(--lw-transition);
}
.lw-mobile-menu__wa-text {
	display: none;
}

.lw-mobile-menu__wa:hover {
	background: #25d366;
	color: var(--lw-white);
}

/* Overlay backdrop */
.lw-mobile-overlay {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.6);
	z-index: calc(var(--lw-mobile-menu-z) - 1);
}

.lw-mobile-overlay--visible {
	display: block;
}

/* ==========================================================================
   FOOTER
   ========================================================================== */

.lw-footer {
	background: var(--lw-navy-dark);
	color: var(--lw-white-80);
	font-family: var(--lw-font-body);
}

.lw-footer__container {
	max-width: var(--lw-container-max);
	margin: 0 auto;
	padding: 0 var(--lw-container-pad);
}

/* --------------------------------------------------------------------------
   Row 1: Newsletter
   -------------------------------------------------------------------------- */
.lw-footer__newsletter {
	background: var(--lw-navy);
	padding: 56px 0;
	border-bottom: 1px solid var(--lw-white-10);
}

.lw-footer__newsletter-content {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	align-items: center;
}
.lw-footer__newsletter-form {
	justify-self: center;
	width: 100%;
	max-width: 400px;
}

.lw-footer__newsletter-title {
	font-family: var(--lw-font-heading);
	font-size: clamp(20px, 2.5vw, 28px);
	font-weight: 400;
	color: var(--lw-white);
	margin: 0 0 10px;
	line-height: 1.3;
}

.lw-footer__newsletter-subtitle {
	font-size: 14px;
	color: var(--lw-white-60);
	margin: 0;
	line-height: 1.6;
}

/* Reset Email Subscribers plugin wrapper */
.lw-footer__newsletter-form .es_form_wrapper {
	max-width: 100% !important;
}

.lw-footer__newsletter-form .es_subscription_form,
.lw-footer__newsletter-form form {
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 !important;
	border-radius: 0 !important;
	display: flex !important;
	flex-wrap: wrap;
	gap: 12px;
	align-items: flex-end;
}

.lw-footer__newsletter-form .es-field-wrap {
	flex: 1 1 auto;
	min-width: 200px;
}

.lw-footer__newsletter-form .es-field-wrap.es-submit-container {
	flex: 0 0 auto;
	display: flex !important;
}

.lw-footer__newsletter-form .es-field-label {
	color: var(--lw-white-80) !important;
	font-size: 13px;
	font-weight: 500;
	display: block;
	margin-bottom: 6px;
}

/* Email input */
.lw-footer__newsletter-form input[type="email"] {
	width: 100% !important;
	height: 48px;
	padding: 10px 16px;
	background: var(--lw-white-08);
	border: 1px solid var(--lw-white-15);
	border-radius: var(--lw-radius-sm);
	color: var(--lw-white);
	font-family: var(--lw-font-body);
	font-size: 15px;
	box-sizing: border-box;
	transition: border-color 0.2s;
}

.lw-footer__newsletter-form input[type="email"]:focus {
	outline: none;
	border-color: var(--lw-gold);
}

.lw-footer__newsletter-form input[type="email"]::placeholder {
	color: var(--lw-white-60);
}

/* Subscribe button — override plugin's paper-plane icon style */
.lw-footer__newsletter-form input[type="submit"],
.lw-footer__newsletter-form button[type="submit"],
.lw-footer__newsletter-form .es-subscribe-btn,
.lw-footer__newsletter-form .es-custom-button {
	height: 48px !important;
	width: auto !important;
	padding: 10px 28px !important;
	background: var(--lw-gold) !important;
	background-image: none !important;
	color: var(--lw-btn-on-gold) !important;
	border: none !important;
	border-radius: var(--lw-radius-sm) !important;
	font-family: var(--lw-font-body) !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	letter-spacing: 0.03em;
	cursor: pointer;
	transition: background 0.2s;
	white-space: nowrap;
	opacity: 1 !important;
}

.lw-footer__newsletter-form input[type="submit"]:hover,
.lw-footer__newsletter-form button[type="submit"]:hover,
.lw-footer__newsletter-form .es-subscribe-btn:hover,
.lw-footer__newsletter-form input[type="submit"]:focus,
.lw-footer__newsletter-form button[type="submit"]:focus,
.lw-footer__newsletter-form .es-subscribe-btn:focus,
.evd-newsletter-form__btn:hover,
.evd-newsletter-form__btn:focus,
.evd-newsletter-form__btn:active {
	background: var(--lw-gold-light) !important;
	background-color: var(--lw-gold-light) !important;
	color: var(--lw-btn-on-gold) !important;
	outline: none !important;
	box-shadow: none !important;
}

/* Light mode only: newsletter button — gold tint default + hover, white text.
 * Default bg #6b5a42 (dark brown gold), hover #836f53 (slight lift).
 * Hardcoded because --lw-gold-light is globally remapped to navy in light mode. */
body[data-pp-theme="light"] .lw-footer__newsletter-form input[type="submit"],
body[data-pp-theme="light"] .lw-footer__newsletter-form button[type="submit"],
body[data-pp-theme="light"] .lw-footer__newsletter-form .es-subscribe-btn,
body[data-pp-theme="light"] .lw-footer__newsletter-form .es-custom-button,
body[data-pp-theme="light"] .evd-newsletter-form__btn {
	background: #6b5a42 !important;
	color: #fff !important;
}
body[data-pp-theme="light"] .lw-footer__newsletter-form input[type="submit"]:hover,
body[data-pp-theme="light"] .lw-footer__newsletter-form button[type="submit"]:hover,
body[data-pp-theme="light"] .lw-footer__newsletter-form .es-subscribe-btn:hover,
body[data-pp-theme="light"] .lw-footer__newsletter-form input[type="submit"]:focus,
body[data-pp-theme="light"] .lw-footer__newsletter-form button[type="submit"]:focus,
body[data-pp-theme="light"] .lw-footer__newsletter-form .es-subscribe-btn:focus,
body[data-pp-theme="light"] .evd-newsletter-form__btn:hover,
body[data-pp-theme="light"] .evd-newsletter-form__btn:focus,
body[data-pp-theme="light"] .evd-newsletter-form__btn:active {
	background: #836f53 !important;
	color: #fff !important;
}

/* --------------------------------------------------------------------------
   Row 2: Contact columns
   -------------------------------------------------------------------------- */
.lw-footer__info {
	padding: 56px 0;
	border-bottom: 1px solid var(--lw-white-10);
}

.lw-footer__cols {
	display: grid;
	grid-template-columns: auto 1fr 1fr 1fr;
	gap: 40px;
	align-items: start;
}

.lw-footer__logo {
	display: block;
	width: 160px;
	height: auto;
	opacity: 0.9;
	transition: opacity var(--lw-transition);
}

.lw-footer__logo:hover {
	opacity: 1;
}

.lw-footer__col-title {
	font-family: var(--lw-font-heading);
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--lw-gold);
	margin: 0 0 14px;
}

/* Footer tagline + Google rating */
.lw-footer__tagline {
	font-size: 13px;
	color: var(--lw-white-60);
	line-height: 1.5;
	margin: 12px 0 8px;
}
.lw-footer__ratings {
	margin-top: 12px;
}
.lw-footer__rating-line {
	font-size: 13px;
	display: flex;
	align-items: center;
	gap: 5px;
	margin: 0;
	line-height: 1.8;
}
.lw-footer__rating-line svg {
	flex-shrink: 0;
}

/* Footer nav lists (villas + informations) */
.lw-footer__nav-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.lw-footer__nav-list li {
	margin-bottom: 8px;
}
.lw-footer__nav-list a {
	font-size: 13px;
	color: var(--lw-white-60);
	text-decoration: none;
	transition: color var(--lw-transition);
}
.lw-footer__nav-list a:hover {
	color: var(--lw-gold);
}

.lw-footer__contact-link {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 14px;
	color: var(--lw-white-60);
	text-decoration: none;
	line-height: 1.5;
	margin-bottom: 10px;
	transition: color var(--lw-transition);
}

.lw-footer__contact-link:hover {
	color: var(--lw-gold);
}

.lw-footer__contact-link:last-child {
	margin-bottom: 0;
}

.lw-footer__contact-icon {
	flex-shrink: 0;
	margin-top: 2px;
}

/* Social icons */
.lw-footer__socials {
	display: flex;
	gap: 12px;
	align-items: center;
}

.lw-footer__social-link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	background: var(--lw-white-10);
	border-radius: 50%;
	color: var(--lw-white-60);
	text-decoration: none;
	transition: background var(--lw-transition), color var(--lw-transition);
}

.lw-footer__social-link:hover {
	background: var(--lw-gold);
	color: var(--lw-white);
}

/* --------------------------------------------------------------------------
   Row 3: Copyright + legal
   -------------------------------------------------------------------------- */
.lw-footer__bottom {
	padding: 20px 0;
}

.lw-footer__bottom-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}

.lw-footer__copyright {
	font-size: 13px;
	color: var(--lw-white-60);
	margin: 0;
}

.lw-footer__legal-nav {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
}

.lw-footer__legal-link {
	font-size: 12px;
	color: var(--lw-white-60);
	text-decoration: none;
	transition: color var(--lw-transition);
	padding: 8px 4px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
}

.lw-footer__legal-link:hover {
	color: var(--lw-gold);
}

.lw-footer__legal-sep {
	color: var(--lw-white-15);
	font-size: 12px;
}

/* ==========================================================================
   RESPONSIVE — Tablet (≤ 1024px)
   ========================================================================== */
@media (max-width: 1024px) {
	.lw-footer__cols {
		grid-template-columns: 1fr 1fr;
		gap: 32px;
	}

	.lw-footer__col--brand {
		grid-column: 1 / -1;
	}

	.lw-footer__newsletter-content {
		grid-template-columns: 1fr;
		gap: 28px;
		text-align: center;
	}

	.lw-footer__newsletter-form {
		max-width: 400px;
		margin: 0 auto;
	}
}

/* ==========================================================================
   RESPONSIVE — Mobile (≤ 767px)
   ========================================================================== */
@media (max-width: 767px) {
	:root {
		--lw-header-height: 64px;
		--lw-header-height-sticky: 54px;
	}


	.lw-footer__newsletter {
		padding: 40px 0;
	}

	.lw-footer__newsletter-form {
		justify-self: center;
		max-width: 320px;
		width: 100%;
	}

	.lw-footer__info {
		padding: 40px 0;
	}

	.lw-footer__cols {
		display: grid;
		grid-template-columns: 1fr 1fr;
		grid-template-areas:
			"brand social"
			"address contact";
		gap: 20px;
		align-items: start;
	}
	.lw-footer__col--brand { grid-area: brand; }
	.lw-footer__col:nth-child(2) { grid-area: address; }
	.lw-footer__col:nth-child(3) { grid-area: contact; }
	.lw-footer__col:nth-child(4) { grid-area: social; text-align: center; }
	.lw-footer__col:nth-child(4) .lw-footer__socials { justify-content: center; }

	.lw-footer__bottom-inner {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}

	.lw-footer__legal-nav {
		gap: 4px;
	}
}

/* ==========================================================================
   WP Emoji fix — WP converts emoji to <img class="emoji"> which collapses
   to 0x0 in flex containers. Restore natural inline size for flag emoji.
   ========================================================================== */
.lw-lang-switcher__flag img.emoji,
.lw-mobile-lang__flag img.emoji {
	width: 1.2em !important;
	height: 1.2em !important;
	display: inline !important;
	vertical-align: middle;
}

/* ==========================================================================
   UTILITY: Page body offset for fixed header
   ========================================================================== */

/* Pages using this header need top padding so content isn't hidden under it.
   Add class .lw-page-has-header to <body> or the content wrapper. */
.lw-page-has-header {
	padding-top: var(--lw-header-height);
}

/* Admin bar adjustments */
.admin-bar .lw-page-has-header {
	padding-top: calc(var(--lw-header-height) + 32px);
}

@media screen and (max-width: 782px) {
	.admin-bar .lw-page-has-header {
		padding-top: calc(var(--lw-header-height) + 46px);
	}
}

/* ==========================================================================
   PAGE CONTENT
   ========================================================================== */

.lw-main {
	padding-top: calc(var(--lw-header-height) + 32px);
	min-height: 60vh;
}

/* Solid header is position:relative — already in flow, so less padding needed */
.lw-header--solid ~ .lw-main {
	padding-top: 24px;
}

.lw-main--has-hero {
	padding-top: 0 !important;
}

.admin-bar .lw-main {
	padding-top: calc(var(--lw-header-height) + 32px + 32px);
}

.admin-bar .lw-header--solid ~ .lw-main {
	padding-top: 56px;
}

.admin-bar .lw-main--has-hero {
	padding-top: 0 !important;
}

.admin-bar .lw-contact-hero,
.admin-bar .lw-blog-hero {
	padding-top: 56px;
}

.lw-container,
.container {
	max-width: var(--lw-container-max);
	margin: 0 auto;
	padding: 0 var(--lw-container-pad);
	box-sizing: border-box;
}

/* Default page hero — dark band matching Contact/Blog heroes */
.lw-default-hero {
	background: var(--lw-navy-dark);
	padding: 24px 0 16px;
	text-align: center;
}

.admin-bar .lw-default-hero {
	padding-top: 56px;
}

.lw-default-hero__subtitle {
	font-family: var(--lw-font-body);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: var(--lw-gold);
	margin: 0 0 12px;
}

.lw-default-hero__title {
	font-family: var(--lw-font-heading);
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 400;
	color: var(--lw-white);
	margin: 0 auto 16px;
	max-width: 800px;
}

.lw-default-hero__desc {
	font-size: 16px;
	color: var(--lw-white-60);
	margin: 0 auto;
	max-width: 800px;
}

.lw-page-header {
	padding: 32px 0 24px;
	border-bottom: 1px solid var(--lw-border-light);
	margin-bottom: 32px;
}

.lw-page-title {
	font-family: var(--lw-font-heading);
	font-size: clamp(1.8rem, 4vw, 2.5rem);
	font-weight: 400;
	color: var(--lw-white);
	margin: 0;
}

.lw-article {
	max-width: 800px;
	margin: 0 auto;
}

/* Checkout has its own max-width (1100px) — don't constrain it */
.lw-article:has(.cs-checkout-redesign) {
	max-width: none;
}

.lw-article .entry-content {
	font-family: var(--lw-font-body);
	font-size: 16px;
	line-height: 1.7;
	color: var(--lw-section-text);
}

.lw-article .entry-content a {
	color: var(--lw-gold-muted);
	text-decoration: underline;
	text-decoration-color: var(--lw-gold-light);
	text-underline-offset: 2px;
}

.lw-article .entry-content a:hover {
	color: var(--lw-white);
}

/* ==========================================================================
   CONTACT PAGE
   ========================================================================== */

.lw-contact-hero {
	background: var(--lw-navy-dark);
	padding: 24px 0 32px;
	text-align: center;
	color: var(--lw-white);
}

.lw-contact-hero__subtitle {
	font-family: var(--lw-font-body);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: var(--lw-gold);
	margin: 0 0 12px;
}

.lw-contact-hero__title {
	font-family: var(--lw-font-heading);
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 400;
	margin: 0 0 16px;
	color: var(--lw-white);
}

.lw-contact-hero__desc {
	font-size: 16px;
	color: var(--lw-white-60);
	margin: 0;
}

.lw-contact-content {
	padding: 60px 0 80px;
}

.lw-contact-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
	max-width: var(--lw-container-max);
	margin: 0 auto;
}

.lw-contact-info__subtitle,
.lw-contact-form__subtitle {
	font-family: var(--lw-font-body);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: var(--lw-gold-muted);
	margin: 0 0 8px;
}

.lw-contact-info__title,
.lw-contact-form__title {
	font-family: var(--lw-font-heading);
	font-size: 1.6rem;
	font-weight: 400;
	color: var(--lw-white);
	margin: 0 0 20px;
}

.lw-contact-info__address {
	color: var(--lw-white-80);
	line-height: 1.7;
	margin: 0 0 16px;
}

.lw-contact-info__wa {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 20px;
	background: #25d366;
	color: var(--lw-white) !important;
	border-radius: 999px;
	font-weight: 600;
	font-size: 14px;
	text-decoration: none;
	margin-bottom: 16px;
	transition: background 0.2s;
}

.lw-contact-info__wa:hover {
	background: #1ebc59;
}

.lw-contact-info__email a {
	color: var(--lw-gold-muted);
	text-decoration: underline;
}

/* Map link replaces the live iframe — static WebP + click-through to Google Maps. */
.lw-contact-info__map {
	display: block;
	position: relative;
	margin-top: 16px;
	border-radius: 8px;
	overflow: hidden;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.lw-contact-info__map:hover,
.lw-contact-info__map:focus-visible {
	transform: translateY(-1px);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.15);
}
.lw-contact-info__map img {
	display: block;
	width: 100%;
	height: 250px;
	object-fit: cover;
}
.lw-contact-info__map-pin {
	position: absolute;
	top: 12px;
	left: 12px;
	background: rgba(0, 0, 0, 0.75);
	color: #fff;
	padding: 6px 12px;
	border-radius: 20px;
	font-size: 13px;
	font-weight: 600;
	pointer-events: none;
}

/* CF7 form styling */
.lw-contact-form .wpcf7-form label {
	display: block;
	font-size: 14px;
	font-weight: 500;
	color: var(--lw-white-80);
	margin-bottom: 6px;
}

.lw-contact-form .wpcf7-form input[type="text"],
.lw-contact-form .wpcf7-form input[type="email"],
.lw-contact-form .wpcf7-form textarea,
.lw-contact-form .wpcf7-form select {
	width: 100%;
	padding: 12px 16px;
	background: var(--lw-white-08);
	border: 1px solid var(--lw-border-medium);
	border-radius: var(--lw-radius-sm);
	font-family: var(--lw-font-body);
	font-size: 15px;
	color: var(--lw-white);
	transition: border-color 0.2s;
	margin-bottom: 16px;
}

.lw-contact-form .wpcf7-form input::placeholder,
.lw-contact-form .wpcf7-form textarea::placeholder {
	color: var(--lw-white-60);
}

.lw-contact-form .wpcf7-form input:focus,
.lw-contact-form .wpcf7-form textarea:focus,
.lw-contact-form .wpcf7-form select:focus {
	border-color: var(--lw-gold);
	outline: none;
}

.lw-contact-form .wpcf7-form select {
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23b99d75' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	padding-right: 40px;
	cursor: pointer;
}

.lw-contact-form .wpcf7-form select option {
	background: var(--lw-navy-dark);
	color: var(--lw-white);
}

.lw-contact-form .wpcf7-form textarea {
	min-height: 120px;
	resize: vertical;
}

.lw-contact-form .wpcf7-form input[type="submit"],
.lw-contact-form .wpcf7-form .wpcf7-submit {
	display: inline-block;
	padding: 14px 40px;
	background: var(--lw-gold);
	color: var(--lw-white);
	border: none;
	border-radius: var(--lw-radius-sm);
	font-family: var(--lw-font-body);
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s;
}

.lw-contact-form .wpcf7-form input[type="submit"]:hover {
	background: var(--lw-gold-muted);
	color: var(--lw-white);
}

/* Native contact form (replaces CF7) */
.evd-contact-form {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.evd-contact-form__field label {
	display: block;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--lw-white-80);
	margin-bottom: 6px;
}

.evd-contact-form__field input,
.evd-contact-form__field textarea,
.evd-contact-form__field select {
	width: 100%;
	padding: 12px 16px;
	background: var(--lw-white-08);
	border: 1px solid var(--lw-white-15);
	border-radius: var(--lw-radius-sm);
	color: var(--lw-white);
	font: inherit;
	font-size: 0.95rem;
	transition: border-color 0.2s;
}

.evd-contact-form__field input:focus,
.evd-contact-form__field textarea:focus,
.evd-contact-form__field select:focus {
	outline: none;
	border-color: var(--lw-gold);
}

.evd-contact-form__field select {
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23b99d75' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	padding-right: 40px;
	cursor: pointer;
}

.evd-contact-form__field select option {
	background: var(--lw-navy-dark);
	color: var(--lw-white);
}

.evd-contact-form__field textarea {
	min-height: 120px;
	resize: vertical;
}

.evd-contact-form__recaptcha {
	margin: 4px 0;
}

.evd-contact-form__btn {
	display: inline-block;
	padding: 14px 40px;
	background: var(--lw-gold);
	color: var(--lw-btn-on-gold) !important;
	border: none;
	border-radius: var(--lw-radius-sm);
	font: inherit;
	font-size: 0.95rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s;
	align-self: flex-start;
}

.evd-contact-form__btn:hover {
	background: var(--lw-gold-muted);
}

.evd-contact-form__msg {
	font-size: 0.9rem;
	margin-top: 4px;
}

@media (max-width: 768px) {
	.lw-contact-hero {
		padding: 80px 0 24px;
	}
	.lw-contact-grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}
}

/* ==========================================================================
   BLOG PAGE
   ========================================================================== */

.lw-blog-hero {
	background: var(--lw-navy-dark);
	padding: 24px 0 20px;
	text-align: center;
	color: var(--lw-white);
}

.lw-blog-hero__subtitle {
	font-family: var(--lw-font-body);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: var(--lw-gold);
	margin: 0 0 12px;
}

.lw-blog-hero__title {
	font-family: var(--lw-font-heading);
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 400;
	margin: 0 0 16px;
	color: var(--lw-white);
}

.lw-blog-hero__desc {
	font-size: 16px;
	color: var(--lw-white-60);
	margin: 0;
}

.lw-blog-content {
	padding: 60px 0 80px;
}

.lw-blog-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
	gap: 32px;
}

.lw-blog-card {
	border-radius: var(--lw-radius-md);
	overflow: hidden;
	background: var(--lw-white);
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
	transition: transform 0.2s, box-shadow 0.2s;
}

.lw-blog-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.lw-blog-card__link {
	display: block;
	text-decoration: none;
	color: inherit;
}

.lw-blog-card__img {
	aspect-ratio: 16 / 9;
	overflow: hidden;
}

.lw-blog-card__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s;
}

.lw-blog-card:hover .lw-blog-card__img img {
	transform: scale(1.05);
}

.lw-blog-card__body {
	padding: 20px 24px 24px;
}

.lw-blog-card__date {
	display: block;
	font-size: 12px;
	color: var(--lw-gold-dark);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin-bottom: 8px;
}

.lw-blog-card__title {
	font-family: var(--lw-font-heading);
	font-size: 1.2rem;
	font-weight: 400;
	color: var(--lw-navy);
	margin: 0 0 10px;
	line-height: 1.3;
}

.lw-blog-card__excerpt {
	font-size: 14px;
	color: var(--lw-text-muted);
	line-height: 1.6;
	margin: 0 0 12px;
}

.lw-blog-card__read-more {
	font-size: 13px;
	font-weight: 600;
	color: var(--lw-navy);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

/* Pagination */
/* Category filter chips */
.lw-blog-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
	margin-bottom: 24px;
}

.lw-blog-filters:empty {
	display: none;
}

.lw-blog-filter__chip {
	display: inline-block;
	padding: 6px 16px;
	border: 1px solid var(--lw-white-15);
	border-radius: 20px;
	font-size: 0.82rem;
	font-weight: 500;
	color: var(--lw-white-70);
	text-decoration: none;
	transition: all 0.2s;
}

.lw-blog-filter__chip:hover {
	border-color: var(--lw-gold);
	color: var(--lw-white);
}

.lw-blog-filter__chip--active {
	background: var(--lw-gold);
	border-color: var(--lw-gold);
	color: var(--lw-navy) !important;
	font-weight: 600;
}

/* Card meta (date + read time) */
.lw-blog-card__meta {
	display: flex;
	align-items: baseline;
	gap: 10px;
}

.lw-blog-card__read-time {
	display: inline-block;
	padding: 2px 8px;
	background: var(--lw-gold-15);
	border-radius: 10px;
	font-size: 0.72rem;
	font-weight: 600;
	color: var(--lw-gold);
	line-height: 1.4;
	vertical-align: middle;
	position: relative;
	top: -1px;
}

/* Pagination */
.lw-blog-pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 4px;
	margin-top: 48px;
	padding-top: 24px;
	border-top: 1px solid var(--lw-white-15);
}

.lw-blog-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border-radius: var(--lw-radius-sm);
	font-size: 14px;
	color: var(--lw-white-70);
	text-decoration: none;
	transition: all 0.2s;
	border: 1px solid transparent;
}

.lw-blog-pagination .page-numbers:hover {
	border-color: var(--lw-white-15);
	color: var(--lw-white);
}

.lw-blog-pagination .page-numbers.current {
	background: var(--lw-gold);
	color: var(--lw-navy);
	font-weight: 600;
	border-color: var(--lw-gold);
}

.lw-blog-pagination .prev,
.lw-blog-pagination .next {
	font-weight: 600;
	color: var(--lw-gold-muted);
}

@media (max-width: 768px) {
	.lw-blog-hero {
		padding: 80px 0 24px;
	}
	.lw-blog-grid {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   SINGLE BLOG POST
   ========================================================================== */

.lw-post-hero {
	margin-top: 24px;
	border-radius: var(--lw-radius-md);
	overflow: hidden;
	max-height: 400px;
}

.lw-post-hero__img {
	width: 100%;
	height: auto;
	display: block;
	max-height: 400px;
	object-fit: cover;
	border-radius: var(--lw-radius-md);
}

.lw-post-article {
	max-width: 800px;
	margin: 0 auto;
}

.lw-post-header {
	margin-bottom: 32px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--lw-border-light);
}

.lw-post-date {
	display: block;
	font-size: 13px;
	color: var(--lw-gold-muted);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin-bottom: 12px;
}

.lw-post-title {
	font-family: var(--lw-font-heading);
	font-size: clamp(1.8rem, 4vw, 2.5rem);
	font-weight: 400;
	color: var(--lw-white);
	margin: 0;
	line-height: 1.25;
}

.lw-post-article .entry-content {
	font-family: var(--lw-font-body);
	font-size: 17px;
	line-height: 1.8;
	color: var(--lw-section-text);
}

.lw-post-article .entry-content h2 {
	font-family: var(--lw-font-heading);
	font-size: 1.5rem;
	color: var(--lw-white);
	margin: 2em 0 0.8em;
}

.lw-post-article .entry-content h3 {
	font-family: var(--lw-font-heading);
	font-size: 1.2rem;
	color: var(--lw-white);
	margin: 1.5em 0 0.6em;
}

.lw-post-article .entry-content p {
	margin: 0 0 1.2em;
}

.lw-post-article .entry-content a {
	color: var(--lw-gold-muted);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.lw-post-article .entry-content img {
	border-radius: var(--lw-radius-sm);
	margin: 1em 0;
}

/* --------------------------------------------------------------------------
   Blog content — standard WordPress elements (dark theme)
   Tables, blockquotes, figures, lists, hr, code
   -------------------------------------------------------------------------- */

/* Tables */
.lw-post-article .entry-content table,
.lw-article .entry-content table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	border-radius: var(--lw-radius-md);
	overflow: hidden;
	border: 1px solid var(--lw-white-15);
	margin: 1.5em 0;
	font-size: 0.92rem;
}

.lw-post-article .entry-content thead,
.lw-article .entry-content thead {
	background: var(--lw-white-10);
}

.lw-post-article .entry-content th,
.lw-article .entry-content th {
	padding: 12px 16px;
	font-weight: 600;
	color: var(--lw-white);
	text-align: left;
	border-bottom: 2px solid var(--lw-white-15);
	font-size: 0.82rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.lw-post-article .entry-content td,
.lw-article .entry-content td {
	padding: 10px 16px;
	color: var(--lw-white-80);
	border-bottom: 1px solid var(--lw-white-08);
}

.lw-post-article .entry-content tbody tr:last-child td,
.lw-article .entry-content tbody tr:last-child td {
	border-bottom: none;
}

.lw-post-article .entry-content tbody tr:hover,
.lw-article .entry-content tbody tr:hover {
	background: var(--lw-white-08);
}

/* Bold total/summary rows */
.lw-post-article .entry-content tr:last-child td,
.lw-article .entry-content tfoot td {
	font-weight: 700;
	color: var(--lw-white);
}

/* Responsive table wrapper */
@media (max-width: 600px) {
	.lw-post-article .entry-content table,
	.lw-article .entry-content table {
		display: block;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		font-size: 0.82rem;
	}
	.lw-post-article .entry-content th,
	.lw-post-article .entry-content td,
	.lw-article .entry-content th,
	.lw-article .entry-content td {
		padding: 8px 10px;
		white-space: nowrap;
	}
}

/* Blockquotes */
.lw-post-article .entry-content blockquote,
.lw-article .entry-content blockquote {
	margin: 1.5em 0;
	padding: 20px 24px;
	background: var(--lw-white-08);
	border-left: 4px solid var(--lw-gold);
	border-radius: 0 var(--lw-radius-sm) var(--lw-radius-sm) 0;
	font-style: italic;
	color: var(--lw-white-80);
}

.lw-post-article .entry-content blockquote p:last-child,
.lw-article .entry-content blockquote p:last-child {
	margin-bottom: 0;
}

.lw-post-article .entry-content blockquote cite,
.lw-article .entry-content blockquote cite {
	display: block;
	margin-top: 8px;
	font-size: 0.85rem;
	font-style: normal;
	font-weight: 600;
	color: var(--lw-gold-muted);
}

/* WP block quote */
.lw-post-article .entry-content .wp-block-quote,
.lw-article .entry-content .wp-block-quote {
	margin: 1.5em 0;
	padding: 20px 24px;
	background: var(--lw-white-08);
	border-left: 4px solid var(--lw-gold);
	border-radius: 0 var(--lw-radius-sm) var(--lw-radius-sm) 0;
}

.lw-post-article .entry-content .wp-block-quote p,
.lw-article .entry-content .wp-block-quote p {
	font-style: italic;
	color: var(--lw-white-80);
}

/* Figures & captions */
.lw-post-article .entry-content figure,
.lw-article .entry-content figure {
	margin: 1.5em 0;
}

.lw-post-article .entry-content figcaption,
.lw-article .entry-content figcaption {
	font-size: 0.82rem;
	color: var(--lw-white-60);
	text-align: center;
	margin-top: 8px;
	font-style: italic;
}

/* Horizontal rule */
.lw-post-article .entry-content hr,
.lw-article .entry-content hr {
	border: none;
	border-top: 1px solid var(--lw-white-15);
	margin: 2em 0;
}

/* Ordered & unordered lists */
.lw-post-article .entry-content ul,
.lw-post-article .entry-content ol,
.lw-article .entry-content ul,
.lw-article .entry-content ol {
	margin: 1em 0;
	padding-left: 1.5em;
	color: var(--lw-white-80);
}

.lw-post-article .entry-content li,
.lw-article .entry-content li {
	margin-bottom: 0.4em;
	line-height: 1.6;
}

.lw-post-article .entry-content li::marker,
.lw-article .entry-content li::marker {
	color: var(--lw-gold-muted);
}

/* Code blocks */
.lw-post-article .entry-content code,
.lw-article .entry-content code {
	background: var(--lw-white-10);
	padding: 2px 6px;
	border-radius: 4px;
	font-size: 0.88em;
	color: var(--lw-gold-light);
}

.lw-post-article .entry-content pre,
.lw-article .entry-content pre {
	background: var(--lw-white-08);
	border: 1px solid var(--lw-white-15);
	border-radius: var(--lw-radius-sm);
	padding: 16px;
	overflow-x: auto;
	margin: 1.5em 0;
}

.lw-post-article .entry-content pre code,
.lw-article .entry-content pre code {
	background: none;
	padding: 0;
}

/* Strong / bold emphasis */
.lw-post-article .entry-content strong,
.lw-article .entry-content strong {
	color: var(--lw-white);
}

/* --------------------------------------------------------------------------
   Reading progress bar
   -------------------------------------------------------------------------- */
.lw-post-progress {
	position: fixed;
	top: 0;
	left: 0;
	height: 3px;
	width: 0;
	background: var(--lw-gold);
	z-index: 9999;
	transition: width 50ms linear;
}

/* --------------------------------------------------------------------------
   Breadcrumbs
   -------------------------------------------------------------------------- */
.lw-breadcrumbs {
	padding: 12px 0;
	font-size: 0.82rem;
	max-width: 800px;
	margin: 0 auto;
}

.lw-breadcrumbs__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0;
}

.lw-breadcrumbs__list li {
	color: var(--lw-white-60);
}

.lw-breadcrumbs__list li::after {
	content: "›";
	margin: 0 8px;
	color: var(--lw-white-30);
}

.lw-breadcrumbs__list li:last-child::after {
	display: none;
}

.lw-breadcrumbs__list li:last-child {
	color: var(--lw-white-80);
}

.lw-breadcrumbs__list a {
	color: var(--lw-white-60);
	text-decoration: none;
}

.lw-breadcrumbs__list a:hover {
	color: var(--lw-gold);
}

/* --------------------------------------------------------------------------
   Post meta (date + read time)
   -------------------------------------------------------------------------- */
.lw-post-meta {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin-bottom: 12px;
}

.lw-post-read-time {
	display: inline-block;
	padding: 2px 10px;
	background: var(--lw-gold-15);
	border-radius: 12px;
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--lw-gold);
	letter-spacing: 0.02em;
	line-height: 1.4;
	position: relative;
	top: -1px;
}

/* --------------------------------------------------------------------------
   Table of contents
   -------------------------------------------------------------------------- */
.lw-post-toc {
	background: var(--lw-white-08);
	border: 1px solid var(--lw-white-15);
	border-radius: var(--lw-radius-md);
	padding: 20px 24px;
	margin: 24px 0 32px;
}

.lw-post-toc__toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	color: var(--lw-white);
}

.lw-post-toc__title {
	font-family: var(--lw-font-heading);
	font-size: 1.1rem;
	font-weight: 400;
	color: var(--lw-white);
}

.lw-post-toc__icon {
	width: 8px;
	height: 8px;
	border-right: 2px solid var(--lw-white-60);
	border-bottom: 2px solid var(--lw-white-60);
	transform: rotate(45deg);
	transition: transform 0.3s;
}

.lw-post-toc__toggle[aria-expanded="false"] .lw-post-toc__icon {
	transform: rotate(-135deg);
}

.lw-post-toc__list {
	list-style: none;
	margin: 16px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.lw-post-toc__list a {
	color: var(--lw-white-70);
	text-decoration: none;
	font-size: 0.9rem;
	transition: color 0.15s;
}

.lw-post-toc__list a:hover {
	color: var(--lw-gold);
}

.lw-post-toc__sub {
	padding-left: 16px;
	font-size: 0.85rem;
}

/* --------------------------------------------------------------------------
   Mid-article newsletter CTA
   -------------------------------------------------------------------------- */
.lw-post-newsletter-cta {
	background: var(--lw-white-08);
	border: 1px solid var(--lw-gold-15);
	border-left: 4px solid var(--lw-gold);
	border-radius: 0 var(--lw-radius-sm) var(--lw-radius-sm) 0;
	padding: 20px 24px;
	margin: 2em 0;
	text-align: center;
}

.lw-post-newsletter-cta__title {
	font-size: 1rem;
	font-weight: 600;
	color: var(--lw-white);
	margin: 0 0 4px;
}

.lw-post-newsletter-cta__text {
	font-size: 0.88rem;
	color: var(--lw-white-70);
	margin: 0 0 12px;
}

.lw-post-newsletter-cta__form {
	display: flex;
	gap: 0;
	max-width: 420px;
	margin: 0 auto;
	border-radius: var(--lw-radius-sm);
	overflow: hidden;
	border: 1px solid var(--lw-white-15);
}

.lw-post-newsletter-cta__form input[type="email"] {
	flex: 1;
	padding: 10px 16px;
	background: var(--lw-white-08);
	border: none;
	color: var(--lw-white);
	font: inherit;
	font-size: 0.88rem;
}

.lw-post-newsletter-cta__form input[type="email"]::placeholder {
	color: var(--lw-white-60);
}

.lw-post-newsletter-cta__form input[type="email"]:focus {
	outline: none;
}

.lw-post-newsletter-cta__form button {
	padding: 10px 20px;
	background: var(--lw-gold);
	color: var(--lw-navy);
	border: none;
	font: inherit;
	font-size: 0.85rem;
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
}

.lw-post-newsletter-cta__form button:hover {
	background: var(--lw-gold-light);
}

.lw-post-newsletter-cta__msg {
	font-size: 0.82rem;
	margin-top: 8px;
}

/* --------------------------------------------------------------------------
   Share buttons
   -------------------------------------------------------------------------- */
.lw-post-share {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 20px 0;
	margin-top: 32px;
	border-top: 1px solid var(--lw-white-15);
}

.lw-post-share__label {
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--lw-white-60);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.lw-post-share__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 1px solid var(--lw-white-15);
	background: none;
	color: var(--lw-white-70);
	cursor: pointer;
	transition: all 0.2s;
	text-decoration: none;
}

.lw-post-share__btn:hover {
	border-color: var(--lw-white-30);
	color: var(--lw-white);
}

.lw-post-share__btn--wa:hover {
	border-color: #25d366;
	color: #25d366;
}

.lw-post-share__btn--fb:hover {
	border-color: #1877f2;
	color: #1877f2;
}

/* --------------------------------------------------------------------------
   Related articles
   -------------------------------------------------------------------------- */
.lw-post-related {
	margin-top: 48px;
	padding-top: 32px;
	border-top: 1px solid var(--lw-white-15);
}

.lw-post-related__title {
	font-family: var(--lw-font-heading);
	font-size: 1.3rem;
	font-weight: 400;
	color: var(--lw-white);
	margin: 0 0 24px;
}

.lw-post-related__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

.lw-post-related__card {
	display: flex;
	flex-direction: column;
	background: var(--lw-card-bg);
	border: 1px solid var(--lw-card-border);
	border-radius: var(--lw-radius-md);
	overflow: hidden;
	text-decoration: none;
	transition: transform 0.2s, box-shadow 0.2s;
}

.lw-post-related__card:hover {
	transform: translateY(-3px);
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
}

.lw-post-related__img {
	aspect-ratio: 16 / 9;
	overflow: hidden;
}

.lw-post-related__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.lw-post-related__body {
	padding: 14px 16px;
}

.lw-post-related__card-title {
	font-size: 0.92rem;
	font-weight: 600;
	color: var(--lw-white);
	margin: 0 0 6px;
	line-height: 1.4;
}

.lw-post-related__date {
	font-size: 0.78rem;
	color: var(--lw-white-60);
}

@media (max-width: 768px) {
	.lw-post-related__grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.lw-post-related__card {
		flex-direction: row;
	}

	.lw-post-related__img {
		flex: 0 0 120px;
		aspect-ratio: auto;
		height: 100%;
	}
}

/* Post navigation */
.lw-post-nav {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	margin-top: 48px;
	padding-top: 32px;
	border-top: 1px solid var(--lw-border-light);
	max-width: 800px;
	margin-left: auto;
	margin-right: auto;
}

.lw-post-nav__link {
	display: block;
	text-decoration: none;
	max-width: 45%;
}

.lw-post-nav__link--next {
	text-align: right;
	margin-left: auto;
}

.lw-post-nav__label {
	display: block;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--lw-gold-muted);
	margin-bottom: 4px;
}

.lw-post-nav__title {
	font-family: var(--lw-font-heading);
	font-size: 1rem;
	color: var(--lw-white);
	transition: color 0.2s;
}

.lw-post-nav__link:hover .lw-post-nav__title {
	color: var(--lw-gold);
}

@media (max-width: 768px) {
	.lw-post-nav {
		flex-direction: column;
	}
	.lw-post-nav__link {
		max-width: 100%;
	}
	.lw-post-nav__link--next {
		text-align: left;
	}
}

/* ==========================================================================
   VILLAS LISTING PAGE
   ========================================================================== */

.lw-villas-hero {
	background: var(--lw-navy-dark);
	padding: 24px 0 32px;
	text-align: center;
	color: var(--lw-white);
}

.admin-bar .lw-villas-hero {
	padding-top: 56px;
}

.lw-villas-hero__subtitle {
	font-family: var(--lw-font-body);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.15em;
	color: var(--lw-gold);
	margin: 0 0 12px;
}

.lw-villas-hero__title {
	font-family: var(--lw-font-heading);
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 400;
	margin: 0 0 16px;
	color: var(--lw-white);
}

.lw-villas-hero__desc {
	font-size: 16px;
	color: var(--lw-white-60);
	margin: 0 0 24px;
}

.lw-villas-hero__names {
	display: flex;
	justify-content: center;
	gap: 24px;
	flex-wrap: wrap;
}

.lw-villas-hero__name {
	font-family: var(--lw-font-heading);
	font-size: 14px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--lw-white-60);
	padding: 6px 16px;
	border: 1px solid var(--lw-white-15);
	border-radius: 999px;
	position: relative;
	overflow: hidden;
}
.lw-villas-hero__name::after {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 60%;
	height: 100%;
	transform: skewX(-25deg);
	animation: lw-laser-sweep 6s ease-in-out infinite;
	opacity: 0;
}
/* Diamant — silver grey */
.lw-villas-hero__name:nth-child(1)::after {
	background: linear-gradient(90deg, transparent, rgba(180, 190, 200, 0.25), transparent);
	animation-delay: 0s;
}
/* Saphir — sapphire blue */
.lw-villas-hero__name:nth-child(2)::after {
	background: linear-gradient(90deg, transparent, rgba(80, 130, 200, 0.3), transparent);
	animation-delay: 1s;
}
/* Opale — warm brown/amber */
.lw-villas-hero__name:nth-child(3)::after {
	background: linear-gradient(90deg, transparent, rgba(185, 140, 90, 0.3), transparent);
	animation-delay: 2s;
}
/* Jade — pearl white */
.lw-villas-hero__name:nth-child(4)::after {
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
	animation-delay: 3s;
}
@keyframes lw-laser-sweep {
	0%   { left: -100%; opacity: 0; }
	5%   { opacity: 1; }
	30%  { left: 150%; opacity: 1; }
	35%  { opacity: 0; }
	100% { left: 150%; opacity: 0; }
}

.lw-villas-content {
	padding: 60px 0 80px;
}

@media (max-width: 768px) {
	.lw-villas-hero {
		padding: 16px 0 24px;
	}
	.lw-villas-hero__names {
		gap: 12px;
	}
}

/* Villa cards grid */
.lw-villas-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 32px;
}

.lw-villa-card {
	border-radius: var(--lw-radius-md);
	overflow: hidden;
	background: var(--lw-white);
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
	transition: transform 0.3s, box-shadow 0.3s, opacity 0.4s, scale 0.4s;
	opacity: 1;
	scale: 1;
}
.lw-villa-card--hidden {
	opacity: 0;
	scale: 0.95;
	pointer-events: none;
	position: absolute;
	visibility: hidden;
}
.lw-villa-card--visible {
	animation: lw-card-appear 0.4s ease forwards;
}
@keyframes lw-card-appear {
	from { opacity: 0; scale: 0.95; transform: translateY(12px); }
	to   { opacity: 1; scale: 1; transform: translateY(0); }
}

.lw-villa-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.lw-villa-card__link {
	display: block;
	text-decoration: none;
	color: inherit;
}

.lw-villa-card__img {
	position: relative;
	aspect-ratio: 3 / 2;
	overflow: hidden;
}

.lw-villa-card__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s;
}

.lw-villa-card:hover .lw-villa-card__img img {
	transform: scale(1.05);
}

.lw-villa-card__price {
	position: absolute;
	top: 12px;
	left: 12px;
	background: rgba(0, 0, 0, 0.7);
	color: var(--lw-white);
	font-size: 12px;
	font-weight: 600;
	padding: 6px 12px;
	border-radius: var(--lw-radius-sm);
	backdrop-filter: blur(4px);
}

.lw-villa-card__body {
	padding: 20px 24px 24px;
}

.lw-villa-card__title {
	font-family: var(--lw-font-heading);
	font-size: 1.4rem;
	font-weight: 400;
	color: var(--lw-navy);
	margin: 0 0 8px;
	display: flex;
	align-items: center;
	gap: 10px;
}

.lw-villa-card__badge {
	font-family: var(--lw-font-body);
	font-size: 0.72rem;
	font-weight: 600;
	color: var(--lw-badge-text);
	background: var(--lw-gold);
	padding: 3px 10px;
	border-radius: 20px;
	letter-spacing: 0.02em;
	white-space: nowrap;
}

.lw-villa-card__rating {
	display: flex;
	align-items: center;
	gap: 4px;
	font-size: 14px;
	color: var(--lw-navy);
	margin-bottom: 12px;
}

.lw-villa-card__star {
	color: var(--lw-gold);
}

.lw-villa-card__reviews {
	color: var(--lw-text-muted);
	font-size: 13px;
}

.lw-villa-card__specs {
	list-style: none;
	margin: 0 0 12px;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px 16px;
	font-size: 13px;
	color: var(--lw-text-muted);
}

.lw-villa-card__specs li::before {
	content: "·";
	margin-right: 6px;
	color: var(--lw-gold-muted);
}

.lw-villa-card__specs li:first-child::before {
	content: none;
}

.lw-villa-card__excerpt {
	font-size: 14px;
	color: var(--lw-text-secondary);
	line-height: 1.6;
	margin: 0 0 16px;
}

.lw-villa-card__cta {
	font-size: 13px;
	font-weight: 600;
	color: var(--lw-navy);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

@media (max-width: 768px) {
	.lw-villas-grid {
		grid-template-columns: 1fr;
	}
}

/* --------------------------------------------------------------------------
   body.lw-page overrides for white-background components
   body.lw-page sets headings white + links gold, which bleeds into cards/sections
   that have their own white/light backgrounds. These rules restore dark text.
   -------------------------------------------------------------------------- */
body.lw-page .lw-villa-card__link {
	color: var(--lw-navy);
}
body.lw-page .lw-villa-card__title,
body.lw-page .lw-villa-card__rating {
	color: var(--lw-navy);
}
body.lw-page .lw-villa-card__cta {
	color: var(--lw-navy);
}
body.lw-page .lw-blog-card__link {
	color: var(--lw-navy);
}
body.lw-page .lw-blog-card__title {
	color: var(--lw-navy);
}
body.lw-page .lw-blog-card__read-more {
	color: var(--lw-navy);
}

/* Cards on navy bg pages — translucent instead of white */
.lw-blog-grid .lw-blog-card {
	background: var(--lw-card-bg);
	border: 1px solid var(--lw-card-border);
	box-shadow: none;
}
.lw-blog-grid .lw-blog-card:hover {
	background: var(--lw-card-bg-hover);
	box-shadow: var(--lw-card-shadow);
}
/* Blog cards on navy — must use body.lw-page prefix to beat earlier overrides */
body.lw-page .lw-blog-grid .lw-blog-card__link {
	color: inherit;
}
body.lw-page .lw-blog-grid .lw-blog-card__title {
	color: var(--lw-white);
}
body.lw-page .lw-blog-grid .lw-blog-card__date {
	color: var(--lw-gold-muted);
}
body.lw-page .lw-blog-grid .lw-blog-card__excerpt {
	color: var(--lw-white-60);
}
body.lw-page .lw-blog-grid .lw-blog-card__read-more {
	color: var(--lw-gold-muted);
}
/* Villas listing page — same treatment */
.lw-villas-grid .lw-villa-card {
	background: var(--lw-card-bg);
	border: 1px solid var(--lw-card-border);
	box-shadow: none;
}
.lw-villas-grid .lw-villa-card:hover {
	background: var(--lw-card-bg-hover);
	box-shadow: var(--lw-card-shadow);
}
body.lw-page .lw-villas-grid .lw-villa-card__link {
	color: inherit;
}
body.lw-page .lw-villas-grid .lw-villa-card__title {
	color: var(--lw-white);
}
body.lw-page .lw-villas-grid .lw-villa-card__badge {
	color: var(--lw-gold-a11y-dark);
	background: none;
	border: none;
	padding: 0;
}
body.lw-page .lw-villas-grid .lw-villa-card__rating {
	color: var(--lw-white);
}
body.lw-page .lw-villas-grid .lw-villa-card__reviews {
	color: var(--lw-white-70);
}
body.lw-page .lw-villas-grid .lw-villa-card__specs {
	color: var(--lw-white-70);
}
body.lw-page .lw-villas-grid .lw-villa-card__excerpt {
	color: var(--lw-white-70);
}
body.lw-page .lw-villas-grid .lw-villa-card__cta {
	color: var(--lw-gold-a11y-dark);
}

/* Villa filter bar */
.lw-villas-filters {
	padding: 0 0 8px;
}
.lw-villas-filter {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	justify-content: center;
}
.lw-villas-filter__btn {
	padding: 8px 20px;
	border: 1px solid var(--lw-white-30);
	border-radius: 999px;
	background: transparent;
	color: var(--lw-white-70);
	font-family: var(--lw-font-body);
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.2s;
}
.lw-villas-filter__btn:hover {
	border-color: var(--lw-gold);
	color: var(--lw-gold);
}
.lw-villas-filter__btn.is-active {
	background: var(--lw-gold);
	color: var(--lw-navy-dark);
	border-color: var(--lw-gold);
	font-weight: 700;
}

/* Section titles */
.lw-section-title {
	font-family: var(--lw-font-heading);
	font-size: clamp(1.5rem, 4vw, 2.2rem);
	font-weight: 400;
	color: var(--lw-white);
	text-align: center;
	margin: 0 0 12px;
}
.lw-section-desc {
	text-align: center;
	color: var(--lw-white-60);
	font-size: 14px;
	margin: 0 0 32px;
}

/* Comparison table */
.lw-villas-compare-section {
	padding: 60px 0;
	border-top: 1px solid var(--lw-white-10);
}
.lw-villas-compare-wrap {
	overflow-x: visible;
}
@media (max-width: 768px) {
	.lw-villas-compare-wrap {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
	.lw-villas-compare thead th {
		position: static;
	}
}
.lw-villas-compare {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	font-size: 14px;
	min-width: 600px;
}
.lw-villas-compare thead th {
	position: sticky;
	top: var(--lw-header-height-sticky, 60px);
	z-index: 10;
}
.lw-villas-compare th {
	font-family: var(--lw-font-heading);
	font-size: 1.1rem;
	font-weight: 400;
	color: var(--lw-gold);
	padding: 12px 16px;
	text-align: center;
	border-bottom: 2px solid var(--lw-white-15);
	background: var(--lw-section-bg-alt, var(--lw-navy));
}
.lw-villas-compare th a {
	color: var(--lw-gold);
	text-decoration: none;
}
.lw-villas-compare th a:hover {
	text-decoration: underline;
}
.lw-villas-compare td {
	padding: 10px 16px;
	text-align: center;
	color: var(--lw-white-80);
	border-bottom: 1px solid var(--lw-white-08);
}
.lw-villas-compare__label {
	text-align: left !important;
	font-weight: 600;
	color: var(--lw-white);
	white-space: nowrap;
}
.lw-villas-compare__cta-row td {
	padding-top: 16px;
	border-bottom: none;
}
.lw-villas-compare__cta {
	display: inline-block;
	padding: 10px 24px;
	background: var(--lw-gold);
	color: var(--lw-navy-dark) !important;
	border-radius: 6px;
	font-weight: 700;
	font-size: 13px;
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}
.lw-villas-compare__cta:hover {
	filter: brightness(0.9);
}

/* Availability calendars */
.lw-villas-calendars-section {
	padding: 60px 0;
	border-top: 1px solid var(--lw-white-10);
}

/* Green/red availability on villas page — background based */
.lw-villas-calendar .mphb-datepick .mphb-date-cell {
	border-radius: 4px;
}

/* Available: green background */
.lw-villas-calendar .mphb-datepick .mphb-available-date:not(.mphb-booked-date):not(.mphb-past-date),
.lw-villas-calendar .mphb-datepick a.mphb-available-date:not(.mphb-booked-date):not(.mphb-past-date),
.lw-villas-calendar .mphb-datepick span.mphb-available-date:not(.mphb-booked-date):not(.mphb-past-date) {
	background: var(--lw-cal-avail-bg, rgba(76, 175, 80, 0.25)) !important;
	color: var(--lw-cal-avail-text, #81c784) !important;
	font-weight: 700;
	border-radius: 4px;
}

/* Booked: red background */
.lw-villas-calendar .mphb-datepick .mphb-booked-date:not(.mphb-available-date),
.lw-villas-calendar .mphb-datepick span.mphb-booked-date:not(.mphb-available-date),
.lw-villas-calendar .mphb-datepick a.mphb-booked-date:not(.mphb-available-date) {
	background: var(--lw-cal-booked-bg, rgba(239, 83, 80, 0.25)) !important;
	color: var(--lw-cal-booked-text, #ef9a9a) !important;
	border-radius: 4px;
}


/* ---- Light theme: calendar ---- */
body[data-pp-theme="light"] .datepick,
body[data-pp-theme="light"] .mphb-datepick { background: #fff !important; color: #333 !important; border-color: #c9c3b8 !important; border-radius: 10px; }
/* Hero datepick inputs stay dark/transparent — hero keeps dark bg */
body[data-pp-theme="light"] .lw-home-hero__search .mphb-datepick { background: transparent !important; color: #fff !important; border-color: rgba(255,255,255,0.3) !important; border-radius: 10px; }
body[data-pp-theme="light"] .datepick-nav { background: #f0ede8 !important; color: #1e3750 !important; border-color: #ddd8d0 !important; }
body[data-pp-theme="light"] .datepick-month-header { color: #1e3750 !important; background: #f0ede8 !important; }
body[data-pp-theme="light"] .datepick-month-year { color: #1e3750 !important; background: #fff !important; border-color: #c9c3b8 !important; }
body[data-pp-theme="light"] .datepick-cmd { color: #1e3750 !important; }
body[data-pp-theme="light"] .datepick th { color: #555 !important; }
body[data-pp-theme="light"] .datepick td,
body[data-pp-theme="light"] .datepick td a,
body[data-pp-theme="light"] .datepick td span { color: #333 !important; }
body[data-pp-theme="light"] .datepick-month { border-color: #ddd8d0 !important; }
body[data-pp-theme="light"] .lw-villas-calendar .mphb-datepick select { background: #fff; color: #1e3750; border-color: #c9c3b8; }
body[data-pp-theme="light"] .lw-villas-calendar .mphb-datepick select option { background: #fff; color: #1e3750; }
body[data-pp-theme="light"] .mphb-available-date:not(.mphb-booked-date):not(.mphb-past-date) { background: rgba(76,175,80,0.15) !important; color: #2e7d32 !important; }
body[data-pp-theme="light"] .mphb-booked-date:not(.mphb-available-date) { background: rgba(239,83,80,0.15) !important; color: #c62828 !important; }
body[data-pp-theme="light"] .mphb-past-date { color: #aaa !important; }
body[data-pp-theme="light"] .datepick select { background: #fff !important; color: #1e3750 !important; border: 1px solid #c9c3b8 !important; }
body[data-pp-theme="light"] .datepick select option { background: #fff !important; color: #1e3750 !important; }
body[data-pp-theme="light"] .datepick select option:checked { background: #f0ede8 !important; }
body[data-pp-theme="light"] .datepick-cmd:hover { background: #f0ede8 !important; color: #1e3750 !important; }
body[data-pp-theme="light"] .datepick td a:hover,
body[data-pp-theme="light"] .datepick td span:hover { background: #f0ede8 !important; }
body[data-pp-theme="light"] .datepick-cmd[title] { color: #1e3750 !important; }
body[data-pp-theme="light"] [class*="datepick"] [title] { color: #1e3750 !important; background: #f0ede8 !important; }
body[data-pp-theme="light"] .datepick .datepick-month-row { background: #fff !important; }
body[data-pp-theme="light"] .datepick .datepick-today { background: #e8e4dd !important; }

/* ---- Light theme: villa hero/title sections ---- */
body[data-pp-theme="light"] .lw-default-hero,
body[data-pp-theme="light"] .lw-blog-hero,
body[data-pp-theme="light"] .lw-contact-hero,
body[data-pp-theme="light"] .lw-villas-hero { background: #f0ede8 !important; }
body[data-pp-theme="light"] .lw-default-hero__title,
body[data-pp-theme="light"] .lw-blog-hero__title,
body[data-pp-theme="light"] .lw-contact-hero__title,
body[data-pp-theme="light"] .lw-villas-hero__title { color: #1e3750 !important; }
body[data-pp-theme="light"] .lw-default-hero__subtitle,
body[data-pp-theme="light"] .lw-blog-hero__subtitle,
body[data-pp-theme="light"] .lw-contact-hero__subtitle,
body[data-pp-theme="light"] .lw-villas-hero__subtitle { color: #6b5a42 !important; }
body[data-pp-theme="light"] .lw-default-hero__desc,
body[data-pp-theme="light"] .lw-blog-hero__desc,
body[data-pp-theme="light"] .lw-contact-hero__desc,
body[data-pp-theme="light"] .lw-villas-hero__desc { color: #555 !important; }
/* Villas hero: hide the dark oblique background panels */
body[data-pp-theme="light"] .cs-villas-hero-bg { display: none !important; }
/* Price badge: white bg with dark text in light mode */
body[data-pp-theme="light"] .lw-villa-card__price {
	background: rgba(255, 255, 255, 0.85) !important;
	color: #1e3750 !important;
	backdrop-filter: blur(8px);
}
/* Gallery labels: on dark photo overlays, keep white */
body[data-pp-theme="light"] .lw-home-gallery__label { color: #fff !important; }

/* Nav links: bolder + darker in light mode (solid header only) */
body[data-pp-theme="light"] .lw-header--solid .lw-nav__link { color: #1e3750 !important; font-weight: 600 !important; }
body[data-pp-theme="light"] .lw-header--solid .lw-nav__link:hover { color: #6b5a42 !important; }
body[data-pp-theme="light"] .lw-header--solid .lw-nav__chevron { color: #1e3750 !important; }
/* Transparent header over hero: keep white nav in light mode */
body[data-pp-theme="light"] .lw-header:not(.lw-header--solid) .lw-nav__link { color: #fff !important; }
body[data-pp-theme="light"] .lw-header:not(.lw-header--solid) .lw-nav__link:hover { color: #c4a680 !important; }
body[data-pp-theme="light"] .lw-header:not(.lw-header--solid) .lw-nav__chevron { color: rgba(255,255,255,0.7) !important; }
/* Dropdown links */
body[data-pp-theme="light"] .lw-dropdown__link { color: #333 !important; font-weight: 500 !important; }
body[data-pp-theme="light"] .lw-dropdown__link:hover { color: #1e3750 !important; background: #f0ede8 !important; }

/* Fix accessibility: past dates contrast (WCAG AA 4.5:1) */
.lw-villas-calendar .mphb-datepick .mphb-past-date,
.lw-villas-calendar .mphb-datepick span.mphb-past-date,
.lw-villas-calendar .mphb-datepick a.mphb-past-date {
	color: var(--lw-cal-past, #9aa8b8) !important;
}

/* Fix accessibility: datepick nav links contrast + touch target */
.lw-villas-calendar .mphb-datepick .datepick-cmd {
	color: var(--lw-cal-nav, var(--lw-white-80)) !important;
	min-height: 44px;
	min-width: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.lw-villas-calendar .mphb-datepick .datepick-cmd-prev.datepick-disabled {
	color: var(--lw-cal-past, #9aa8b8) !important;
}
.lw-villas-calendar .mphb-datepick .datepick-nav {
	color: var(--lw-cal-nav, var(--lw-white-80)) !important;
}

/* Datepicker nav/select dark styling */
.lw-villas-calendar .mphb-datepick select {
	background: var(--lw-navy-dark);
	color: var(--lw-white);
	border: 1px solid var(--lw-white-30);
	border-radius: 4px;
	padding: 2px 4px;
	font-family: var(--lw-font-body);
}
.lw-villas-calendar .mphb-datepick select option {
	background: var(--lw-navy-dark);
	color: var(--lw-white);
}
.lw-villas-calendars {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 32px;
}
.lw-villas-calendar h3 {
	font-family: var(--lw-font-heading);
	font-size: 1.2rem;
	color: var(--lw-white);
	margin: 0 0 12px;
	text-align: center;
	width: 100%;
}

/* CTA section */
.lw-villas-cta-section {
	border-top: 1px solid var(--lw-white-10);
}

@media (max-width: 768px) {
	.lw-villas-filter {
		gap: 6px;
	}
	.lw-villas-filter__btn {
		font-size: 12px;
		padding: 6px 14px;
	}
	.lw-villas-calendars {
		grid-template-columns: 1fr;
	}
	.lw-villas-compare-section {
		padding: 40px 0;
	}
	.lw-villas-calendars-section {
		padding: 40px 0;
	}
}

/* All homepage sections are now dark — headings white */
body.lw-page .lw-home-section-heading {
	color: var(--lw-section-heading);
}
body.lw-page .lw-home-welcome__heading {
	color: var(--lw-section-heading);
}
body.lw-page .lw-home-stat__number {
	color: var(--lw-section-heading);
}
body.lw-page a.lw-home-btn-primary {
	color: var(--lw-navy-dark);
}
body.lw-page a.lw-home-btn-primary:hover {
	/* Literal #fff — light-mode JS remaps var(--lw-white) to navy. */
	color: #fff;
}

/* Light mode: keep hover on gold tint (not navy). The early light-mode JS
 * remaps --lw-gold-light to navy globally for "switch to navy bg" effects,
 * which is wrong for THIS button — we want a slight gold variation. */
body[data-pp-theme="light"] .lw-home-btn-primary {
	background: #6b5a42 !important;
}
body[data-pp-theme="light"] .lw-home-btn-primary:hover {
	background: #836f53 !important;
	color: #fff !important;
}
body.lw-page .lw-home-btn-outline {
	color: var(--lw-white);
	border-color: var(--lw-section-border);
}
body.lw-page .lw-home-btn-outline:hover {
	background: var(--lw-white-10);
	border-color: var(--lw-white);
}
body.lw-page .evd-gr-readmore {
	color: var(--lw-section-muted);
}
body.lw-page .evd-gr-readmore:hover {
	color: var(--lw-section-heading);
}

/* CozyStay layout classes — needed for search results + MPHB pages */
.lw-page .container,
.lw-page .search-rooms-wrapper {
	max-width: var(--lw-container-max);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--lw-container-pad);
	padding-right: var(--lw-container-pad);
}

.lw-page .main {
	min-height: 50vh;
}

/* ==========================================================================
   SEARCH RESULTS — constrain + style for lightweight pages
   ========================================================================== */

/* Search page background: inherits from body (navy on .lw-page) */
.lw-page #cs-search-page {
	background: transparent;
}

/* Search header text */
.lw-page .cs-search-header__title {
	color: var(--lw-text-dark);
	font-weight: 600;
}

.lw-page .cs-search-header__badge {
	color: var(--lw-text-secondary);
}

.lw-page .cs-search-header,
.lw-page .cs-split-stay,
.lw-page .cs-empty-state,
.lw-page .cs-split-layout,
.lw-page .mphb_sc_search_results-wrapper,
.lw-page .cs-multi-villa,
.lw-page #cs-search-page > .main {
	max-width: var(--lw-container-max);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--lw-container-pad);
	padding-right: var(--lw-container-pad);
}

/* ==========================================================================
   HOMEPAGE
   ========================================================================== */

/* --------------------------------------------------------------------------
   Shared section header
   -------------------------------------------------------------------------- */
.lw-home-section-header {
	text-align: center;
	margin-bottom: 48px;
}

.lw-home-section-eyebrow {
	font-family: var(--lw-font-body);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	color: var(--lw-gold-a11y-dark);
	margin: 0 0 10px;
}

/* Dark eyebrow for light-background sections (WCAG AA on white/beige) */
.lw-home-welcome .lw-home-section-eyebrow {
	color: var(--lw-gold-wcag);
}

.lw-home-section-eyebrow--gold {
	color: var(--lw-gold);
}

.lw-home-section-heading {
	font-family: var(--lw-font-heading);
	font-size: clamp(1.8rem, 4vw, 2.8rem);
	font-weight: 400;
	color: var(--lw-navy);
	margin: 0 0 12px;
}

/* On dark backgrounds, headings must be white */
.lw-home-section-heading--light,
.lw-home-services .lw-home-section-heading,
.lw-home-reviews .lw-home-section-heading,
.lw-home-gallery .lw-home-section-heading {
	color: var(--lw-white);
}

.lw-home-section-badge {
	font-family: var(--lw-font-heading);
	font-size: inherit;
	font-weight: 400;
	color: var(--lw-gold);
	vertical-align: baseline;
}

.lw-home-section-desc {
	font-size: 16px;
	color: var(--lw-text-muted);
	margin: 0;
	max-width: 600px;
	margin-left: auto;
	margin-right: auto;
}

.lw-home-section-desc--light {
	color: var(--lw-white-60);
}

/* Shared CTA buttons */
.lw-home-btn-primary {
	display: inline-block;
	padding: 14px 36px;
	background: var(--lw-gold);
	color: var(--lw-white);
	font-family: var(--lw-font-body);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
	border-radius: var(--lw-radius-sm);
	transition: background var(--lw-transition), color var(--lw-transition),
	            box-shadow var(--lw-transition), transform var(--lw-transition);
}

.lw-home-btn-primary:hover {
	background: var(--lw-gold-light);
	color: #fff;
	box-shadow: 0 6px 20px rgba(107, 90, 66, 0.25);
	transform: translateY(-2px);
}

.lw-home-btn-outline {
	display: inline-block;
	padding: 12px 28px;
	color: var(--lw-white);
	font-family: var(--lw-font-body);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-decoration: none;
	border: 2px solid var(--lw-navy);
	border-radius: var(--lw-radius-sm);
	transition: background var(--lw-transition), color var(--lw-transition),
	            border-color var(--lw-transition);
}

.lw-home-btn-outline:hover {
	background: var(--lw-navy);
	color: var(--lw-white);
}

/* --------------------------------------------------------------------------
   Section 1: Hero
   -------------------------------------------------------------------------- */

/* Keyframes — 4 slides, each visible 25% of a 20s cycle */
@keyframes lw-slide-1 {
	0%       { opacity: 1; }
	20%      { opacity: 1; }
	25%      { opacity: 0; }
	95%      { opacity: 0; }
	100%     { opacity: 1; }
}
@keyframes lw-slide-2 {
	0%       { opacity: 0; }
	20%      { opacity: 0; }
	25%      { opacity: 1; }
	45%      { opacity: 1; }
	50%      { opacity: 0; }
	100%     { opacity: 0; }
}
@keyframes lw-slide-3 {
	0%       { opacity: 0; }
	45%      { opacity: 0; }
	50%      { opacity: 1; }
	70%      { opacity: 1; }
	75%      { opacity: 0; }
	100%     { opacity: 0; }
}
@keyframes lw-slide-4 {
	0%       { opacity: 0; }
	70%      { opacity: 0; }
	75%      { opacity: 1; }
	95%      { opacity: 1; }
	100%     { opacity: 0; }
}

/* Global MPHB button styles.
   Must match specificity of style.min.css rule:
   body .mphb_sc_search_results-wrapper .cs-room-item .mphb-book-button */
body .mphb_sc_search_results-wrapper .cs-room-item .mphb-book-button,
body .mphb-reserve-room-section .mphb-book-button,
button.mphb-button.mphb-book-button,
.mphb-book-button,
.mphb-confirm-reservation,
.mphb-reserve-btn {
	display: inline-block !important;
	padding: 14px 40px !important;
	background: var(--lw-gold) !important;
	color: var(--lw-navy) !important;
	border: none !important;
	border-radius: 8px !important;
	font-family: var(--lw-font-body) !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none !important;
	cursor: pointer;
	transition: background 0.2s, transform 0.15s;
}

body .mphb_sc_search_results-wrapper .cs-room-item .mphb-book-button:hover,
.mphb-book-button:hover,
.mphb-reserve-btn:hover {
	background: var(--lw-gold-hover) !important;
	transform: translateY(-1px);
}

/* Hide stray parent theme slider arrows — but NOT Google Reviews carousel */
.lw-page .flex-direction-nav,
.lw-page .cs-slider-arrow {
	display: none !important;
}

.lw-home-hero {
	position: relative;
	height: 100vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: stretch;
	gap: 32px;
	overflow: hidden;
	color: var(--lw-white);
}

/* Admin bar offset */
.admin-bar .lw-home-hero {
	min-height: calc(100vh - 32px);
}

@media screen and (max-width: 782px) {
	.admin-bar .lw-home-hero {
		min-height: calc(100vh - 46px);
	}
}

/* Slideshow layers */
.lw-home-hero__slides {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.lw-home-hero__slide {
	position: absolute;
	inset: 0;
	overflow: hidden;
	opacity: 0;
	transition: opacity 1.5s ease;
}

.lw-home-hero__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.lw-home-hero__slide--1 {
	opacity: 1;
	animation: lw-slide-1 20s ease infinite;
}
.lw-home-hero__slide--2 {
	animation: lw-slide-2 20s ease infinite;
}
.lw-home-hero__slide--3 {
	animation: lw-slide-3 20s ease infinite;
}
.lw-home-hero__slide--4 {
	animation: lw-slide-4 20s ease infinite;
}

/* Dark overlay */
.lw-home-hero__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: rgba(0, 0, 0, 0.42);
}

/* Centered content — flex:1 fills space between header and search */
.lw-home-hero__content {
	position: relative;
	z-index: 2;
	flex: 0 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	padding: 0 24px;
}

.lw-home-hero__eyebrow {
	font-family: var(--lw-font-body);
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: var(--lw-gold);
	margin: 0 0 20px;
}

.lw-home-hero__title {
	font-family: var(--lw-font-heading);
	font-size: clamp(1.8rem, 4.5vw, 3.4rem);
	font-weight: 400;
	line-height: 1.2;
	color: var(--lw-white);
	max-width: 860px;
	margin: 0 0 24px;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.4);
}

.lw-home-hero__subtitle {
	font-family: var(--lw-font-body);
	font-size: clamp(1rem, 2vw, 1.2rem);
	color: var(--lw-white-80);
	letter-spacing: 0.04em;
	margin: 0;
}

/* Search form — no extra padding, gap handles spacing */
.lw-home-hero__search {
	position: relative;
	z-index: 2;
	flex: 0 0 auto;
	padding: 0;
	min-height: 90px; /* Reserve space to prevent CLS when datepicker JS initializes */
	contain: layout style; /* Prevent internal layout changes from shifting outer content */
}

/* Pre-apply datepicker input styles (MPHB JS adds .is-datepick class, causing CLS).
   Match the exact dimensions the inputs will have after JS initializes. */
.lw-home-hero__search input.mphb-datepick {
	padding: 10px 14px !important;
	border: 1px solid var(--lw-white-30) !important;
	font-size: 14px !important;
	line-height: 1.4 !important;
	box-sizing: border-box !important;
}

/* Prevent non-composited animations on form inputs (PSI flags border/padding transitions) */
.lw-home-hero__search input,
.lw-home-hero__search button,
.lw-home-hero__search .mphb-stepper__btn {
	transition: none !important;
}

/* ═══════════════════════════════════════════════════════════════════
   Hero Search Bar — Premium glassmorphism, Airbnb-inspired
   4 columns: Check-in | Check-out | Travelers | Search
   ═══════════════════════════════════════════════════════════════════ */

/* Glass container */
.lw-home-hero__search .mphb_sc_search-form,
.lw-home-hero__search .mphb_sc_search-wrap {
	background: var(--lw-white-08);
	backdrop-filter: blur(20px) saturate(1.2);
	-webkit-backdrop-filter: blur(20px) saturate(1.2);
	border: 1px solid var(--lw-white-18);
	border-radius: 16px;
	padding: 0;
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	max-width: 820px;
	margin: 0 auto;
	overflow: hidden;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

/* Each field group — equal flex, vertical dividers */
.lw-home-hero__search .mphb_sc_search-form > .cs-daterange,
.lw-home-hero__search .mphb_sc_search-form > p,
.lw-home-hero__search .mphb_sc_search-form > .mphb_sc_search-adults {
	margin: 0 !important;
	padding: 14px 20px;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	gap: 6px;
	position: relative;
	transition: background 0.2s ease;
}

/* Hover highlight per field */
.lw-home-hero__search .mphb_sc_search-form > .cs-daterange:hover,
.lw-home-hero__search .mphb_sc_search-form > p:not(.mphb_sc_search-submit-button-wrapper):hover,
.lw-home-hero__search .mphb_sc_search-form > .mphb_sc_search-adults:hover {
	background: var(--lw-white-08);
}

/* Vertical dividers between fields */
.lw-home-hero__search .mphb_sc_search-form > .cs-daterange::after,
.lw-home-hero__search .mphb_sc_search-form > .mphb_sc_search-adults::after {
	content: "";
	position: absolute;
	right: 0;
	top: 25%;
	height: 50%;
	width: 1px;
	background: var(--lw-white-20);
}

/* Date range: 2 columns inside */
.lw-home-hero__search .mphb_sc_search-form > .cs-daterange {
	flex-direction: row;
	gap: 0;
	flex: 2 1 0%;
}
.lw-home-hero__search .mphb_sc_search-form > .cs-daterange > p {
	margin: 0 !important;
	flex: 1 1 0%;
	padding: 0 16px;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	gap: 6px;
	position: relative;
}
/* Divider between check-in and check-out */
.lw-home-hero__search .mphb_sc_search-form > .cs-daterange > p:first-child::after {
	content: "";
	position: absolute;
	right: 0;
	top: 20%;
	height: 60%;
	width: 1px;
	background: var(--lw-white-15);
}

/* Travelers column — center the stepper horizontally */
.lw-home-hero__search .mphb_sc_search-form > .mphb_sc_search-adults {
	flex: 1 1 0%;
	align-items: flex-start;
}
.lw-home-hero__search .mphb_sc_search-form > .mphb_sc_search-adults .mphb-stepper {
	align-self: center;
}

/* Labels */
.lw-home-hero__search .mphb_sc_search-form label {
	color: var(--lw-white-70);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	line-height: 1;
	margin: 0;
}

/* Inputs — fixed height for alignment with stepper */
.lw-home-hero__search .mphb_sc_search-form input[type="text"],
.lw-home-hero__search .mphb_sc_search-form select {
	background: transparent;
	border: none;
	color: var(--lw-white);
	padding: 0;
	height: 32px;
	line-height: 32px;
	font-size: 15px;
	font-weight: 500;
	outline: none;
	width: 100%;
}
.lw-home-hero__search .mphb_sc_search-form input[type="text"]:focus {
	outline: none;
	box-shadow: none;
}
.lw-home-hero__search .mphb_sc_search-form input[type="text"]::placeholder {
	color: var(--lw-white-45);
	font-weight: 400;
}

/* Search button — gold pill, vertically centered */
.lw-home-hero__search .mphb_sc_search-submit-button-wrapper {
	margin: 0 !important;
	padding: 8px 10px;
	flex: 0 0 auto;
	display: flex;
	align-items: stretch;
}
.lw-home-hero__search .mphb_sc_search-submit-button-wrapper .cs-search-btn,
.lw-home-hero__search .mphb_sc_search-submit-button-wrapper button[type="submit"],
.lw-home-hero__search .mphb_sc_search-submit-button-wrapper input[type="submit"] {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 14px 28px;
	border-radius: 12px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	transition: background 0.25s ease, transform 0.15s ease, box-shadow 0.25s ease;
	cursor: pointer;
}
.lw-home-hero__search .mphb_sc_search-submit-button-wrapper .cs-search-btn:hover,
.lw-home-hero__search .mphb_sc_search-submit-button-wrapper button[type="submit"]:hover {
	transform: scale(1.03);
	box-shadow: 0 4px 16px rgba(185, 157, 117, 0.4);
}

/* Hide "required fields" tip */
.lw-home-hero__search .mphb-required-fields-tip {
	display: none !important;
}

/* Datepicker themed via evd/assets/css/datepick-themes/mphb-datepicker-evd.css (loaded after MPHB base) */
.datepick-popup {
	z-index: 9999 !important;
}

/* Stepper buttons: force perfect circles */
.lw-home-hero__search .mphb-stepper__btn {
	width: 32px !important;
	height: 32px !important;
	min-width: 32px;
	min-height: 32px;
	border-radius: 8px !important;
	padding: 0 !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	border: 1.5px solid var(--lw-white-40) !important;
	background: transparent !important;
	color: var(--lw-white) !important;
	font-size: 18px;
	line-height: 1;
}

/* Stepper value — spacing between +/- buttons */
.lw-home-hero__search .mphb-stepper__value {
	min-width: 28px;
	text-align: center;
	margin: 0 8px;
}

/* Search button — large, gold, prominent */
.lw-home-hero__search .mphb_sc_search-form input[type="submit"],
.lw-home-hero__search .mphb_sc_search-form button[type="submit"],
.lw-home-hero__search .mphb_sc_search-form .mphb-search-button,
.lw-home-hero__search .cs-search-btn {
	background: var(--lw-gold) !important;
	color: var(--lw-navy) !important;
	border: none !important;
	font-family: var(--lw-font-body);
	font-weight: 700;
	font-size: 15px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 16px 40px !important;
	border-radius: var(--lw-radius-sm);
	cursor: pointer;
	transition: background var(--lw-transition), transform 0.15s;
	min-height: 52px;
}

.lw-home-hero__search .mphb_sc_search-form input[type="submit"]:hover,
.lw-home-hero__search .mphb_sc_search-form button[type="submit"]:hover,
.lw-home-hero__search .mphb_sc_search-form .mphb-search-button:hover,
.lw-home-hero__search .cs-search-btn:hover {
	background: var(--lw-gold-light) !important;
	transform: translateY(-1px);
}

/* --------------------------------------------------------------------------
   Section 2: Welcome
   -------------------------------------------------------------------------- */
.lw-home-welcome {
	background: var(--lw-section-bg-alt);
	padding: 80px 0;
}

.lw-home-welcome__grid {
	display: grid;
	grid-template-columns: 3fr 2fr;
	gap: 64px;
	align-items: start;
}

.lw-home-welcome__heading {
	font-family: var(--lw-font-heading);
	font-size: clamp(1.6rem, 3vw, 2.4rem);
	font-weight: 400;
	color: var(--lw-section-heading);
	margin: 0 0 20px;
	line-height: 1.25;
}

.lw-home-welcome__body {
	font-size: 16px;
	line-height: 1.75;
	color: var(--lw-section-text);
	margin: 0 0 18px;
}

.lw-home-welcome__text .lw-home-btn-outline {
	margin-top: 8px;
	color: var(--lw-section-heading);
	border-color: var(--lw-section-border);
}
.lw-home-welcome__text .lw-home-btn-outline:hover {
	background: var(--lw-white-10);
	color: var(--lw-white);
}

/* Stats box */
.lw-home-welcome__stats {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	padding: 32px;
	background: var(--lw-card-bg);
	border: 1px solid var(--lw-card-border);
	border-radius: var(--lw-radius-md);
	box-shadow: none;
	border-top: 4px solid var(--lw-gold);
}

.lw-home-stat {
	text-align: center;
	padding: 12px 8px;
}

.lw-home-stat__number {
	display: block;
	font-family: var(--lw-font-heading);
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 400;
	color: var(--lw-section-heading);
	line-height: 1;
	margin-bottom: 6px;
}

.lw-home-stat__label {
	display: block;
	font-family: var(--lw-font-body);
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--lw-section-muted);
}

/* --------------------------------------------------------------------------
   Section 3: Villa cards
   -------------------------------------------------------------------------- */
.lw-home-villas {
	padding: 80px 0;
	background: var(--lw-section-bg-alt);
}

.lw-home-villas__cta {
	text-align: center;
	margin-top: 48px;
}

/* --------------------------------------------------------------------------
   Section 4: Services
   -------------------------------------------------------------------------- */
.lw-home-services {
	background: var(--lw-section-bg);
	padding: 80px 0;
}

/* Service blocks — 3 category groups */
.lw-home-services__blocks {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

.lw-home-svc-block {
	background: var(--lw-white-08);
	border: 1px solid var(--lw-white-15);
	border-radius: var(--lw-radius-md);
	padding: 32px 24px;
	transition: border-color var(--lw-transition);
}
.lw-home-svc-block:hover {
	border-color: var(--lw-gold-15);
}

.lw-home-svc-block__header {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 24px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--lw-white-10);
}

.lw-home-svc-block__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	background: var(--lw-gold-15);
	border-radius: 50%;
	color: var(--lw-gold);
	flex-shrink: 0;
}

.lw-home-svc-block__title {
	font-family: var(--lw-font-heading);
	font-size: 1.15rem;
	font-weight: 400;
	color: var(--lw-white);
	margin: 0;
}

.lw-home-svc-block__items {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.lw-home-svc-item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}

.lw-home-svc-item__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	background: var(--lw-white-08);
	border-radius: 8px;
	color: var(--lw-gold);
	flex-shrink: 0;
	margin-top: 2px;
}

.lw-home-svc-item__title {
	font-family: var(--lw-font-body);
	font-size: 14px;
	font-weight: 700;
	color: var(--lw-white);
	margin: 0 0 4px;
}

.lw-home-svc-item__desc {
	font-family: var(--lw-font-body);
	font-size: 13px;
	line-height: 1.5;
	color: var(--lw-white-60);
	margin: 0;
}

/* --------------------------------------------------------------------------
   Section 5: Guest reviews
   -------------------------------------------------------------------------- */
.lw-home-reviews {
	background: var(--lw-section-bg-alt);
	padding: 80px 0;
}

.lw-home-reviews__carousel-wrap {
	position: relative;
	padding-top: 60px;
}

.lw-home-reviews__arrow {
	position: absolute;
	top: 0;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: transparent;
	border: 1.5px solid var(--lw-white-30);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
	color: var(--lw-white-80);
	font-size: 22px;
	line-height: 1;
	transition: border-color 0.2s, color 0.2s, transform 0.15s;
}

.lw-home-reviews__arrow:hover {
	border-color: var(--lw-white);
	color: var(--lw-white);
	transform: scale(1.08);
}

.lw-home-reviews__arrow--prev { right: 56px; }
.lw-home-reviews__arrow--next { right: 0; }

.lw-home-reviews__grid {
	display: flex;
	gap: 24px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.lw-home-reviews__grid::-webkit-scrollbar {
	display: none;
}

.lw-home-review-card {
	scroll-snap-align: start;
	flex: 0 0 calc((100% - 48px) / 3);
	min-width: 280px;
	background: var(--lw-white-10);
	border: 1px solid var(--lw-white-15);
	border-radius: var(--lw-radius-md);
	padding: 24px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.lw-home-review-card__stars {
	display: flex;
	gap: 3px;
}

.lw-home-review-card__star {
	font-size: 16px;
}

.lw-home-review-card__star--on {
	color: var(--lw-gold);
}

.lw-home-review-card__star--off {
	color: var(--lw-white-15);
}

.lw-home-review-card__text {
	font-family: var(--lw-font-body);
	font-size: 14px;
	line-height: 1.7;
	color: var(--lw-white-80);
	margin: 0;
	padding: 0;
	border: none;
	font-style: italic;
	flex: 1;
}

.lw-home-review-card__footer {
	border-top: 1px solid var(--lw-white-15);
	padding-top: 12px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.lw-home-review-card__author {
	font-family: var(--lw-font-body);
	font-size: 14px;
	font-weight: 600;
	color: var(--lw-white);
}

.lw-home-review-card__meta {
	font-family: var(--lw-font-body);
	font-size: 12px;
	color: var(--lw-white-70);
}

/* --------------------------------------------------------------------------
   Section 6: Google Reviews
   -------------------------------------------------------------------------- */
.lw-home-google-reviews {
	background: var(--lw-section-bg);
	padding: 60px 0;
	overflow: hidden;
}

/* --------------------------------------------------------------------------
   Admin bar adjustments for hero padding
   -------------------------------------------------------------------------- */
/* Admin bar no longer offsets hero since header is not fixed */

/* --------------------------------------------------------------------------
   Responsive: tablet (≤ 1024px)
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
	.lw-home-services__blocks {
		grid-template-columns: 1fr;
	}
}

/* --------------------------------------------------------------------------
   Responsive: mobile (≤ 768px)
   -------------------------------------------------------------------------- */
@media (max-width: 768px) {
	.lw-home-hero__content {
		padding-top: 40px;
		padding-bottom: 24px;
	}

	.lw-home-hero__search {
		padding-bottom: 32px;
	}

	.lw-home-hero__search .mphb_sc_search-form,
	.lw-home-hero__search .mphb_sc_search-wrap {
		flex-direction: column;
		border-radius: 12px;
		padding: 0;
		max-width: 100%;
	}
	.lw-home-hero__search .mphb_sc_search-form > .cs-daterange {
		flex-direction: column;
		flex: unset;
	}
	.lw-home-hero__search .mphb_sc_search-form > .cs-daterange > p:first-child::after,
	.lw-home-hero__search .mphb_sc_search-form > .cs-daterange::after,
	.lw-home-hero__search .mphb_sc_search-form > .mphb_sc_search-adults::after {
		display: none;
	}
	.lw-home-hero__search .mphb_sc_search-form > .cs-daterange > p {
		border-bottom: 1px solid var(--lw-white-10);
		padding: 14px 0;
		align-items: flex-start;
	}
	.lw-home-hero__search .mphb_sc_search-form > .mphb_sc_search-adults {
		border-bottom: 1px solid var(--lw-white-10);
		padding: 14px 20px;
		align-items: flex-start;
	}
	/* Date inputs: compact + centered on mobile */
	.lw-home-hero__search .mphb_sc_search-form input[name*="date"] {
		width: 100%;
		text-align: center;
	}
	/* Mobile: stepper left-aligned under label */
	.lw-home-hero__search .mphb_sc_search-form > .mphb_sc_search-adults .mphb-stepper {
		height: 32px;
	}
	.lw-home-hero__search .mphb_sc_search-submit-button-wrapper {
		width: 100%;
		padding: 12px;
	}
	.lw-home-hero__search .mphb_sc_search-submit-button-wrapper .cs-search-btn,
	.lw-home-hero__search .mphb_sc_search-submit-button-wrapper button[type="submit"],
	.lw-home-hero__search .mphb_sc_search-submit-button-wrapper input[type="submit"] {
		width: 100% !important;
		border-radius: 10px;
	}

	.lw-home-welcome {
		padding: 56px 0;
	}

	.lw-home-welcome__grid {
		grid-template-columns: 1fr;
		gap: 36px;
	}

	.lw-home-welcome__stats {
		grid-template-columns: repeat(2, 1fr);
		padding: 24px;
		gap: 16px;
	}

	.lw-home-villas {
		padding: 56px 0;
	}

	.lw-home-services {
		padding: 56px 0;
	}

	.lw-home-services__blocks {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.lw-home-reviews {
		padding: 56px 0;
	}

	.lw-home-reviews__grid {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		gap: 16px;
	}
	.lw-home-reviews__grid::-webkit-scrollbar {
		display: none;
	}
	.lw-home-review-card {
		flex: 0 0 80vw;
		max-width: 80vw;
		scroll-snap-align: start;
	}

	.lw-home-google-reviews {
		padding: 40px 0;
	}
	.evd-google-reviews {
		flex-direction: column;
		align-items: center;
	}
	.evd-gr-summary {
		flex: none;
		width: 100%;
	}
}

/* --------------------------------------------------------------------------
   Responsive: small mobile (≤ 480px)
   -------------------------------------------------------------------------- */
@media (max-width: 480px) {
	.lw-home-welcome__stats {
		grid-template-columns: 1fr 1fr;
	}
}

/* YouTube play button on villa cards */
.lw-villa-card__video {
	position: absolute;
	bottom: 12px;
	right: 12px;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	opacity: 0.85;
	transition: opacity 0.2s, transform 0.2s;
	z-index: 2;
}

.lw-villa-card__video:hover {
	opacity: 1;
	transform: scale(1.1);
}

/* ==========================================================================
   HOMEPAGE GALLERY CAROUSEL — horizontal scroll with villa name labels
   ========================================================================== */

.lw-home-gallery {
	overflow: hidden;
	padding: 0;
	background: var(--lw-section-bg);
}

.lw-home-gallery__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-top: 48px;
	padding-bottom: 24px;
}

.lw-home-gallery__arrows {
	display: flex;
	gap: 8px;
}

.lw-home-gallery__arrow {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	border: 1.5px solid var(--lw-navy);
	background: transparent;
	color: var(--lw-white);
	cursor: pointer;
	transition: background 0.2s, border-color 0.2s, color 0.2s, transform 0.15s;
}

.lw-home-gallery__arrow:hover {
	background: var(--lw-navy);
	border-color: var(--lw-white);
	color: var(--lw-gold);
	transform: scale(1.08);
}

.lw-home-gallery__track {
	display: flex;
	gap: 16px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	max-width: var(--lw-container-max);
	margin: 0 auto;
	padding: 0 var(--lw-container-pad) 16px;
	scrollbar-width: none;
}

.lw-home-gallery__track::-webkit-scrollbar {
	display: none;
}

.lw-home-gallery__item {
	position: relative;
	flex: 0 0 auto;
	width: 380px;
	height: 500px;
	border-radius: var(--lw-radius-md);
	overflow: hidden;
	scroll-snap-align: start;
	cursor: pointer;
}

/* Lightbox */
.lw-lightbox {
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: rgba(0, 0, 0, 0.92);
	display: flex;
	align-items: center;
	justify-content: center;
}
.lw-lightbox__img {
	max-width: 90vw;
	max-height: 85vh;
	object-fit: contain;
	border-radius: 8px;
	transition: opacity 0.2s ease;
}
.lw-lightbox__spinner {
	display: none;
	width: 36px;
	height: 36px;
	border: 3px solid var(--lw-white-20);
	border-top-color: var(--lw-gold);
	border-radius: 50%;
	animation: lw-spin 0.7s linear infinite;
	position: absolute;
}
.lw-lightbox--loading .lw-lightbox__spinner {
	display: block;
}
@keyframes lw-spin {
	to { transform: rotate(360deg); }
}
.lw-lightbox__close {
	position: absolute;
	top: 20px;
	right: 24px;
	background: var(--lw-white-15);
	border: none;
	color: var(--lw-white);
	width: 48px;
	height: 48px;
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 10;
	transition: background 0.2s;
}
.lw-lightbox__close:hover {
	background: var(--lw-white-30);
}
.lw-lightbox__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: var(--lw-white-15);
	border: none;
	color: var(--lw-white);
	width: 48px;
	height: 48px;
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.2s;
}
.lw-lightbox__nav:hover { background: var(--lw-white-30); }
.lw-lightbox__nav--prev { left: 20px; }
.lw-lightbox__nav--next { right: 20px; }
.lw-lightbox__caption {
	position: absolute;
	bottom: 24px;
	left: 50%;
	transform: translateX(-50%);
	color: var(--lw-section-text);
	font-family: var(--lw-font-body);
	font-size: 14px;
	background: rgba(0,0,0,0.45);
	padding: 8px 20px;
	border-radius: 6px;
	white-space: nowrap;
}

.lw-home-gallery__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.lw-home-gallery__item:hover img {
	transform: scale(1.05);
}

.lw-home-gallery__label {
	position: absolute;
	bottom: 16px;
	left: 16px;
	background: rgba(0, 0, 0, 0.55);
	color: var(--lw-white);
	font-family: var(--lw-font-body);
	font-size: 13px;
	font-weight: 600;
	padding: 6px 14px;
	border-radius: 6px;
	letter-spacing: 0.02em;
}

@media (max-width: 768px) {
	.lw-home-gallery__item {
		width: 280px;
		height: 380px;
	}
}

/* ==========================================================================
   GOOGLE REVIEWS WIDGET (ported from legacy style.css)
   ========================================================================== */

/* Google Reviews: 3-column layout (summary | review | review) */
.evd-google-reviews {
	display: flex;
	align-items: flex-start;
	gap: 40px;
	max-width: 1200px;
	margin: 0 auto;
}

.evd-gr-summary {
	flex: 0 0 220px;
	text-align: center;
	padding-top: 12px;
}

.evd-gr-label {
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 2px;
	margin-bottom: 6px;
	color: var(--lw-text-heading);
}

.evd-gr-stars-large {
	font-size: 28px;
	color: var(--lw-gr-star);
	letter-spacing: 2px;
	margin-bottom: 8px;
}

.evd-gr-count {
	font-size: 14px;
	color: var(--lw-gr-count);
	margin-bottom: 14px;
}

.evd-gr-google-logo {
	display: flex;
	justify-content: center;
}

.evd-gr-google-logo svg {
	width: 120px;
	height: auto;
}

.evd-gr-carousel-wrap {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	position: relative;
	padding-top: 48px;
}

/* CSS scroll-snap carousel (no jQuery/slick) */
.evd-gr-carousel {
	display: flex;
	gap: 16px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding: 4px 0;
}
.evd-gr-carousel::-webkit-scrollbar {
	display: none;
}

.evd-gr-card {
	background: var(--lw-card-bg);
	border: 1px solid var(--lw-card-border);
	border-radius: 12px;
	padding: 16px 20px;
	flex: 0 0 calc(50% - 8px);
	max-width: calc(50% - 8px);
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	scroll-snap-align: start;
}

/* Vanilla JS arrows */
/* Arrows positioned top-right above the carousel cards */
.evd-gr-arrow {
	position: absolute;
	top: 0;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: transparent;
	border: 1.5px solid var(--lw-white-30);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
	color: var(--lw-white-80);
	transition: border-color 0.2s, color 0.2s, transform 0.15s;
}
.evd-gr-arrow:hover {
	border-color: var(--lw-white);
	color: var(--lw-white);
	transform: scale(1.08);
}
.evd-gr-arrow--prev { right: 56px; }
.evd-gr-arrow--next { right: 0; }

.evd-gr-card-header {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 2px;
	min-height: 36px;
}

.evd-gr-avatar {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--lw-white);
	font-weight: 700;
	font-size: 16px;
	line-height: 1;
	object-fit: cover;
}

img.evd-gr-avatar {
	display: block;
}

.evd-gr-meta {
	flex: 1;
	min-width: 0;
}

.evd-gr-name {
	font-weight: 600;
	font-size: 14px;
	color: var(--lw-text-heading);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.evd-gr-date {
	font-size: 12px;
	color: var(--lw-section-muted);
}

.evd-gr-google-g {
	flex-shrink: 0;
	width: 20px;
	height: 20px;
}

.evd-gr-stars {
	display: flex;
	align-items: center;
	gap: 1px;
	margin-bottom: 4px;
}

.evd-gr-star {
	font-size: 16px;
	color: var(--lw-gr-star-empty);
}

.evd-gr-star.filled {
	color: var(--lw-gr-star);
}

.evd-gr-verified {
	margin-left: 4px;
	flex-shrink: 0;
}

.evd-gr-text {
	font-size: 13px;
	line-height: 1.55;
	color: var(--lw-gr-text);
	display: -webkit-box !important;
	-webkit-line-clamp: 5;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.evd-gr-text.evd-gr-expanded {
	display: block !important;
	-webkit-line-clamp: unset;
	overflow: visible;
}

.evd-gr-readmore {
	font-size: 13px;
	color: var(--lw-section-muted);
	text-decoration: none;
	margin-top: 6px;
	cursor: pointer;
	display: inline-block;
}

.evd-gr-readmore:hover {
	color: var(--lw-section-heading);
	text-decoration: underline;
}

/* Responsive: stack on mobile, single card scroll */
@media (max-width: 768px) {
	.evd-google-reviews {
		flex-direction: column;
		gap: 16px;
	}
	.evd-gr-summary {
		flex: none;
		padding-top: 0;
	}
	.evd-gr-carousel-wrap {
		padding-top: 0;
		width: 100%;
	}
	.evd-gr-card {
		flex: 0 0 80vw;
		max-width: 80vw;
	}
	.evd-gr-arrow {
		display: none;
	}
}

/* ==========================================================================
   Custom newsletter form (evd-newsletter-form)
   ========================================================================== */

.evd-newsletter-form {
	display: flex;
	flex-direction: column;
	gap: 0;
}

/* Hide label visually — placeholder + heading provide context */
.evd-newsletter-form__label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
}

/* Input + button inline row */
.evd-newsletter-form__row {
	display: flex;
	border-radius: var(--lw-radius-sm);
	overflow: hidden;
	border: 1px solid var(--lw-white-15);
	transition: border-color 0.2s;
}

.evd-newsletter-form__row:focus-within {
	border-color: var(--lw-gold);
}

.evd-newsletter-form__input {
	flex: 1;
	height: 48px;
	padding: 10px 16px;
	background: var(--lw-white-08);
	border: none;
	color: var(--lw-white);
	font-family: var(--lw-font-body);
	font-size: 15px;
	outline: none;
	min-width: 0;
}

.evd-newsletter-form__input::placeholder {
	color: var(--lw-white-60);
}

.evd-newsletter-form__btn {
	flex-shrink: 0;
	height: 48px;
	padding: 10px 28px;
	background: var(--lw-gold);
	color: var(--lw-btn-on-gold);
	border: none;
	font-family: var(--lw-font-body);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.03em;
	cursor: pointer;
	transition: background 0.2s;
	white-space: nowrap;
}

.evd-newsletter-form__btn:hover {
	background: var(--lw-gold-light);
}

.evd-newsletter-form__msg {
	margin-top: 8px;
	font-size: 13px;
	/* Reserve space so success/error text doesn't shift the layout. */
	min-height: 20px;
	line-height: 1.4;
}

@media (max-width: 600px) {
	.evd-newsletter-form__row {
		flex-direction: column;
		border-radius: var(--lw-radius-sm);
	}
	.evd-newsletter-form__input {
		border-radius: var(--lw-radius-sm) var(--lw-radius-sm) 0 0;
	}
	.evd-newsletter-form__btn {
		border-radius: 0 0 var(--lw-radius-sm) var(--lw-radius-sm);
	}
}

/* ==========================================================================
   NEWSLETTER FORM (Email Subscribers plugin overrides)
   ========================================================================== */

body form.es_subscription_form.es_subscription_form[data-form-id].wysiwyg-form {
	background: transparent !important;
	padding: 0 !important;
	max-width: 420px;
	display: flex !important;
	flex-wrap: nowrap !important;
	align-items: flex-end !important;
	gap: 0 !important;
}

body form.es_subscription_form.es_subscription_form[data-form-id] .es-field-label font {
	display: none;
}

/* Email field takes remaining space */
body form.es_subscription_form.es_subscription_form[data-form-id] .es-field-wrap.ig-es-form-field {
	flex: 1 1 0% !important;
	min-width: 0 !important;
}

/* Subscribe button flush right, same height as input */
body form.es_subscription_form.es_subscription_form[data-form-id] .es-submit-container {
	margin: 0 !important;
	position: static !important;
	flex: 0 0 auto !important;
	width: auto !important;
	height: auto !important;
}

/* Input: remove right border-radius so it connects with button */
body form.es_subscription_form.es_subscription_form[data-form-id] input[type="email"] {
	border-radius: 8px 0 0 8px !important;
}

/* Button matches input height and connects visually */
body form.es_subscription_form.es_subscription_form[data-form-id] .es-subscribe-btn {
	width: auto;
	height: 48px !important;
	padding: 10px 28px !important;
	background: var(--btn-bg) !important;
	background-image: none !important;
	border: none !important;
	border-radius: 0 8px 8px 0 !important;
	color: var(--lw-navy) !important;
	font-family: var(--lw-font-body);
	font-size: 14px !important;
	line-height: 1.4;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: none;
	margin: 0 !important;
	opacity: 1;
	cursor: pointer;
	transition: background .2s;
}

body form.es_subscription_form.es_subscription_form[data-form-id] .es-subscribe-btn:hover {
	opacity: 1;
	background: var(--lw-gold-light) !important;
}

/* ========================================================================== */
   SEARCH RESULTS LAYOUT (ported from legacy style.css)
   ========================================================================== */
.posts.cs-rooms .cs-room-rating {
    font-size: 15px;
    display: flex;
    gap: 10px;
    margin-top: 10px;
    color: inherit;
    text-decoration: none;
}

a.cs-room-rating:hover {
    text-decoration: underline;
}

.posts.cs-rooms .cs-room-rating .cs-stars {
    color: var(--dark-link-color);
}

.mphb_sc_search_results-wrapper .cs-room-item .room-inner {
    display: flex;
    gap: 25px;
    background: var(--lw-card-bg);
    border: 1px solid var(--lw-card-border);
    border-radius: 12px;
    box-shadow: var(--lw-card-shadow);
    padding: 16px;
    transition: box-shadow 0.3s ease;
}

.mphb_sc_search_results-wrapper .cs-room-item .room-inner:hover {
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.12);
}

.mphb_sc_search_results-wrapper .cs-room-item .room-inner .featured-img {
    max-width: 40%;
    min-width: 40%;
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    align-self: stretch;
    flex-shrink: 0;
}

/* Search results page: logo-only header, no footer */
body.cs-search-results-page .lw-footer {
    display: none;
}
body.cs-search-results-page .lw-header__nav,
body.cs-search-results-page .lw-header__right,
body.cs-search-results-page .lw-header__wa-btn,
body.cs-search-results-page .lw-header__lang,
body.cs-search-results-page .lw-hamburger,
body.cs-search-results-page .lw-mobile-menu,
body.cs-search-results-page .lw-nav--desktop {
    display: none !important;
}
body.cs-search-results-page .lw-header__inner {
    display: flex;
    justify-content: center;
}
body.cs-search-results-page .lw-header__logo {
    flex: none;
}
/* Search results: full width on mobile */
@media (max-width: 768px) {
    body.cs-search-results-page .container {
        padding-left: 0;
        padding-right: 0;
    }
    body.cs-search-results-page .mphb_sc_search_results-wrapper {
        padding-left: 0;
        padding-right: 0;
    }
}

.mphb_sc_search_results-wrapper .cs-room-item .room-inner .featured-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.mphb_sc_search_results-wrapper .cs-room-item .room-inner .overlay-label {
    top: 12px;
    left: 12px;
    right: 12px;
    background: rgba(0, 0, 0, 0.75);
    border: none;
    color: var(--lw-white);
    padding: 10px 14px;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    position: absolute;
    z-index: 99;
    pointer-events: none;
    text-align: left;
    border-radius: 8px;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    line-height: 1.5;
}

.mphb_sc_search_results-wrapper .cs-room-item {
    margin-bottom: 12px;
}

.mphb_sc_search_results-wrapper .cs-room-item .overlay-label .mphb-regular-price {
    margin-bottom: 0 !important;
}

/* Villa badge sticker — shared across search results + villa detail */
.cs-villa-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 12px;
    background: var(--lw-gold);
    color: var(--lw-badge-text);
    border-radius: 20px;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.cs-villa-badge::before {
    content: "\2726";
}

body.lw-page .cs-villa-badge {
    color: var(--lw-gold-a11y-dark);
    background: none;
    border: none;
    padding: 0;
}

.cs-search-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--lw-border-light);
    margin-bottom: 8px;
}

.cs-search-header__count {
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--lw-text-dark);
    display: inline-block;
}

.cs-search-header__count.cs-count-pop {
    animation: cs-count-pop 0.35s ease;
}

.cs-search-header__badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--lw-text-dark);
}

.cs-search-header__badge-icon {
    font-size: 1.1rem;
}

.entry-content .cs-search-header__modify {
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--lw-text-hint);
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color 0.15s;
}

.entry-content .cs-search-header__modify:hover {
    color: var(--lw-text-dark);
}

.cs-empty-state {
    text-align: left;
    padding: 0;
    border-bottom: none;
    gap: 0;
    display: block;
}

.cs-empty-state__hero {
    position: relative;
    height: 220px;
    width: 100%;
    border-radius: 12px;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    background-color: var(--lw-bg-empty-hero);
}

.cs-empty-state__hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.25) 100%);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 28px 24px;
}

.cs-empty-state__hero-title {
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--lw-white) !important;
    margin: 0 0 6px;
    text-shadow: 0 1px 4px rgba(0,0,0,0.4);
}

.cs-empty-state__hero-subtitle {
    font-size: 0.9375rem;
    color: var(--lw-section-text) !important;
    margin: 0;
    text-shadow: 0 1px 3px rgba(0,0,0,0.3);
}

.cs-empty-state__section {
    margin-top: 32px;
    width: 100%;
}

.cs-empty-state__section-title {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--lw-white);
    margin: 0 0 16px;
    padding-left: 12px;
    border-left: 3px solid var(--lw-gold);
}

.cs-empty-state__villas {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.cs-empty-state__villa-card {
    display: flex;
    flex-direction: column;
    background: var(--lw-card-bg);
    border: 1px solid var(--lw-card-border);
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.08);
    overflow: hidden;
    text-decoration: none !important;
    color: var(--lw-white) !important;
    transition: box-shadow 0.2s, transform 0.2s;
}

.cs-empty-state__villa-card:hover {
    box-shadow: 0 4px 20px rgba(0,0,0,0.14);
    transform: translateY(-2px);
}

.cs-empty-state__villa-img-wrap {
    aspect-ratio: 16 / 10;
    overflow: hidden;
    position: relative;
}

.cs-empty-state__villa-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 100%;
    object-fit: cover;
    display: block;
}

.cs-empty-state__villa-body {
    padding: 14px 16px 16px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.cs-empty-state__villa-name {
    font-size: 1rem;
    font-weight: 600;
    color: var(--lw-white);
}

.cs-empty-state__villa-specs {
    font-size: 0.8125rem;
    color: var(--lw-text-hint);
}

.cs-empty-state__villa-avail {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #059669;
    margin-top: 4px;
}

.cs-empty-state__villa-avail::before {
    content: "";
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #059669;
    margin-right: 6px;
    vertical-align: middle;
}

.cs-empty-state__villa-avail--none {
    color: var(--lw-gold);
}

.cs-empty-state__villa-avail--none::before {
    background: var(--lw-gold);
}

.cs-empty-state__villa-price {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--lw-white);
    margin-top: 4px;
}

.cs-empty-state__villa-link {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--lw-gold) !important;
    margin-top: 6px;
}

.cs-empty-state__nearby-subtitle {
    font-size: 0.9375rem;
    color: var(--lw-text-hint);
    margin: -8px 0 16px;
}

.cs-empty-state__nearby-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 16px;
}

.cs-empty-state__nearby-card {
    display: flex;
    flex-direction: column;
    background: var(--lw-card-bg);
    border: 1px solid var(--lw-card-border);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    text-decoration: none !important;
    color: inherit !important;
    transition: box-shadow 0.2s, transform 0.2s;
}

.cs-empty-state__nearby-card:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.10);
    transform: translateY(-2px);
}

.cs-empty-state__nearby-img-wrap {
    width: 100%;
    aspect-ratio: 16 / 10;
    overflow: hidden;
}

.cs-empty-state__nearby-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s;
}

.cs-empty-state__nearby-card:hover .cs-empty-state__nearby-img {
    transform: scale(1.04);
}

.cs-empty-state__nearby-body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 14px 16px 16px;
}

.cs-empty-state__nearby-villa {
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--lw-white);
}

.cs-empty-state__nearby-specs {
    font-size: 0.8125rem;
    color: var(--lw-text-hint);
}

.cs-empty-state__nearby-dates {
    font-size: 0.875rem;
    color: var(--lw-text-dates);
}

.cs-empty-state__nearby-meta {
    font-size: 0.8125rem;
    color: var(--lw-text-hint);
    margin-top: 2px;
}

.cs-empty-state__nearby-book {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 10px;
    padding: 10px 20px;
    background: var(--lw-gold);
    color: var(--lw-white) !important;
    font-size: 0.875rem;
    font-weight: 600;
    border-radius: 6px;
    transition: background 0.2s;
}

.cs-empty-state__nearby-card:hover .cs-empty-state__nearby-book {
    background: var(--lw-gold-dark-hover);
}

.cs-empty-state__contact {
    text-align: center;
    background: var(--lw-card-bg);
    border: 1px solid var(--lw-card-border);
    border-radius: 12px;
    padding: 28px 24px;
}

.cs-empty-state__contact .cs-empty-state__section-title {
    border-left: none;
    padding-left: 0;
    text-align: center;
}

.cs-empty-state__contact-text {
    font-size: 0.9375rem;
    color: var(--lw-text-hint);
    margin: 0 0 20px;
}

.cs-empty-state__cta-row {
    display: flex;
    gap: 12px;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
}

.cs-empty-state__cta-whatsapp {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 32px;
    background: #25D366;
    color: var(--lw-white) !important;
    font-weight: 600;
    font-size: 0.9375rem;
    line-height: 1;
    border: 2px solid #25D366;
    border-radius: 8px;
    text-decoration: none !important;
    transition: background 0.2s, transform 0.2s;
}

.cs-empty-state__cta-whatsapp span {
    display: inline-flex;
    align-items: center;
}

.cs-empty-state__cta-whatsapp:hover {
    background: #1fb855;
    border-color: #1fb855;
    transform: translateY(-1px);
}

.cs-empty-state__cta-contact {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    background: var(--lw-gold);
    color: var(--lw-white) !important;
    font-weight: 600;
    font-size: 0.9375rem;
    border: 2px solid var(--lw-gold);
    border-radius: 8px;
    text-decoration: none !important;
    transition: background 0.2s, color 0.2s, transform 0.2s;
}

.cs-empty-state__cta-contact:hover {
    background: var(--lw-gold-dark-hover);
    border-color: var(--lw-gold-dark-hover);
    color: var(--lw-white) !important;
    transform: translateY(-1px);
}

.cs-empty-state__calendar {
    border-radius: 12px;
    border: 1px solid var(--lw-border-warm);
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}

.cs-empty-state__calendar .mphb-group-availability-calendar {
    --color-room-type-date-available: #a8dda0;
    --color-room-type-date-not-available: #f0b8bf;
    --color-room-type-date-default: var(--lw-white-15);
}

.cs-empty-state__calendar .mphb-toolbar {
    padding: 10px 14px;
    background: var(--lw-card-bg);
    border-bottom: 1px solid var(--lw-white-15);
    color: var(--lw-white);
}

.cs-empty-state__calendar .mphb-button {
    border-radius: 6px !important;
    font-size: 0.8125rem;
    color: var(--lw-white) !important;
    border-color: var(--lw-white-30) !important;
    background: var(--lw-white-08) !important;
}

.cs-empty-state__calendar .mphb-button:hover {
    background: var(--lw-white-15) !important;
}

.cs-empty-state__calendar .mphb-group-availability-calendar-dates__wrapper {
    background: var(--lw-card-bg) !important;
    backdrop-filter: none;
    border-bottom: 1px solid var(--lw-border-warm);
    position: relative;
    top: auto;
}

.cs-empty-state__calendar .mphb-group-availability-calendar-dates__date {
    font-size: 0.8125rem;
    font-weight: 600;
    width: 54px !important;
    min-width: 54px !important;
    background: var(--lw-white-08) !important;
    color: var(--lw-white-70);
    border-color: var(--lw-white-15) !important;
}

.cs-empty-state__calendar .mphb-group-availability-calendar-room-type__title {
    color: var(--lw-gold) !important;
    font-weight: 600;
    font-size: 0.9375rem;
    background: var(--lw-white);
}

.cs-empty-state__calendar .mphb-group-availability-calendar-room-types {
    padding: 8px 0;
    background: transparent;
    color: var(--lw-white);
}

.cs-empty-state__calendar .mphb-group-availability-calendar-room-types a {
    color: var(--lw-gold) !important;
}

/* Calendar date cells — dark theme */
.cs-empty-state__calendar .mphb-group-availability-calendar-dates {
    background: transparent !important;
}

.cs-empty-state__calendar .mphb-date-navigation__datepicker-input {
    background: transparent !important;
    color: var(--lw-white) !important;
}

.cs-empty-state__calendar .mphb-group-availability-calendar-dates__wrapper::-webkit-scrollbar {
    height: 6px;
}

.cs-empty-state__calendar .mphb-group-availability-calendar-dates__wrapper::-webkit-scrollbar-thumb {
    background: var(--lw-input-border);
    border-radius: 3px;
}

.cs-empty-state__calendar .mphb-group-availability-calendar-dates__wrapper::-webkit-scrollbar-track {
    background: transparent;
}

.cs-empty-state__search-again {
    text-align: center;
    margin-top: 24px;
    padding-bottom: 8px;
}

.cs-empty-state__search-again a {
    font-size: 0.875rem;
    color: var(--lw-text-hint) !important;
    text-decoration: none !important;
    transition: color 0.2s;
}

.cs-empty-state__search-again a:hover {
    color: var(--lw-gold) !important;
}

@media (max-width: 900px) {
    .cs-empty-state__villas {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .cs-empty-state__hero {
        height: 160px;
        border-radius: 8px;
    }

    .cs-empty-state__hero-overlay {
        padding: 20px 16px;
    }

    .cs-empty-state__hero-title {
        font-size: 1.125rem;
    }

    .cs-empty-state__villas {
        grid-template-columns: 1fr;
    }

    .cs-empty-state__villa-card {
        flex-direction: row;
    }

    .cs-empty-state__villa-img-wrap {
        width: 120px;
        min-height: 120px;
        aspect-ratio: auto;
        flex-shrink: 0;
    }

    .cs-empty-state__cta-row {
        flex-direction: column;
        align-items: center;
    }

    .cs-empty-state__section {
        margin-top: 24px;
    }

    .cs-empty-state__contact {
        padding: 20px 16px;
    }

    .cs-empty-state__nearby-list {
        grid-template-columns: 1fr 1fr;
    }
}

.cs-amenity-filters {
    margin-bottom: 8px;
    border-bottom: 1px solid var(--lw-border-light);
    padding-bottom: 8px;
}

.cs-amenity-filters__toggle {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 0;
    border: none;
    background: none;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--lw-text-secondary);
    cursor: pointer;
    white-space: nowrap;
}

.cs-amenity-filters__toggle:hover { color: var(--lw-text-dark); }

.cs-amenity-filters__toggle svg:first-child {
    flex-shrink: 0;
    width: 14px;
    height: 14px;
}

.cs-amenity-filters__chevron {
    transition: transform 0.25s ease;
}

.cs-amenity-filters.is-open .cs-amenity-filters__chevron {
    transform: rotate(180deg);
}

.cs-amenity-filters__body {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.3s ease;
}

.cs-amenity-filters.is-open .cs-amenity-filters__body {
    grid-template-rows: 1fr;
}

.cs-amenity-filters__inner {
    overflow: hidden;
}

.cs-amenity-filters__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding-top: 6px;
    padding-bottom: 4px;
}

.cs-amenity-filter {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 14px;
    border: 1px solid var(--lw-border-medium);
    border-radius: 20px;
    background: var(--lw-white);
    font-size: 13px;
    font-weight: 500;
    color: var(--lw-text-dark);
    cursor: pointer;
    transition: all 0.15s;
    white-space: nowrap;
    line-height: 1.2;
}

.cs-amenity-filter i {
    font-size: 16px;
    color: var(--lw-text-hint);
    transition: color 0.15s;
}

.cs-amenity-filter:hover {
    border-color: var(--lw-text-dark);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.cs-amenity-filter.is-active {
    background: var(--lw-text-dark);
    border-color: var(--lw-text-dark);
    color: var(--lw-white);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

.cs-amenity-filter.is-active i {
    color: var(--lw-gold-accent);
}

.cs-amenity-filters__clear {
    padding: 0;
    margin-left: 6px;
    border: none;
    background: none;
    font-size: 11px;
    visibility: hidden;
    font-weight: 600;
    color: var(--lw-text-hint);
    cursor: pointer;
    text-decoration: underline;
    white-space: nowrap;
}

.cs-amenity-filters__clear:hover {
    color: var(--lw-text-secondary);
}

.cs-amenity-filter--promo.is-active .cs-promo-dot {
    background: #ff8a80;
    box-shadow: 0 0 6px rgba(255, 138, 128, 0.6);
}

.cs-split-layout {
    display: flex;
    gap: 0;
    align-items: flex-start;
    min-height: 60vh;
}

.cs-split-layout__cards {
    flex: 0 0 58%;
    max-width: 58%;
    padding-right: 24px;
}

.cs-split-layout__map {
    flex: 0 0 42%;
    max-width: 42%;
    align-self: stretch;
}

.cs-split-layout__map-sticky {
    position: sticky;
    top: 80px;
    height: calc(100vh - 100px);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}

.cs-split-layout__map-sticky > div {
    width: 100%;
    height: 100%;
}

@media (max-width: 991px) {
	.cs-split-layout {
		flex-direction: column;
	}

	.cs-split-layout__cards {
		flex: 0 0 100%;
		max-width: 100%;
		padding-right: 0;
		order: 2;
	}

	.cs-split-layout__map {
		flex: 0 0 100%;
		max-width: 100%;
		margin-bottom: 24px;
		order: 1;
	}

	.cs-split-layout__map-sticky {
		position: relative;
		top: auto;
		height: 300px;
	}

	.mphb_sc_search_results-wrapper .cs-room-item .overlay-label {
		display: none;
	}

	.mphb_sc_search_results-wrapper .cs-room-item .room-inner .featured-img {
		max-width: 100%;
		min-width: 100%;
		aspect-ratio: 16 / 9;
		align-self: auto;
	}
}

.mphb_sc_search_results-wrapper .cs-room-item .room-inner .item-header h2 {
    margin: 0 0 10px;
    font-size: 1.875rem;
}

.mphb_sc_search_results-wrapper .cs-room-item .room-inner .cs-room-basic-info {
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    list-style: none;
    margin-bottom: 10px;
}

body .mphb_sc_search_results-wrapper .cs-room-item .mphb-book-button {
    padding: 14px 40px !important;
    height: auto;
    background: var(--btn-bg) !important;
    color: var(--lw-white) !important;
    border-radius: 6px;
    border: 2px solid var(--btn-bg);
    transition: background 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
    position: relative;
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

body .mphb_sc_search_results-wrapper .cs-room-item .mphb-book-button:hover {
    filter: brightness(0.88);
    box-shadow: 0 4px 12px rgba(0,0,0,0.18);
}

body .mphb_sc_search_results-wrapper .cs-room-item .mphb-book-button:after {
    display: none;
}

@media (max-width: 768px) {
	.mphb_sc_search_results-wrapper .cs-room-item .room-inner {
		flex-direction: column;
		padding: 12px;
	}
	.mphb_sc_search_results-wrapper .cs-room-item .room-inner .featured-img {
		width: 100%;
		min-width: 100%;
		aspect-ratio: 16 / 9;
	}
}

#cs-search-loading {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 80px 20px;
	gap: 16px;
}

.cs-search-loading__spinner {
	display: block;
	width: 36px;
	height: 36px;
	border: 3px solid var(--lw-spinner-track);
	border-top-color: var(--lw-spinner-accent);
	border-radius: 50%;
	animation: cs-spin 0.8s linear infinite;
}

.cs-search-loading__msg {
	font-size: 15px;
	color: var(--lw-spinner-text);
	margin: 0;
}

/* --------------------------------------------------------------------------
   SEARCH RESULTS — .lw-page dark-navy overrides
   -------------------------------------------------------------------------- */

/* Result cards: translucent glass on navy */
.lw-page .mphb_sc_search_results-wrapper .cs-room-item .room-inner {
    background: var(--lw-card-bg);
    border: 1px solid var(--lw-card-border);
    box-shadow: var(--lw-card-shadow);
}
.lw-page .mphb_sc_search_results-wrapper .cs-room-item .room-inner:hover {
    background: var(--lw-card-bg-hover);
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.3);
}

/* Result card text */
.lw-page .mphb_sc_search_results-wrapper .cs-room-item .room-inner .item-header h2 {
    color: var(--lw-text-heading);
}
.lw-page .mphb_sc_search_results-wrapper .cs-room-item .room-inner .cs-room-basic-info {
    color: var(--lw-text-secondary);
}
.lw-page .posts.cs-rooms .cs-room-rating {
    color: var(--lw-text-secondary);
}
.lw-page .posts.cs-rooms .cs-room-rating .cs-stars {
    color: var(--lw-gr-star);
}

/* Map container border on dark */
.lw-page .cs-split-layout__map-sticky {
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
    border: 1px solid var(--lw-card-border);
}

/* Amenity filters on dark */
.lw-page .cs-amenity-filter {
    background: var(--lw-card-bg);
    border-color: var(--lw-border-medium);
}
.lw-page .cs-amenity-filter:hover {
    border-color: var(--lw-white-40);
}
.lw-page .cs-amenity-filter.is-active {
    background: var(--lw-gold);
    border-color: var(--lw-gold);
    color: var(--lw-navy) !important;
}
.lw-page .cs-amenity-filter.is-active i {
    color: var(--lw-navy);
}

/* Empty state: villa cards on dark */
.lw-page .cs-empty-state__villa-card {
    background: var(--lw-card-bg);
    border: 1px solid var(--lw-card-border);
    box-shadow: var(--lw-card-shadow);
}
.lw-page .cs-empty-state__villa-card:hover {
    background: var(--lw-card-bg-hover);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

/* Empty state: nearby cards on dark */
.lw-page .cs-empty-state__nearby-card {
    background: var(--lw-card-bg);
    border-color: var(--lw-card-border);
    box-shadow: var(--lw-card-shadow);
}
.lw-page .cs-empty-state__nearby-card:hover {
    background: var(--lw-card-bg-hover);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
}

/* Empty state: contact section on dark */
.lw-page .cs-empty-state__contact {
    background: var(--lw-bg-warm);
}

/* Empty state: calendar on dark */
.lw-page .cs-empty-state__calendar {
    border-color: var(--lw-card-border);
    box-shadow: var(--lw-card-shadow);
}
.lw-page .cs-empty-state__calendar .mphb-group-availability-calendar-room-type__title {
    background: var(--lw-bg-warm);
}
.lw-page .cs-empty-state__calendar .mphb-group-availability-calendar-room-types {
    background: var(--lw-bg-warm);
}
.lw-page .cs-empty-state__calendar .mphb-toolbar {
    background: var(--lw-bg-hover);
    border-bottom-color: var(--lw-border-medium);
}
.lw-page .cs-empty-state__calendar .mphb-group-availability-calendar-dates__wrapper {
    background: var(--lw-bg-hover) !important;
    border-bottom-color: var(--lw-border-medium);
}
.lw-page .cs-empty-state__calendar .mphb-group-availability-calendar-dates__wrapper::-webkit-scrollbar-thumb {
    background: var(--lw-white-30);
}

/* Total: 124 search result rules extracted */


