/*!
 * Lazuli Management child theme global CSS.
 * Phase 1A iteration 2. Tokens flow through theme.json; this file consumes
 * the resulting CSS custom properties. No raw hex values; if you find one,
 * file the token in theme.json first.
 *
 * Sections:
 *   1.  Token aliases
 *   2.  Card hover lift
 *   3.  Click-to-call (.phone-cta)
 *   4.  Footer social icons (legacy parent footer; LM custom footer in 8)
 *   5.  Breadcrumb (.lm-breadcrumb)
 *   6.  Skip link (WCAG 2.4.1)
 *   6.5 Hello Elementor parent overrides
 *   7.  Home page (iteration 2): hero, services, stats, why, process,
 *       testimonials, partnership, blog teaser, final CTA. Plus shared
 *       primitives (.lm-section, .lm-container, .lm-h1/.lm-h2, .lm-eyebrow,
 *       .lm-btn, .lm-grid, .lm-card).
 *   8.  Custom site footer (.lm-footer) per template-parts/footer.php
 *
 * NOTE: zero em-dash characters (U+2014). Verify with Grep before commit.
 */

/* ---------------------------------------------------------------------- */
/* 1. Token aliases                                                       */
/* ---------------------------------------------------------------------- */

:root {
	--lm-color-canvas:           var(--wp--custom--color--semantic--background--canvas);
	--lm-color-surface:          var(--wp--custom--color--semantic--background--surface);
	--lm-color-surface-tinted:   var(--wp--custom--color--semantic--background--surface-tinted);
	--lm-color-surface-cool:     var(--wp--custom--color--semantic--background--surface-cool);
	--lm-color-inverse:          var(--wp--custom--color--semantic--background--inverse);
	--lm-color-inverse-soft:     var(--wp--custom--color--semantic--background--inverse-soft);

	--lm-color-text-primary:     var(--wp--custom--color--semantic--text--primary);
	--lm-color-text-secondary:   var(--wp--custom--color--semantic--text--secondary);
	--lm-color-text-muted:       var(--wp--custom--color--semantic--text--muted);
	--lm-color-text-accent:      var(--wp--custom--color--semantic--text--accent);
	--lm-color-text-brand:       var(--wp--custom--color--semantic--text--brand);
	--lm-color-text-inverse:     var(--wp--custom--color--semantic--text--inverse);
	--lm-color-text-on-gold:     var(--wp--custom--color--semantic--text--on-gold);

	--lm-color-action-default:   var(--wp--custom--color--semantic--action--default);
	--lm-color-action-hover:     var(--wp--custom--color--semantic--action--hover);
	--lm-color-action-active:    var(--wp--custom--color--semantic--action--active);
	--lm-color-border-focus:     var(--wp--custom--color--semantic--border--focus);

	--lm-color-footer-bg:        var(--wp--custom--color--component--footer--background);
	--lm-color-footer-text:      var(--wp--custom--color--component--footer--text);
	--lm-color-footer-text-muted:var(--wp--custom--color--component--footer--text-muted);
	--lm-color-footer-link:      var(--wp--custom--color--component--footer--link);
	--lm-color-footer-link-hover:var(--wp--custom--color--component--footer--link-hover);
	--lm-color-footer-border:    var(--wp--custom--color--component--footer--border);

	--lm-space-1:  var(--wp--preset--spacing--1);
	--lm-space-2:  var(--wp--preset--spacing--2);
	--lm-space-3:  var(--wp--preset--spacing--3);
	--lm-space-4:  var(--wp--preset--spacing--4);
	--lm-space-6:  var(--wp--preset--spacing--6);
	--lm-space-8:  var(--wp--preset--spacing--8);
	--lm-space-12: var(--wp--preset--spacing--12);
	--lm-space-16: var(--wp--preset--spacing--16);

	--lm-radius-tight:    var(--wp--custom--radius--tight);
	--lm-radius-default:  var(--wp--custom--radius--default);
	--lm-radius-loose:    var(--wp--custom--radius--loose);
	--lm-radius-pill:     var(--wp--custom--radius--pill);

	--lm-shadow-low:        var(--wp--preset--shadow--low);
	--lm-shadow-medium:     var(--wp--preset--shadow--medium);
	--lm-shadow-high:       var(--wp--preset--shadow--high);
	--lm-shadow-focus-ring: var(--wp--preset--shadow--focus-ring);

	--lm-motion-fast:    var(--wp--custom--motion--duration--fast);
	--lm-motion-default: var(--wp--custom--motion--duration--default);
	--lm-easing-out:     var(--wp--custom--motion--easing--out);

	/* Iteration 2 additions: hard-coded ramp picks for sections that need  */
	/* values not exposed yet by the semantic layer.                        */
	--lm-gold-cream:  var(--wp--preset--color--gold-100, #FFEAAE);
	--lm-gold-bright: var(--wp--preset--color--gold-500, #FED55D);
	--lm-gold-mid:    var(--wp--preset--color--gold-700, #BFA046);
	--lm-gold-dark:   var(--wp--preset--color--gold-900, #7F6A2F);
	--lm-blue-light:  var(--wp--preset--color--blue-100, #8FACC1);
	--lm-blue:        var(--wp--preset--color--blue-500, #205A83);
	--lm-blue-deep:   var(--wp--preset--color--blue-700, #184362);
	--lm-blue-night:  var(--wp--preset--color--blue-900, #102D41);
	--lm-cream:       #FAF6EA;
	--lm-cream-warm:  #F4ECD2;
	--lm-bg-soft:     #F6F8FA;

	--lm-container: 1200px;
	--lm-container-narrow: 880px;
	--lm-radius-md: 12px;
	--lm-radius-lg: 20px;
}

/* ---------------------------------------------------------------------- */
/* 2. Card hover lift                                                     */
/* ---------------------------------------------------------------------- */

.lm-card--hover-lift {
	transition: transform var(--lm-motion-default) var(--lm-easing-out),
	            box-shadow var(--lm-motion-default) var(--lm-easing-out);
	will-change: transform;
}

@media (prefers-reduced-motion: no-preference) {
	.lm-card--hover-lift:hover,
	.lm-card--hover-lift:focus-within {
		transform: translateY(-2px);
		box-shadow: var(--lm-shadow-high);
	}
}

@media (prefers-reduced-motion: reduce) {
	.lm-card--hover-lift:hover,
	.lm-card--hover-lift:focus-within {
		box-shadow: var(--lm-shadow-high);
	}
}

/* ---------------------------------------------------------------------- */
/* 3. Click-to-call (.phone-cta)                                          */
/* ---------------------------------------------------------------------- */

.phone-cta {
	display: inline-flex;
	align-items: center;
	gap: var(--lm-space-2);
	min-height: 2.75rem;
	padding: var(--lm-space-3) var(--lm-space-6);
}

.phone-cta:focus-visible {
	outline: 2px solid var(--wp--preset--color--gold-500);
	outline-offset: 3px;
}

.phone-cta__icon,
.lm-btn__icon {
	flex: 0 0 auto;
	width: 1.125rem;
	height: 1.125rem;
}

/* ---------------------------------------------------------------------- */
/* 5. Breadcrumb                                                          */
/* ---------------------------------------------------------------------- */

.lm-breadcrumb {
	font-size: 0.875rem;
	color: var(--lm-color-text-secondary);
}

.lm-breadcrumb a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.lm-breadcrumb [aria-current="page"] {
	color: var(--lm-color-text-primary);
	font-weight: 600;
}

/* ---------------------------------------------------------------------- */
/* 6. Skip link                                                           */
/* ---------------------------------------------------------------------- */

.lm-skip-link {
	position: absolute;
	left: -9999px;
	top: auto;
}

.lm-skip-link:focus {
	position: fixed;
	left: 1rem;
	top: 1rem;
	padding: 0.75rem 1.25rem;
	background: var(--lm-gold-bright);
	color: var(--lm-blue-night);
	font-weight: 600;
	border-radius: 6px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
	z-index: 1200;
}

/* ---------------------------------------------------------------------- */
/* 6.5 Hello Elementor parent overrides                                   */
/* ---------------------------------------------------------------------- */

body.home .page-header,
body.home .entry-header,
body.home .entry-title,
body.home .elementor-page-title {
	display: none !important;
}

.site-header .site-description {
	display: none;
}

body.home .site-main,
body.home .site-main > .post,
body.home .site-main > .page,
body.home .site-main > article {
	max-width: none;
	padding: 0;
	margin: 0;
}

.site-header .custom-logo,
.site-header img.custom-logo {
	max-width: 200px;
	height: auto;
}

.site-header {
	padding-block: 1rem;
	border-bottom: 1px solid rgba(16, 45, 65, 0.06);
}

.site-header .site-branding,
.site-header nav {
	gap: 2rem;
}

.site-header nav a {
	color: var(--lm-blue-night);
	font-weight: 500;
	font-size: 0.95rem;
	letter-spacing: 0.01em;
	transition: color 160ms ease-out;
}

.site-header nav a:hover {
	color: var(--lm-gold-mid);
}

/* ---------------------------------------------------------------------- */
/* 6.6 R-4 main-nav sticky (native CSS)                                   */
/* ---------------------------------------------------------------------- */

/* R-4 (2026-05-27, revised): native CSS sticky on the outer header wrap, */
/* with display:contents on the Elementor location-header to remove the    */
/* 136 px height constraint that limits the sticky range. When sticky     */
/* engages, the negative top:-47px pulls the topbar (47 px rendered) above*/
/* the viewport, leaving the main-nav row pinned at viewport top.         */
/* Bypasses Elementor Pro 4.0.4 sticky JS handler regression on V4 atomic */
/* Containers. See docs/decisions/2026-05-27-philip-sticky-and-ecurrent-triage.md. */
.elementor-location-header {
	display: contents;
}
.lm-site-header-wrap {
	position: sticky;
	top: -47px;
	z-index: 999;
}

/* ---------------------------------------------------------------------- */
/* 7. Home page (iteration 2)                                             */
/* ---------------------------------------------------------------------- */

/* Global focus-visible. Double ring: gold inner 3px, navy outer 5px.    */
/* WCAG 2.2 SC 1.4.11 non-text contrast met by navy outer on light bg.   */
:focus-visible {
	outline: 0;
	box-shadow: 0 0 0 3px var(--lm-gold-bright), 0 0 0 5px var(--lm-blue-night);
	border-radius: 4px;
}

.lm-section {
	padding-block: clamp(3.5rem, 6vw, 6.5rem);
	padding-inline: clamp(1.25rem, 4vw, 2.5rem);
	position: relative;
}

.lm-container {
	width: 100%;
	max-width: var(--lm-container);
	margin-inline: auto;
}

/* --- Type primitives -------------------------------------------------- */

.lm-eyebrow {
	display: inline-block;
	font-size: 0.8125rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--lm-gold-mid);
	margin: 0 0 1rem;
}

.lm-eyebrow--gold {
	color: var(--lm-gold-bright);
}

.lm-eyebrow--on-cream {
	color: var(--lm-blue);
}

.lm-h1,
.lm-hero__h1 {
	font-family: Inter, system-ui, sans-serif;
	font-size: clamp(2.5rem, 5.6vw + 0.5rem, 5rem);
	line-height: 1.04;
	letter-spacing: -0.02em;
	font-weight: 700;
	color: var(--lm-blue-night);
	margin: 0 0 1.25rem;
}

.lm-h2 {
	font-family: Inter, system-ui, sans-serif;
	font-size: clamp(1.875rem, 2.4vw + 1rem, 2.875rem);
	line-height: 1.12;
	letter-spacing: -0.01em;
	font-weight: 700;
	color: var(--lm-blue-night);
	margin: 0 0 1rem;
}

.lm-h2--on-dark {
	color: #fff;
}

.lm-section__head {
	margin-bottom: clamp(2.5rem, 4vw, 4rem);
}

.lm-section__head--center {
	text-align: center;
	max-width: 56rem;
	margin-inline: auto;
}

.lm-section__lead {
	font-size: clamp(1.0625rem, 0.4vw + 1rem, 1.1875rem);
	line-height: 1.6;
	color: var(--lm-color-text-secondary);
	margin: 0 auto 0;
	max-width: 52rem;
}

.lm-section__lead--on-dark {
	color: rgba(255, 255, 255, 0.78);
}

.lm-section__cta-row {
	margin-top: clamp(2rem, 3vw, 3rem);
	display: flex;
	justify-content: center;
}

/* --- Buttons ---------------------------------------------------------- */

.lm-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.625rem;
	min-height: 3rem;
	padding: 0.875rem 1.75rem;
	font-family: Inter, system-ui, sans-serif;
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	line-height: 1;
	text-decoration: none;
	border-radius: 999px;
	border: 2px solid transparent;
	cursor: pointer;
	transition: background-color 160ms ease-out,
	            color 160ms ease-out,
	            border-color 160ms ease-out,
	            transform 120ms ease-out,
	            box-shadow 160ms ease-out;
}

.lm-btn:focus-visible {
	outline: 2px solid var(--lm-gold-bright);
	outline-offset: 3px;
}

.lm-btn--primary {
	background: var(--lm-gold-bright);
	color: var(--lm-blue-night);
	border-color: var(--lm-gold-bright);
	box-shadow: 0 8px 22px -10px rgba(254, 213, 93, 0.55);
}

.lm-btn--primary:hover {
	background: var(--lm-gold-mid);
	border-color: var(--lm-gold-mid);
	color: var(--lm-blue-night);
	transform: translateY(-1px);
	box-shadow: 0 12px 28px -10px rgba(191, 160, 70, 0.5);
}

.lm-btn--ghost-light {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, 0.6);
}

.lm-btn--ghost-light:hover {
	background: #fff;
	color: var(--lm-blue-night);
	border-color: #fff;
}

.lm-btn--ghost-dark {
	background: transparent;
	color: var(--lm-blue-night);
	border-color: var(--lm-blue-night);
}

.lm-btn--ghost-dark:hover {
	background: var(--lm-blue-night);
	color: #fff;
}

@media (prefers-reduced-motion: reduce) {
	.lm-btn { transition: none; }
	.lm-btn:hover { transform: none; }
}

.lm-cta-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1.75rem;
}

.lm-cta-row--center {
	justify-content: center;
}

/* --- Grid primitive --------------------------------------------------- */

.lm-grid {
	display: grid;
	gap: clamp(1.25rem, 2.4vw, 2rem);
}

.lm-grid--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 960px) {
	.lm-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
	.lm-grid--3 { grid-template-columns: minmax(0, 1fr); }
}

.lm-card {
	display: block;
	background: #fff;
	color: var(--lm-blue-night);
	padding: clamp(1.5rem, 2.4vw, 2.25rem);
	border-radius: var(--lm-radius-lg);
	border: 1px solid rgba(16, 45, 65, 0.08);
	box-shadow: 0 1px 2px rgba(16, 45, 65, 0.04);
	text-decoration: none;
	transition: transform 200ms ease-out, box-shadow 200ms ease-out, border-color 200ms ease-out;
	position: relative;
}

.lm-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 20px 40px -22px rgba(16, 45, 65, 0.28);
	border-color: rgba(254, 213, 93, 0.7);
}

.lm-card:focus-visible {
	outline: 2px solid var(--lm-gold-bright);
	outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
	.lm-card { transition: none; }
	.lm-card:hover { transform: none; }
}

/* --- Hero ------------------------------------------------------------- */

.lm-hero {
	overflow: hidden;
	color: #fff;
	padding-block: clamp(5rem, 9vw, 8rem);
	background: linear-gradient(135deg, var(--lm-blue-night) 0%, var(--lm-blue-deep) 55%, var(--lm-blue) 100%);
}

.lm-hero__bg {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(60% 60% at 80% 20%, rgba(254, 213, 93, 0.18) 0%, transparent 60%),
		radial-gradient(50% 50% at 10% 100%, rgba(143, 172, 193, 0.18) 0%, transparent 70%);
	pointer-events: none;
	z-index: 0;
}

.lm-hero__inner {
	position: relative;
	z-index: 1;
	text-align: center;
	max-width: 60rem;
}

.lm-hero__h1 {
	color: #fff;
	margin-block-end: 1.5rem;
}

.lm-hero__subhead {
	font-size: clamp(1.0625rem, 0.6vw + 1rem, 1.3125rem);
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.85);
	max-width: 44rem;
	margin: 0 auto 2.25rem;
}

.lm-hero .lm-cta-row {
	justify-content: center;
	margin-top: 0;
	margin-bottom: 3rem;
}

.lm-hero__platforms {
	list-style: none;
	padding: 0;
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.25rem;
	justify-content: center;
	align-items: center;
	max-width: 50rem;
}

.lm-hero__platforms::before {
	content: "Listed across";
	display: block;
	width: 100%;
	font-size: 0.75rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.55);
	margin-bottom: 0.75rem;
}

