/*
 * Ed's Tree, Lawn & Landscaping — responsive container + hover/motion layer.
 * Loaded after style.css.
 */

:root { --eds-ease: cubic-bezier(.22, .61, .36, 1); }
/* Desktop sizing (container, type, spacing) lives in css/fluid.css. */

/* ================================================================
   Hover effects + subtle motion
   ================================================================ */

/* Buttons: lift, soft shadow and a light sheen sweep. */
body .nectar-button.eds-btn {
	position: relative;
	overflow: hidden;
	transition: transform .35s var(--eds-ease), box-shadow .35s var(--eds-ease), filter .35s var(--eds-ease) !important;
}
body .nectar-button.eds-btn::after {
	content: '';
	position: absolute;
	top: 0;
	left: -60%;
	width: 40%;
	height: 100%;
	background: linear-gradient(110deg, transparent, rgba(255, 255, 255, .35), transparent);
	transform: skewX(-20deg);
	transition: left .6s var(--eds-ease);
	pointer-events: none;
}
body .nectar-button.eds-btn:hover { transform: translateY(-3px); box-shadow: 0 12px 24px rgba(6, 87, 68, .28); filter: brightness(1.04); }
body .nectar-button.eds-btn:hover::after { left: 120%; }
body .nectar-button.eds-btn:active { transform: translateY(-1px); }

.eds-form .wpcf7-submit.eds-submit { transition: transform .35s var(--eds-ease), box-shadow .35s var(--eds-ease), background-color .35s; }
.eds-form .wpcf7-submit.eds-submit:hover { transform: translateY(-3px); background: #053e2f !important; box-shadow: 0 12px 24px rgba(0, 0, 0, .25); }

/* Header: lime underline grows in under menu items; call-now icon pulses gently. */
#header-outer #top nav > ul.sf-menu:not(.buttons) > li > a .menu-title-text { position: relative; }
#header-outer #top nav > ul.sf-menu:not(.buttons) > li > a .menu-title-text::before {
	content: '';
	position: absolute;
	left: 0;
	bottom: -6px;
	width: 100%;
	height: 2px;
	border-radius: 2px;
	background: var(--eds-lime);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform .35s var(--eds-ease);
}
#header-outer #top nav > ul.sf-menu:not(.buttons) > li:hover > a .menu-title-text::before,
#header-outer #top nav > ul.sf-menu:not(.buttons) > li.current-menu-item > a .menu-title-text::before {
	transform: scaleX(1);
	transform-origin: left;
}
#header-outer #top nav > ul.sf-menu .sub-menu li a { transition: padding-left .3s var(--eds-ease), color .3s; }
#header-outer #top nav > ul.sf-menu .sub-menu li a:hover { padding-left: 26px !important; }
#top nav ul.buttons li.eds-header-call img {
	border-radius: 50%;
	animation: eds-pulse 2.6s ease-out infinite;
	transition: transform .35s var(--eds-ease);
}
#top nav ul.buttons li.eds-header-call a:hover img { transform: rotate(-12deg) scale(1.08); }
.eds-header-call__text strong { transition: color .3s; }
#header-outer.transparent #top nav ul.buttons li.eds-header-call a:hover strong { color: var(--eds-lime); }
#header-outer:not(.transparent) #top nav ul.buttons li.eds-header-call a:hover strong { color: var(--eds-green-icon); }
@keyframes eds-pulse {
	0% { box-shadow: 0 0 0 0 rgba(42, 253, 24, .55); }
	70% { box-shadow: 0 0 0 14px rgba(42, 253, 24, 0); }
	100% { box-shadow: 0 0 0 0 rgba(42, 253, 24, 0); }
}
#header-outer #logo img { transition: transform .35s var(--eds-ease), height .25s ease; }
#header-outer #logo:hover img { transform: translateY(3px); }

/* Hero: slow Ken Burns on the photo, content rises in on load. */
.eds-hero > .row-bg-wrap .row-bg { animation: eds-kenburns 16s ease-out both; }
@keyframes eds-kenburns { from { transform: scale(1.08); } to { transform: scale(1); } }
.eds-hero .eds-hero__title,
.eds-hero .eds-hero__lead,
.eds-hero .nectar-button,
.eds-page-hero .eds-eyebrow,
.eds-page-hero__title { animation: eds-rise .9s var(--eds-ease) both; }
.eds-hero .eds-hero__lead, .eds-page-hero__title { animation-delay: .15s; }
.eds-hero .nectar-button { animation-delay: .3s; }
@keyframes eds-rise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }

