/* ============================================================
   TaraEcoStay — MODERN OVERLAY (loaded after main.css)
   ============================================================ */

:root {
	--c-glow:      rgba(201, 169, 106, 0.35);
	--c-glow-soft: rgba(201, 169, 106, 0.15);
	--c-leaf-glow: rgba(126, 168, 130, 0.4);
	--c-glass:     rgba(20, 39, 28, 0.55);
	--c-glass-2:   rgba(26, 47, 35, 0.7);
	--c-line-bright: rgba(245, 241, 232, 0.18);

	--blur-md: 18px;
	--blur-lg: 28px;

	--ease-out: cubic-bezier(.16, 1, .3, 1);
	--ease-spring: cubic-bezier(.34, 1.56, .64, 1);

	/* New premium fonts */
	--font-serif: "Fraunces", "Cormorant Garamond", Georgia, serif;
	--font-sans:  "Manrope", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Container — wider (90% viewport, max 1600px) */
.container {
	width: 90% !important;
	max-width: 1600px !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* ===== MOBILE NAV — premium full-screen with stagger ===== */
.menu-toggle {
	order: 99;
	margin-left: 4px;
	position: relative;
	z-index: 110;
	background: rgba(255,255,255,0.04);
	border: 1px solid var(--c-line);
	border-radius: 50%;
	width: 42px !important;
	height: 42px !important;
}
.menu-toggle:hover { background: rgba(255,255,255,0.08); border-color: var(--c-accent); }

.mobile-nav {
	position: fixed !important;
	inset: 0 !important;
	z-index: 105 !important;
	display: block !important;
	pointer-events: none;
	opacity: 0;
	visibility: hidden !important;
	transition: opacity .55s var(--ease-out), visibility 0s linear .55s;
}
.mobile-nav.is-open {
	opacity: 1;
	visibility: visible !important;
	pointer-events: auto;
	transition: opacity .5s var(--ease-out), visibility 0s linear 0s;
}

.mobile-nav__bg {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 100% 0%, rgba(126, 168, 130, 0.12), transparent 50%),
		radial-gradient(circle at 0% 100%, rgba(201, 169, 106, 0.1), transparent 50%),
		linear-gradient(160deg, #0a130d 0%, #060b08 100%);
	transform: scaleY(0);
	transform-origin: top;
	transition: transform .65s var(--ease-out);
}
.mobile-nav.is-open .mobile-nav__bg { transform: scaleY(1); }

/* Hide hamburger button when mobile nav is open */
body:has(.mobile-nav.is-open) .menu-toggle { opacity: 0 !important; pointer-events: none !important; }

/* Mobile nav header — logo + close button */
.mobile-nav__header {
	position: absolute;
	top: 0; left: 0; right: 0;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 22px 5%;
	gap: 16px;
}
.admin-bar .mobile-nav__header { top: 32px; }

.mobile-nav__brand {
	display: inline-flex;
	align-items: center;
	color: var(--c-accent);
	opacity: 0;
	transform: translateY(-10px);
	transition: opacity .4s ease, transform .5s var(--ease-out);
}
.mobile-nav.is-open .mobile-nav__brand {
	opacity: 1;
	transform: translateY(0);
	transition-delay: .25s;
}
.mobile-nav__brand img.taraeco-logo {
	height: 52px !important;
	max-height: 52px !important;
	max-width: 160px !important;
	width: auto !important;
	filter: brightness(0) invert(0.95) sepia(0.12) !important;
	opacity: 0.95;
}

.mobile-nav__close {
	width: 44px; height: 44px;
	flex-shrink: 0;
	border-radius: 50%;
	background: rgba(255,255,255,0.05);
	border: 1px solid var(--c-line-bright);
	color: var(--c-ink);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background .3s ease, transform .4s var(--ease-out), border-color .3s ease;
	opacity: 0;
	transform: rotate(-90deg) scale(.8);
}
.mobile-nav.is-open .mobile-nav__close {
	opacity: 1;
	transform: rotate(0) scale(1);
	transition: opacity .4s ease .3s, transform .5s var(--ease-out) .3s, background .3s ease, border-color .3s ease;
}
.mobile-nav__close:hover {
	background: var(--c-accent);
	color: #1b1606;
	border-color: var(--c-accent);
	transform: rotate(90deg);
}

.mobile-nav__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	height: 100%;
	max-width: 1100px;
	margin: 0 auto;
	padding: 110px 5% 40px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	overflow-y: auto;
}

/* "Meni" label removed — keep CSS for safety */
.mobile-nav__label { display: none !important; }

.mobile-nav__list {
	list-style: none;
	padding: 0;
	margin: 0 0 36px;
	width: 100%;
}
.mobile-nav__list li {
	position: relative;
	padding: 6px 0;
	border-bottom: 1px solid rgba(245, 241, 232, 0.08);
	overflow: hidden;
	opacity: 0;
	transform: translateY(20px);
	transition: opacity .5s ease, transform .55s var(--ease-out);
}
.mobile-nav__list li:first-child { border-top: 1px solid rgba(245, 241, 232, 0.08); }
.mobile-nav.is-open .mobile-nav__list li {
	opacity: 1;
	transform: translateY(0);
}
.mobile-nav.is-open .mobile-nav__list li:nth-child(1) { transition-delay: .3s; }
.mobile-nav.is-open .mobile-nav__list li:nth-child(2) { transition-delay: .36s; }
.mobile-nav.is-open .mobile-nav__list li:nth-child(3) { transition-delay: .42s; }
.mobile-nav.is-open .mobile-nav__list li:nth-child(4) { transition-delay: .48s; }
.mobile-nav.is-open .mobile-nav__list li:nth-child(5) { transition-delay: .54s; }
.mobile-nav.is-open .mobile-nav__list li:nth-child(6) { transition-delay: .60s; }

.mobile-nav__list li::before {
	content: attr(data-i);
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	font-family: var(--font-sans);
	font-size: .65rem;
	letter-spacing: .25em;
	color: var(--c-muted);
	opacity: .6;
}
.mobile-nav__list a {
	display: block;
	padding: 18px 0 18px 56px;
	font-family: var(--font-serif);
	font-size: clamp(1.7rem, 7vw, 2.6rem);
	font-weight: 400;
	font-variation-settings: "opsz" 144;
	color: var(--c-ink);
	letter-spacing: -0.02em;
	line-height: 1;
	transition: color .3s ease, padding-left .35s var(--ease-out);
}
.mobile-nav__list a:hover,
.mobile-nav__list a:active {
	color: var(--c-accent);
	padding-left: 70px;
}

.mobile-nav__cta {
	margin: 32px 0 36px;
	display: inline-flex !important;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	width: auto;
	min-width: 240px;
	padding: 22px 32px !important;
	background: linear-gradient(135deg, var(--c-accent) 0%, var(--c-accent-2) 100%) !important;
	color: #1b1606 !important;
	border-radius: 999px;
	font-size: .9rem !important;
	letter-spacing: .22em !important;
	font-weight: 600;
	text-transform: uppercase;
	box-shadow: 0 18px 50px var(--c-glow), 0 0 0 1px rgba(255,255,255,0.15) inset !important;
	opacity: 0;
	transform: translateY(20px);
	transition: opacity .5s ease, transform .55s var(--ease-out), box-shadow .35s ease;
	position: relative;
	overflow: hidden;
}
.mobile-nav.is-open .mobile-nav__cta {
	opacity: 1;
	transform: translateY(0);
	transition-delay: .7s;
}
.mobile-nav__cta::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,.45) 50%, transparent 70%);
	transform: translateX(-110%);
	transition: transform 1s var(--ease-out);
}
.mobile-nav__cta:hover::before { transform: translateX(110%); }
.mobile-nav__cta:hover {
	box-shadow: 0 24px 60px var(--c-glow), 0 0 0 1px rgba(255,255,255,0.3) inset !important;
}
.mobile-nav__cta .btn__arrow {
	font-size: 1.3rem;
	display: inline-flex;
	width: 36px; height: 36px;
	align-items: center;
	justify-content: center;
	background: rgba(27, 22, 6, 0.15);
	border-radius: 50%;
	transition: transform .4s var(--ease-out), background .3s ease;
}
.mobile-nav__cta:hover .btn__arrow {
	transform: translateX(4px);
	background: rgba(27, 22, 6, 0.25);
}

