/******* Do not edit this file *******
Code Snippets Manager
Saved: Sep 30 2026 | 14:24:49 */
/* ==========================================================================
   Logan Marketing 2026 — Site Styles
   --------------------------------------------------------------------------
   Only styles that Elementor's native controls can't express live here.
   Colors / fonts come from the Elementor global variables (lm-navy,
   lm-tropical, lm-font-body, ...). Change them in Elementor > Variables and
   this file follows automatically.

   Classes used here are Elementor global classes:
     .lm-header  – the Theme Builder header container
     .lm-nav     – the Nav Menu widget inside the header
     .lm-hero    – add to the FIRST section of any page that has a full-bleed
                   photo hero; the header then floats transparently over it.

   Menu item CSS classes (Appearance > Menus > item > CSS Classes):
     lm-menu-footer – "All services →" style link at the bottom of a dropdown
     lm-menu-cta    – "Book a call" button, shown only in the mobile menu
     lm-menu-phone  – phone number, shown only in the mobile menu
   Dropdown descriptions come from each menu item's Description field
   (printed by the "LM 2026 – Menu Descriptions" PHP snippet).
   ========================================================================== */


/* 1. Sticky header ------------------------------------------------------ */
/* The header stays at the top of the screen on every page.
   - Pages WITH an .lm-hero section: header floats transparently over the
     photo, then turns solid navy once the page is scrolled.
   - Pages WITHOUT an .lm-hero section: solid navy header, sticky.
   The "LM 2026 – Sticky Header" JS snippet adds .lm-is-scrolled to
   .elementor-location-header after the first ~24px of scrolling. */
.elementor-location-header {
	position: sticky;
	top: 0;
	z-index: 50;
}

body:has(.lm-hero) .elementor-location-header {
	position: fixed;
	left: 0;
	right: 0;
}

body:has(.lm-hero) .lm-header {
	background-color: transparent;
}

/* Keep the header below the WP admin bar when logged in. */
body.admin-bar .elementor-location-header {
	top: 32px;
}

@media (max-width: 782px) {
	body.admin-bar .elementor-location-header {
		top: 46px;
	}
}

/* Below 600px the admin bar scrolls away, so the header moves up with it */
@media (max-width: 600px) {
	body.admin-bar .elementor-location-header.lm-is-scrolled {
		top: 0;
	}
}

/* Jump links (e.g. "On this page") stop below the sticky header, and
   items reached with the Tab key never end up hidden behind it */
html {
	scroll-behavior: smooth;
	scroll-padding-top: 100px;
}

@media (max-width: 767px) {
	html {
		scroll-padding-top: 80px;
	}
}