/* Photos: slow zoom inside their rounded frames. */
.eds-about__photo .hover-wrap,
.eds-about__side .hover-wrap,
.eds-service-page .hover-wrap,
.eds-about--page .hover-wrap { overflow: hidden; border-radius: 20px; }
.eds-about__photo img,
.eds-about__side .hover-wrap img,
.eds-service-page .hover-wrap img,
.eds-about--page .hover-wrap img { transition: transform .8s var(--eds-ease); }
.eds-about__photo .hover-wrap:hover img,
.eds-about__side .hover-wrap:hover img,
.eds-service-page .hover-wrap:hover img,
.eds-about--page .hover-wrap:hover img { transform: scale(1.05); }
.eds-why__photo img { transition: transform .8s var(--eds-ease), filter .8s; }
.eds-why__photo:hover img { transform: scale(1.02); filter: saturate(1.12); }

/* Experience card + progress bars. */
.eds-exp-card > .vc_column-inner { transition: transform .4s var(--eds-ease), box-shadow .4s var(--eds-ease); }
.eds-exp-card:hover > .vc_column-inner { transform: translateY(-4px); box-shadow: 0 16px 30px rgba(6, 87, 68, .3); }
.eds-exp-card__num { display: inline-block; transition: transform .45s var(--eds-ease); }
.eds-exp-card:hover .eds-exp-card__num { transform: scale(1.08); }

/* Service cards: lift, image zoom, title + bottom bar shift green. */
.eds-service-card > .vc_column-inner { transition: transform .45s var(--eds-ease), box-shadow .45s var(--eds-ease); }
.eds-service-card:hover > .vc_column-inner { transform: translateY(-8px); box-shadow: 0 22px 40px rgba(0, 0, 0, .22); }
.eds-service-card .hover-wrap { overflow: hidden; border-radius: 12px; }
.eds-service-card .img-with-aniamtion-wrap img { transition: transform .8s var(--eds-ease); }
.eds-service-card:hover .img-with-aniamtion-wrap img { transform: scale(1.07); }
.eds-service-card > .vc_column-inner::after { transition: background-color .4s, left .45s var(--eds-ease), right .45s var(--eds-ease); }
.eds-service-card:hover > .vc_column-inner::after { background: var(--eds-green-icon); left: 40px; right: 40px; }
.eds-service-card__title { transition: color .3s; }
body .eds-service-card:hover .eds-service-card__title { color: var(--eds-green-icon); }
.eds-read-more { transition: color .3s, gap .3s var(--eds-ease); }
.eds-read-more:hover { gap: 10px; color: var(--eds-green-icon) !important; }

/* Estimate card + every contact list: icon pops, link turns lime. */
.eds-estimate-card > .vc_column-inner { transition: transform .45s var(--eds-ease), box-shadow .45s var(--eds-ease); }
.eds-estimate-card:hover > .vc_column-inner { transform: translateY(-8px); box-shadow: 0 22px 40px rgba(0, 0, 0, .25); }
.eds-estimate-card .column-image-bg,
.eds-discount-card .column-image-bg { transition: transform 1.2s var(--eds-ease); }
.eds-estimate-card:hover .column-image-bg,
.eds-discount-card:hover .column-image-bg { transform: scale(1.07); }
ul.eds-contact-list li img { transition: transform .35s var(--eds-ease); }
ul.eds-contact-list li:hover img { transform: scale(1.1) rotate(-8deg); }
ul.eds-contact-list li a,
ul.eds-contact-list li span { display: inline-block; transition: color .3s, transform .35s var(--eds-ease); }
ul.eds-contact-list li:hover a,
ul.eds-contact-list li:hover span { transform: translateX(4px); }
ul.eds-contact-list li:hover a { color: var(--eds-lime) !important; }