.mobile-nav__foot {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 24px;
	padding-top: 24px;
	border-top: 1px solid rgba(245, 241, 232, 0.08);
	opacity: 0;
	transform: translateY(10px);
	transition: opacity .5s ease, transform .55s var(--ease-out);
}
.mobile-nav.is-open .mobile-nav__foot {
	opacity: 1;
	transform: translateY(0);
	transition-delay: .8s;
}
.mobile-nav__contact,
.mobile-nav__social {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.mobile-nav__contact a,
.mobile-nav__social a {
	font-family: var(--font-sans);
	font-size: .82rem;
	color: var(--c-ink-2);
	letter-spacing: .02em;
	transition: color .25s ease;
}
.mobile-nav__contact a:hover,
.mobile-nav__social a:hover { color: var(--c-accent); }
.mobile-nav__social { align-items: flex-end; }
.mobile-nav__social a {
	font-size: .7rem;
	letter-spacing: .2em;
	text-transform: uppercase;
}

@media (max-width: 480px) {
	.mobile-nav__inner { padding: 80px 6% 30px; justify-content: flex-start; padding-top: 100px; }
	.mobile-nav__foot { flex-direction: column; align-items: flex-start; gap: 14px; }
	.mobile-nav__social { align-items: flex-start; }
}

/* Apply Fraunces axes globally */
html, body { font-family: var(--font-sans); font-feature-settings: "ss01", "ss02", "cv11"; }
h1, h2, h3, h4 {
	font-family: var(--font-serif);
	font-variation-settings: "opsz" 144, "SOFT" 50;
	font-weight: 400;
	letter-spacing: -0.025em;
}

/* ===== LOGO — BIGGER ===== */
.site-header__brand {
	display: inline-flex !important;
	align-items: center !important;
	gap: 0 !important;
}
img.taraeco-logo,
.site-header__brand img.custom-logo {
	height: 96px !important;
	width: auto !important;
	max-height: 96px !important;
	max-width: 320px !important;
	object-fit: contain !important;
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
	/* dark-green logo → invert to cream for dark header */
	filter: brightness(0) invert(0.95) sepia(0.12) !important;
	opacity: 0.95;
	transition: height .35s var(--ease-out), filter .3s ease, opacity .3s ease;
}
img.taraeco-logo:hover,
.site-header__brand img.custom-logo:hover {
	opacity: 1;
	filter: brightness(0) invert(0.85) sepia(0.7) saturate(2.5) !important;
}
.site-header.is-scrolled img.taraeco-logo,
.site-header.is-scrolled .site-header__brand img.custom-logo {
	height: 70px !important;
	max-height: 70px !important;
}
@media (max-width: 1024px) {
	img.taraeco-logo,
	.site-header__brand img.custom-logo { height: 80px !important; max-height: 80px !important; max-width: 220px !important; }
	.site-header.is-scrolled img.taraeco-logo,
	.site-header.is-scrolled .site-header__brand img.custom-logo { height: 64px !important; max-height: 64px !important; }
}
@media (max-width: 720px) {
	img.taraeco-logo,
	.site-header__brand img.custom-logo { height: 72px !important; max-height: 72px !important; max-width: 200px !important; }
	.site-header.is-scrolled img.taraeco-logo,
	.site-header.is-scrolled .site-header__brand img.custom-logo { height: 58px !important; max-height: 58px !important; }
}

/* ===== Push lang + hamburger to the far right on mobile/tablet ===== */
.site-header__actions {
	margin-left: auto !important;
}

/* ===== Scroll progress bar — hidden on mobile, sits at very top on desktop ===== */
.scroll-progress {
	position: fixed;
	top: 0; left: 0;
	height: 2px;
	width: 0%;
	background: linear-gradient(90deg, var(--c-accent), var(--c-accent-2));
	z-index: 101; /* above header but below modal/nav */
	transition: width .08s linear;
	box-shadow: 0 0 12px var(--c-glow);
	pointer-events: none;
}
.admin-bar .scroll-progress { top: 32px; }
@media screen and (max-width: 782px) {
	.admin-bar .scroll-progress { top: 46px; }
}
@media screen and (max-width: 600px) {
	.admin-bar .scroll-progress { top: 0; }
}
@media (max-width: 720px) {
	.scroll-progress { display: none !important; }
}

/* ===== Cursor follower ===== */
.cursor-dot {
	position: fixed;
	width: 8px; height: 8px;
	background: var(--c-accent);
	border-radius: 50%;
	pointer-events: none;
	z-index: 9998;
	mix-blend-mode: difference;
	transform: translate(-50%, -50%);
	transition: width .25s var(--ease-spring), height .25s var(--ease-spring), background .25s ease;
	display: none;
}
.cursor-ring {
	position: fixed;
	width: 40px; height: 40px;
	border: 1px solid var(--c-accent);
	border-radius: 50%;
	pointer-events: none;
	z-index: 9997;
	transform: translate(-50%, -50%);
	transition: width .35s var(--ease-spring), height .35s var(--ease-spring), border-color .25s ease, opacity .25s ease;
	opacity: .5;
	display: none;
}
.cursor-dot.is-hover { width: 14px; height: 14px; }
.cursor-ring.is-hover { width: 64px; height: 64px; opacity: 1; }
@media (hover: hover) and (pointer: fine) {
	.cursor-dot, .cursor-ring { display: block; }
	body { cursor: none !important; }
	a, button, label, input, textarea { cursor: none !important; }
}

/* ===== Body ambient gradient ===== */
body::before {
	content: "";
	position: fixed; inset: 0;
	background:
		radial-gradient(ellipse at 20% 0%, rgba(126, 168, 130, 0.08), transparent 50%),
		radial-gradient(ellipse at 85% 100%, rgba(201, 169, 106, 0.06), transparent 50%);
	pointer-events: none;
	z-index: 0;
}

/* ===== Site Header — strict fixed positioning ===== */
.site-header {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	z-index: 100 !important;
	padding: 14px 0;
	transition: background .35s var(--ease-out), padding .35s var(--ease-out), backdrop-filter .35s var(--ease-out);
	transform: none !important;
	background: linear-gradient(180deg, rgba(10, 19, 13, 0.6), rgba(10, 19, 13, 0));
}
.site-header.is-scrolled {
	background: rgba(10, 19, 13, 0.85) !important;
	backdrop-filter: blur(20px) saturate(1.2);
	-webkit-backdrop-filter: blur(20px) saturate(1.2);
	border-bottom: 1px solid var(--c-line-bright);
}
.admin-bar .site-header { top: 32px !important; }
@media screen and (max-width: 782px) {
	.admin-bar .site-header { top: 46px !important; }
}
@media screen and (max-width: 600px) {
	.admin-bar .site-header { top: 0 !important; } /* WP hides admin bar < 600px */
}
.site-header.is-scrolled {
	background: rgba(10, 19, 13, 0.72);
	backdrop-filter: blur(20px) saturate(1.2);
	-webkit-backdrop-filter: blur(20px) saturate(1.2);
	border-bottom: 1px solid var(--c-line-bright);
}
.nav-list a {
	font-size: .78rem;
	letter-spacing: .18em;
}

/* Lang switch pill */
.lang-switch {
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid var(--c-line);
	border-radius: 999px;
	padding: 4px 10px;
	font-size: .7rem;
	letter-spacing: .2em;
	gap: 4px;
}
.lang-switch a {
	padding: 4px 8px;
	border-radius: 999px;
	transition: background .25s ease, color .25s ease;
}
.lang-switch a.is-active {
	background: var(--c-accent);
	color: #1b1606;
}
.lang-switch > span { color: var(--c-line); }

/* ===== Buttons — modern with magnetic + arrow ===== */
.btn {
	position: relative;
	overflow: hidden;
	font-size: .78rem;
	letter-spacing: .2em;
	transition: transform .4s var(--ease-out), box-shadow .4s var(--ease-out), background .35s ease, color .35s ease;
}
.btn--primary {
	background: var(--c-accent);
	color: #1b1606;
	box-shadow: 0 0 0 0 var(--c-glow);
}
.btn--primary:hover {
	box-shadow: 0 14px 40px var(--c-glow), 0 0 0 1px var(--c-accent-2) inset;
	transform: translateY(-3px);
}
.btn--primary::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,.35), transparent 70%);
	transform: translateX(-110%);
	transition: transform .8s var(--ease-out);
}
.btn--primary:hover::before { transform: translateX(110%); }
.btn__label { position: relative; z-index: 1; display: inline-block; }
.btn__arrow {
	position: relative; z-index: 1;
	display: inline-block;
	transition: transform .35s var(--ease-out);
}
.btn--primary:hover .btn__arrow { transform: translateX(4px); }

