/*
Theme Name: Local Estimator
Theme URI: https://localestimator.com
Author: Junvel Laluna
Author URI: https://localestimator.com
Description: A fast, SEO-focused classic WordPress theme for displaying low/average/high cost ranges for local and home services across the US. Built around a "service" custom post type with cost meta and service categories.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: local-estimator
Tags: custom-post-type, custom-menu, featured-images, threaded-comments, translation-ready
*/

/* -------------------------------------------------------------------------
   Design tokens
   ------------------------------------------------------------------------- */
:root {
	--le-color-bg: #ffffff;
	--le-color-surface: #f7f9fb;
	--le-color-border: #e3e8ee;
	--le-color-text: #1a2330;
	--le-color-muted: #5b6573;
	--le-color-primary: #1f7a5c;       /* estimator green */
	--le-color-primary-dark: #155c44;
	--le-color-accent: #f5a623;        /* "average" highlight */
	--le-color-low: #2f9e6b;
	--le-color-avg: #2563eb;
	--le-color-high: #e0533d;

	/* Set by Design Settings (Local Estimator → Design). */
	--le-color-secondary: #155c44;
	--le-color-btn-bg: #1f7a5c;
	--le-color-btn-text: #ffffff;
	--le-h1: var(--le-color-text);
	--le-h2: var(--le-color-text);
	--le-h3: var(--le-color-text);
	--le-h4: var(--le-color-text);
	--le-h5: var(--le-color-text);
	--le-h6: var(--le-color-text);

	--le-radius: 12px;
	--le-radius-sm: 8px;
	--le-shadow: 0 1px 2px rgba(16,24,40,.06), 0 4px 16px rgba(16,24,40,.06);
	--le-shadow-lg: 0 8px 32px rgba(16,24,40,.12);

	--le-maxw: 1120px;
	--le-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--le-font-head: var(--le-font);
}

/* -------------------------------------------------------------------------
   Reset-ish base
   ------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	font-family: var(--le-font);
	color: var(--le-color-text);
	background: var(--le-color-bg);
	line-height: 1.6;
	font-size: 17px;
	-webkit-font-smoothing: antialiased;
}

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

a { color: var(--le-color-primary); text-decoration: none; }
a:hover { text-decoration: underline; }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--le-font-head);
	line-height: 1.2;
	margin: 0 0 .5em;
	font-weight: 700;
}

h1 { font-size: clamp(1.9rem, 4vw, 2.6rem); color: var(--le-h1); }
h2 { font-size: clamp(1.4rem, 3vw, 1.9rem); color: var(--le-h2); }
h3 { font-size: 1.25rem; color: var(--le-h3); }
h4 { color: var(--le-h4); }
h5 { color: var(--le-h5); }
h6 { color: var(--le-h6); }

p { margin: 0 0 1rem; }

/* -------------------------------------------------------------------------
   Layout helpers
   ------------------------------------------------------------------------- */
.le-container {
	width: 100%;
	max-width: var(--le-maxw);
	margin-inline: auto;
	padding-inline: 20px;
}

.le-section { padding-block: clamp(2.5rem, 6vw, 4.5rem); }

.le-grid { display: grid; gap: 1.25rem; }

.screen-reader-text {
	position: absolute !important;
	clip: rect(1px,1px,1px,1px);
	width: 1px; height: 1px; overflow: hidden;
}

/* -------------------------------------------------------------------------
   Buttons
   ------------------------------------------------------------------------- */
.le-btn {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	background: var(--le-color-btn-bg);
	color: var(--le-color-btn-text);
	border: 0;
	padding: .8rem 1rem;
	border-radius: var(--le-radius-sm);
	font-weight: 600;
	font-size: 1rem;
	cursor: pointer;
	transition: filter .15s ease, transform .15s ease;
}
.le-btn:hover { filter: brightness(.92); text-decoration: none; transform: translateY(-1px); }
.le-btn--ghost {
	background: transparent;
	color: var(--le-color-primary);
	border: 1px solid var(--le-color-border);
}
.le-btn--ghost:hover { background: var(--le-color-surface); }

/* -------------------------------------------------------------------------
   Site header
   ------------------------------------------------------------------------- */
.le-site-header {
	border-bottom: 1px solid var(--le-color-border);
	background: var(--le-color-bg);
	position: relative;
	z-index: 50;
}
/* Sticky only when enabled in Header Settings (adds .le-site-header--sticky). */
.le-site-header__inner {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 1.5rem;
	padding-block: .9rem;
}
/* Full-width header: let the inner rows span the whole viewport (keep edge padding) */
.le-site-header--full .le-container { max-width: none; }
.le-brand {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	font-weight: 800;
	font-size: 1.2rem;
	color: var(--le-color-text);
}
.le-brand:hover { text-decoration: none; }
.le-brand__mark {
	display: inline-grid;
	place-items: center;
	width: 32px; height: 32px;
	border-radius: 8px;
	background: var(--le-color-primary);
	color: #fff;
	font-size: 1rem;
}
.le-brand--logo { padding: 0; display: inline-flex; align-items: center; }
.le-brand, .custom-logo-link { order: 2; }
.le-logo { display: block; width: auto; height: auto; max-width: 100%; max-height: 48px; }
/* Mobile-first: show the mobile logo, hide the desktop one */
.le-logo--d { display: none; }
.le-logo--m { display: block; }
/* Mobile-first: nav is display:contents so the empty menu doesn't add a flex
   gap after the action buttons. The dropdown <ul> positions off the header. */
.le-nav { display: contents; }
.le-nav ul { list-style: none; display: none; gap: 1.1rem; margin: 0; padding: 0; }
.le-nav a { color: var(--le-color-muted); font-weight: 500; }
.le-nav a:hover { color: var(--le-color-text); text-decoration: none; }

/* Mobile-first: hamburger visible by default, on the left. No border/box;
   size is set via Header Settings (le_header_css). */
.le-nav-toggle {
	display: inline-grid; place-items: center; order: 1;
	width: auto; height: auto; padding: 4px;
	border: 0; background: transparent;
	cursor: pointer; color: var(--le-color-text);
	line-height: 1;
}
.le-nav--open ul {
	display: grid;
	position: absolute;
	top: 100%; left: 0; right: 0;
	background: #fff;
	border-bottom: 1px solid var(--le-color-border);
	padding: 1rem 20px;
	gap: .75rem;
	z-index: 60;
}

/* Header actions: search / call / quote (pushed to the right) */
.le-header-actions { display: flex; align-items: center; gap: .55rem; margin-left: auto; order: 3; }
.le-search-toggle {
	display: inline-grid; place-items: center;
	width: 42px; height: 42px; padding: 0;
	border: 1px solid var(--le-color-border);
	border-radius: var(--le-radius-sm);
	background: #fff; color: var(--le-color-text); cursor: pointer;
	transition: background .15s ease;
}
.le-search-toggle:hover { background: var(--le-color-surface); }
.le-search-toggle svg { width: 18px; height: 18px; }
.le-search-toggle.is-active {
	background: #eaf6ef; border-color: #eaf6ef;
	color: var(--le-color-primary); border-radius: 50%;
}
.le-call-btn { display: inline-flex; align-items: center; gap: .4rem; white-space: nowrap; }
.le-call-btn svg { width: 15px; height: 15px; }
.le-quote-btn { white-space: nowrap; display: none; } /* hidden on mobile; shown on desktop */

/* Search reveal bar — animated open/close (slide + fade). Overlays the page as
   a dropdown from the header so it never pushes body content down. */
.le-search-bar {
	position: absolute;
	top: 100%; left: 0; right: 0;
	z-index: 45;
	background: #fff;
	border-top: 1px solid var(--le-color-border);
	box-shadow: 0 12px 20px rgba(16,24,40,.08);
	display: grid;
	grid-template-rows: 0fr;
	opacity: 0;
	visibility: hidden;
	transition: grid-template-rows .3s ease, opacity .25s ease, visibility 0s linear .3s;
}
.le-search-bar.is-open {
	grid-template-rows: 1fr;
	opacity: 1;
	visibility: visible;
	transition: grid-template-rows .3s ease, opacity .25s ease, visibility 0s;
}
.le-search-bar > .le-container {
	overflow: hidden;
	min-height: 0;
	padding-top: 0;
	padding-bottom: 0; /* zero when closed so the bar fully collapses */
	transition: padding-bottom .3s ease;
}
.le-search-bar.is-open > .le-container {
	padding-bottom: 1.4rem;
}
@media (prefers-reduced-motion: reduce) {
	.le-search-bar, .le-search-bar.is-open { transition: opacity .15s ease, visibility 0s; }
}
.le-search-row { display: flex; align-items: center; gap: .6rem; }
.le-search--header { display: flex; gap: .6rem; max-width: none; margin: 0; flex: 1; }
.le-search-close {
	flex: 0 0 auto; background: none; border: 0; cursor: pointer;
	font-size: 1.8rem; line-height: 1; color: var(--le-color-muted);
	padding: 0 .35rem;
}
.le-search-close:hover { color: var(--le-color-text); }
.le-search-input { position: relative; flex: 1; }
.le-search-input svg {
	position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
	width: 18px; height: 18px; color: var(--le-color-muted); pointer-events: none;
}
.le-search-input input[type="search"] {
	width: 100%; box-sizing: border-box;
	padding: .9rem 1rem .9rem 2.7rem;
	border: 1px solid var(--le-color-border);
	border-radius: var(--le-radius-sm);
	font-size: 1rem; background: #fff;
}
.le-search-input input[type="search"]:focus { outline: 2px solid var(--le-color-primary); outline-offset: 1px; }
.le-search-submit { flex: 0 0 auto; padding-inline: 1rem; }