/* Why-choose cards: lift, tint, number badge spins. */
.eds-why-card > .vc_column-inner,
.eds-discount-card > .vc_column-inner { transition: transform .4s var(--eds-ease), box-shadow .4s var(--eds-ease); }
.eds-why-card:hover > .vc_column-inner { transform: translateY(-6px); box-shadow: 0 16px 30px rgba(6, 87, 68, .14); }
.eds-why-card .column-bg-overlay { transition: background-color .4s; }
.eds-why-card:hover .column-bg-overlay { background-color: #e3efe6 !important; }
.eds-discount-card > .vc_column-inner { overflow: hidden; }
.eds-discount-card:hover > .vc_column-inner { transform: translateY(-6px); box-shadow: 0 16px 30px rgba(6, 87, 68, .3); }
.eds-why-card__num { transition: background .35s, color .35s, transform .6s var(--eds-ease); }
.eds-why-card:hover .eds-why-card__num { transform: rotate(360deg); }
.eds-why-card__text a {
	background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat;
	transition: background-size .35s var(--eds-ease);
}
.eds-why-card__text a:hover { background-size: 100% 1px; }
.eds-discount-card__title span { display: inline-block; animation: eds-glow 2.4s ease-in-out infinite; }
@keyframes eds-glow {
	0%, 100% { text-shadow: 0 0 0 rgba(42, 253, 24, 0); }
	50% { text-shadow: 0 0 14px rgba(42, 253, 24, .6); }
}

/* Gallery: photo zoom, overlay slides up, plus sign spins. */
.eds-project { display: block; overflow: hidden; border-radius: 18px; }
.eds-project img { transition: transform .9s var(--eds-ease); }
.eds-project:hover img { transform: scale(1.04); }
.eds-project__overlay { transform: translateY(16px); transition: opacity .4s var(--eds-ease), transform .45s var(--eds-ease); }
.eds-project:hover .eds-project__overlay,
.eds-gallery .cell.is-selected .eds-project__overlay { transform: none; }
.eds-project__plus { display: inline-block; transition: transform .5s var(--eds-ease); }
.eds-project:hover .eds-project__plus { transform: rotate(90deg) scale(1.15); }
.eds-gallery .flickity-page-dots .dot { cursor: pointer; transition: background .3s, box-shadow .3s !important; }
.eds-gallery .flickity-page-dots .dot:hover { background: var(--eds-green) !important; }

/* Reviews. */
.eds-review { transition: transform .45s var(--eds-ease), box-shadow .45s var(--eds-ease), border-color .45s; }
.eds-review:hover { transform: translateY(-6px); border-color: rgba(6, 87, 68, .45); box-shadow: 0 18px 34px rgba(6, 87, 68, .14); }
.eds-review__quote { transition: transform .45s var(--eds-ease), background-color .3s; }
.eds-review:hover .eds-review__quote { transform: rotate(-8deg) scale(1.06); background-color: var(--eds-green-icon); }
.eds-review-arrows button { transition: transform .3s var(--eds-ease), box-shadow .3s, filter .3s; }
.eds-review-arrows button:hover { transform: translateY(-2px) scale(1.06); box-shadow: 0 8px 18px rgba(6, 87, 68, .35); filter: brightness(1.2); }

/* Contact form fields: underline turns lime on focus. */
.eds-form input[type="text"],
.eds-form input[type="email"],
.eds-form input[type="tel"],
.eds-form textarea { transition: border-color .3s; }
.eds-form input:focus,
.eds-form textarea:focus { border-bottom-color: var(--eds-lime) !important; outline: none; }
.eds-form .eds-field { transition: transform .3s var(--eds-ease); }
.eds-form .eds-field:focus-within { transform: translateX(4px); }

/* Footer. */
ul.eds-footer-links a { display: inline-block; transition: color .3s, transform .3s var(--eds-ease); }
ul.eds-footer-links a:hover { transform: translateX(5px); }
.eds-social a { transition: transform .35s var(--eds-ease), box-shadow .35s, filter .35s; }
.eds-social a:hover { transform: translateY(-4px); box-shadow: 0 0 0 4px rgba(42, 253, 24, .2); filter: brightness(1.2); }
.eds-news { transition: border-color .3s; }
.eds-news:focus-within { border-bottom-color: var(--eds-lime); }
.eds-news .wpcf7-submit.eds-news-btn { transition: transform .35s var(--eds-ease), color .3s; }
.eds-news .wpcf7-submit.eds-news-btn:hover { transform: translateX(6px); color: var(--eds-lime) !important; }
img.eds-footer__logo { transition: transform .4s var(--eds-ease); }
img.eds-footer__logo:hover { transform: translateY(4px); }
.eds-copyright a { transition: opacity .3s; }
.eds-copyright a:hover { opacity: .75 !important; }

/* Touch screens: no sticky hover lifts. */
@media (hover: none) {
	.eds-service-card:hover > .vc_column-inner,
	.eds-estimate-card:hover > .vc_column-inner,
	.eds-why-card:hover > .vc_column-inner,
	.eds-discount-card:hover > .vc_column-inner,
	.eds-review:hover { transform: none; }
}

/* Respect reduced-motion preferences. */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition-duration: .01ms !important; }
}