.btn--ghost {
	color: var(--c-ink);
	border: 1px solid var(--c-line-bright);
	background: rgba(255, 255, 255, 0.02);
	backdrop-filter: blur(8px);
}
.btn--ghost:hover {
	border-color: var(--c-accent);
	color: var(--c-accent);
	background: rgba(201, 169, 106, 0.06);
	transform: translateY(-3px);
}

/* ===== HERO — left-aligned editorial ===== */
.hero {
	height: 100vh;
	min-height: 780px;
	max-height: 1100px;
	padding: 140px 0 140px;
	overflow: hidden;
	display: flex !important;
	align-items: center;
}
.hero__veil {
	background:
		linear-gradient(90deg, rgba(8, 16, 11, .85) 0%, rgba(8, 16, 11, .55) 35%, rgba(8, 16, 11, .15) 70%, rgba(8, 16, 11, 0) 100%),
		linear-gradient(180deg, rgba(8, 16, 11, .35) 0%, rgba(8, 16, 11, .1) 30%, rgba(8, 16, 11, .5) 75%, rgba(8, 16, 11, .98) 100%);
}
/* Subtle grain on hero (cheap noise) */
.hero::after {
	content: "";
	position: absolute; inset: 0;
	background-image: radial-gradient(circle at 1px 1px, rgba(255,255,255,.025) 1px, transparent 1px);
	background-size: 3px 3px;
	mix-blend-mode: overlay;
	pointer-events: none;
	z-index: 1;
}

