/* Express Cleaning - custom styles to complement Bootstrap */
:root {
	/* New brand palette */
	--pistachio: #98C78Fff;   /* fresh green */
	--ecru: #CBB378ff;        /* warm tan */
	--van-dyke: #453C39ff;    /* deep brown-gray */
	--gray: #757D79ff;        /* neutral gray */
	--honeydew: #F2FBE4ff;    /* very light green */

	/* Semantic aliases */
	--ec-primary: var(--van-dyke);
	--ec-accent: var(--pistachio);
	--ec-accent-hover: var(--ecru);

	/* Helpful RGB triplets for translucency */
	--ec-primary-rgb: 69, 60, 57;   /* #453C39 */
	--ec-accent-rgb: 152, 199, 143; /* #98C78F */

	/* Override Bootstrap theme colors */
	--bs-primary: var(--ec-primary);
	--bs-primary-rgb: 69, 60, 57; /* #453C39 */
	--bs-link-color: var(--ec-primary);
	--bs-link-hover-color: var(--ecru);
}

body {
	font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
}

.btn-cta {
	background: var(--ec-accent);
	color: #fff !important;
	border-color: var(--ec-accent);
}
.btn-cta:hover, .btn-cta:focus {
	background: var(--ec-accent-hover);
	border-color: var(--ec-accent-hover);
	color: #fff !important;
}

/* Special CTA color for Estimate button */
.btn-estimate {
	--est-start: #7c3aed; /* violet-600 */
	--est-end: #22d3ee;   /* cyan-400 */
	background: linear-gradient(90deg, var(--est-start), var(--est-end));
	color: #fff !important;
	border: none;
}
.btn-estimate:hover, .btn-estimate:focus {
	filter: brightness(1.05) saturate(1.05);
	box-shadow: 0 10px 28px -12px rgba(124, 58, 237, 0.45);
}
.btn-estimate:active { transform: translateY(1px); }

/* Navbar tweaks */
.navbar-brand span { color: var(--ec-primary); }

/* Epic Navbar - clean, glassy, modern */
.epic-nav {
	--nav-bg: rgba(255, 255, 255, 0.75);
	--nav-bg-strong: rgba(255, 255, 255, 0.92);
	--nav-border: rgba(var(--ec-primary-rgb), 0.10);
	--nav-shadow: 0 10px 30px -20px rgba(var(--ec-primary-rgb), 0.35);
	backdrop-filter: saturate(130%) blur(8px);
	-webkit-backdrop-filter: saturate(130%) blur(8px);
	background: var(--nav-bg) !important;
	border-bottom: 1px solid transparent !important;
	transition: background-color .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.epic-nav.nav-scrolled,
.epic-nav .navbar-collapse.show { /* stronger when scrolled or open */
	background: var(--nav-bg-strong) !important;
	border-bottom-color: var(--nav-border) !important;
	box-shadow: var(--nav-shadow);
}
.epic-nav .container { min-height: 64px; }
.epic-nav .navbar-brand {
	font-weight: 800;
	letter-spacing: 0.1px;
	color: var(--ec-primary);
}
.epic-nav .navbar-brand:hover { color: var(--ec-primary); }

/* Logo in navbar */
.epic-nav .navbar-brand img {
	height: 70px;
  width: auto;
  display: block;
}

/* Slightly reduce logo on very small screens to keep nav compact */
@media (max-width: 575.98px) {
	.epic-nav .navbar-brand img {
		height: 40px;
	}
}

.epic-nav .nav-link {
	position: relative;
	padding: .5rem .9rem;
	font-weight: 600;
	color: rgba(var(--ec-primary-rgb), 0.85);
	transition: color .2s ease;
}
.epic-nav .nav-link:hover,
.epic-nav .nav-link:focus { color: var(--ec-primary); }
.epic-nav .nav-link.active,
.epic-nav .nav-link[aria-current="page"] { color: var(--ec-primary); }
.epic-nav .nav-link::after {
	content: "";
	position: absolute;
	left: .9rem; right: .9rem; bottom: .25rem;
	height: 2px;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--ec-primary), var(--ec-accent));
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .25s ease;
}
.epic-nav .nav-link:hover::after,
.epic-nav .nav-link:focus::after,
.epic-nav .nav-link.active::after,
.epic-nav .nav-link[aria-current="page"]::after { transform: scaleX(1); }