.lm-platform-tag {
	display: inline-block;
	padding: 0.5rem 1rem;
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	color: rgba(255, 255, 255, 0.85);
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 999px;
}

/* --- Services overview ------------------------------------------------ */

.lm-services {
	background: #fff;
}

.lm-service-card {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	padding: clamp(1.75rem, 2.5vw, 2.25rem);
}

.lm-service-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 14px;
	background: linear-gradient(135deg, var(--lm-gold-cream) 0%, var(--lm-gold-bright) 100%);
	color: var(--lm-blue-night);
	flex: 0 0 auto;
	margin-bottom: 0.5rem;
}

.lm-service-card__icon svg {
	width: 28px;
	height: 28px;
}

.lm-service-card__title {
	font-size: 1.25rem;
	line-height: 1.3;
	font-weight: 700;
	color: var(--lm-blue-night);
	margin: 0;
}

.lm-service-card__copy {
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--lm-color-text-secondary);
	margin: 0;
	flex-grow: 1;
}

.lm-service-card__arrow {
	font-size: 1.25rem;
	color: var(--lm-gold-mid);
	transition: transform 200ms ease-out, color 200ms ease-out;
	margin-top: 0.25rem;
	align-self: flex-start;
}

.lm-service-card:hover .lm-service-card__arrow {
	transform: translateX(4px);
	color: var(--lm-blue-night);
}