/* -------------------------------------------------------------------------
   Hero / search
   ------------------------------------------------------------------------- */
.le-hero {
	background: linear-gradient(180deg, var(--le-color-surface), #fff);
	border-bottom: 1px solid var(--le-color-border);
	text-align: center;
}
.le-hero h1 { margin-bottom: .35em; }
.le-hero__sub {
	color: var(--le-color-muted);
	font-size: 1.15rem;
	max-width: 640px;
	margin-inline: auto;
}
.le-search {
	display: flex;
	gap: .5rem;
	max-width: 560px;
	margin: 1.75rem auto 0;
}
.le-search input[type="search"] {
	flex: 1;
	padding: .85rem 1rem .85rem 2.5rem;
	border: 1px solid var(--le-color-border);
	border-radius: var(--le-radius-sm);
	font-size: 1rem;
	background: #fff;
}
.le-search input[type="search"]:focus {
	outline: 2px solid var(--le-color-primary);
	outline-offset: 1px;
}

/* -------------------------------------------------------------------------
   Cards / grids
   ------------------------------------------------------------------------- */
.le-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 1.1rem;
}
.le-card {
	display: block;
	background: var(--le-color-bg);
	border: 1px solid var(--le-color-border);
	border-radius: var(--le-radius);
	padding: 1.1rem 1.2rem;
	box-shadow: var(--le-shadow);
	transition: transform .15s ease, box-shadow .15s ease;
	color: inherit;
}
.le-card:hover { transform: translateY(-2px); box-shadow: var(--le-shadow-lg); text-decoration: none; }
.le-card__cat { font-size: .8rem; color: var(--le-color-secondary); font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }
.le-card__title { font-size: 1.1rem; margin: .35rem 0 .4rem; }
.le-card__range { color: var(--le-color-muted); font-size: .95rem; }
.le-card__range strong { color: var(--le-color-text); }

/* -------------------------------------------------------------------------
   Cost display (single service)
   ------------------------------------------------------------------------- */