.hero__inner {
	position: relative; z-index: 3;
	width: 100%;
	display: flex;
	align-items: center;
}
.hero__content {
	max-width: 720px;
	width: 100%;
	text-align: left;
	margin-left: 0;
	margin-right: auto;
}

/* Hidden — kept for backward compat */
.hero__meta { display: none !important; }
.hero__id {
	font-family: var(--font-sans);
	font-size: .65rem;
	font-weight: 500;
	letter-spacing: .3em;
	color: rgba(245, 241, 232, 0.7);
	text-transform: uppercase;
	padding: 7px 14px;
	border: 1px solid rgba(245, 241, 232, 0.15);
	border-radius: 999px;
	background: rgba(255,255,255,0.04);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}
.hero__live {
	font-family: var(--font-sans);
	font-size: .65rem;
	font-weight: 500;
	letter-spacing: .25em;
	color: rgba(245, 241, 232, 0.85);
	text-transform: uppercase;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 7px 14px;
	border: 1px solid rgba(125, 220, 138, 0.25);
	border-radius: 999px;
	background: rgba(125, 220, 138, 0.06);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}
.hero__live-dot {
	width: 8px; height: 8px;
	background: #7ddc8a;
	border-radius: 50%;
	box-shadow: 0 0 12px #7ddc8a, 0 0 24px rgba(125, 220, 138, 0.5);
	animation: livePulse 1.8s ease-in-out infinite;
}
@keyframes livePulse {
	0%, 100% { opacity: .8; transform: scale(1); }
	50%      { opacity: 1; transform: scale(1.25); }
}

.hero__kicker {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-family: var(--font-sans);
	font-size: .7rem;
	letter-spacing: .35em;
	margin-bottom: 26px;
	padding-left: 0;
	color: var(--c-accent);
	text-transform: uppercase;
}
.hero__kicker::before {
	content: "";
	display: inline-block;
	position: static;
	width: 28px; height: 1px;
	background: var(--c-accent);
	top: auto;
}

.hero__title {
	font-family: var(--font-serif);
	font-size: clamp(3.6rem, 8vw, 7.5rem);
	font-weight: 400;
	font-variation-settings: "opsz" 144, "SOFT" 70;
	line-height: .92;
	letter-spacing: -0.035em;
	margin-bottom: 32px;
	color: var(--c-ink);
	text-shadow: 0 8px 50px rgba(0,0,0,.55);
}
.hero__title-line {
	display: block;
}
.hero__title-line--2 {
	color: var(--c-accent);
	font-variation-settings: "opsz" 144, "SOFT" 100;
}
.hero__title-line--2 em {
	font-style: italic;
	font-variation-settings: "opsz" 144, "SOFT" 100;
	font-weight: 300;
}

.hero__subtitle {
	font-family: var(--font-sans);
	font-size: clamp(1rem, 1.2vw, 1.15rem);
	font-weight: 400;
	max-width: 520px;
	color: rgba(245, 241, 232, 0.82);
	line-height: 1.65;
	margin-bottom: 44px;
	text-shadow: 0 2px 18px rgba(0,0,0,.5);
	letter-spacing: 0.005em;
}
.hero__cta { gap: 14px; }