/* --- Stats ------------------------------------------------------------ */

.lm-stats {
	background: linear-gradient(180deg, var(--lm-cream) 0%, var(--lm-cream-warm) 100%);
}

.lm-stats__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.5rem, 3vw, 3rem);
	max-width: 64rem;
	margin-inline: auto;
	text-align: center;
}

@media (max-width: 720px) {
	.lm-stats__grid { grid-template-columns: minmax(0, 1fr); }
}

.lm-stat {
	padding: 1rem;
}

.lm-stat__figure {
	display: inline-flex;
	align-items: baseline;
	font-size: clamp(3rem, 5vw + 1rem, 5rem);
	line-height: 1;
	font-weight: 800;
	letter-spacing: -0.03em;
	color: var(--lm-blue);
	margin: 0 0 0.5rem;
	font-variant-numeric: tabular-nums;
}

.lm-stat__plus,
.lm-stat__suffix {
	font-size: 0.55em;
	color: var(--lm-gold-mid);
	font-weight: 700;
	margin-left: 0.05em;
}

.lm-stat__label {
	font-size: 1rem;
	line-height: 1.5;
	color: var(--lm-blue-deep);
	max-width: 18rem;
	margin: 0 auto;
}

/* --- Why Owners Choose Us (dark navy block) -------------------------- */