/* ================================================================
   Tablet (690–999px): Salient stacks every column full width, which
   makes cards huge. Use two-column grids instead.
   ================================================================ */
@media (min-width: 690px) and (max-width: 999px) {
	/* Services: 2-column card grid, heading spans both. */
	.eds-services .row_col_wrap_12 > .wpb_column > .vc_column-inner > .wpb_wrapper {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 24px;
	}
	.eds-services .row_col_wrap_12 > .wpb_column > .vc_column-inner > .wpb_wrapper > .wpb_text_column { grid-column: 1 / -1; margin-bottom: 0; }
	body .eds-service-grid,
	body .eds-service-grid > .row_col_wrap_12_inner { display: contents !important; }
	body .eds-service-grid::before, body .eds-service-grid::after,
	body .eds-service-grid > .row_col_wrap_12_inner::before,
	body .eds-service-grid > .row_col_wrap_12_inner::after,
	body .eds-services .row_col_wrap_12 > .wpb_column > .vc_column-inner > .wpb_wrapper::before,
	body .eds-services .row_col_wrap_12 > .wpb_column > .vc_column-inner > .wpb_wrapper::after { display: none !important; content: none !important; }
	body .eds-service-grid > .row-bg-wrap { display: none; }
	body .eds-service-card,
	body .eds-estimate-card { width: auto !important; margin: 0 !important; }

	/* About: intro full width, photo + stats side by side. */
	body .eds-about > .row_col_wrap_12 { display: flex; flex-wrap: wrap; justify-content: space-between; }
	body .eds-about > .row_col_wrap_12 > .eds-about__intro { width: 100% !important; }
	body .eds-about > .row_col_wrap_12 > .eds-about__photo,
	body .eds-about > .row_col_wrap_12 > .eds-about__side { width: 48.5% !important; margin-top: 30px; }

	/* Why choose us: 2x2 cards. */
	body .eds-why__cards .inner_row > .row_col_wrap_12_inner { display: flex; gap: 20px; }
	body .eds-why__cards .inner_row > .row_col_wrap_12_inner > .wpb_column { width: calc(50% - 10px) !important; margin: 0 !important; }
	body .eds-why-card > .vc_column-inner,
	body .eds-discount-card > .vc_column-inner { height: 100%; }
	.eds-why__cards .inner_row { margin-bottom: 20px !important; }
	body .eds-why__photo .img-with-aniamtion-wrap { max-width: 520px; margin: 0 auto; }

	/* Footer: link columns in one row. */
	body .eds-footer__cols .inner_row:not(.eds-footer__news-row) > .row_col_wrap_12_inner { display: flex; gap: 20px; }
	body .eds-footer__cols .inner_row:not(.eds-footer__news-row) > .row_col_wrap_12_inner > .wpb_column { width: 33.33% !important; margin: 0 !important; }
	body .eds-footer__heading { font-size: 24px; }

	/* Contact form gets the full row width. */
	body .eds-contact__form { width: 100% !important; }
	ul.eds-contact-list--sm li.is-big { font-size: 20px; }
	body .eds-estimate-card__title { font-size: 30px; line-height: 36px; }
}
@media (min-width: 690px) and (max-width: 999px) {
	body .eds-estimate-card > .vc_column-inner { padding: 50px 18px 30px !important; }
	ul.eds-contact-list--sm li.is-big { font-size: 17px !important; line-height: 22px; white-space: nowrap; }
	ul.eds-contact-list--sm li.is-small { font-size: 13px; }
	ul.eds-contact-list--sm li img { width: 62px !important; height: 62px !important; }
	body .eds-estimate-card__title { font-size: 26px; line-height: 31px; }
}

/* ================================================================
   Services dropdown
   The menu item spans the full (tall) header, so Salient hung the
   panel ~90px under the link. Anchor it just below the label and
   give it readable type.
   ================================================================ */