.hero__rating {
	position: absolute;
	right: var(--gutter); bottom: 80px;
	padding: 16px 20px;
	background: var(--c-glass);
	backdrop-filter: blur(var(--blur-md)) saturate(1.1);
	-webkit-backdrop-filter: blur(var(--blur-md)) saturate(1.1);
	border: 1px solid var(--c-line-bright);
	border-radius: 18px;
	display: flex; align-items: center; gap: 18px;
	z-index: 3;
	box-shadow: 0 24px 60px rgba(0,0,0,0.35);
}
.hero__rating-num {
	font-family: var(--font-serif);
	font-size: 2.6rem;
	line-height: 1;
	color: var(--c-accent);
}
.hero__rating-meta { display: flex; flex-direction: column; gap: 4px; }
.hero__rating-stars { color: var(--c-accent); letter-spacing: .15em; font-size: .85rem; }
.hero__rating-text { font-size: .7rem; letter-spacing: .12em; color: var(--c-ink-2); }
@media (max-width: 820px) { .hero__rating { display: none; } }

.hero__coords {
	position: absolute;
	left: var(--gutter); bottom: 80px;
	display: flex; align-items: center; gap: 14px;
	font-family: var(--font-sans);
	font-size: .68rem;
	letter-spacing: .4em;
	color: var(--c-muted);
	text-transform: uppercase;
	z-index: 3;
}
.hero__coords .sep {
	display: inline-block; width: 30px; height: 1px;
	background: var(--c-accent);
	opacity: .6;
}
@media (max-width: 820px) { .hero__coords { display: none; } }

/* Hide old scroll indicator if still rendered anywhere */
.hero__scroll { display: none !important; }

/* ===== Marquee — refined ===== */
.marquee {
	padding: 28px 0;
	background: rgba(10, 19, 13, 0.5);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border-top: 1px solid var(--c-line);
	border-bottom: 1px solid var(--c-line);
	position: relative; z-index: 2;
}
.marquee__track {
	font-size: .95rem;
	letter-spacing: .35em;
	opacity: .55;
	gap: 64px;
}

/* ===== Sections numbering ===== */
.section { padding: clamp(90px, 11vw, 160px) 0; position: relative; }
.section[data-section]::before {
	content: attr(data-section);
	position: absolute;
	top: clamp(60px, 8vw, 110px);
	right: var(--gutter);
	font-family: var(--font-serif);
	font-size: clamp(6rem, 14vw, 14rem);
	line-height: 1;
	color: var(--c-line);
	opacity: .35;
	pointer-events: none;
	z-index: 0;
	font-style: italic;
}

.section > .container { position: relative; z-index: 1; }

.section__num {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	font-family: var(--font-sans);
	font-size: .72rem;
	letter-spacing: .3em;
	text-transform: uppercase;
	color: var(--c-accent);
	margin-bottom: 22px;
}
.section__num span {
	font-family: var(--font-serif);
	font-size: 1.1rem;
	letter-spacing: 0;
	color: var(--c-accent-2);
}
.section__num i {
	display: inline-block;
	width: 42px; height: 1px;
	background: var(--c-accent);
	opacity: .8;
}

.section__title {
	font-size: clamp(2.4rem, 5vw, 4.2rem);
	font-weight: 400;
	letter-spacing: -0.015em;
	line-height: 1.02;
}

.section__head--center { max-width: 780px; }
.section__head { margin-bottom: clamp(48px, 6vw, 80px); }

/* ===== Stats — bigger, monumental ===== */
.stats {
	gap: 40px;
	padding-top: 40px;
	margin-top: 56px;
	border-top: 1px solid var(--c-line);
}
.stat__num {
	font-size: clamp(2.6rem, 4.5vw, 3.8rem);
	letter-spacing: -0.02em;
	background: linear-gradient(180deg, var(--c-accent-2), var(--c-accent));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}
.stat__lbl { font-size: .7rem; letter-spacing: .25em; margin-top: 12px; }

/* ===== Media stack — modern frame ===== */
.media-stack { aspect-ratio: 5 / 6; min-height: 520px; }
.media-stack__img {
	border-radius: 22px;
	transition: transform .8s var(--ease-out);
}
.media-stack__img--1 { box-shadow: 0 40px 80px rgba(0,0,0,0.45); }
.media-stack__img--2 {
	border: 4px solid var(--c-bg);
	box-shadow: 0 30px 60px rgba(0,0,0,0.5);
}
.media-stack__deco {
	border: 1px solid var(--c-accent);
	border-radius: 22px;
	opacity: .35;
}

/* ===== Amenities — glassmorphism cards ===== */
.amenities-grid {
	gap: 14px;
	background: transparent;
	border: none;
}
.amenity {
	background: var(--c-glass);
	backdrop-filter: blur(var(--blur-md)) saturate(1.1);
	-webkit-backdrop-filter: blur(var(--blur-md)) saturate(1.1);
	border: 1px solid var(--c-line);
	border-radius: 18px;
	padding: 32px 28px;
	position: relative;
	overflow: hidden;
	transition: transform .45s var(--ease-out), border-color .35s ease, background .35s ease;
}
.amenity::before {
	content: "";
	position: absolute;
	top: -50%; right: -50%;
	width: 200%; height: 200%;
	background: radial-gradient(circle at top right, var(--c-glow-soft), transparent 50%);
	opacity: 0;
	transition: opacity .5s ease;
	pointer-events: none;
}
.amenity:hover {
	background: var(--c-glass-2);
	border-color: var(--c-accent);
	transform: translateY(-6px);
}
.amenity:hover::before { opacity: 1; }
.amenity__icon { width: 44px; height: 44px; margin-bottom: 24px; }
.amenity__title { font-size: 1.05rem; margin-bottom: 10px; font-weight: 500; }
.amenity__desc { font-size: .9rem; line-height: 1.6; color: rgba(216, 210, 194, 0.75); }

/* ===== GALLERY — editorial asymmetric grid ===== */
.section--gallery {
	background:
		radial-gradient(ellipse at 70% 0%, rgba(126, 168, 130, 0.05), transparent 50%),
		var(--c-bg-2);
}