.lm-why {
	background: linear-gradient(135deg, var(--lm-blue-night) 0%, var(--lm-blue-deep) 100%);
	color: #fff;
	overflow: hidden;
}

.lm-why::before {
	content: "";
	position: absolute;
	top: -10%;
	right: -10%;
	width: 40rem;
	height: 40rem;
	background: radial-gradient(closest-side, rgba(254, 213, 93, 0.18), transparent 70%);
	pointer-events: none;
}

.lm-why .lm-container { position: relative; z-index: 1; }

.lm-why-tile {
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.10);
	border-radius: var(--lm-radius-lg);
	padding: clamp(1.75rem, 2.5vw, 2.5rem);
	color: #fff;
}

.lm-why-tile__num {
	display: block;
	font-size: 2.5rem;
	line-height: 1;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--lm-gold-bright);
	margin-bottom: 1.25rem;
}

.lm-why-tile__title {
	font-size: 1.25rem;
	line-height: 1.3;
	font-weight: 700;
	margin: 0 0 0.75rem;
	color: #fff;
}

.lm-why-tile__copy {
	font-size: 0.9375rem;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.78);
	margin: 0;
}

/* --- Process / How it works ------------------------------------------ */

.lm-process {
	background: #fff;
}

.lm-process__steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(1.25rem, 2.5vw, 2rem);
	position: relative;
}

@media (max-width: 960px) {
	.lm-process__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 540px) {
	.lm-process__steps { grid-template-columns: minmax(0, 1fr); }
}

