:root {
	--es-green: #399f4f;
	--es-green-dark: #2d7e3f;
	--es-green-darker: #1e5a2c;
	--es-green-deep: #163f20;
	--es-green-light: #6bc07a;
	--es-green-pale: #e8f5eb;
	--es-cream: #f7faf7;
	--es-text: #2d3830;
	--es-text-muted: #6b7c6f;
	--es-border: #d4e6d8;
	--es-whatsapp: #25d366;
	--es-gold: #d4a24c;

	/* Override Bootstrap primary */
	--bs-primary: #399f4f;
	--bs-primary-rgb: 57, 159, 79;
	--bs-link-color: #2d7e3f;
	--bs-link-hover-color: #1e5a2c;
}

body {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	color: var(--es-text);
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
}

html {
	scroll-behavior: smooth;
}

.container {
	max-width: 1200px;
}

img {
	max-width: 100%;
	max-height: 100%;
}

.bg {
	background: linear-gradient(160deg, var(--es-green-deep) 0%, var(--es-green-darker) 35%, var(--es-green-dark) 70%, var(--es-green) 100%)
}

/* Breakout technique — full-width sections inside .container */
.section-breakout {
	width: 100vw;
	position: relative;
	left: 50%;
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
}

body.page-home main.flex-grow-1 {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

/* --- Bootstrap Color Overrides (hover/focus/active states) --- */
.btn-primary {
	background-color: var(--es-green);
	border-color: var(--es-green);
	color: #fff;
}

.btn-primary:hover,
.btn-primary:focus {
	background-color: var(--es-green-dark);
	border-color: var(--es-green-dark);
	color: #fff;
}

.btn-primary:active {
	background-color: var(--es-green-darker) !important;
	border-color: var(--es-green-darker) !important;
}

.btn-outline-primary {
	color: var(--es-green);
	border-color: var(--es-green);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
	background-color: var(--es-green);
	border-color: var(--es-green);
	color: #fff;
}

.btn-success {
	background-color: var(--es-whatsapp);
	border-color: var(--es-whatsapp);
	color: #fff;
}

.btn-success:hover,
.btn-success:focus {
	background-color: #1fb855;
	border-color: #1fb855;
	color: #fff;
}

.btn {
	border-radius: 2rem;
	font-weight: 500;
	letter-spacing: 0.01em;
	transition: all 0.25s ease;
}

.btn-book {
	background-color: var(--es-whatsapp);
	border-color: var(--es-whatsapp);
	color: #fff;
	font-size: 0.85rem;
}

.btn-book:hover,
.btn-book:focus {
	background-color: #1fb855;
	border-color: #1fb855;
	color: #fff;
}

.text-primary {
	color: var(--es-green) !important;
}

.bg-light {
	background-color: var(--es-cream) !important;
}

/* --- Navbar (hover/focus + responsive) --- */
.navbar .nav-link {
	color: rgba(255, 255, 255, 0.8);
	font-size: 0.9rem;
	padding: 0.5rem 0.75rem;
	transition: color 0.2s ease;
}

.navbar .nav-link:hover,
.navbar .nav-link:focus {
	color: #fff;
}

/* --- Mobile nav modal link hover --- */
#navModal a:not(.btn):hover,
#navModal a:not(.btn):focus {
	color: rgba(255, 255, 255, 0.7) !important;
}

/* --- Hero (::before overlay, responsive, button hover) --- */
.hero-section {
	min-height: 65vh;
}

.hero-section::before {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 70% 30%, rgba(255, 255, 255, 0.06) 0%, transparent 60%);
	pointer-events: none;
}

.hero-overlay {
	padding: 4rem 0;
}

.hero-section .btn-outline-light {
	border-color: rgba(255, 255, 255, 0.4);
	color: #fff;
}

.hero-section .btn-outline-light:hover {
	background-color: rgba(255, 255, 255, 0.12);
	border-color: rgba(255, 255, 255, 0.7);
	color: #fff;
}