/* Reset column-count masonry from main.css and use CSS grid instead */
.gallery-grid {
	column-count: unset !important;
	column-gap: unset !important;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-auto-rows: 280px;
	grid-auto-flow: dense;
	gap: 14px;
}
.gallery-item {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: 18px;
	background: var(--c-surface);
	cursor: pointer;
	margin-bottom: 0 !important;
	transform: translateZ(0);
	transition: transform .6s var(--ease-out), box-shadow .5s ease;
	isolation: isolate;
}
.gallery-item img {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform 1.2s var(--ease-out), filter .5s ease;
	z-index: 0;
}

/* Size variants */
.gallery-item--wide { grid-column: span 2; grid-row: span 1; }
.gallery-item--tall { grid-column: span 1; grid-row: span 2; }
.gallery-item--std  { grid-column: span 1; grid-row: span 1; }
.gallery-item--xl   { grid-column: span 2; grid-row: span 2; }

/* Subtle base shadow */
.gallery-item {
	box-shadow: 0 14px 40px rgba(0,0,0,0.3);
}
.gallery-item:hover {
	transform: translateY(-4px) scale(1.005);
	box-shadow: 0 24px 60px rgba(0,0,0,0.5), 0 0 0 1px var(--c-accent) inset;
}
.gallery-item:hover img { transform: scale(1.08); filter: brightness(1.05); }

/* Gradient veil — always subtle, intensifies on hover */
.gallery-item::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(180deg,
		rgba(10, 19, 13, 0.0) 0%,
		rgba(10, 19, 13, 0.0) 40%,
		rgba(10, 19, 13, 0.55) 100%);
	opacity: .6;
	transition: opacity .45s ease;
	pointer-events: none;
}
.gallery-item:hover::after { opacity: 1; }

/* Overlay content */
.gallery-item__overlay {
	position: absolute;
	inset: 0;
	z-index: 2;
	padding: 22px 24px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	color: var(--c-ink);
	pointer-events: none;
}
.gallery-item__top {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 12px;
	transform: translateY(-10px);
	opacity: 0;
	transition: transform .5s var(--ease-out), opacity .4s ease;
}
.gallery-item__bottom {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 20px;
	transform: translateY(20px);
	opacity: 0;
	transition: transform .55s var(--ease-out) .05s, opacity .45s ease .05s;
}
.gallery-item:hover .gallery-item__top,
.gallery-item:hover .gallery-item__bottom { transform: translateY(0); opacity: 1; }

.gallery-item__num {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--font-sans);
	font-size: .7rem;
	letter-spacing: .25em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.85);
	padding: 6px 10px;
	background: rgba(0, 0, 0, 0.45);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, 0.1);
}
.gallery-item__num i {
	display: inline-block;
	width: 14px; height: 1px;
	background: var(--c-accent);
}
.gallery-item__tag {
	font-family: var(--font-sans);
	font-size: .68rem;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: #1b1606;
	padding: 6px 12px;
	background: var(--c-accent);
	border-radius: 999px;
	font-weight: 500;
	box-shadow: 0 6px 18px var(--c-glow);
}
.gallery-item__caption {
	font-family: var(--font-serif);
	font-size: 1.15rem;
	line-height: 1.2;
	color: var(--c-ink);
	max-width: 70%;
	font-weight: 500;
	letter-spacing: -0.005em;
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.45);
}
.gallery-item--tall .gallery-item__caption,
.gallery-item--wide .gallery-item__caption { font-size: 1.4rem; }
.gallery-item--xl .gallery-item__caption { font-size: 1.65rem; max-width: 80%; }

.gallery-item__cta {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 16px;
	background: rgba(255, 255, 255, 0.1);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border: 1px solid rgba(255, 255, 255, 0.15);
	border-radius: 999px;
	color: var(--c-ink);
	font-family: var(--font-sans);
	font-size: .72rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	transition: background .3s ease, border-color .3s ease, color .3s ease;
}
.gallery-item__cta svg { transition: transform .35s var(--ease-out); }
.gallery-item:hover .gallery-item__cta {
	background: var(--c-accent);
	border-color: var(--c-accent);
	color: #1b1606;
}
.gallery-item:hover .gallery-item__cta svg { transform: translate(3px, -3px); }

/* Hide legacy zoom badge */
.gallery-item__zoom { display: none !important; }

/* Responsive */
@media (max-width: 1024px) {
	.gallery-grid { grid-template-columns: repeat(3, 1fr); grid-auto-rows: 240px; }
	.gallery-item--wide { grid-column: span 2; }
	.gallery-item--tall { grid-column: span 1; grid-row: span 2; }
}
@media (max-width: 720px) {
	.gallery-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 200px; gap: 10px; }
	.gallery-item--wide,
	.gallery-item--xl { grid-column: span 2; grid-row: span 1; }
	.gallery-item--tall { grid-column: span 1; grid-row: span 2; }
	.gallery-item__overlay { padding: 14px 16px; }
	.gallery-item__caption { font-size: .95rem !important; }
	.gallery-item__top,
	.gallery-item__bottom { opacity: 1; transform: none; }
}