.lm-process-step {
	padding: 1.5rem 1rem;
	text-align: center;
	position: relative;
}

.lm-process-step__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--lm-blue-night);
	color: var(--lm-gold-bright);
	font-size: 1.375rem;
	font-weight: 800;
	margin-bottom: 1rem;
	border: 4px solid var(--lm-cream);
	box-shadow: 0 0 0 1px rgba(16, 45, 65, 0.08);
}

.lm-process-step__title {
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--lm-blue-night);
	margin: 0 0 0.5rem;
}

.lm-process-step__copy {
	font-size: 0.9375rem;
	line-height: 1.55;
	color: var(--lm-color-text-secondary);
	margin: 0;
}

/* --- Testimonials ----------------------------------------------------- */

.lm-testimonials {
	background: var(--lm-cream);
}

.lm-testimonial {
	background: #fff;
	padding: clamp(1.5rem, 2.4vw, 2.25rem);
	border-radius: var(--lm-radius-lg);
	border: 1px solid rgba(16, 45, 65, 0.06);
	box-shadow: 0 8px 24px -16px rgba(16, 45, 65, 0.18);
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.lm-testimonial__rating {
	display: inline-flex;
	gap: 0.25rem;
	color: var(--lm-gold-mid);
}

.lm-testimonial__rating svg {
	width: 18px;
	height: 18px;
}

.lm-testimonial__quote {
	margin: 0;
	font-size: 1.0625rem;
	line-height: 1.55;
	color: var(--lm-blue-night);
	font-weight: 500;
	flex-grow: 1;
}

.lm-testimonial__quote p {
	margin: 0;
}

.lm-testimonial__quote::before {
	content: "\201C";
	display: block;
	font-size: 3rem;
	line-height: 0.6;
	color: var(--lm-gold-bright);
	font-weight: 700;
	margin-bottom: 0.5rem;
}

.lm-testimonial__attrib {
	display: flex;
	align-items: center;
	gap: 0.875rem;
	border-top: 1px solid rgba(16, 45, 65, 0.08);
	padding-top: 1rem;
}

.lm-testimonial__avatar {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--lm-blue) 0%, var(--lm-blue-night) 100%);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	flex: 0 0 auto;
}

.lm-testimonial__who {
	display: flex;
	flex-direction: column;
}

.lm-testimonial__name {
	font-weight: 700;
	color: var(--lm-blue-night);
	font-size: 0.9375rem;
}

.lm-testimonial__role {
	font-size: 0.8125rem;
	color: var(--lm-color-text-secondary);
}

/* --- Partnership Models ---------------------------------------------- */

.lm-partnership {
	background: #fff;
}

.lm-partnership__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1.5rem, 2.5vw, 2.5rem);
	max-width: 72rem;
	margin-inline: auto;
}

@media (max-width: 820px) {
	.lm-partnership__grid { grid-template-columns: minmax(0, 1fr); }
}

.lm-partnership-card {
	padding: clamp(2rem, 3vw, 2.75rem);
	border-radius: var(--lm-radius-lg);
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.lm-partnership-card--guaranteed {
	background: var(--lm-cream);
	border: 1px solid rgba(16, 45, 65, 0.08);
	color: var(--lm-blue-night);
}

.lm-partnership-card--performance {
	background: linear-gradient(135deg, var(--lm-blue-night) 0%, var(--lm-blue-deep) 100%);
	color: #fff;
	position: relative;
	overflow: hidden;
}

.lm-partnership-card--performance::before {
	content: "";
	position: absolute;
	top: -20%;
	right: -20%;
	width: 22rem;
	height: 22rem;
	background: radial-gradient(closest-side, rgba(254, 213, 93, 0.22), transparent 70%);
	pointer-events: none;
}

.lm-partnership-card > * { position: relative; z-index: 1; }

.lm-partnership-card__tag {
	font-size: 0.8125rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--lm-gold-mid);
	margin: 0;
}

.lm-partnership-card--performance .lm-partnership-card__tag,
.lm-partnership-card__tag--gold {
	color: var(--lm-gold-bright);
}

.lm-partnership-card__title {
	font-size: clamp(1.375rem, 1.5vw + 1rem, 1.875rem);
	line-height: 1.2;
	font-weight: 700;
	margin: 0;
}

.lm-partnership-card--performance .lm-partnership-card__title { color: #fff; }

.lm-partnership-card__copy {
	font-size: 1rem;
	line-height: 1.6;
	margin: 0;
	color: var(--lm-color-text-secondary);
}

.lm-partnership-card--performance .lm-partnership-card__copy {
	color: rgba(255, 255, 255, 0.82);
}

.lm-partnership-card__features {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
}

.lm-partnership-card__features li {
	position: relative;
	padding-left: 1.75rem;
	font-size: 0.9375rem;
	line-height: 1.5;
}

.lm-partnership-card__features li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.45em;
	width: 1.125rem;
	height: 1.125rem;
	border-radius: 50%;
	background: var(--lm-gold-bright);
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23102D41' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 12px;
}

.lm-partnership-card__cta {
	margin-top: auto;
	align-self: flex-start;
}

.lm-partnership-card--performance .lm-partnership-card__cta.lm-btn--primary {
	background: var(--lm-gold-bright);
}

/* --- Blog teaser ------------------------------------------------------ */