@media (min-width: 1000px) {
	#header-outer #top nav > ul.sf-menu > li > ul.sub-menu {
		top: calc(50% + 30px) !important;
		left: 50% !important;
		width: 270px !important;
		padding: 12px 0 !important;
		margin-left: -135px !important;
		border-radius: 14px !important;
		background-color: var(--eds-green) !important;
		box-shadow: 0 20px 40px rgba(0, 0, 0, .22);
		transform: translateY(12px);
		transition: opacity .3s var(--eds-ease), transform .35s var(--eds-ease), visibility .3s !important;
	}
	#header-outer #top nav > ul.sf-menu > li.sfHover > ul.sub-menu,
	#header-outer #top nav > ul.sf-menu > li:hover > ul.sub-menu { transform: none; }
	/* Little pointer above the panel. */
	#header-outer #top nav > ul.sf-menu > li > ul.sub-menu::before {
		content: '';
		position: absolute;
		top: -6px;
		left: 50%;
		width: 14px;
		height: 14px;
		margin-left: -7px;
		border-radius: 3px;
		background: var(--eds-green);
		transform: rotate(45deg);
	}
	/* Invisible bridge so the hover isn't lost between the label and the panel. */
	#header-outer #top nav > ul.sf-menu > li > ul.sub-menu::after {
		content: '';
		position: absolute;
		left: 0;
		right: 0;
		top: -30px;
		height: 30px;
	}
	#header-outer #top nav > ul.sf-menu > li > ul.sub-menu li { background: transparent !important; }
	#header-outer #top nav > ul.sf-menu > li > ul.sub-menu li a {
		position: relative;
		padding: 11px 26px !important;
		font-family: var(--eds-font) !important;
		font-size: 16px !important;
		line-height: 22px !important;
		font-weight: 500 !important;
		letter-spacing: 0 !important;
		text-transform: none !important;
		color: #fff !important;
		background: transparent !important;
		transition: padding-left .3s var(--eds-ease), color .3s, background-color .3s !important;
	}
	#header-outer #top nav > ul.sf-menu > li > ul.sub-menu li a::before {
		content: '';
		position: absolute;
		left: 14px;
		top: 50%;
		width: 6px;
		height: 6px;
		margin-top: -3px;
		border-radius: 50%;
		background: var(--eds-lime);
		opacity: 0;
		transform: scale(0);
		transition: opacity .3s, transform .3s var(--eds-ease);
	}
	#header-outer #top nav > ul.sf-menu > li > ul.sub-menu li a:hover,
	#header-outer #top nav > ul.sf-menu > li > ul.sub-menu li.current-menu-item > a {
		padding-left: 32px !important;
		color: var(--eds-lime) !important;
		background: rgba(255, 255, 255, .06) !important;
	}
	#header-outer #top nav > ul.sf-menu > li > ul.sub-menu li a:hover::before,
	#header-outer #top nav > ul.sf-menu > li > ul.sub-menu li.current-menu-item > a::before { opacity: 1; transform: scale(1); }
	#header-outer #top nav > ul.sf-menu > li > ul.sub-menu li a .menu-title-text::before { display: none; }
	/* Chevron flips while the dropdown is open. */
	#header-outer #top nav > ul.sf-menu > li.menu-item-has-children > a .sf-sub-indicator { transition: transform .3s var(--eds-ease); }
	#header-outer #top nav > ul.sf-menu > li.menu-item-has-children:hover > a .sf-sub-indicator { transform: rotate(180deg); }
}

/* ================================================================
   Gallery: green overlay only on hover (not on the centred slide).
   ================================================================ */
body .eds-gallery .cell.is-selected .eds-project:not(:hover) .eds-project__overlay {
	opacity: 0;
	transform: translateY(16px);
}
/* The plain lawn photo gets the same inset frame + shadow the other project PNGs have baked in. */
.eds-project.is-plain { overflow: visible; }
.eds-project.is-plain img {
	box-sizing: border-box;
	padding: 12px 15px 16px;
	object-fit: cover;
	clip-path: inset(12px 15px 16px round 14px);
}
.eds-project.is-plain::before {
	content: '';
	position: absolute;
	inset: 12px 15px 16px;
	border-radius: 14px;
	box-shadow: 0 5px 12px rgba(0, 0, 0, .25);
	pointer-events: none;
}
.eds-project.is-plain .eds-project__overlay { z-index: 1; }

/* ================================================================
   Testimonials: same green hover as the gallery.
   ================================================================ */
.eds-review {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}
.eds-review::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(17, 120, 52, .94);
	opacity: 0;
	transform: translateY(16px);
	transition: opacity .4s var(--eds-ease), transform .45s var(--eds-ease);
}
.eds-review:hover::before { opacity: 1; transform: none; }
.eds-review:hover { border-color: transparent; box-shadow: 0 18px 34px rgba(17, 120, 52, .3); }
.eds-review__name,
.eds-review__text { transition: color .35s; }
body .eds-review:hover .eds-review__name,
body .eds-review:hover .eds-review__text { color: #fff; }
.eds-review:hover .eds-review__quote {
	background-color: #fff;
	-webkit-text-stroke-color: var(--eds-green);
}
.eds-review:hover .eds-review__stars { color: #ffd84d; }