/* ===== Activities — modern cards ===== */
.activities-grid { gap: 24px; }
.activity-card {
	background: var(--c-glass);
	backdrop-filter: blur(var(--blur-md));
	-webkit-backdrop-filter: blur(var(--blur-md));
	border: 1px solid var(--c-line);
	border-radius: 22px;
	overflow: hidden;
	position: relative;
}
.activity-card::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent, var(--c-glow-soft));
	opacity: 0;
	transition: opacity .4s ease;
	pointer-events: none;
	z-index: 1;
}
.activity-card:hover { border-color: var(--c-accent); transform: translateY(-8px); }
.activity-card:hover::before { opacity: 1; }
.activity-card__media { aspect-ratio: 4 / 3; }
.activity-card__media img { transition: transform 1.1s var(--ease-out); }
.activity-card:hover .activity-card__media img { transform: scale(1.08); }
.activity-card__body { padding: 26px 28px 30px; position: relative; z-index: 2; }
.activity-card__body h3 { font-size: 1.25rem; margin-bottom: 10px; }
.activity-card__body p { font-size: .92rem; line-height: 1.55; color: rgba(216, 210, 194, 0.78); }

/* ===== Location / Map ===== */
.map-wrap {
	border-radius: 22px;
	border: 1px solid var(--c-line-bright);
	box-shadow: 0 40px 100px rgba(0,0,0,0.35);
}

/* ===== Contact / Booking form ===== */
.section--contact .section__split {
	grid-template-columns: 0.9fr 1.1fr;
	gap: clamp(40px, 6vw, 80px);
}
@media (max-width: 1024px) {
	.section--contact .section__split { grid-template-columns: 1fr; }
}

.contact-list li {
	padding: 16px 0;
	font-size: 1rem;
}
.contact-list__icon {
	width: 38px; height: 38px;
	background: rgba(201, 169, 106, 0.08);
	border-color: var(--c-line-bright);
}

/* Booking form — modern */
.booking-form {
	background: var(--c-glass);
	backdrop-filter: blur(var(--blur-lg)) saturate(1.1);
	-webkit-backdrop-filter: blur(var(--blur-lg)) saturate(1.1);
	border: 1px solid var(--c-line-bright);
	border-radius: 22px;
	padding: clamp(28px, 3.5vw, 44px);
	box-shadow: 0 40px 100px rgba(0,0,0,0.4);
	position: relative;
	overflow: hidden;
}
.booking-form::before {
	content: "";
	position: absolute;
	top: -100px; right: -100px;
	width: 300px; height: 300px;
	background: radial-gradient(circle, var(--c-glow-soft), transparent 70%);
	pointer-events: none;
}
.booking-form__row { margin-bottom: 16px; position: relative; z-index: 1; }
.booking-form label > span {
	font-size: .68rem;
	letter-spacing: .2em;
	margin-bottom: 8px;
	color: var(--c-muted);
}
.booking-form input,
.booking-form textarea {
	background: rgba(10, 19, 13, 0.6);
	border: 1px solid var(--c-line);
	border-radius: 10px;
	padding: 16px 18px;
	font-size: .95rem;
	transition: border-color .3s ease, background .3s ease, box-shadow .3s ease;
}
.booking-form input:focus,
.booking-form textarea:focus {
	border-color: var(--c-accent);
	background: rgba(10, 19, 13, 0.85);
	box-shadow: 0 0 0 4px var(--c-glow-soft);
}
.booking-form .btn--block {
	margin-top: 8px;
	padding: 20px;
}

/* ===== Footer refinement ===== */
.site-footer {
	background: #060b08;
	border-top: 1px solid var(--c-line);
	padding: 100px 0 40px;
}

/* Footer logo — uses same dark→cream inversion as header */
.footer-brand {
	display: inline-block;
	margin-bottom: 20px;
}
img.footer-logo,
.footer-brand img.taraeco-logo {
	height: 88px !important;
	max-height: 88px !important;
	max-width: 240px !important;
	width: auto !important;
	object-fit: contain !important;
	display: block !important;
	filter: brightness(0) invert(0.92) sepia(0.15) !important;
	opacity: 0.9;
	transition: opacity .3s ease, filter .3s ease;
}
.footer-brand:hover img.footer-logo,
.footer-brand:hover img.taraeco-logo {
	opacity: 1;
	filter: brightness(0) invert(0.85) sepia(0.7) saturate(2.5) !important;
}
@media (max-width: 720px) {
	img.footer-logo,
	.footer-brand img.taraeco-logo { height: 72px !important; max-height: 72px !important; }
}

/* Footer bottom bar — copy + credit */
.site-footer__bottom {
	display: flex !important;
	justify-content: space-between;
	align-items: center;
	gap: 18px;
	flex-wrap: wrap;
}
.footer-credit {
	font-family: var(--font-sans);
	font-size: .72rem;
	letter-spacing: .15em;
	text-transform: uppercase;
	color: var(--c-muted);
	transition: color .3s ease;
	display: inline-flex;
	align-items: center;
	gap: 4px;
}
.footer-credit:hover { color: var(--c-accent); }
.footer-credit__dash { color: var(--c-accent); margin: 0 4px; }
.footer-credit__name {
	font-family: var(--font-serif);
	font-style: italic;
	text-transform: none;
	letter-spacing: 0;
	font-size: .9rem;
	color: var(--c-ink);
	transition: color .3s ease;
}
.footer-credit:hover .footer-credit__name { color: var(--c-accent); }
@media (max-width: 720px) {
	.site-footer__bottom { flex-direction: column; align-items: flex-start; gap: 12px; }
	.footer-credit { font-size: .68rem; }
}
.footer-h {
	font-family: var(--font-sans);
	font-size: .68rem;
	letter-spacing: .3em;
	text-transform: uppercase;
	color: var(--c-muted);
	margin-bottom: 22px;
}
.footer-list li { padding: 8px 0; font-size: .92rem; }
.footer-list a { color: var(--c-ink-2); transition: color .25s ease, transform .3s var(--ease-out); display: inline-block; }
.footer-list a:hover { color: var(--c-accent); transform: translateX(4px); }