.lm-blog-teaser {
	background: var(--lm-bg-soft);
}

.lm-blog-card {
	display: flex;
	flex-direction: column;
	gap: 0.875rem;
}

.lm-blog-card__category {
	display: inline-block;
	padding: 0.25rem 0.625rem;
	font-size: 0.6875rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: var(--lm-blue);
	background: rgba(32, 90, 131, 0.08);
	border-radius: 999px;
	align-self: flex-start;
}

.lm-blog-card__title {
	font-size: 1.125rem;
	line-height: 1.3;
	font-weight: 700;
	margin: 0;
	color: var(--lm-blue-night);
}

.lm-blog-card__excerpt {
	font-size: 0.9375rem;
	line-height: 1.55;
	color: var(--lm-color-text-secondary);
	margin: 0;
	flex-grow: 1;
}

.lm-blog-card__meta {
	font-size: 0.8125rem;
	color: var(--lm-blue);
	font-weight: 600;
}

/* --- Final CTA -------------------------------------------------------- */

.lm-final-cta {
	color: #fff;
	overflow: hidden;
	background: linear-gradient(135deg, var(--lm-blue-night) 0%, var(--lm-blue-deep) 100%);
	padding-block: clamp(4.5rem, 7vw, 7rem);
}

.lm-final-cta__bg {
	position: absolute;
	inset: 0;
	background: radial-gradient(60% 80% at 50% 0%, rgba(254, 213, 93, 0.16) 0%, transparent 70%);
	pointer-events: none;
}

.lm-final-cta__inner {
	position: relative;
	text-align: center;
	max-width: 56rem;
}

.lm-final-cta .lm-h2 {
	color: #fff;
	margin-bottom: 1rem;
}

.lm-final-cta__lead {
	font-size: clamp(1.0625rem, 0.5vw + 1rem, 1.25rem);
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.82);
	max-width: 44rem;
	margin: 0 auto 2rem;
}

/* ---------------------------------------------------------------------- */
/* 8. Custom site footer (.lm-footer)                                     */
/* ---------------------------------------------------------------------- */

.lm-footer {
	background: var(--lm-blue-night);
	color: rgba(255, 255, 255, 0.82);
	padding-block: clamp(3.5rem, 5vw, 5rem) 0;
	margin-top: 0;
}

.lm-footer .lm-container {
	width: 100%;
	max-width: var(--lm-container);
	margin-inline: auto;
	padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

.lm-footer__main {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr 1.2fr 1.4fr;
	gap: clamp(1.75rem, 3vw, 3rem);
	padding-bottom: clamp(2.5rem, 4vw, 3.5rem);
}

@media (max-width: 1100px) {
	.lm-footer__main {
		grid-template-columns: 1fr 1fr;
		row-gap: clamp(2rem, 3vw, 2.5rem);
	}
	.lm-footer__brand,
	.lm-footer__newsletter { grid-column: span 2; }
}

@media (max-width: 540px) {
	.lm-footer__main {
		grid-template-columns: minmax(0, 1fr);
	}
	.lm-footer__brand,
	.lm-footer__newsletter,
	.lm-footer__col,
	.lm-footer__contact { grid-column: span 1; }
}

.lm-footer__logo {
	max-width: 180px;
	height: auto;
	display: block;
	filter: brightness(0) invert(1);
}

.lm-footer__logo-link {
	display: inline-block;
	margin-bottom: 1.25rem;
}

.lm-footer__tag {
	font-size: 0.9375rem;
	color: var(--lm-gold-bright);
	font-weight: 600;
	letter-spacing: 0.01em;
	margin: 0 0 0.75rem;
}

.lm-footer__intro {
	font-size: 0.875rem;
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.65);
	margin: 0 0 1.25rem;
	max-width: 22rem;
}

.lm-footer__social {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 0.5rem;
}

.lm-footer__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.06);
	color: rgba(255, 255, 255, 0.85);
	transition: background 160ms ease-out, color 160ms ease-out, transform 160ms ease-out;
}

.lm-footer__social-link:hover {
	background: var(--lm-gold-bright);
	color: var(--lm-blue-night);
	transform: translateY(-2px);
}

.lm-footer__social-link.is-placeholder {
	opacity: 0.45;
	cursor: not-allowed;
}

.lm-footer__heading {
	font-size: 0.8125rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: #fff;
	margin: 0 0 1.125rem;
}

.lm-footer__col,
.lm-footer__contact {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.lm-footer__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.lm-footer__list a,
.lm-footer__col-cta {
	color: rgba(255, 255, 255, 0.72);
	text-decoration: none;
	font-size: 0.9375rem;
	line-height: 1.45;
	transition: color 160ms ease-out;
}

.lm-footer__list a:hover,
.lm-footer__col-cta:hover {
	color: var(--lm-gold-bright);
}

.lm-footer__col-cta {
	margin-top: 0.75rem;
	font-weight: 600;
	color: var(--lm-gold-bright);
	display: inline-block;
}

.lm-footer__nap {
	font-style: normal;
	margin: 0 0 1rem;
}

.lm-footer__nap p {
	margin: 0 0 0.25rem;
	font-size: 0.9375rem;
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.78);
}

.lm-footer__company {
	font-weight: 700;
	color: #fff !important;
}

.lm-footer__links--icons {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
}