/* --- Service Cards (hover transitions) --- */
.service-card {
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

@media (hover: hover) {
	.service-card:hover {
		transform: translateY(-6px);
		box-shadow: 0 1rem 2.5rem rgba(30, 90, 44, 0.1) !important;
	}
}

.service-card-img {
	aspect-ratio: 4/3;
	object-fit: cover;
	width: 100%;
	transition: transform 0.4s ease;
}

@media (hover: hover) {
	.service-card:hover .service-card-img {
		transform: scale(1.04);
	}
}

/* --- Horizontal Scroll Row (::after fade, scrollbar styling) --- */
.scroll-row-wrapper::after {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 40px;
	background: linear-gradient(to right, transparent, #fff);
	pointer-events: none;
	z-index: 2;
	transition: opacity 0.3s ease;
}

.bg-light .scroll-row-wrapper::after {
	background: linear-gradient(to right, transparent, var(--es-cream));
}

.scroll-row-wrapper.scroll-end::after {
	opacity: 0;
}

.scroll-row {
	scrollbar-width: thin;
	scrollbar-color: var(--es-border) transparent;
}

.scroll-row::-webkit-scrollbar {
	height: 4px;
}

.scroll-row::-webkit-scrollbar-track {
	background: transparent;
}

.scroll-row::-webkit-scrollbar-thumb {
	background: var(--es-border);
	border-radius: 2px;
}

/* --- Reviews section (::before, carousel hover/active) --- */
.reviews-section::before {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 30% 70%, rgba(255, 255, 255, 0.05) 0%, transparent 50%);
	pointer-events: none;
}

.reviews-section .display-6::after {
	background-color: rgba(255, 255, 255, 0.4);
}

.reviews-section .carousel-control-prev,
.reviews-section .carousel-control-next {
	width: 60px;
	height: 60px;
	top: 50%;
	transform: translateY(-50%);
	bottom: auto;
	opacity: 1;
	color: black;
	font-size: 2rem;
}

.reviews-section .carousel-control-prev {
	left: -7.5%;
}

.reviews-section .carousel-control-next {
	right: -7.5%;
}

.reviews-section .carousel-indicators button.active {
	background: #fff;
}

.review-col {
	min-height: 300px;
}

/* --- Hero social icons (hover state) --- */
.hero-social {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.12);
	color: rgba(255, 255, 255, 0.8);
	text-decoration: none;
	font-size: 1.15rem;
	transition: all 0.2s ease;
}

.hero-social:hover {
	background: rgba(255, 255, 255, 0.25);
	color: #fff;
}

/* --- Floating WhatsApp button (hover state) --- */
.whatsapp-float {
	position: fixed;
	bottom: 24px;
	right: 24px;
	z-index: 9999;
	width: 56px;
	height: 56px;
	background: var(--es-whatsapp);
	color: #fff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.6rem;
	text-decoration: none;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
	transition: all 0.3s ease;
}

.whatsapp-float:hover {
	background: #1fb855;
	color: #fff;
	transform: scale(1.1);
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
}

/* --- Footer (hover states) --- */
.footer-links a {
	color: rgba(255, 255, 255, 0.6);
	text-decoration: none;
	transition: color 0.2s ease;
}

.footer-links a:hover {
	color: var(--es-green-light);
}

.footer-links li {
	color: rgba(255, 255, 255, 0.5);
}

.footer-social {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.08);
	color: rgba(255, 255, 255, 0.7);
	text-decoration: none;
	font-size: 1.1rem;
	transition: all 0.2s ease;
}

.footer-social:hover {
	background: var(--es-green);
	color: #fff;
}

/* --- Accessible Focus --- */
.btn:focus-visible,
a:focus-visible {
	outline: 3px solid var(--es-green);
	outline-offset: 2px;
}

/* --- Block transitions on initial page load --- */
.no-transitions *,
.no-transitions *::before,
.no-transitions *::after {
	transition: none !important;
}

.rotate-right {
	rotate: 3deg;
}

.rotate-left {
	rotate: -3deg;
}

/* --- Responsive --- */

@media (max-width: 991px) {
	.btn-book {
		font-size: unset;
	}

	.section-breakout .display-6 {
		font-size: 1.6rem;
	}
}

@media (max-width: 767px) {
	.review-col {
		min-height: 225px;
	}

	.reviews-section .carousel-control-prev,
	.reviews-section .carousel-control-next {
		display: none;
	}
}

@media (max-width: 575px) {
	.hero-section {
		min-height: 55vh;
	}

	.hero-overlay {
		padding: 2.5rem 0;
	}

	.service-card-img {
		aspect-ratio: 16/10;
	}

	.review-col {
		min-height: 250px;
	}
}