/* ===== Reveal: smoother ===== */
.js .reveal, .js .reveal-up { will-change: transform, opacity; }

/* ===== Responsive ===== */
@media (max-width: 1024px) {
	.hero__content { max-width: 100%; }
	.hero__title { font-size: clamp(3rem, 10vw, 5rem); }
}
@media (max-width: 720px) {
	/* Section padding tighter on mobile */
	.section { padding: 60px 0 !important; }
	.section__head { margin-bottom: 32px !important; }

	/* Smaller section number watermark, moved out of the way */
	.section[data-section]::before {
		font-size: 4.5rem !important;
		right: -8px;
		top: 12px;
		opacity: .18;
	}

	/* Section title tighter */
	.section__title { font-size: clamp(1.9rem, 8vw, 2.4rem) !important; }
	.section__num { font-size: .62rem !important; gap: 10px; margin-bottom: 16px; }
	.section__num span { font-size: .95rem !important; }
	.section__num i { width: 28px !important; }
	.section__lede { font-size: 1rem !important; }
	.section__body { font-size: .95rem !important; }
	.section__note { font-size: .92rem; }

	/* Hero */
	.hero { min-height: 600px; padding: 110px 0 80px; }
	.hero__title { font-size: clamp(2.6rem, 12vw, 3.4rem); margin-bottom: 20px; }
	.hero__subtitle { font-size: .95rem; margin-bottom: 28px; line-height: 1.55; }
	.hero__rating { display: none; }
	.hero__coords { display: none; }

	/* About — single column, no media stack overflow */
	.section--about .section__split { gap: 36px !important; }
	.media-stack { aspect-ratio: auto !important; min-height: 360px !important; max-width: 100% !important; margin: 0 !important; }
	.media-stack__img--1 { width: 88% !important; height: 70% !important; }
	.media-stack__img--2 { width: 55% !important; height: 45% !important; }
	.media-stack__deco { display: none; }

	/* Stats — horizontal scroll-free, single column with smaller gaps */
	.stats { grid-template-columns: 1fr !important; gap: 18px !important; text-align: left; margin-top: 32px !important; padding-top: 24px !important; }
	.stat__num { font-size: 2.4rem !important; }
	.stat__lbl { font-size: .65rem !important; }

	/* Amenities */
	.amenities-grid { grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
	.amenity { padding: 22px 18px !important; border-radius: 14px; }
	.amenity__icon { width: 36px !important; height: 36px !important; margin-bottom: 14px !important; }
	.amenity__title { font-size: .95rem !important; margin-bottom: 6px !important; }
	.amenity__desc { font-size: .78rem !important; line-height: 1.5; }

	/* Activities — single column, smaller cards */
	.activities-grid { grid-template-columns: 1fr !important; gap: 16px !important; }
	.activity-card__body { padding: 18px 20px 22px !important; }
	.activity-card__body h3 { font-size: 1.1rem !important; }
	.activity-card__body p { font-size: .88rem !important; }

	/* Map */
	.map-wrap iframe { height: 360px !important; }

	/* Contact / form */
	.section--contact .section__split { grid-template-columns: 1fr !important; gap: 28px !important; }
	.booking-form { padding: 22px !important; border-radius: 16px !important; }
	.booking-form__row--two,
	.booking-form__row--three { grid-template-columns: 1fr !important; gap: 12px !important; }
	.booking-form input,
	.booking-form textarea { padding: 12px 14px !important; font-size: .92rem !important; }
	.contact-list li { font-size: .88rem !important; padding: 12px 0 !important; }

	/* Marquee — smaller, less ostentatious */
	.marquee { padding: 14px 0 !important; }
	.marquee__track { font-size: .75rem !important; gap: 36px !important; letter-spacing: .25em !important; }

	/* Footer */
	.site-footer { padding: 60px 0 30px !important; }
	.site-footer__grid { gap: 28px !important; margin-bottom: 36px !important; }
	.footer-h { margin-bottom: 14px !important; }

	/* Gallery — already 2-col but tighten */
	.gallery-grid { grid-auto-rows: 180px !important; gap: 8px !important; }
	.gallery-item { border-radius: 12px; }
	.gallery-item__overlay { padding: 12px 14px !important; }
	.gallery-item__num { font-size: .58rem !important; padding: 4px 8px !important; letter-spacing: .18em !important; }
	.gallery-item__tag { font-size: .58rem !important; padding: 4px 8px !important; letter-spacing: .15em !important; }
	.gallery-item__caption { font-size: .88rem !important; }
	.gallery-item--wide .gallery-item__caption,
	.gallery-item--tall .gallery-item__caption,
	.gallery-item--xl .gallery-item__caption { font-size: .95rem !important; }
	.gallery-item__cta { font-size: .6rem !important; padding: 6px 10px !important; }
	.gallery-item__cta svg { width: 14px; height: 14px; }

	/* Cursor */
	.cursor-dot, .cursor-ring { display: none !important; }
	body { cursor: auto !important; }
}

@media (max-width: 480px) {
	.amenities-grid { grid-template-columns: 1fr !important; }
	.gallery-grid { grid-template-columns: 1fr !important; grid-auto-rows: 220px !important; }
	.gallery-item--wide, .gallery-item--tall, .gallery-item--xl,
	.gallery-item--std { grid-column: span 1 !important; grid-row: span 1 !important; }
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
	.cursor-dot, .cursor-ring { display: none !important; }
}