.lm-footer__contact-link {
	display: inline-flex;
	align-items: center;
	gap: 0.625rem;
	color: rgba(255, 255, 255, 0.85);
	text-decoration: none;
	font-size: 0.9375rem;
	transition: color 160ms ease-out;
}

.lm-footer__contact-link svg {
	color: var(--lm-gold-bright);
	flex: 0 0 auto;
}

a.lm-footer__contact-link:hover {
	color: var(--lm-gold-bright);
}

.lm-footer__hours {
	color: rgba(255, 255, 255, 0.7);
}

.lm-footer__newsletter-lead {
	font-size: 0.875rem;
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.7);
	margin: 0 0 1rem;
}

.lm-newsletter-form__label {
	display: block;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.55);
	margin-bottom: 0.5rem;
}

.lm-newsletter-form__row {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.lm-newsletter-form__input {
	flex: 1 1 12rem;
	min-width: 0;
	padding: 0.75rem 1rem;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, 0.18);
	background: rgba(255, 255, 255, 0.06);
	color: #fff;
	font-size: 0.9375rem;
}

.lm-newsletter-form__input:focus-visible {
	outline: 2px solid var(--lm-gold-bright);
	outline-offset: 2px;
	border-color: var(--lm-gold-bright);
}

.lm-newsletter-form__input::placeholder {
	color: rgba(255, 255, 255, 0.35);
}

.lm-newsletter-form__btn {
	flex: 0 0 auto;
	min-height: 2.75rem;
	padding: 0.625rem 1.5rem;
}

.lm-newsletter-form__note {
	font-size: 0.75rem;
	color: rgba(255, 255, 255, 0.5);
	margin: 0.625rem 0 0;
}

.lm-newsletter-form__note a {
	color: rgba(255, 255, 255, 0.7);
	text-decoration: underline;
}

.lm-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	padding-block: 1.25rem;
	background: rgba(0, 0, 0, 0.18);
}

.lm-footer__bottom-inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 0.75rem;
}

.lm-footer__copyright {
	margin: 0;
	font-size: 0.8125rem;
	color: rgba(255, 255, 255, 0.55);
}

.lm-footer__legal ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 1.25rem;
	flex-wrap: wrap;
}

.lm-footer__legal a {
	font-size: 0.8125rem;
	color: rgba(255, 255, 255, 0.65);
	text-decoration: none;
	transition: color 160ms ease-out;
}

.lm-footer__legal a:hover {
	color: var(--lm-gold-bright);
}

/* Suppress legacy `.site-footer` (Hello Elementor parent footer) when our  */
/* custom footer.php takes over.                                            */
.site-footer:not(.lm-footer) { display: none; }

/* Hide WPML auto-injected footer language switcher (we use Elementor-native lang switcher in header + footer drawer) */
.wpml-ls-statics-footer { display: none !important; }

/* Lang switcher tap target on mobile (WCAG 2.5.8 + Apple HIG 44x44) */
@media (max-width: 767px) {
  .lm-lang-switcher .elementor-icon-list-item a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0 10px;
  }
  .lm-hamburger-btn .elementor-button {
    min-width: 44px;
    min-height: 44px;
  }
}

/* ──────────────────────────────────────────────────────────
   Issue 4 (homepage audit 2026-06-01): button label thins on hover.
   Root cause: the hover transform (.lm-btn--primary lift; Elementor
   icon translate) promotes the button to a composited layer, which
   flips text from subpixel to grayscale antialiasing ~at the end of
   the transition, so the label looks thinner. No font-weight rule is
   involved (verified: zero :hover font-weight rules in any stylesheet).
   Fix: force grayscale AA in BOTH states (no flip) and pre-promote the
   .lm-btn layer so there is no late re-raster. Movement is unchanged.
   ────────────────────────────────────────────────────────── */
.lm-btn,
.elementor-button {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	backface-visibility: hidden;
}
.lm-btn {
	will-change: transform;
}

/* ──────────────────────────────────────────────────────────
   Section eyebrow leading-line — ported from base.css §9 (which is NOT
   enqueued, so these never loaded). Restores the intended eyebrow pattern
   used by every section's intro label (.lm-eyebrow-line): a 24x1px leading
   line in currentColor, with the kit's 1.65em paragraph-spacing margin and
   the legacy divider-wrapper padding both stripped. This makes the 8 section
   eyebrows match the hero eyebrow (line + style) and removes the oversized,
   uneven "space under" each eyebrow. Homepage audit follow-up 2026-06-02.
   ────────────────────────────────────────────────────────── */