.epic-nav .btn-cta {
	padding: .45rem .9rem;
	border-radius: .6rem;
	box-shadow: 0 8px 20px -12px rgba(var(--ec-accent-rgb), 0.5);
}
.epic-nav .btn-cta:hover { box-shadow: 0 10px 24px -12px rgba(var(--ec-accent-rgb), 0.55); }

/* Mobile menu panel aesthetics */
@media (max-width: 991.98px) {
	.epic-nav .navbar-collapse {
		background: var(--nav-bg-strong);
		backdrop-filter: saturate(130%) blur(10px);
		-webkit-backdrop-filter: saturate(130%) blur(10px);
		border-radius: .75rem;
		padding: .5rem;
		margin-top: .5rem;
		border: 1px solid var(--nav-border);
	}
	.epic-nav .nav-link { padding: .6rem .9rem; }
}

/* Toggler refinement */
.epic-nav .navbar-toggler { border-color: rgba(var(--ec-primary-rgb), .18); }
.epic-nav .navbar-toggler:focus { box-shadow: 0 0 0 .2rem rgba(var(--ec-accent-rgb), .25); }
.epic-nav .navbar-toggler-icon {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(69,60,57,0.85)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* Utilities */
.py-lg-6 { padding-top: 5rem !important; padding-bottom: 5rem !important; }

/* Footer small adjustments */
footer .small, footer small { color: rgba(var(--ec-primary-rgb), 0.7); }

/* Site footer */
.site-footer {
	background: linear-gradient(180deg, #ffffff 0%, #f8fbfc 100%);
}
.site-footer .container { padding-top: 3rem; padding-bottom: 3rem; }
.site-footer .fw-bold { color: var(--ec-primary); }
.site-footer p { color: rgba(var(--ec-primary-rgb), 0.80); }
.site-footer a { color: var(--ec-primary); text-decoration: none; }
.site-footer a:hover { color: var(--ecru); text-decoration: underline; }

.site-footer .footer-bottom {
	background: #f1f6f8;
	border-top: 1px solid rgba(var(--ec-primary-rgb), 0.08);
}
.site-footer .footer-bottom small { color: rgba(var(--ec-primary-rgb), 0.70); }

@media (max-width: 575.98px) {
	.site-footer .container { padding-top: 2.25rem; padding-bottom: 2.25rem; }
}

/* Hero image rounding on small screens */
@media (max-width: 576px) {
	.hero img { border-radius: .75rem; }
}

/* Service icons */
.service-icon {
	width: 48px;
	height: 48px;
	display: inline-block;
}

/* Epic Services Section */
.epic-services {
	position: relative;
	background: radial-gradient(1200px 600px at 10% -20%, rgba(var(--ec-accent-rgb), .18), transparent 60%),
						radial-gradient(1000px 700px at 110% 20%, rgba(var(--ec-accent-rgb), .18), transparent 60%),
							linear-gradient(180deg, #fff 0%, #f8fbfc 100%);
	overflow: hidden;
}

/* Epic Hero Section */
.epic-hero {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(1200px 500px at -10% 10%, rgba(var(--ec-accent-rgb), .12), transparent 60%),
		radial-gradient(1000px 600px at 110% 0%, rgba(var(--ec-accent-rgb), .12), transparent 60%),
		linear-gradient(180deg, #ffffff 0%, #f6fbfd 100%);
}
.epic-hero::before,
.epic-hero::after {
	content: "";
	position: absolute;
	inset: -30% -10% auto -10%;
	height: 70%;
	background: radial-gradient(closest-side, rgba(var(--ec-primary-rgb), 0.08), transparent 70%);
	filter: blur(40px);
	pointer-events: none;
}
.epic-hero::after {
	inset: auto -10% -30% -10%;
	height: 80%;
	background: radial-gradient(closest-side, rgba(var(--ec-accent-rgb), 0.10), transparent 70%);
}

.epic-hero-title {
	background: linear-gradient(90deg, var(--ec-primary), var(--ec-accent));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.epic-hero-subtitle { color: rgba(var(--ec-primary-rgb), 0.80) !important; }

.epic-hero-image {
	position: relative;
	transform: translateZ(0);
	will-change: transform, box-shadow;
	transition: transform .6s cubic-bezier(.2,.8,.2,1), box-shadow .6s ease;
	box-shadow: 0 20px 40px -24px rgba(var(--ec-primary-rgb), 0.35);
}
.epic-hero-media:hover .epic-hero-image {
	transform: translateY(-6px);
	box-shadow: 0 30px 60px -30px rgba(var(--ec-primary-rgb), 0.45);
}
.epic-hero-image::after { display: none; }

/* CTAs */
.btn-glow {
	position: relative;
	box-shadow: 0 8px 24px -10px rgba(var(--ec-primary-rgb), 0.45);
}
.btn-glow:hover { box-shadow: 0 12px 28px -10px rgba(var(--ec-accent-rgb), 0.55); }

.btn-ghost {
	border-color: rgba(var(--ec-primary-rgb), .25) !important;
	color: var(--ec-primary) !important;
	background: rgba(var(--ec-primary-rgb), .04);
}
.btn-ghost:hover {
	border-color: rgba(var(--ec-accent-rgb), .45) !important;
	color: var(--ec-primary) !important;
	background: rgba(var(--ec-accent-rgb), .08);
}

/* Hero entrance */
@keyframes hero-rise {
	from { opacity: 0; transform: translateY(12px); }
	to { opacity: 1; transform: translateY(0); }
}
.epic-hero-copy { animation: hero-rise .6s ease .05s both; }
.epic-hero-media { animation: hero-rise .7s ease .15s both; }

/* Mobile adjustments */
@media (max-width: 575.98px) {
	.epic-hero-title { font-size: 1.75rem; }
}

.epic-services::before,
.epic-services::after {
	content: "";
	position: absolute;
	inset: -40% -10% auto -10%;
	height: 80%;
	background: radial-gradient(closest-side, rgba(var(--ec-primary-rgb), 0.08), transparent 70%);
	filter: blur(40px);
	pointer-events: none;
}
.epic-services::after {
	inset: auto -10% -40% -10%;
	height: 90%;
	background: radial-gradient(closest-side, rgba(var(--ec-accent-rgb), 0.10), transparent 70%);
}

.epic-title {
	background: linear-gradient(90deg, var(--ec-primary), var(--ec-accent));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.epic-card {
	position: relative;
	border: 1px solid rgba(var(--ec-primary-rgb), 0.10);
	background: linear-gradient(180deg, rgba(255,255,255,0.85) 0%, rgba(255,255,255,0.70) 100%);
	backdrop-filter: saturate(120%) blur(6px);
	-webkit-backdrop-filter: saturate(120%) blur(6px);
	border-radius: 1rem;
	transition: transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease, border-color .3s ease;
}
.epic-card .card-body { padding: 1.5rem; }
.epic-card .card-title { font-weight: 700; }
.epic-card .card-text { color: rgba(var(--ec-primary-rgb), 0.85); }

.epic-card::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	padding: 1px;
	background: linear-gradient(135deg, rgba(var(--ec-primary-rgb), 0.25), rgba(var(--ec-accent-rgb), 0.25));
		-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
		mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	pointer-events: none;
}

.epic-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 20px 40px -20px rgba(var(--ec-primary-rgb), 0.35);
	border-color: rgba(var(--ec-accent-rgb), 0.35);
}

.epic-card:hover .card-title {
	color: var(--ec-primary);
}

.epic-card .service-icon {
	width: 56px;
	height: 56px;
	filter: drop-shadow(0 6px 10px rgba(var(--ec-primary-rgb), .15));
	transition: transform .35s ease;
}

.epic-card:hover .service-icon { transform: translateY(-2px) scale(1.03); }

/* Subtle entrance animation */
@keyframes float-in {
	from { opacity: 0; transform: translateY(16px) scale(.98); }
	to   { opacity: 1; transform: translateY(0) scale(1); }
}
.epic-card { animation: float-in .6s ease both; }
.epic-services .row > .col:nth-child(1) .epic-card { animation-delay: .05s; }
.epic-services .row > .col:nth-child(2) .epic-card { animation-delay: .15s; }
.epic-services .row > .col:nth-child(3) .epic-card { animation-delay: .25s; }

/* Epic Booking Section */
.epic-booking {
	position: relative;
	background: radial-gradient(1000px 600px at 0% 20%, rgba(var(--ec-accent-rgb), .15), transparent 60%),
				radial-gradient(800px 600px at 100% 80%, rgba(var(--ec-primary-rgb), .08), transparent 60%),
				linear-gradient(180deg, #f8fbfc 0%, #ffffff 100%);
	overflow: hidden;
}
.epic-booking::before {
	content: "";
	position: absolute;
	inset: -20% -10% auto -10%;
	height: 60%;
	background: radial-gradient(closest-side, rgba(var(--ec-accent-rgb), 0.10), transparent 70%);
	filter: blur(40px);
	pointer-events: none;
}

/* Responsive tweaks */
@media (max-width: 991.98px) {
	.epic-card .card-body { padding: 1.25rem; }
}
@media (max-width: 575.98px) {
	.epic-title { font-size: 1.5rem; }
	.epic-card .service-icon { width: 52px; height: 52px; }
}

/* Testimonials - clean and beautiful */
.epic-testimonials {
	position: relative;
	background: linear-gradient(180deg, rgba(255,255,255,0.92) 0%, rgba(255,255,255,0.88) 100%);
	border: 1px solid rgba(var(--ec-primary-rgb), 0.10);
	backdrop-filter: saturate(120%) blur(6px);
	-webkit-backdrop-filter: saturate(120%) blur(6px);
	border-radius: 1rem;
	box-shadow: 0 18px 40px -24px rgba(var(--ec-primary-rgb), 0.35);
	color: rgba(20, 58, 82, 0.92);
}
.epic-testimonials::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	padding: 1px;
	background: linear-gradient(135deg, rgba(var(--ec-primary-rgb), 0.25), rgba(var(--ec-accent-rgb), 0.25));
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	pointer-events: none;
}
.epic-testimonials h3 { color: var(--ec-primary); }
.epic-testimonials .blockquote { font-size: 1rem; color: rgba(20,58,82,0.92); }
.epic-testimonials .blockquote-footer { color: rgba(var(--ec-primary-rgb), 0.75); }


/* Epic panel (form container) */
.epic-panel {
	position: relative;
	border: 1px solid rgba(var(--ec-primary-rgb), 0.10);
	background: linear-gradient(180deg, rgba(255,255,255,0.86) 0%, rgba(255,255,255,0.78) 100%);
	backdrop-filter: saturate(120%) blur(6px);
	-webkit-backdrop-filter: saturate(120%) blur(6px);
	border-radius: 1rem;
	box-shadow: 0 20px 44px -26px rgba(var(--ec-primary-rgb), 0.40);
}
.epic-panel::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	padding: 1px;
	background: linear-gradient(135deg, rgba(var(--ec-primary-rgb), 0.25), rgba(var(--ec-accent-rgb), 0.25));
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	pointer-events: none;
}

/* Form tweaks inside epic panel */
.epic-panel .form-label { font-weight: 600; color: rgba(var(--ec-primary-rgb), 0.95); }
.epic-panel .form-control, .epic-panel .form-select {
	border-color: rgba(var(--ec-primary-rgb), 0.18);
	background-color: rgba(255,255,255,0.9);
}
.epic-panel .form-control:focus, .epic-panel .form-select:focus {
	border-color: rgba(var(--ec-accent-rgb), 0.55);
	box-shadow: 0 0 0 .2rem rgba(var(--ec-accent-rgb), .20);
}
.epic-panel .form-text { color: rgba(var(--ec-primary-rgb), 0.75); }
.epic-panel .btn.btn-outline-secondary { border-color: rgba(var(--ec-primary-rgb), 0.25); color: var(--ec-primary); }
.epic-panel .btn.btn-outline-secondary:hover { border-color: rgba(var(--ec-accent-rgb), 0.45); color: var(--ec-primary); background: rgba(var(--ec-accent-rgb), .08); }

/* Light entrance animation for panel */
@keyframes panel-rise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.epic-panel { animation: panel-rise .5s ease .05s both; }
.epic-panel .btn.btn-outline-secondary { border-color: rgba(var(--ec-primary-rgb), 0.25); color: var(--ec-primary); }