/* Cost figures shown inside the page hero (transparent — sits on the hero bg) */
.le-hero-cost { margin: 1.75rem auto 0; text-align: center; }
.le-hero-cost__toplabel, .le-hero-cost__inclabel {
	display: block; text-transform: uppercase; letter-spacing: .12em;
	font-size: .78rem; font-weight: 700; color: var(--le-color-accent, #f5a623);
}
.le-hero-cost__toplabel { margin-bottom: 0.3rem; }
.le-hero-cost__row { display: flex; align-items: center; justify-content: center; gap: clamp(1rem, 6vw, 3.5rem); flex-wrap: wrap; }
.le-hero-cost__side { display: flex; flex-direction: column; gap: 0; }
.le-hero-cost__cap { text-transform: uppercase; letter-spacing: .1em; font-size: .68rem; font-weight: 700; color: rgba(255,255,255,.6); }
.le-hero-cost__minmax { font-size: clamp(1.4rem, 5vw, 1.95rem); font-weight: 800; color: rgba(255,255,255,.75); }
.le-hero-cost__mid { display: flex; flex-direction: column; gap: .1rem; }
.le-hero-cost__big { font-size: clamp(2.6rem, 10vw, 4rem); font-weight: 800; color: #fff; line-height: 1; }
.le-hero-cost__unit { font-size: .95rem; color: rgba(255,255,255,.65); }
.le-hero-cost__rule { border: 0; border-top: 0px solid rgba(255,255,255,.2); margin: 0.6rem auto; max-width: 260px; }
.le-hero-cost__inclabel { margin-bottom: .5rem; }
.le-hero-cost__inc { margin: 0 auto; max-width: 70ch; color: rgba(255,255,255,.88); font-size: .98rem; line-height: 1.55; }

/* Centered hero layout (breadcrumbs, title, subtitle, byline, cost figures) */
.le-hero-service > .le-container { text-align: center; }
.le-hero-service__sub { margin-left: auto; margin-right: auto; }
.le-hero-service__rule { margin-left: auto; margin-right: auto; max-width: 340px; }
.le-hero-service__meta { justify-content: center; }
.le-hero-service .le-byline { display: flex; align-items: center; justify-content: center; gap: .75rem 1.25rem; flex-wrap: wrap; }

.le-meta-note {
	font-size: .9rem;
	color: var(--le-color-muted);
	background: var(--le-color-surface);
	border-left: 3px solid var(--le-color-primary);
	padding: .75rem 1rem;
	border-radius: var(--le-radius-sm);
	margin-bottom: 1.5rem;
}

/* Factors list */
.le-factors { list-style: none; padding: 0; margin: 1rem 0 2rem; display: grid; gap: .6rem; }
.le-factors li {
	display: flex;
	gap: .6rem;
	align-items: flex-start;
	padding: .65rem .85rem;
	background: var(--le-color-surface);
	border-radius: var(--le-radius-sm);
}
.le-factors li::before { content: "›"; color: var(--le-color-primary); font-weight: 800; }

/* -------------------------------------------------------------------------
   Service hero
   ------------------------------------------------------------------------- */
.le-hero-service {
	position: relative;
	overflow: visible; /* let the author / fact-check tooltips overflow the hero */
	color: #fff;
	background-color: var(--le-color-primary-dark);
	background-image:
		linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px),
		linear-gradient(135deg, var(--le-color-primary-dark), var(--le-color-primary) 55%, var(--le-color-low));
	background-size: 28px 28px, 28px 28px, 100% 100%;
	padding-block: clamp(2rem, 5vw, 3.75rem);
}
.le-hero-service > .le-container { position: relative; z-index: 1; }

/* Featured image on the right. The image itself is masked so it fades into the
   real hero gradient behind it — no fixed-color overlay means no visible seam. */
.le-hero-service__media {
	position: absolute;
	top: 0; right: 0; bottom: 0;
	width: 60%;
	background-size: cover;
	background-position: center;
	z-index: 0;
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, transparent 20%, #000 75%);
	mask-image: linear-gradient(90deg, transparent 0%, transparent 20%, #000 75%);
}
/* Subtle dark vignette for byline contrast (fades with the image via the mask) */
.le-hero-service__media::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(8,40,28,.12), rgba(8,40,28,.42));
}
@media (max-width: 768px) {
	.le-hero-service__media {
		display: block;
        height: auto;
        width: 100%;
        background-position: bottom;
        mask-image: linear-gradient(180deg, transparent 57%, #000 90%);
		-webkit-mask-image: linear-gradient(180deg, transparent 57%, #000 90%);
        background-size: contain;
        background-repeat: no-repeat;
	 }
}
.le-hero-service .le-breadcrumbs {
	color: rgba(255,255,255,.8);
	margin-bottom: 1.5rem;
	text-transform: uppercase;
	letter-spacing: .04em;
	font-weight: 600;
	font-size: .8rem;
}
.le-hero-service .le-breadcrumbs a { color: rgba(255,255,255,.8); text-decoration: underline; }
.le-hero-service .le-breadcrumbs a:hover { color: #fff; }
.le-hero-service .le-breadcrumbs span[aria-current] { color: #fff; }
.le-hero-service__title { color: #fff; font-size: clamp(2.1rem, 5vw, 3.3rem); margin: 0 0 .6rem; }
.le-hero-service__sub { color: rgba(255,255,255,.92); font-size: clamp(1.05rem, 2vw, 1.25rem); max-width: 62ch; margin: auto; }
.le-hero-service__rule { border: 0; border-top: 1px solid var(--le-color-accent); margin: 1.75rem auto 1.25rem; }

/* Author profile hero */
.le-author-hero { flex-direction: column; display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.le-author-hero .le-avatar { box-shadow: 0 0 0 4px rgba(255,255,255,.25); }
.le-author-hero__name { margin: 0; }
.le-author-hero__title { color: rgba(255,255,255,.92); font-size: 1.15rem; margin: .3rem 0 0; }
.le-author-hero__email { color: rgba(255,255,255,.82); font-size: .95rem; margin: .3rem 0 0; }
.le-author-hero__meta { color: rgba(255,255,255,.8); font-size: .95rem; margin: .35rem 0 0; }
.le-author-stats { display: flex; gap: 2rem; flex-wrap: wrap; margin-top: 1.1rem; }
.le-author-stat strong { display: block; font-size: 1.5rem; font-weight: 800; line-height: 1.1; }
.le-author-stat span { font-size: .82rem; color: rgba(255,255,255,.85); text-transform: uppercase; letter-spacing: .04em; }

/* Author profile body */
.le-author-layout { display: grid; grid-template-columns: 1fr; gap: 2.5rem; }
.le-author-block { margin-bottom: 2.25rem; }
.le-author-block:last-child { margin-bottom: 0; }
.le-author-block h2 { font-size: 1.4rem; margin-bottom: .9rem; }
.le-author-lead { font-size: 1.2rem; line-height: 1.6; color: var(--le-color-text); }
.le-author-aside { align-self: start; }
.le-author-card-aside__head { display: flex; align-items: center; gap: .7rem; padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--le-color-border); }
.le-author-card-aside__head strong { display: block; color: var(--le-color-text); }
.le-author-card-aside__head span span { display: block; color: var(--le-color-primary); font-size: .82rem; font-weight: 600; }
.le-author-email {
	display: inline-flex; align-items: center; gap: .45rem; margin-top: 1.1rem;
	background: rgba(255,255,255,.12); color: #fff;
	border: 1px solid rgba(255,255,255,.45);
	border-radius: 999px; padding: .45rem .95rem;
	font-size: .9rem; font-weight: 600; text-decoration: none;
}
.le-author-email:hover { background: rgba(255,255,255,.22); text-decoration: none; }
.le-author-email svg { width: 18px; height: 18px; }
.le-author-email { cursor: pointer; }
.le-author-aside-contact { display: flex; align-items: center; gap: .4rem; margin: 1rem 0 0; color: var(--le-color-primary); font-weight: 600; font-size: .85rem; }
.le-author-aside-contact svg { width: 16px; height: 16px; flex: 0 0 auto; }
.le-author-aside-contact a { color: inherit; text-decoration: underline; word-break: break-word; }

/* Modal + contact form */
.le-modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.le-modal[hidden] { display: none; }
.le-modal__backdrop { position: absolute; inset: 0; background: rgba(8,15,30,.55); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); opacity: 0; transition: opacity .2s ease; }
.le-modal.is-open .le-modal__backdrop { opacity: 1; }
.le-modal__card {
	position: relative; background: #fff; color: var(--le-color-text);
	border-radius: 18px; width: 460px; max-width: 100%;
	padding: 1.7rem 1.8rem; box-shadow: 0 28px 80px rgba(8,15,30,.4);
	max-height: 92vh; overflow: auto;
	transform: translateY(14px) scale(.98); opacity: 0;
	transition: transform .2s ease, opacity .2s ease;
}
.le-modal.is-open .le-modal__card { transform: none; opacity: 1; }
.le-modal__close { position: absolute; top: .7rem; right: .8rem; border: 0; background: none; font-size: 1.7rem; line-height: 1; color: var(--le-color-muted); cursor: pointer; }
.le-modal__close:hover { color: var(--le-color-text); }
.le-modal__head { display: flex; align-items: center; gap: .85rem; margin-bottom: 1.3rem; }
.le-modal__head h3 { margin: 0; font-size: 1.3rem; }
.le-modal__head p { margin: .1rem 0 0; color: var(--le-color-primary); font-size: .85rem; font-weight: 600; }
.le-contact-form label { display: block; font-weight: 600; font-size: .9rem; margin-bottom: 1rem; color: var(--le-color-text); }
.le-contact-form input, .le-contact-form textarea {
	width: 100%; box-sizing: border-box; margin-top: .4rem;
	padding: .72rem .9rem; border: 1px solid var(--le-color-border);
	border-radius: 10px; font-size: 1rem; font-weight: 400; font-family: inherit;
}
.le-contact-form input:focus, .le-contact-form textarea:focus { outline: 2px solid var(--le-color-primary); outline-offset: 1px; }
.le-contact-form textarea { resize: vertical; min-height: 96px; }
.le-contact-form__submit { width: 100%; justify-content: center; margin-top: .2rem; }
.le-contact-form__status { margin: .85rem 0 0; font-size: .92rem; min-height: 1.2em; }
.le-contact-form__status.is-ok { color: var(--le-color-primary); }
.le-contact-form__status.is-err { color: #b32d2e; }
.le-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
@media (min-width: 861px) {
	.le-author-layout { grid-template-columns: minmax(0,1fr) 320px; }
	.le-author-aside { position: sticky; top: 88px; }
}
.le-hero-author .le-breadcrumbs { color: rgba(255,255,255,.8); margin-bottom: 1.25rem; text-transform: uppercase; letter-spacing: .04em; font-weight: 600; font-size: .8rem; }
.le-hero-author .le-breadcrumbs a { color: rgba(255,255,255,.8); text-decoration: underline; }
.le-hero-author .le-breadcrumbs span[aria-current] { color: #fff; }

/* Authors directory */
.le-author-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 1rem; }
.le-author-tile {
	display: flex; align-items: center; gap: 1rem;
	background: #fff; border: 1px solid var(--le-color-border);
	border-radius: var(--le-radius); padding: 1.1rem 1.2rem;
	box-shadow: var(--le-shadow); color: inherit;
	transition: transform .15s ease, box-shadow .15s ease;
}
.le-author-tile:hover { transform: translateY(-2px); box-shadow: var(--le-shadow-lg); text-decoration: none; }
.le-author-tile__body { display: block; }
.le-author-tile__name { display: block; font-weight: 700; font-size: 1.05rem; color: var(--le-color-text); }
.le-author-tile__title { display: block; color: var(--le-color-primary); font-size: .85rem; font-weight: 600; margin-top: .1rem; }
.le-author-tile__meta { display: block; color: var(--le-color-muted); font-size: .85rem; margin-top: .15rem; }
.le-hero-service__meta { display: flex; align-items: center; justify-content: center; gap: 1rem 1.5rem; flex-wrap: wrap; }

.le-avatar { display: inline-grid; place-items: center; border-radius: 50%; color: #fff; font-weight: 700; flex: 0 0 auto; line-height: 1; }

/* Author byline + profile card */
.le-author { position: relative; display: inline-block; }
.le-author__trigger { display: inline-flex; align-items: center; gap: .6rem; background: none; border: 0; padding: 0; color: inherit; cursor: pointer; font: inherit; }
.le-author__name { font-size: .88rem; }
.le-author__card {
	display: none;
	position: absolute; top: 100%; left: 0;
	width: 320px; max-width: 86vw;
	background: #fff; color: var(--le-color-text);
	border-radius: 16px; padding: 1.25rem 1.3rem;
	box-shadow: 0 18px 50px rgba(8,15,30,.3);
	z-index: 50; text-align: left;
}
.le-author__card::before {
	content: ""; position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%);
	border: 8px solid transparent; border-bottom-color: #fff;
}
.le-author__card-head { display: flex; align-items: center; gap: .85rem; padding-bottom: 1rem; border-bottom: 1px solid var(--le-color-border); }
.le-author__card-name { color: var(--le-color-primary); font-weight: 800; font-size: 1.15rem; text-decoration: none; }
.le-author__card-name:hover { text-decoration: underline; }
.le-author__card-title { display: block; color: var(--le-color-muted); font-size: .9rem; margin-top: .15rem; }
.le-author__row { display: flex; align-items: center; gap: .55rem; margin-top: .95rem; font-size: .95rem; color: var(--le-color-text); }
.le-author__row svg { width: 18px; height: 18px; color: var(--le-color-primary); flex: 0 0 auto; }
.le-author__list { margin: .35rem 0 0; padding-left: 1.9rem; color: var(--le-color-muted); font-size: .9rem; line-height: 1.6; }
.le-author__list a { color: var(--le-color-primary); font-weight: 600; }
.le-author__bio { display: block; margin-top: .95rem; color: var(--le-color-muted); font-size: .88rem; line-height: 1.55; }
.le-author:hover .le-author__card,
.le-author:focus-within .le-author__card,
.le-author.is-open .le-author__card { display: block; }
.le-verify { display: flex; align-items: center; gap: 1rem; font-size: .85rem; }
.le-verify__date { color: rgba(255,255,255,.9); }

/* Fact-check badge + tooltip */
.le-factcheck { position: relative; display: inline-block; }
.le-factcheck__badge {
	display: inline-flex; align-items: center; gap: .4rem;
	background: rgba(255,255,255,.12); color: #fff;
	border: 1px solid rgba(255,255,255,.45);
	border-radius: 999px; padding: .25rem .65rem 0.25rem 0.35rem;
	font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em;
	cursor: pointer;
}
.le-factcheck__badge:hover { background: rgba(255,255,255,.2); }
.le-factcheck__badge svg { color: var(--le-color-accent); }
.le-factcheck__tip {
	position: absolute; top: calc(100% + 12px); right: 0;
	width: 310px; max-width: 80vw;
	background: #fff; color: var(--le-color-text);
	border-radius: 14px; padding: 1.1rem 1.2rem;
	box-shadow: 0 16px 44px rgba(8,15,30,.28);
	z-index: 40; text-align: left; text-transform: none; letter-spacing: normal; font-weight: 400;
	/* Hidden state — animated in/out via opacity + a small drop. */
	opacity: 0; visibility: hidden; pointer-events: none;
	transform: translateY(-8px) scale(.97); transform-origin: top right;
	transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s;
}
.le-factcheck__tip::before {
	content: ""; position: absolute; bottom: 100%; right: 30px;
	border: 8px solid transparent; border-bottom-color: #fff;
}
.le-factcheck__tip strong { display: block; font-size: 1rem; margin-bottom: .35rem; color: var(--le-color-text); }
.le-factcheck__tip > span { display: block; font-size: .9rem; color: var(--le-color-muted); line-height: 1.55; margin-bottom: .7rem; }
.le-factcheck__tip a { color: var(--le-color-primary); font-weight: 700; }
/* Click-toggled on every device (no hover reveal) so the close button and
   tap-outside always control it. */
.le-factcheck.is-open .le-factcheck__tip {
	opacity: 1; visibility: visible; pointer-events: auto; transform: none;
	transition: opacity .18s ease, transform .18s ease, visibility 0s;
}
.le-tip-close { display: none; }
@media (max-width: 520px) {
	/* Detach from the badge and pin to the viewport so it can never overflow. */
	.le-factcheck__tip {
		position: fixed;
		left: 16px; right: 16px; bottom: 16px; top: auto;
		width: auto; max-width: none;
		/* Slide up from the bottom on this pinned card. */
		transform: translateY(14px) scale(1); transform-origin: bottom center;
	}
	.le-factcheck.is-open .le-factcheck__tip { transform: none; }
	.le-factcheck__tip::before { display: none; }
	/* Float the close button so it sits on the heading's line. */
	.le-factcheck__tip .le-tip-close {
		display: grid; place-items: center;
		float: right; margin: -.2rem -.3rem .2rem .6rem;
		width: 30px; height: 30px; padding: 0;
		border: 0; border-radius: 50%;
		background: var(--le-color-surface); color: var(--le-color-muted);
		font-size: 20px; line-height: 1; cursor: pointer;
	}
	.le-factcheck__tip .le-tip-close:hover { background: #e9edf1; color: var(--le-color-text); }
}
@media (prefers-reduced-motion: reduce) {
	.le-factcheck__tip,
	.le-factcheck.is-open .le-factcheck__tip { transform: none; transition: opacity .12s ease, visibility 0s; }
}

/* -------------------------------------------------------------------------
   ZIP + GO (service page → city page)
   ------------------------------------------------------------------------- */
.le-zipgo-wrap { margin-bottom: 1.75rem; background: linear-gradient(45deg, #ffbb4a, #ffdea6, #ffc462);border-radius:0;padding:1.5rem 1rem;display:flex;flex-direction: column;align-items: center;}
.le-zipgo__heading { margin: 0 0 .35rem; text-align: center; font-size: clamp(1.3rem, 2.6vw, 1.7rem); color: #4a2c00; max-width: 640px; }
.le-zipgo__intro { margin: 0 0 1.15rem; text-align: center; font-size: 1rem; line-height: 1.5; color: #6b4a12; max-width: 560px; }
.le-zipgo { display: flex; gap: .5rem; max-width: 400px; }
.le-zipgo input {
	flex: 1; min-width: 0; padding: .85rem 1rem;
	border: 2px solid var(--le-color-btn-bg); border-radius: 8px;
	font-size: 1.05rem; background: #fff;
}
.le-zipgo input:focus {outline:none;box-shadow:0 0 10px rgba(0,0,0,0.1);}
.le-zipgo__go { flex: 0 0 auto; padding-inline: 1.5rem; font-weight: 700; }
.le-zipgo__status { margin: .5rem 0 0; font-size: .9rem; color: var(--le-color-muted); min-height: 1.2em; }
.le-zipgo__status.is-err { color: #b32d2e; }

/* -------------------------------------------------------------------------
   Cost calculator (/{service}/calculator/)
   ------------------------------------------------------------------------- */
.le-calc { display: flex; flex-direction:column; gap: 1.25rem; margin: 0 0 2rem; }
.le-calc__form {     display: grid;
    gap: 1.25rem;
	background:#fff;
    padding: 1.4rem;
    border-radius: 16px;
    max-width: 700px;
	width:100%;
    margin: 0 auto;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); }
.le-calc__field { display: grid; gap: .5rem; justify-items: center;}
.le-calc__label { font-weight: 700; font-size: 1.02rem; }
.le-calc__help { font-size: .85rem; text-align:center;color: var(--le-color-muted); margin-top: -.25rem; }
.le-calc__opts { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center;}
.le-calc__opt { position: relative; }
.le-calc__opt input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.le-calc__opt span {
	display: inline-block; padding: .55rem .85rem; border: 1.5px solid var(--le-color-border);
	border-radius: 999px; font-size: .92rem; cursor: pointer; transition: all .15s ease; background: #fff;
}
.le-calc__opt input:checked + span {
	border-color: var(--le-color-primary); background: #eaf6ef; color: var(--le-color-primary-dark); font-weight: 600;
}
.le-calc__opt input:focus-visible + span { outline: 2px solid var(--le-color-primary); outline-offset: 2px; }
.le-calc__zip { padding: 1rem; border-radius: var(--le-radius-sm); background: #f3faf6; }
.le-calc__zip-row { display: flex; gap: .5rem; max-width: 340px; }
.le-calc__zip-row input {text-align:center;
	flex: 1; min-width: 0; padding: .7rem .85rem; font-size: 1rem;
	border: 1.5px solid var(--le-color-primary); border-radius: var(--le-radius-sm);
}
.le-calc__zip-row input:focus { outline: none; border-color: var(--le-color-primary); box-shadow: 0 0 0 3px rgba(31,122,92,.15); }
.le-calc__actions { display: flex; flex-direction: column; justify-content: center;flex-wrap: wrap; align-items: center; gap: .5rem .9rem; margin-top: .5rem; }
.le-calc__update { flex: 0 0 auto; padding-inline: 1.6rem; }
.le-calc__update.is-loading { cursor: progress; }
.le-calc__spin {
	width: 15px; height: 15px; flex: 0 0 auto; border-radius: 50%;
	border: 2px solid rgba(255,255,255,.45); border-top-color: #fff;
	animation: le-calc-btn-spin .7s linear infinite;
}
@keyframes le-calc-btn-spin { to { transform: rotate(360deg); } }
.le-calc__changed { margin: 0; font-size: .75rem;text-align:center; color: var(--le-color-high); }
.le-calc__zip-status { margin: .5rem 0 0; font-size: .88rem; color: var(--le-color-btn-bg); font-weight: 600; min-height: 1.1em; }
.le-calc__scope { display: block; font-size: 1rem; font-weight: 600; opacity: .95; margin-top: .5rem; }
.le-calc__addons { display: grid; gap: .5rem;    grid-template-columns: 1fr 1fr; }
.le-calc__addon { display: flex; gap: .7rem; align-items: center; padding: .7rem .85rem; border: 1.5px solid var(--le-color-border); border-radius: var(--le-radius-sm); cursor: pointer; transition: border-color .15s ease, background .15s ease, box-shadow .15s ease; }
.le-calc__addon:hover { border-color: var(--le-color-primary); }
.le-calc__addon:has( input:checked ) { border-color: var(--le-color-primary); background: #f3faf6; }
/* Modern custom checkbox */
.le-calc__addon input[type="checkbox"] {
	-webkit-appearance: none; appearance: none; margin: 0; flex: 0 0 auto;
	width: 22px; height: 22px; border: 2px solid var(--le-color-border);
	border-radius: 0; background: #fff; cursor: pointer; position: relative;
	transition: background .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.le-calc__addon input[type="checkbox"]:hover { border-color: var(--le-color-primary); }
.le-calc__addon input[type="checkbox"]:checked { background: var(--le-color-primary); border-color: var(--le-color-primary); }
.le-calc__addon input[type="checkbox"]:checked::after {
	content: ''; position: absolute; left: 8px; top: 3px;
	width: 5px; height: 10px; border: solid #fff; border-width: 0 2.5px 2.5px 0;
	transform: rotate(45deg);
}
.le-calc__addon input[type="checkbox"]:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(31,122,92,.25); }
.le-calc__addon em { font-style: normal; font-weight: 700; color: var(--le-color-primary); margin-left: .35rem; }
.le-calc__addon small { display: block; color: var(--le-color-muted); font-size: .82rem; }
.le-calc__result {
	    max-width: 700px;
    width: 100%; align-self: center; text-align: center;
	background: linear-gradient(135deg, #1f7a5c, #2f9e6b); color: #fff;
	border-radius: var(--le-radius); padding: 1.4rem 1.25rem; box-shadow: var(--le-shadow-lg);
	scroll-margin-top: 5rem;
}
.le-calc__result-label { text-transform: uppercase; letter-spacing: .05em; font-size: 1rem; }
.le-calc__result-figs { display: grid;    grid-template-columns: 90px 144px 90px; justify-content: center; gap: 0; margin: .5rem 0 .25rem; align-items: center;}
.le-calc__result-figs > div { display: flex; flex-direction: column; }
.le-calc__result-avg .le-calc__cap {font-size:1.2rem;opacity:1;}
.le-calc__cap { font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; opacity: .5; }
.le-calc__result-figs strong { font-size: 1.5rem; font-weight: 700; opacity:0.6;}
.le-calc__result-avg strong { font-size: 2.5rem; opacity:1;}
.le-calc__unit { font-size: 1rem; opacity: 1; }
.le-calc__note { font-size: .8rem; opacity: .85; margin: .6rem 0 0; }

.le-jump--calc { color: var(--le-color-primary); font-weight: 600; }

/* Attribute annotations (Phase 0 targets, shown near the centerpiece) */
.le-attrs { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem 1.1rem; margin: 0; padding: 0; justify-content: center; }
.le-attrs li { display: inline-flex; align-items: center; gap: .35rem; font-size: .88rem; font-weight: 600; color: var(--le-color-text); }
.le-attrs svg { width: 17px; height: 17px; color: var(--le-color-primary); flex: 0 0 auto; }

/* Sticky filter-chip jump-links (Phase 3.6) */
/* Slider bar: arrows + a horizontally scrolling chip strip. */
.le-jump-wrap {
	display: flex; align-items: stretch;
	border-radius: 8px; margin: 0 0 1.5rem;
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
	background: rgba(255,255,255,0.98);
	border-bottom: 1px solid var(--le-color-border);
	position: sticky; top: 8px; z-index: 5;
}
/* Don't fight a sticky site header (both would pin to top:0). */
.le-has-sticky-header .le-jump-wrap { position: static; }
.le-jump { display: flex; gap: .8rem; overflow-x: auto; padding: 1rem .25rem; flex: 1 1 auto; min-width: 0; scrollbar-width: none; -webkit-overflow-scrolling: touch; scroll-behavior: smooth; }
/* Auto-margin spacers center the chips when they fit but collapse on overflow,
   so both ends stay reachable (unlike justify-content: center). */
.le-jump::before, .le-jump::after { content: ''; margin: auto; }
.le-jump::-webkit-scrollbar { display: none; }
.le-jump-arrow {
	flex: 0 0 auto; display: grid; place-items: center; width: 38px; height: 100%;padding: 0;
	border: 0; background: transparent; color: var(--le-color-primary); cursor: pointer;
	transition: color .15s ease, background .15s ease;position:absolute;
}
.le-jump-arrow:hover { color: var(--le-color-primary-dark); }
.le-jump-arrow--prev { border-radius: 8px 0 0 8px;     left: 0;
    background: linear-gradient(90deg, #fff 55%, transparent);}
.le-jump-arrow--next { border-radius: 0 8px 8px 0;     right: 0;
    background: linear-gradient(270deg, #fff 55%, transparent);}
.le-jump-arrow[hidden] { display: none; }
.le-jump a {
	flex: 0 0 auto; padding: .35rem .8rem; border-radius: 999px;
	background: var(--le-color-surface, #f7f9f8); border: 1px solid var(--le-color-border);
	font-size: .95rem; font-weight: 600; color: var(--le-color-text); text-decoration: none; white-space: nowrap;
}
.le-jump a:hover { border-color: var(--le-color-primary); color: var(--le-color-primary); }
.le-jump a.is-active {
	background: var(--le-color-primary); border-color: var(--le-color-primary);
	color: #fff; font-weight: 700;
}
.le-jump a[hidden] { display: none; }

/* Anchored sections shouldn't hide under the sticky bar when jumped to */
#le-hero-cost, #le-estimate, #le-guide, #le-factors, #le-faq { scroll-margin-top: 5rem; }

/* Smooth in-page scrolling (jump-links, breadcrumbs), respecting reduced motion */
@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}

/* Related-links modules (lateral internal linking) */
.le-links { margin: 2.25rem 0 0; }
.le-links__title { font-size: 1.15rem; margin: 0 0 .75rem; }
.le-links__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.le-links__list a {
	display: inline-block; padding: .45rem .85rem;
	background: var(--le-color-surface, #f7f9f8);
	border: 1px solid var(--le-color-border);
	border-radius: 999px; font-size: .9rem; color: var(--le-color-text);
	text-decoration: none; transition: background .15s ease, border-color .15s ease;
}
.le-links__list a:hover { background: #fff; border-color: var(--le-color-primary); color: var(--le-color-primary); }

/* FAQ block */
.le-faq { margin: 2.5rem 0 0; }
.le-faq > h2 { margin-bottom: .5rem; }
.le-faq__by { display: flex; align-items: center; gap: .6rem; margin: 0 0 1.25rem; font-size: .9rem; color: var(--le-color-muted); }
.le-faq__by a { color: var(--le-color-primary); font-weight: 600; text-decoration: none; }
.le-faq__by a:hover { text-decoration: underline; }
.le-faq__by-title { display: block; font-size: .82rem; }
.le-faq__list { border-top: 1px solid var(--le-color-border); }
.le-faq__item { border-bottom: 1px solid var(--le-color-border); }
.le-faq__item summary {
	list-style: none; cursor: pointer; padding: 1rem 2rem 1rem 0; position: relative;
	font-weight: 600; font-size: 1.05rem; color: var(--le-color-text);
}
.le-faq__item summary::-webkit-details-marker { display: none; }
.le-faq__item summary::after {
	content: "+"; position: absolute; right: .25rem; top: 50%; transform: translateY(-50%);
	font-size: 1.4rem; font-weight: 400; color: var(--le-color-primary); line-height: 1;
}
.le-faq__item[open] summary::after { content: "\2212"; } /* minus */
.le-faq__item summary::after { transition: transform .25s ease, color .25s ease; }
.le-faq__item[open] summary::after { transform: translateY(-50%) rotate(180deg); }
.le-faq__item summary:focus-visible { outline: 2px solid var(--le-color-primary); outline-offset: 2px; }
.le-faq__a { padding: 0 0 1.1rem; color: var(--le-color-text); }

/* Smoothly expand/collapse the answer. interpolate-size unlocks the
   0 → auto height animation in modern browsers; older ones just snap. */
:root { interpolate-size: allow-keywords; }
.le-faq__item::details-content {
	block-size: 0;
	overflow: hidden;
	opacity: 0;
	transition: block-size .3s ease, opacity .3s ease, content-visibility .3s allow-discrete;
}
.le-faq__item[open]::details-content { block-size: auto; opacity: 1; }
@media (prefers-reduced-motion: reduce) {
	.le-faq__item::details-content,
	.le-faq__item summary::after { transition: none; }
}
.le-faq__a p { margin: 0 0 .6rem; }
.le-faq__a p:last-child { margin-bottom: 0; }

/* Default (ungenerated) city page notice */
.le-notice {
	border: 1px solid var(--le-color-border);
	border-left: 4px solid var(--le-color-primary);
	background: var(--le-color-surface, #f7f9f8);
	border-radius: 12px;
	padding: 1.1rem 1.25rem;
	margin: 1.5rem 0;
}
.le-notice strong { display: block; margin-bottom: .35rem; color: var(--le-color-text); }
.le-notice p { margin: 0 0 .75rem; color: var(--le-color-muted); font-size: .95rem; }
.le-notice p:last-child { margin-bottom: 0; display: flex; flex-wrap: wrap; gap: .5rem; }

/* City page facts */
.le-city-facts { list-style: none; margin: 1.25rem 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; }
.le-city-facts li { background: var(--le-color-surface, #f7f9f8); border: 1px solid var(--le-color-border); border-radius: 12px; padding: .9rem 1rem; }
.le-city-facts strong { display: block; font-size: 1.15rem; color: var(--le-color-text); }
.le-city-facts span { font-size: .8rem; color: var(--le-color-muted); }
@media (max-width: 768px) {
	.le-city-facts { grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); gap: 0.5rem; }
	.le-city-facts li { border-radius: 8px; padding: 0.7rem 0.5rem; line-height: 1; text-align: center; }
}

/* Guide → money-page cost box (figures reuse .le-city-facts) */
.le-guide-cost { margin: 2rem 0; padding: 1.4rem 1.5rem 1.5rem; border: 1px solid var(--le-color-border); border-radius: 14px; background: #fff; box-shadow: 0 8px 28px rgba(16, 24, 40, .06); }
.le-guide-cost h2 { margin: 0 0 .3rem; font-size: 1.25rem; }
.le-guide-cost__note { margin: 0 0 1rem; color: var(--le-color-muted); font-size: .92rem; }
.le-guide-cost .le-city-facts { margin: 0 0 1.15rem; }
.le-guide-cost .le-city-facts li { background: var(--le-color-surface, #f7f9f8); text-align: center; }
.le-guide-cost__ctas { display: flex; gap: .6rem; flex-wrap: wrap; }

/* -------------------------------------------------------------------------
   Single layout
   ------------------------------------------------------------------------- */
/* Single, centered article column (no sidebar). */
.le-single { display: block; max-width: 800px; padding-block: 0 2.5rem; margin-top: -1.2rem; position: relative; z-index: 0; }
.le-single__aside { display: none; }
.le-single--calc { margin-top: -1.5rem; }
/* Support contact form (Contact page) */
.le-support-form {
	display: grid; gap: 1rem;
	border: 1px solid var(--le-color-border); border-radius: var(--le-radius);
	background: var(--le-color-surface);
	padding: 1.4rem 1.4rem 1.5rem; margin: 1.5rem 0 2rem;
}
.le-support-form__row { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 560px) { .le-support-form__row { grid-template-columns: 1fr 1fr; } }
.le-support-form label { display: grid; gap: .35rem; font-size: .92rem; font-weight: 600; }
.le-support-form label em { font-style: normal; font-weight: 400; color: var(--le-color-muted); }
.le-support-form input[type="text"],
.le-support-form input[type="email"],
.le-support-form select,
.le-support-form textarea {
	width: 100%; padding: .7rem .85rem; font: inherit; font-weight: 400;
	color: var(--le-color-text); background: #fff;
	border: 1.5px solid var(--le-color-border); border-radius: var(--le-radius-sm);
}
.le-support-form input:focus,
.le-support-form select:focus,
.le-support-form textarea:focus {
	outline: none; border-color: var(--le-color-primary);
	box-shadow: 0 0 0 3px rgba(31,122,92,.15);
}
.le-support-form textarea { resize: vertical; min-height: 120px; }
.le-support-form__submit { justify-self: start; padding-inline: 1.6rem; }
.le-support-form__status { margin: 0; font-size: .92rem; min-height: 1.2em; }
.le-support-form__status.is-ok { color: var(--le-color-primary); font-weight: 600; }
.le-support-form__status.is-err { color: #b32d2e; font-weight: 600; }
/* Honeypot — hidden from people, reachable by bots. */
.le-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; opacity: 0; }

/* Inline related-service cards, injected between article paragraphs.
   --ac is the per-variant accent colour. */
.le-inline-svc {
	--ac: var(--le-color-primary);
	margin: 1.75rem 0;
	border: 1px solid var(--le-color-border);
	border-radius: var(--le-radius);
	background: #fff;
	overflow: hidden;
	transition: box-shadow .15s ease, transform .15s ease, border-color .15s ease;
}
.le-inline-svc:hover { box-shadow: var(--le-shadow); transform: translateY(-2px); border-color: var(--ac); }
.le-inline-svc__link { display: flex; gap: 0; color: var(--le-color-text); align-items: stretch; }
.le-inline-svc__link:hover { text-decoration: none; }
.le-inline-svc__media { flex: 0 0 34%; min-height: 116px; background: var(--le-color-surface) center/cover no-repeat; }
.le-inline-svc__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: .25rem; padding: .9rem 1.05rem; }
.le-inline-svc__label {
	font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ac);
}
.le-inline-svc__title { font-weight: 800; font-size: 1.12rem; line-height: 1.2; }
.le-inline-svc__link:hover .le-inline-svc__title { color: var(--ac); }
.le-inline-svc__desc { font-size: .9rem; color: var(--le-color-muted); line-height: 1.5; }
.le-inline-svc__meta { display: flex; align-items: baseline; gap: .75rem; margin-top: .35rem; }
.le-inline-svc__range { font-weight: 800; color: var(--ac); }
.le-inline-svc__cta { margin-left: auto; font-size: .88rem; font-weight: 700; color: var(--ac); white-space: nowrap; }

/* --- Variant 1: image left, green, clean bordered card --- */
.le-inline-svc--v1 { --ac: var(--le-color-primary); }

/* --- Variant 2: image right, orange accent, tinted panel --- */
.le-inline-svc--v2 { --ac: var(--le-color-accent); background: #fffaf1; }
.le-inline-svc--v2 .le-inline-svc__link { flex-direction: row-reverse; }

/* --- Variant 3: image on top (banner), blue accent, full-width --- */
.le-inline-svc--v3 { --ac: var(--le-color-avg); }
.le-inline-svc--v3 .le-inline-svc__link { flex-direction: column; }
.le-inline-svc--v3 .le-inline-svc__media { flex-basis: auto; width: 100%; height: 150px; min-height: 0; }

/* --- Variant 4: no photo emphasis, bold left rule, surface --- */
.le-inline-svc--v4 { --ac: var(--le-color-primary-dark); background: var(--le-color-surface); border-left: 5px solid var(--ac); }
.le-inline-svc--v4 .le-inline-svc__media { flex-basis: 26%; }
.le-inline-svc--v4 .le-inline-svc__title { font-size: 1.05rem; }

/* --- Variant 5: image left, small square thumbnail, minimal --- */
.le-inline-svc--v5 { --ac: var(--le-color-low); }
.le-inline-svc--v5 .le-inline-svc__link { align-items: center; padding-left: .9rem; gap: .9rem; }
.le-inline-svc--v5 .le-inline-svc__media { flex: 0 0 84px; min-height: 84px; height: 84px; width: 84px; border-radius: var(--le-radius-sm); }
.le-inline-svc--v5 .le-inline-svc__body { padding-left: 0; }

/* --- Variant 6: image right, high accent (dark) --- */
.le-inline-svc--v6 { --ac: #e0533d; background: linear-gradient(90deg, #fff, #fff7f5); }
.le-inline-svc--v6 .le-inline-svc__link { flex-direction: row-reverse; }
.le-inline-svc--v6 .le-inline-svc__body { border-right: 3px solid var(--ac); }

/* No featured image: collapse the media slot so text fills the card. */
.le-inline-svc--noimg .le-inline-svc__media { display: none; }

@media (max-width: 560px) {
	/* Stack image over text on small screens for every variant. */
	.le-inline-svc__link,
	.le-inline-svc--v2 .le-inline-svc__link,
	.le-inline-svc--v6 .le-inline-svc__link { flex-direction: column; }
	.le-inline-svc__media { width: 100%; height: 140px; min-height: 0; flex-basis: auto; }
	.le-inline-svc--v5 .le-inline-svc__link { flex-direction: row; }
	.le-inline-svc--v5 .le-inline-svc__media { width: 84px; height: 84px; flex-basis: 84px; }
}

/* Estimate disclaimer (foot of every cost page) */
.le-disclaimer {
	margin: 2.5rem 0 0;
	padding: 1.1rem 1.2rem;
	background: var(--le-color-surface);
	border: 1px solid var(--le-color-border);
	border-left: 4px solid var(--le-color-accent);
	border-radius: var(--le-radius-sm);
}
.le-disclaimer__title {
	font-size: .82rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
	color: var(--le-color-muted); margin: 0 0 .4rem;
}
.le-disclaimer p { margin: 0; font-size: .92rem; line-height: 1.6; color: var(--le-color-muted); }
.le-disclaimer a { font-weight: 600; }

/* Paid-link disclosure — sits with the links it refers to. */
.le-affiliate {
	font-size: .86rem; line-height: 1.6; color: var(--le-color-muted);
	margin: .75rem 0 0; padding-top: .75rem;
	border-top: 1px dashed var(--le-color-border);
}
.le-disclaimer__affiliate { margin-top: .8rem; }

/* Category hub, services archive + static pages: sit below the hero rather
   than overlapping it. */
.tax-service_category .le-single,
.post-type-archive-service .le-single,
.le-single--authors,
.le-single--search,
.le-single--page { margin-top: 2rem; }

/* -------------------------------------------------------------------------
   Service category hub
   ------------------------------------------------------------------------- */
/* Stat tiles sit on the shared (green) service hero, so they're translucent. */
.le-cat-stats {
	list-style: none; margin: 1.4rem auto 0; padding: 0;
	display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem;
	max-width: 640px;
}
.le-cat-stats li {
	flex: 1 1 170px; text-align: center;
	background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.28);
	border-radius: var(--le-radius-sm); padding: .75rem .9rem; color: #fff;
}
.le-cat-stats strong { display: block; font-size: 1.15rem; font-weight: 800; line-height: 1.25; color: #fff; }
.le-cat-stats span { font-size: .78rem; color: rgba(255,255,255,.85); text-transform: uppercase; letter-spacing: .03em; }

/* Archive hero search */
.le-archive-search { max-width: 520px; margin: 1.25rem auto 0; }
.le-archive-search .le-search { margin: 0; }

/* -------------------------------------------------------------------------
   404 page
   ------------------------------------------------------------------------- */
.le-404__code { display: block; font-size: clamp(4.5rem, 14vw, 8rem); font-weight: 800; line-height: 1; letter-spacing: .04em; color: rgba(255, 255, 255, .22); margin: 0 0 .25rem; }
.le-404__actions { display: flex; justify-content: center; gap: .6rem; flex-wrap: wrap; margin-top: 1.5rem; }
.le-404 .le-btn { background: #fff; color: var(--le-color-primary-dark); }
.le-404 .le-btn--ghost { background: transparent; color: #fff; border: 1px solid rgba(255, 255, 255, .55); }
.le-404 .le-btn--ghost:hover { background: rgba(255, 255, 255, .12); }

/* -------------------------------------------------------------------------
   Predictive search dropdown
   ------------------------------------------------------------------------- */
.le-search--ac { position: relative; }
/* The input's wrapper: takes the flex sizing the input used to have, so the
   dropdown below can match the input's width exactly. */
.le-search__field { position: relative; flex: 1; min-width: 0; }
.le-search__field input[type="search"] { width: 100%; flex: none; }
.le-ac {
	position: absolute; top: calc(100% + .4rem); left: 0; right: 0; z-index: 60;
	background: #fff; border: 1px solid var(--le-color-border);
	border-radius: var(--le-radius-sm); box-shadow: var(--le-shadow-lg);
	overflow: hidden auto; max-height: 340px; text-align: left;
}
.le-ac[hidden] { display: none; }
.le-ac__item {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	padding: .7rem .9rem; color: var(--le-color-text); font-size: .95rem;
	border-bottom: 1px solid var(--le-color-border);
}
.le-ac__item:last-child { border-bottom: 0; }
.le-ac__item:hover,
.le-ac__item.is-active { background: #f3faf6; text-decoration: none; }
.le-ac__label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.le-ac__label strong { color: var(--le-color-primary); font-weight: 700; }
.le-ac__meta { flex: 0 0 auto; font-size: .82rem; color: var(--le-color-muted); font-weight: 600; }

/* -------------------------------------------------------------------------
   Front page
   ------------------------------------------------------------------------- */
.le-container--narrow { max-width: 800px; }
.le-section--alt { background: var(--le-color-surface); }
.le-sechead { text-align: center; max-width: 640px; margin: 0 auto 2rem; }
.le-sechead h2 { margin-bottom: .5rem; }
.le-sechead p { color: var(--le-color-muted); margin: 0; }
.le-sec-cta { text-align: center; margin: 2rem 0 0; }

/* Hero — the centerpiece owns the fold */
.le-home-hero {
	position: relative; overflow: hidden;
	background: linear-gradient(160deg, var(--le-color-primary-dark), var(--le-color-primary) 60%, #2f9e6b);
	color: #fff; text-align: center;
	padding-block: clamp(3rem, 8vw, 5.5rem);
}
/* Tiled tool pattern behind the content. */
.le-hero-tools {
	position: absolute; inset: 0; width: 100%; height: 100%;
	pointer-events: none; user-select: none;
}
.le-home-hero > .le-container { position: relative; z-index: 1; }
.le-home-hero__title {
	color: #fff; max-width: 20ch; margin: 0 auto .8rem;
	font-size: clamp(2rem, 5vw, 3.1rem); line-height: 1.12;
}
.le-home-hero__sub {
	color: rgba(255,255,255,.92); max-width: 60ch; margin: 0 auto 2rem;
	font-size: clamp(1rem, 2vw, 1.15rem); line-height: 1.65;
}
.le-home-search { max-width: 620px; margin: 0 auto; }
.le-home-search input[type="search"] { border-color: transparent; }
.le-quick {
	display: flex; flex-wrap: wrap; justify-content: center; align-items: center;
	gap: .4rem .7rem; margin: 1.1rem auto 0; max-width: 720px; font-size: .9rem;
}
.le-quick__label { color: rgba(255,255,255,.7); }
.le-quick a {
	color: #fff; border-bottom: 1px solid rgba(255,255,255,.4);
}
.le-quick a:hover { border-color: #fff; text-decoration: none; }
.le-home-hero .le-attrs { margin-top: 1.75rem; gap: .5rem 1.4rem; }
.le-home-hero .le-attrs li { color: rgba(255,255,255,.95); }
.le-home-hero .le-attrs svg { color: #fff; }

/* Stat band */
.le-statband { background: var(--le-color-text); color: #fff; padding-block: 1.5rem; }
.le-statband ul {
	list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem; text-align: center;
}
@media (min-width: 720px) { .le-statband ul { grid-template-columns: repeat(4, 1fr); } }
.le-statband strong { display: block; font-size: 1.6rem; font-weight: 800; line-height: 1.1; }
.le-statband span { font-size: .78rem; color: #8b97a7; text-transform: uppercase; letter-spacing: .05em; }

/* Three-step explainer */
.le-steps {
	list-style: none; margin: 0; padding: 0;
	display: grid; gap: 1.25rem; grid-template-columns: 1fr; counter-reset: le-step;
}
@media (min-width: 800px) { .le-steps { grid-template-columns: repeat(3, 1fr); } }
.le-steps li {
	background: #fff; border: 1px solid var(--le-color-border);
	border-radius: var(--le-radius); padding: 1.5rem 1.4rem;
}
.le-steps__n {
	display: inline-grid; place-items: center; width: 34px; height: 34px;
	border-radius: 50%; background: var(--le-color-primary); color: #fff;
	font-weight: 800; font-size: .95rem; margin-bottom: .85rem;
}
.le-steps h3 { font-size: 1.08rem; margin-bottom: .4rem; }
.le-steps p { margin: 0; color: var(--le-color-muted); font-size: .95rem; line-height: 1.6; }

/* Trade / tool tiles */
.le-trade-grid { display: grid; gap: .75rem; grid-template-columns: 1fr 1fr; }
@media (min-width: 700px) { .le-trade-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1000px) { .le-trade-grid { grid-template-columns: repeat(4, 1fr); } }
.le-trade {
	display: flex; flex-direction: column; gap: .15rem;
	border: 1px solid var(--le-color-border); border-radius: var(--le-radius-sm);
	background: #fff; padding: .9rem 1rem; color: var(--le-color-text);
	transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
.le-trade:hover {
	border-color: var(--le-color-primary); transform: translateY(-2px);
	box-shadow: var(--le-shadow); text-decoration: none;
}
.le-trade__name { font-weight: 700; font-size: .98rem; line-height: 1.3; }
.le-trade__count { font-size: .8rem; color: var(--le-color-muted); }
.le-trade--tool { border-left: 3px solid var(--le-color-accent); }

/* Trust cards */
.le-trust-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .le-trust-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1000px) { .le-trust-grid { grid-template-columns: repeat(4, 1fr); } }
.le-trustcard {
	background: #fff; border: 1px solid var(--le-color-border);
	border-radius: var(--le-radius); padding: 1.35rem 1.3rem;
	display: flex; flex-direction: column;
}
.le-trustcard h3 { font-size: 1.02rem; margin-bottom: .5rem; }
.le-trustcard p { font-size: .92rem; color: var(--le-color-muted); line-height: 1.6; }
.le-trustcard a { margin-top: auto; font-weight: 600; font-size: .9rem; }
.le-trustcard--people { border-top: 3px solid var(--le-color-primary); }

/* City link cloud */
.le-citylinks { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; }
.le-citylinks a {
	background: #fff; border: 1px solid var(--le-color-border); border-radius: 999px;
	padding: .45rem .9rem; font-size: .88rem; font-weight: 600; color: var(--le-color-text);
	transition: border-color .15s ease, color .15s ease;
}
.le-citylinks a:hover { border-color: var(--le-color-primary); color: var(--le-color-primary); text-decoration: none; }

/* Closing CTA */
.le-home-cta {
	background: var(--le-color-primary-dark); color: #fff; text-align: center;
	padding-block: clamp(2.5rem, 6vw, 4rem);
}
.le-home-cta h2 { color: #fff; margin-bottom: .5rem; }
.le-home-cta p { color: rgba(255,255,255,.9); max-width: 52ch; margin: 0 auto 1.5rem; }
.le-home-cta .le-btn { background: #fff; color: var(--le-color-primary-dark); }

/* Search results */
.le-svc-card__cat {
	font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
	color: var(--le-color-primary); margin-bottom: .1rem;
}
.le-search-more { margin-top: 2.5rem; }
.le-noresults {
	text-align: center; padding: 2.5rem 1.5rem;
	border: 1px dashed var(--le-color-border); border-radius: var(--le-radius);
	background: var(--le-color-surface);
}
.le-noresults svg { color: var(--le-color-muted); margin-bottom: .75rem; }
.le-noresults h2 { margin-bottom: .5rem; }
.le-noresults p { color: var(--le-color-muted); max-width: 48ch; margin: 0 auto; }
.le-noresults__actions { display: flex; flex-wrap: wrap; gap: .6rem; justify-content: center; margin: 1.4rem 0 0; }

/* Experts directory (/authors/) */
.le-expert-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; margin: 0 0 2.5rem; }
@media (min-width: 640px) { .le-expert-grid { grid-template-columns: 1fr 1fr; } }
.le-expert {
	display: flex; flex-direction: column; gap: .75rem;
	border: 1px solid var(--le-color-border); border-radius: var(--le-radius);
	background: #fff; padding: 1.15rem 1.2rem; color: var(--le-color-text);
	transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.le-expert:hover {
	border-color: var(--le-color-primary); box-shadow: var(--le-shadow);
	transform: translateY(-2px); text-decoration: none;
}
.le-expert__head { display: flex; align-items: center; gap: .75rem; }
.le-expert__name { display: block; font-weight: 700; font-size: 1.05rem; line-height: 1.25; }
.le-expert__title { display: block; font-size: .85rem; color: var(--le-color-primary); font-weight: 600; }
.le-expert__desc { font-size: .92rem; line-height: 1.55; color: var(--le-color-muted); }
.le-expert__tags { display: flex; flex-wrap: wrap; gap: .35rem; }
.le-expert__tags em {
	font-style: normal; font-size: .74rem; font-weight: 600;
	background: var(--le-color-surface); color: var(--le-color-muted);
	border-radius: 999px; padding: .2rem .6rem;
}
.le-expert__foot {
	display: flex; align-items: center; justify-content: space-between; gap: .5rem;
	margin-top: auto; padding-top: .6rem; border-top: 1px solid var(--le-color-border);
	font-size: .85rem;
}
.le-expert__years { color: var(--le-color-muted); }
.le-expert__cta { color: var(--le-color-primary); font-weight: 600; }

/* Category cards with a service image mosaic (services archive) */
.le-catcards { display: grid; gap: 1.25rem; grid-template-columns: 1fr; margin: 0 0 2rem; }
@media (min-width: 700px) { .le-catcards { grid-template-columns: 1fr 1fr; } }

.le-catcard {
	display: flex; flex-direction: column;
	border: 1px solid var(--le-color-border); border-radius: var(--le-radius);
	background: #fff; padding: 1.25rem 1.3rem 1.15rem;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.le-catcard:hover { border-color: var(--le-color-primary); box-shadow: var(--le-shadow); }
.le-catcard__title { font-size: 1.2rem; margin: 0 0 .35rem; }
.le-catcard__title a { color: var(--le-color-text); }
.le-catcard__title a:hover { color: var(--le-color-primary); text-decoration: none; }
.le-catcard__desc { font-size: .92rem; line-height: 1.55; color: var(--le-color-muted); margin: 0 0 1rem; }

/* 3 x 2 mosaic */
.le-catcard__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin-bottom: 1rem; }
.le-tile {
	position: relative; display: block; aspect-ratio: 1 / 1; overflow: hidden;
	border-radius: var(--le-radius-sm); background: var(--le-color-surface);
}
.le-tile img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s ease; }
.le-tile:hover img { transform: scale(1.06); }
.le-tile__fallback {
	position: absolute; inset: 0; display: grid; place-items: center; padding: .4rem;
	text-align: center; font-size: .72rem; font-weight: 600; line-height: 1.25;
	color: var(--le-color-muted); background: var(--le-color-surface);
}
/* Sixth tile: dim the image and stamp "View all" over it. */
.le-tile--more::after {
	content: ''; position: absolute; inset: 0; background: rgba(21,92,68,.78);
	transition: background .15s ease;
}
.le-tile--more:hover::after { background: rgba(21,92,68,.88); }
.le-tile__overlay {
	position: absolute; inset: 0; z-index: 1;
	display: grid; place-content: center; justify-items: center; gap: .1rem;
	color: #fff; text-align: center; line-height: 1.15;
}
.le-tile__overlay span { font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.le-tile__overlay em { font-style: normal; font-size: 1.15rem; font-weight: 800; }

.le-catcard__cta { margin-top: auto; font-size: .92rem; font-weight: 600; color: var(--le-color-primary); }

/* Comparison table */
.le-table-wrap { overflow-x: auto; margin: 0 0 2rem; }
.le-table { width: 100%; border-collapse: collapse; font-size: .97rem; }
.le-table th, .le-table td {
	border: 1px solid var(--le-color-border); padding: .7rem .85rem;
	text-align: left; vertical-align: middle;
}
.le-table thead th { background: var(--le-color-surface); font-weight: 700; white-space: nowrap; }
.le-table tbody th { font-weight: 600; }
.le-table tbody tr:nth-child(even) { background: rgba(0,0,0,.02); }
.le-table__avg { font-weight: 800; color: var(--le-color-primary); }

/* Service cards */
.le-svc-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; margin: 0 0 2rem; }
@media (min-width: 620px) { .le-svc-grid { grid-template-columns: 1fr 1fr; } }
.le-svc-card {
	display: flex; flex-direction: column;
	border: 1px solid var(--le-color-border); border-radius: var(--le-radius);
	overflow: hidden; background: #fff; color: var(--le-color-text);
	transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.le-svc-card:hover {
	border-color: var(--le-color-primary); box-shadow: var(--le-shadow);
	transform: translateY(-2px); text-decoration: none;
}
.le-svc-card__media { display: block; aspect-ratio: 16 / 9; background: var(--le-color-surface); overflow: hidden; }
.le-svc-card__img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s ease; }
.le-svc-card:hover .le-svc-card__img { transform: scale(1.04); }
.le-svc-card__body { display: flex; flex-direction: column; gap: .25rem; padding: 1.1rem 1.15rem; }
.le-svc-card__title { font-weight: 700; font-size: 1.1rem; }
.le-svc-card__avg { font-size: 1.5rem; font-weight: 800; color: var(--le-color-primary); line-height: 1.2; }
.le-svc-card__band { font-size: .86rem; color: var(--le-color-muted); }
.le-svc-card__desc { font-size: .9rem; color: var(--le-color-muted); margin-top: .35rem; }
.le-svc-card__cta { margin-top: .6rem; font-size: .9rem; font-weight: 600; color: var(--le-color-primary); }

.le-aside-box {
	border: 1px solid var(--le-color-border);
	border-radius: var(--le-radius);
	padding: 1.2rem;
	background: var(--le-color-surface);
	margin-bottom: 1.25rem;
}
.le-aside-box h3 { font-size: 1.05rem; }

.le-breadcrumbs { font-size: .85rem; color: var(--le-color-muted); margin-bottom: 1rem; }
.le-breadcrumbs a { color: var(--le-color-muted); }
.le-breadcrumbs span[aria-current] { color: var(--le-color-text); }

/* Related services chips */
.le-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: .5rem 0 0; padding: 0; list-style: none; }
.le-chips a {
	display: inline-block;
	padding: .35rem .7rem;
	border-radius: 999px;
	background: #fff;
	border: 1px solid var(--le-color-border);
	font-size: .85rem;
	color: var(--le-color-text);
}
.le-chips a:hover { border-color: var(--le-color-primary); text-decoration: none; }

/* -------------------------------------------------------------------------
   Archive / category headers
   ------------------------------------------------------------------------- */
.le-page-head { background: var(--le-color-surface); border-bottom: 1px solid var(--le-color-border); }
.le-page-head p { color: var(--le-color-muted); margin-bottom: 0; }

.le-cat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px,1fr)); gap: 1rem; }
.le-cat-tile {
	border: 1px solid var(--le-color-border);
	border-radius: var(--le-radius);
	padding: 1.2rem;
	background: #fff;
	box-shadow: var(--le-shadow);
}
.le-cat-tile h3 { margin-bottom: .25rem; }
.le-cat-tile span { color: var(--le-color-muted); font-size: .9rem; }

/* Pagination */
.le-pagination { display: flex; gap: .4rem; justify-content: center; margin-top: 2rem; flex-wrap: wrap; }
.le-pagination .page-numbers {
	padding: .5rem .85rem;
	border: 1px solid var(--le-color-border);
	border-radius: var(--le-radius-sm);
	color: var(--le-color-text);
}
.le-pagination .current { background: var(--le-color-primary); color: #fff; border-color: var(--le-color-primary); }

/* -------------------------------------------------------------------------
   Footer
   ------------------------------------------------------------------------- */
.le-site-footer {
	background: var(--le-color-text);
	color: #c9d2de;
	margin-top: 3rem;
	padding-block: 2.5rem;
	font-size: .95rem;
}
.le-site-footer a { color: #fff; }
.le-footer-grid { display: grid; grid-template-columns: 1fr; gap: 2rem; }
.le-site-footer h4 {
	color: #fff; font-size: .82rem; font-weight: 700; margin-bottom: .9rem;
	text-transform: uppercase; letter-spacing: .06em;
}
.le-site-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; }
.le-site-footer li a { color: #c9d2de; transition: color .15s ease; }
.le-site-footer li a:hover { color: #fff; text-decoration: none; }

.le-footer-brand .le-brand { color: #fff; }
.le-footer-tagline { margin: .85rem 0 0; color: #8b97a7; max-width: 34ch; line-height: 1.6; }
.le-footer-social { display: flex !important; flex-wrap: wrap; gap: .5rem; margin-top: 1.15rem !important; }
.le-footer-social a {
	display: inline-grid; place-items: center; width: 38px; height: 38px;
	color: #c9d2de; border: 1px solid rgba(255,255,255,.18); border-radius: 50%;
	transition: color .15s ease, border-color .15s ease, background .15s ease, transform .15s ease;
}
.le-footer-social a:hover {
	color: #fff; border-color: rgba(255,255,255,.45);
	background: rgba(255,255,255,.08); transform: translateY(-2px); text-decoration: none;
}
.le-footer-social svg { width: 18px; height: 18px; display: block; }
.le-footer-note { margin: 0 0 .75rem; color: #8b97a7; line-height: 1.6; }
.le-footer-link { font-weight: 600; font-size: .9rem; }

/* General disclaimer — centered, above the rule */
.le-footer-disclaimer {
	max-width: 780px; margin: 2.75rem auto 0; text-align: center;
	font-size: .85rem; line-height: 1.7; color: #8b97a7;
}

.le-footer-bottom {
	border-top: 1px solid rgba(255,255,255,.12);
	margin-top: 1.5rem; padding-top: 1.25rem;
	color: #8b97a7; text-align: center; font-size: .88rem;
}

/* -------------------------------------------------------------------------
   Prose (content)
   ------------------------------------------------------------------------- */
.le-prose h2 { margin-top: 2rem; scroll-margin-top: 5rem; }
.le-prose h3 { margin-top: 1.5rem; }
.le-prose ul, .le-prose ol { padding-left: 1.35rem; margin: .9rem 0; }
.le-prose li { margin: .35rem 0; }
.le-prose ol { list-style: decimal; }
.le-prose ul { list-style: disc; }

/* Tables scroll horizontally on small screens instead of breaking the layout */
.le-prose table { width: 100%; border-collapse: collapse; margin: 1.25rem 0; font-size: .95rem; table-layout: auto; }
.le-prose thead { background: var(--le-color-surface, #f7f9f8); }
.le-prose th, .le-prose td { border: 1px solid var(--le-color-border); padding: .6rem .8rem; text-align: left; vertical-align: top; overflow-wrap: break-word; }
.le-prose th { background: var(--le-color-surface, #f7f9f8); font-weight: 700; }
.le-prose tbody tr:nth-child(even) { background: rgba(0,0,0,.02); }

/* Expert-tip blockquote */
.le-prose blockquote {
	margin: 1.25rem 0; padding: .9rem 1.1rem;
	border-left: 4px solid var(--le-color-primary);
	background: var(--le-color-surface, #f7f9f8);
	border-radius: 0 8px 8px 0; color: var(--le-color-text);
	font-style: italic;
}
.le-prose blockquote p { margin: 0 0 .5rem; }
.le-prose blockquote p:last-child { margin-bottom: 0; }

/* -------------------------------------------------------------------------
   Responsive — mobile-first (base styles target mobile; min-width scales up)
   ------------------------------------------------------------------------- */

/* Larger phones / small tablets */
@media (min-width: 641px) {
	.le-footer-grid { grid-template-columns: 1fr 1fr; }
	.le-search-submit { padding-inline: 1.6rem; }
}

/* Tablet up: the quote button becomes visible (header stays in hamburger layout) */
@media (min-width: 768px) {
	.le-quote-btn { display: inline-flex; }
}

/* Desktop header: real menu, no hamburger (hamburger layout used on phone + tablet) */
@media (min-width: 1025px) {
	.le-nav-toggle { display: none; }
	.le-nav { display: flex; align-items: center; }
	.le-nav ul { display: flex; }
	.le-brand, .custom-logo-link, .le-nav, .le-header-actions { order: 0; }
	/* Desktop logo shows, mobile logo hides */
	.le-logo--d { display: block; }
	.le-logo--m { display: none; }
}

/* Wide screens: full footer grid */
@media (min-width: 861px) {
	.le-footer-grid { grid-template-columns: 1.5fr repeat(3, 1fr); }
}

@media (max-width: 480px) {
	.le-calc__form {
		margin:0 -10px;
		padding: 1rem 1rem 2rem;
		display: flex;
        flex-direction: column;
		width:calc(100% + 20px);
	}
	.le-calc__addons {
		grid-template-columns: 1fr;
	}
	.le-calc__result {
		margin:0 -10px;
	}
	.le-jump-wrap {
		margin:0 -10px 1.5rem;
	}
	.le-single--calc {
    	margin-top: -1rem;
	}
	.le-zipgo-wrap {
		margin-left:-1.5rem;
		margin-right:-1.5rem;
		padding-left: 1.5rem;
        padding-right: 1.5rem;
	}
}