.lm-eyebrow-line .elementor-heading-title,
.lm-eyebrow-line .e-heading {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	text-align: left;
	margin: 0 !important;
}
.lm-eyebrow-line .elementor-heading-title::before,
.lm-eyebrow-line .e-heading::before {
	content: "";
	display: block;
	width: 24px;
	height: 1px;
	background: currentColor;
	flex-shrink: 0;
}
.lm-eyebrow-line {
	text-align: left;
	align-self: flex-start;
}
:has(> .lm-eyebrow-line:only-child) {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

/* "Why owners choose us" section: the right column (.lm-services-right / e696830)
   centers its 62ch-wide paragraph. On desktop the column is 58% so it reads fine,
   but when the 2-col row stacks at <=1023 the column becomes 100% and centering
   indents the paragraph from the left (it drifts right on tablet). Left-align it
   when stacked so it lines up under the eyebrow/header. Homepage audit 2026-06-02. */
@media (max-width:1023px){
	.elementor-element-e696830{
		align-items: flex-start !important;
	}
}

/* "Why owners choose us" header column (32888c9) also has align_items:center,
   which centers the eyebrow + header when the row stacks (<=1023), pushing them
   right of the left-aligned paragraph. Left-align it so eyebrow/header/paragraph
   share one left edge (matching the "Choose your path" section). 2026-06-02. */
@media (max-width:1023px){
	.elementor-element-32888c9{
		align-items: flex-start !important;
	}
}

/* "Why owners choose us": the paragraph column (e696830) has padding-left:0, but
   the header column (32888c9) has padding-left:10px (like the reference "Choose
   your path" column). When stacked (<=1023) that left the paragraph 10px left of
   the header. Match the 10px so the paragraph aligns with the header. 2026-06-02. */
@media (max-width:1023px){
	.elementor-element-e696830{
		padding-left: 10px !important;
	}
}

/* Testimonial cards (grid 830c41f): the quote glyph, avatar initials, name and
   position are Heading widgets rendered as <p>, so each inherits the kit's
   1.65em paragraph-spacing margin. That bloats the layout: ~79px gap above the
   review (48px quote glyph), off-centre avatar initials, oversized name/position
   block, and space under the avatar. Strip the margin so flex gaps control the
   rhythm. Homepage audit 2026-06-02. */
.elementor-element-830c41f .elementor-heading-title{
	margin-bottom: 0 !important;
}
/* Testimonial cards: pin the divider + attribution (avatar/name) to the card
   bottom so all cards' footers align and there is no stray space under the
   avatar in shorter-review cards (equal-height grid). The flexible space sits
   between the review and the divider, which is the standard testimonial layout. */
.elementor-element-830c41f .elementor-widget-divider{
	margin-top: auto !important;
}

/* Submit-your-property contact blocks (Call/Email/HQ in column f5b28f9): the
   label + value are Heading widgets as <p>, inheriting the kit's 1.65em
   paragraph margin. That makes each block ~119px tall (huge gaps between the
   three blocks) and pushes the icon below the visible text's middle. Strip the
   margin so blocks sit at a sensible rhythm and the icon centres on the text. */
.elementor-element-f5b28f9 .elementor-heading-title{
	margin-bottom: 0 !important;
}

/* Submit-your-property form (Fluent Forms #3 on the dark navy panel) */
/* 3c: the consent line text was #333 (invisible on the dark panel). Make it
   readable (DS muted-on-dark); the privacy link stays gold from the P0 fix. */
#submit-your-property .lz-form-privacy,
#submit-your-property .frm-fluent-form .ff-el-form-check-label,
#submit-your-property .frm-fluent-form .ff_t_c label{
	color: rgba(255,255,255,0.6) !important;
}
/* 3d: the <select> dropdowns rendered white text on a white background
   (invisible until hover). Give them the same dark-glass field treatment as the
   text inputs (DS form-field spec) with readable options. */
#submit-your-property .frm-fluent-form select.ff-el-form-control{
	background-color: rgba(255,255,255,0.04) !important;
	color: #FFFFFF !important;
	border: 1px solid rgba(255,255,255,0.14) !important;
}
#submit-your-property .frm-fluent-form select.ff-el-form-control option{
	background-color: #102D41 !important;
	color: #FFFFFF !important;
}

/* 3e DS compliance (form): DS §2.2 requires form fields at 16px (iOS no-zoom);
   the kit ships 15px. And DS form labels are weight 600 (render as 500). */
#submit-your-property .frm-fluent-form .ff-el-form-control{
	font-size: 16px !important;
}
#submit-your-property .frm-fluent-form .ff-el-input--label label{
	font-weight: 600 !important;
}

/* ===== Primary-nav active + ancestor indicator (2026-06-02) =====
   Paired with assets/js/mega-menu-active-page.js (Bill's sanctioned
   exception). The JS stamps .lm-nav-active (exact current) and
   .lm-nav-ancestor (section ancestor) onto anchors that already exist.
   The Mega Menu natively styles the exact top item via .e-current; these
   rules add the ancestor on the top bar plus active/ancestor on the mega-
   dropdown sub-links and the off-canvas hamburger. Gold #FED55D, navy
   #102D41. Does NOT touch :hover or :focus-visible. */

/* Top bar: ancestor (+ exact backup) -> gold bottom border, matching native .e-current */
.e-n-menu .e-n-menu-title.lm-nav-ancestor,
.e-n-menu .e-n-menu-title.lm-nav-active {
	border-bottom-color: #FED55D !important;
	color: #102D41 !important;
}

/* Mega-dropdown sub-links + off-canvas links: gold underline active cue */
.e-n-menu-content a.lm-nav-active,
.e-n-menu-content a.lm-nav-ancestor,
.lm-offcanvas a.lm-nav-active,
.lm-offcanvas a.lm-nav-ancestor {
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: #FED55D;
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
}

/* Off-canvas drawer accordion: current section header emphasis */
.lm-offcanvas .lm-drawer-accordion summary.lm-nav-ancestor,
.lm-offcanvas .lm-drawer-accordion .e-n-accordion-item-title.lm-nav-ancestor {
	font-weight: 600 !important;
}