[id] {
	scroll-margin-top: 90px;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

.lm-header {
	transition:
		background-color 0.25s ease,
		padding 0.25s ease,
		box-shadow 0.25s ease;
}

.lm-header img,
.lm-header .lm-btn,
.lm-nav .elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item {
	transition: all 0.25s ease;
}

/* Scrolled state (Figma "Nav Scroll"): compact navy bar */
.elementor-location-header.lm-is-scrolled .lm-header,
body:has(.lm-hero) .elementor-location-header.lm-is-scrolled .lm-header {
	background-color: var(--lm-navy, #011460);
	box-shadow:
		inset 0 -1px 0 var(--lm-seagull, #8fcbef),
		0 8px 14px rgba(1, 20, 96, 0.22);
}

@media (min-width: 1025px) {
	.elementor-location-header.lm-is-scrolled .lm-header {
		padding-top: 12px;
		padding-bottom: 12px;
		gap: 26px;
	}

	.elementor-location-header.lm-is-scrolled .lm-header > a img {
		width: 88px;
	}

	.elementor-location-header.lm-is-scrolled .lm-nav {
		margin-inline-start: 14px;
	}

	.elementor-location-header.lm-is-scrolled .lm-nav .elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item {
		font-size: 14.5px;
		margin: 0 12px;
	}

	.elementor-location-header.lm-is-scrolled .lm-header .e-paragraph-base {
		font-size: 14px;
	}

	.elementor-location-header.lm-is-scrolled .lm-header .lm-btn {
		font-size: 13.5px;
		padding: 10.5px 20px 11px;
	}

	/* Dropdown panel sits right under the shorter bar */
	.elementor-location-header.lm-is-scrolled .lm-nav .elementor-nav-menu--main .sub-menu {
		top: calc(100% + 16px) !important;
	}

	.elementor-location-header.lm-is-scrolled .lm-nav .elementor-nav-menu--main .sub-menu::before {
		top: -17px;
		height: 17px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.lm-header,
	.lm-header img,
	.lm-header .lm-btn,
	.lm-nav .elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item {
		transition: none;
	}
}


/* 2. Main navigation bar (Nav Menu widget with class lm-nav) ------------ */
.elementor-widget-nav-menu.lm-nav {
	flex: 0 0 auto;
	margin-inline-start: 16px;
}

.lm-nav .elementor-nav-menu--main .elementor-nav-menu {
	flex-wrap: nowrap;
}

.lm-nav .elementor-nav-menu--main .elementor-nav-menu > li {
	position: relative;
}

/* Top-level items: 25px apart, room for the 2px yellow underline */
.lm-nav .elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item {
	font-family: var(--lm-font-body, "Poppins"), sans-serif;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: 0;
	text-transform: none;
	white-space: nowrap;
	color: var(--lm-tropical, #d3ecfa);
	padding: 4px 0 6px;
	margin: 0 12.5px;
	border-bottom: 2px solid transparent;
	transition: color 0.3s ease, border-color 0.3s ease, font-size 0.25s ease, margin 0.25s ease;
}

.lm-nav .elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item.elementor-item-active {
	color: var(--lm-white, #fff);
}

/* Hover: every link on the site turns lm-seagull (see section 10) */
.lm-nav .elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item:hover,
.lm-nav .elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item:focus-visible {
	color: var(--lm-seagull, #8fcbef);
}

/* Active item looks "medium" without changing font-weight — a real weight
   change makes the word wider and shifts every item after it. The hairline
   text-shadow thickens the letters while the width stays identical. */
.lm-nav .elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item.elementor-item-active {
	text-shadow: 0 0 0.35px currentColor, 0 0 0.35px currentColor;
}

/* Parent item while its dropdown is open, or while one of its child pages
   is being viewed (active trail): white, medium, yellow underline. */
.lm-nav .elementor-nav-menu--main .elementor-nav-menu > li.menu-item-has-children:hover > .elementor-item,
.lm-nav .elementor-nav-menu--main .elementor-nav-menu > li.menu-item-has-children:focus-within > .elementor-item,
.lm-nav .elementor-nav-menu--main .elementor-nav-menu > li.current-menu-ancestor > .elementor-item {
	color: var(--lm-white, #fff);
	text-shadow: 0 0 0.35px currentColor, 0 0 0.35px currentColor;
	border-bottom-color: var(--lm-yellow, #e2ff4d);
}

.lm-nav .elementor-nav-menu--main .elementor-nav-menu > li.menu-item-has-children:hover > .elementor-item,
.lm-nav .elementor-nav-menu--main .elementor-nav-menu > li.menu-item-has-children:focus-within > .elementor-item {
	color: var(--lm-seagull, #8fcbef);
}

.lm-nav.lm-nav--closed .elementor-nav-menu--main .elementor-nav-menu > li.menu-item-has-children:not(.current-menu-ancestor) > .elementor-item {
	border-bottom-color: transparent;
}

/* Small ▾ caret after items that have a dropdown */
.lm-nav .elementor-nav-menu--main .elementor-item .sub-arrow {
	padding: 0 0 0 4px;
	margin: 0;
	font-size: 9px;
	line-height: 1;
}

.lm-nav .elementor-nav-menu--main .elementor-item .sub-arrow > * {
	display: none;
}

.lm-nav .elementor-nav-menu--main .elementor-item .sub-arrow::before {
	content: "▾";
}

/* Mobile-only menu items never show in the desktop bar */
.lm-nav .elementor-nav-menu--main .lm-menu-cta,
.lm-nav .elementor-nav-menu--main .lm-menu-phone {
	display: none !important;
}

/* Hamburger / close toggle (tablet + mobile) */
.lm-nav .elementor-menu-toggle {
	color: var(--lm-white, #fff);
	background-color: transparent;
	font-size: 26px;
	padding: 6px;
}

.lm-nav .elementor-menu-toggle svg {
	fill: currentColor;
}

.lm-nav .elementor-menu-toggle.elementor-active {
	color: var(--lm-yellow, #e2ff4d);
}


/* 3. Desktop dropdown panel -------------------------------------------- */
/* Opens on hover (120ms delay) and keyboard focus; closes 240ms after the
   pointer leaves, on Escape (see "LM 2026 – Menu Behaviour" JS snippet) and
   when focus/click moves elsewhere. Slides down 8px and fades over 180ms.
   Elementor's own show/hide is overridden so these timings apply. */
@media (min-width: 1025px) {
	.lm-nav .elementor-nav-menu--main .sub-menu {
		display: block !important;
		position: absolute !important;
		top: calc(100% + 34px) !important;
		left: -10px !important;
		margin: 0 !important;
		width: max-content !important;
		min-width: 352px !important;
		max-width: 420px;
		padding: 8px 0;
		list-style: none;
		background-color: var(--lm-sapphire, #0a2076);
		border-top: 1px solid rgba(143, 203, 239, 0.45);
		border-radius: 0 0 10px 0;
		box-shadow: 0 18px 22px rgba(1, 20, 96, 0.45);
		z-index: 100;
		opacity: 0;
		visibility: hidden;
		transform: translateY(-8px);
		transition:
			opacity 0.18s ease 0.24s,
			transform 0.18s ease 0.24s,
			visibility 0s linear 0.42s;
	}

	/* Invisible bridge so the pointer can travel from the item to the panel */
	.lm-nav .elementor-nav-menu--main .sub-menu::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: -35px;
		height: 35px;
	}

	.lm-nav .elementor-nav-menu--main li:hover > .sub-menu,
	.lm-nav .elementor-nav-menu--main li:focus-within > .sub-menu {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
		transition:
			opacity 0.18s ease 0.12s,
			transform 0.18s ease 0.12s,
			visibility 0s linear 0.12s;
	}

	/* Escape pressed: keep the panel shut until the pointer/focus moves on */
	.lm-nav.lm-nav--closed .elementor-nav-menu--main .sub-menu {
		opacity: 0 !important;
		visibility: hidden !important;
		transition: none !important;
	}

	/* Rows: title + one line of explanation */
	.lm-nav .elementor-nav-menu--main .sub-menu a.elementor-sub-item {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 2.25px;
		padding: 14px 22px;
		text-align: left;
		font-family: var(--lm-font-body, "Poppins"), sans-serif;
		font-size: 15px;
		font-weight: 500;
		line-height: normal;
		letter-spacing: 0;
		text-transform: none;
		white-space: normal;
		color: var(--lm-white, #fff);
		background-color: transparent;
		border: 0;
		box-shadow: inset 2px 0 0 transparent;
		transition: color 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease;
	}

	/* Hovered / focused / current row: light wash + yellow rule */
	.lm-nav .elementor-nav-menu--main .sub-menu a.elementor-sub-item:hover,
	.lm-nav .elementor-nav-menu--main .sub-menu a.elementor-sub-item:focus-visible,
	.lm-nav .elementor-nav-menu--main .sub-menu a.elementor-sub-item.elementor-item-active,
	.lm-nav .elementor-nav-menu--main .sub-menu .current-menu-item > a.elementor-sub-item {
		color: var(--lm-white, #fff);
		background-color: rgba(143, 203, 239, 0.12);
		box-shadow: inset 2px 0 0 var(--lm-yellow, #e2ff4d);
		outline: none;
	}

	.lm-nav .elementor-nav-menu--main .sub-menu a.elementor-sub-item:hover,
	.lm-nav .elementor-nav-menu--main .sub-menu a.elementor-sub-item:focus-visible {
		color: var(--lm-seagull, #8fcbef);
	}

	.lm-nav .elementor-nav-menu--main .sub-menu .lm-menu-desc {
		display: block;
		font-weight: 300;
		font-size: 12.5px;
		line-height: 18.13px;
		color: var(--lm-seagull, #8fcbef);
	}

	/* "All services →" footer link */
	.lm-nav .elementor-nav-menu--main .sub-menu li.lm-menu-footer {
		margin-top: 8px;
		border-top: 1px solid rgba(143, 203, 239, 0.35);
	}

	.lm-nav .elementor-nav-menu--main .sub-menu li.lm-menu-footer > a.elementor-sub-item {
		padding: 18px 22px 8px;
		font-size: 13px;
		color: var(--lm-seagull, #8fcbef);
		background-color: transparent;
		box-shadow: none;
	}

	.lm-nav .elementor-nav-menu--main .sub-menu li.lm-menu-footer > a.elementor-sub-item:hover,
	.lm-nav .elementor-nav-menu--main .sub-menu li.lm-menu-footer > a.elementor-sub-item:focus-visible {
		color: var(--lm-seagull, #8fcbef);
		text-decoration: underline;
		text-underline-offset: 3px;
		background-color: transparent;
		box-shadow: none;
	}
}

@media (min-width: 1025px) and (prefers-reduced-motion: reduce) {
	.lm-nav .elementor-nav-menu--main .sub-menu,
	.lm-nav .elementor-nav-menu--main li:hover > .sub-menu,
	.lm-nav .elementor-nav-menu--main li:focus-within > .sub-menu {
		transform: none;
		transition: none;
	}
}


/* 4. Tablet + mobile menu (≤1024px) ------------------------------------- */
/* Full-height panel under the header bar. Sections open as an accordion
   (one at a time — see the JS snippet); Book a call + phone sit at the base. */
@media (max-width: 1024px) {
	.lm-header {
		--lm-header-h: 100px;
	}

	.elementor-widget-nav-menu.lm-nav {
		order: 3;
		margin-inline-start: 0;
		position: static !important;
	}

	/* Header bar turns solid navy while the menu is open */
	.lm-header:has(.lm-nav .elementor-menu-toggle.elementor-active) {
		background-color: var(--lm-navy, #011460) !important;
		box-shadow: inset 0 -1px 0 rgba(143, 203, 239, 0.35);
	}

	html:has(.lm-nav .elementor-menu-toggle.elementor-active) {
		overflow: hidden;
	}

	.lm-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container {
		position: absolute;
		top: 100% !important;
		left: 0 !important;
		right: 0;
		width: 100% !important;
		margin-top: 0;
		z-index: 60;
		background-color: var(--lm-navy, #011460);
	}

	.lm-nav .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container {
		height: calc(100dvh - var(--lm-header-h));
		max-height: calc(100dvh - var(--lm-header-h));
		overflow-y: auto;
		overscroll-behavior: contain;
	}

	body.admin-bar .lm-nav .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container {
		height: calc(100dvh - var(--lm-header-h) - 32px);
		max-height: calc(100dvh - var(--lm-header-h) - 32px);
	}

	.lm-nav .elementor-nav-menu__container.elementor-nav-menu--dropdown > .elementor-nav-menu {
		display: flex;
		flex-direction: column;
		min-height: 100%;
		padding-top: 8px;
	}

	/* Top-level rows */
	.lm-nav .elementor-nav-menu__container.elementor-nav-menu--dropdown > .elementor-nav-menu > li {
		border-bottom: 1px solid rgba(143, 203, 239, 0.2);
	}

	.lm-nav .elementor-nav-menu__container.elementor-nav-menu--dropdown > .elementor-nav-menu > li > a.elementor-item {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 16px 20px;
		font-family: var(--lm-font-heading, "Sora"), sans-serif;
		font-size: 19px;
		font-weight: 500;
		line-height: normal;
		letter-spacing: 0;
		text-transform: none;
		color: var(--lm-white, #fff);
		background-color: transparent;
		border: 0;
	}

	/* Open section gets a light wash */
	.lm-nav .elementor-nav-menu__container.elementor-nav-menu--dropdown > .elementor-nav-menu > li:has(> a.highlighted) {
		background-color: rgba(143, 203, 239, 0.12);
		border-bottom-color: transparent;
	}

	.lm-nav .elementor-nav-menu__container.elementor-nav-menu--dropdown > .elementor-nav-menu > li:not(.lm-menu-cta) > a.elementor-item:hover {
		color: var(--lm-seagull, #8fcbef);
	}

	/* + / − toggles */
	.lm-nav .elementor-nav-menu--dropdown .sub-arrow {
		margin-left: auto;
		padding: 0 0 0 12px;
		font-family: var(--lm-font-body, "Poppins"), sans-serif;
		font-size: 15px;
		font-weight: 400;
		line-height: 1;
		color: var(--lm-seagull, #8fcbef);
	}

	.lm-nav .elementor-nav-menu--dropdown .sub-arrow > * {
		display: none;
	}

	.lm-nav .elementor-nav-menu--dropdown .sub-arrow::before {
		content: "+";
	}

	.lm-nav .elementor-nav-menu--dropdown a.highlighted .sub-arrow {
		color: var(--lm-yellow, #e2ff4d);
	}

	.lm-nav .elementor-nav-menu--dropdown a.highlighted .sub-arrow::before {
		content: "−";
	}

	/* Child links inside an open section */
	.lm-nav .elementor-nav-menu--dropdown .sub-menu {
		position: static !important;
		width: auto !important;
		margin: 0 !important;
		padding: 0 20px 16px;
		background-color: transparent;
		border: 0;
		box-shadow: none;
	}

	.lm-nav .elementor-nav-menu--dropdown .sub-menu a.elementor-sub-item {
		padding: 6px 0;
		font-family: var(--lm-font-body, "Poppins"), sans-serif;
		font-size: 15px;
		font-weight: 400;
		line-height: 24.5px;
		letter-spacing: 0;
		text-transform: none;
		color: var(--lm-tropical, #d3ecfa);
		background-color: transparent;
		border: 0;
	}

	.lm-nav .elementor-nav-menu--dropdown .sub-menu a.elementor-sub-item.elementor-item-active {
		color: var(--lm-white, #fff);
		background-color: transparent;
	}

	.lm-nav .elementor-nav-menu--dropdown .sub-menu a.elementor-sub-item:hover {
		color: var(--lm-seagull, #8fcbef);
		background-color: transparent;
	}

	/* Descriptions and "All services →" are desktop-panel extras */
	.lm-nav .elementor-nav-menu--dropdown .lm-menu-desc,
	.lm-nav .elementor-nav-menu--dropdown .sub-menu li.lm-menu-footer {
		display: none;
	}

	/* Book a call + phone pinned at the base of the menu */
	.lm-nav .elementor-nav-menu__container.elementor-nav-menu--dropdown > .elementor-nav-menu > li.lm-menu-cta {
		margin-top: auto;
		padding: 20px 20px 0;
		border-top: 1px solid rgba(143, 203, 239, 0.35);
		border-bottom: 0;
	}

	.lm-nav .elementor-nav-menu__container.elementor-nav-menu--dropdown > .elementor-nav-menu > li.lm-menu-cta > a.elementor-item {
		justify-content: center;
		padding: 16.5px 16px 17px;
		font-family: var(--lm-font-body, "Poppins"), sans-serif;
		font-size: 15px;
		font-weight: 500;
		color: var(--lm-white, #fff);
		background-color: var(--lm-azure, #1aa5e4);
		border-left: 2px solid var(--lm-yellow, #e2ff4d);
		border-radius: 0 10px 10px 0;
	}

	.lm-nav .elementor-nav-menu__container.elementor-nav-menu--dropdown > .elementor-nav-menu > li.lm-menu-phone {
		padding: 13.5px 20px 21px;
		border-bottom: 0;
	}

	.lm-nav .elementor-nav-menu__container.elementor-nav-menu--dropdown > .elementor-nav-menu > li.lm-menu-phone > a.elementor-item {
		padding: 0;
		font-family: var(--lm-font-body, "Poppins"), sans-serif;
		font-size: 15px;
		font-weight: 400;
		color: var(--lm-tropical, #d3ecfa);
	}
}

@media (max-width: 767px) {
	/* Height of the mobile header bar. The logo scales with the screen
	   (clamp(120px, 40vw, 160px), set on the logo in the Header template)
	   and the bar is its height (0.388 × width) + 33px of padding. Update
	   both together so the open menu fills the screen exactly. */
	.lm-header {
		--lm-header-h: calc(clamp(120px, 40vw, 160px) * 0.388 + 33px);
	}

	/* Smaller hamburger to match the mobile design */
	.lm-nav .elementor-menu-toggle {
		font-size: 20px;
		padding: 4px;
	}
}

@media (max-width: 782px) {
	body.admin-bar .lm-nav .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container {
		height: calc(100dvh - var(--lm-header-h) - 46px);
		max-height: calc(100dvh - var(--lm-header-h) - 46px);
	}
}


/* 5. Hero headline highlight ("AI") ------------------------------------- */
/* Underline a word in the hero headline (U button in the editor) and it
   shows in yellow instead, so it doesn't look like a link. */
.lm-hero h1 u {
	color: var(--lm-yellow, #e2ff4d);
	text-decoration: none;
}


/* 6. Who We Serve tiles — slow photo zoom on hover ---------------------- */
/* Skipped for visitors who have "reduce motion" switched on. */
@media (prefers-reduced-motion: no-preference) {
	.lm-tile:hover .lm-tile-img {
		transform: scale(1.04);
	}
}


/* 7. Footer newsletter form -------------------------------------------- */
.lm-input::placeholder {
	color: var(--lm-seagull, #8fcbef);
	opacity: 1;
}

.lm-input:focus {
	border-color: var(--lm-white, #fff);
}

.elementor-location-footer .e-form-success-message,
.elementor-location-footer .e-form-error-message {
	flex-basis: 100%;
	margin-top: 8px;
	font-family: var(--lm-font-body, "Poppins"), sans-serif;
	font-size: 12.5px;
	text-align: left;
}


/* 8. Mobile footer (≤767px) --------------------------------------------- */
@media (max-width: 767px) {
	/* Footer links sit inline on mobile: "Get in Touch · Client Support · …"
	   The dot is added between links in the same column. */
	.elementor-location-footer .lm-footer-link:has(+ .lm-footer-link)::after {
		content: "\00a0·\00a0";
	}
}


/* 9. Keyboard focus ring ------------------------------------------------ */
/* Shown only when someone moves around with the keyboard (not on mouse
   clicks). Two tones so it shows on every background: a yellow inner ring
   for navy, cobalt and photo sections, and a navy outer ring for white and
   light-blue sections. !important is needed because Elementor's link and
   form-field base styles reset outlines. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible {
	outline: 2px solid var(--lm-navy, #011460) !important;
	outline-offset: 2px !important;
	box-shadow: 0 0 0 2px var(--lm-yellow, #e2ff4d) !important;
}


/* 10. Link hover colour ------------------------------------------------- */
/* Every text link turns lm-seagull (#8fcbef) on hover. Buttons keep their
   own hover (background change); menu links are set in sections 2–4.
   To change the hover colour site-wide, edit the lm-seagull variable. */
.elementor a:not(.e-button-base):not(.elementor-button):not(.elementor-item):not(.elementor-sub-item):hover {
	color: var(--lm-seagull, #8fcbef);
}

/* Hover colour fades in and out over 0.3s on every link, menus included */
.elementor a:not(.e-button-base):not(.elementor-button):not(.elementor-item):not(.elementor-sub-item),
.lm-nav .elementor-nav-menu--dropdown a.elementor-item,
.lm-nav .elementor-nav-menu--dropdown a.elementor-sub-item {
	transition: color 0.3s ease, background-color 0.3s ease;
}

/* ==========================================================================
   Button hover wipe
   The hover colour wipes in left to right and back out on un-hover.
   Azure buttons wipe to cobalt; lm-btn-cobalt wipes to azure.
   lm-btn-white is left alone. To change the speed, edit 0.25s below.
   ========================================================================== */
.elementor .lm-btn.lm-btn:not(.lm-btn-white) {
	--lm-btn-base: var(--lm-azure);
	--lm-btn-hover: var(--lm-cobalt);
	background-color: var(--lm-btn-base);
	background-image: linear-gradient(var(--lm-btn-hover), var(--lm-btn-hover));
	background-repeat: no-repeat;
	background-position: left center;
	background-size: 0% 100%;
	transition: background-size 0.25s cubic-bezier(0.65, 0, 0.35, 1), color 0.2s;
}
.elementor .lm-btn-cobalt.lm-btn:not(.lm-btn-white) {
	--lm-btn-base: var(--lm-cobalt);
	--lm-btn-hover: var(--lm-azure);
}
.elementor .lm-btn.lm-btn:not(.lm-btn-white):hover,
.elementor .lm-btn.lm-btn:not(.lm-btn-white):focus-visible {
	background-color: var(--lm-btn-base);
	background-size: 100% 100%;
}
@media (prefers-reduced-motion: reduce) {
	.elementor .lm-btn.lm-btn:not(.lm-btn-white) { transition: none; }
}

/* ==========================================================================
   Client testimonial carousel (#client-story)
   Elementor Loop Carousel + "Client Testimonial Loop Item" template.
   Content comes from the Clients CPT (ACF group "Client Testimonial").
   ========================================================================== */
#client-story .lm-inner {
	display: block;
}
.lm-testimonials {
	width: 100%;
}
.lm-testimonials .swiper {
	padding-bottom: 64px;
}
.elementor .lm-testimonials .swiper-pagination {
	left: 50%;
	bottom: 12px;
	width: auto;
	text-align: center;
	white-space: nowrap;
}
.elementor .lm-testimonials .swiper-pagination-bullet {
	width: 14px;
	height: 14px;
	margin: 0 8px;
	background: var(--lm-seagull, #8fcbef);
	opacity: 0.5;
	cursor: pointer;
}
.elementor .lm-testimonials .swiper-pagination-bullet-active {
	background: var(--lm-yellow, #e2ff4d);
	opacity: 1;
}

.e-con.lm-testi-item {
	display: grid;
	grid-template-columns: 1.3fr 1fr;
	gap: 48px 64px;
	align-items: center;
	width: 100%;
	--padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
}
.e-con.lm-testi-left,
.e-con.lm-testi-right,
.e-con.lm-testi-attr,
.e-con.lm-testi-proof {
	display: flex;
	flex-direction: column;
	width: 100%;
	--padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
}
.e-con.lm-testi-left  { gap: 24px; --gap: 24px; --row-gap: 24px; --column-gap: 24px; }
.e-con.lm-testi-attr  { gap: 3px;  --gap: 3px;  --row-gap: 3px;  --column-gap: 3px; }
.e-con.lm-testi-right { gap: 22px; --gap: 22px; --row-gap: 22px; --column-gap: 22px; }
.e-con.lm-testi-proof {
	gap: 7px; --gap: 7px; --row-gap: 7px; --column-gap: 7px;
	border-left: 2px solid var(--lm-azure, #147dad);
	--padding-left: 20px;
	padding-left: 20px;
}
.elementor .lm-testi-item .elementor-heading-title {
	margin: 0;
}
.elementor .lm-testi-eyebrow .elementor-heading-title {
	font-family: var(--lm-font-mono);
	font-weight: 400;
	font-size: 12.5px;
	line-height: 1.3;
	color: var(--lm-seagull, #8fcbef);
}
.elementor .lm-testi-quote .elementor-heading-title {
	font-family: var(--lm-font-heading);
	font-weight: 600;
	font-size: 33px;
	line-height: 1.36;
	letter-spacing: -0.02em;
	color: var(--lm-white, #fff);
}
.elementor .lm-testi-author .elementor-heading-title {
	font-family: var(--lm-font-body);
	font-weight: 500;
	font-size: 14px;
	line-height: 1.5;
	color: var(--lm-white, #fff);
}
.elementor .lm-testi-place .elementor-heading-title {
	font-family: var(--lm-font-body);
	font-weight: 300;
	font-size: 13.5px;
	line-height: 1.5;
	color: var(--lm-tropical, #d3ecfa);
}
.elementor .lm-testi-proof-num .elementor-heading-title {
	font-family: var(--lm-font-heading);
	font-weight: 700;
	font-size: 38px;
	line-height: 1;
	color: var(--lm-yellow, #e2ff4d);
}
.elementor .lm-testi-proof-lbl .elementor-heading-title {
	font-family: var(--lm-font-body);
	font-weight: 400;
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--lm-tropical, #d3ecfa);
}
.elementor .lm-testi-eyebrow .elementor-heading-title,
.elementor .lm-testi-author .elementor-heading-title,
.elementor .lm-testi-place .elementor-heading-title,
.elementor .lm-testi-proof-lbl .elementor-heading-title {
	letter-spacing: normal;
}
@media (max-width: 1024px) {
	.e-con.lm-testi-item { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
	.elementor .lm-testi-quote .elementor-heading-title { font-size: 24px; }
	.elementor .lm-testi-proof-num .elementor-heading-title { font-size: 30px; }
}
