/* ==========================================================================
   Lynix World Suite — global styles
   Single CSS file. No theme dependency. Brand colors below.
   ========================================================================== */

:root {
	/* Brand palette — premium device-repair: slate authority + warm amber accent */
	--lws-brand:        #0F172A;
	--lws-brand-soft:   #1E293B;
	--lws-brand-deep:   #060B17;
	--lws-accent:       #F97316;
	--lws-accent-hover: #EA580C;
	--lws-accent-deep:  #C2410C;
	--lws-accent-soft:  #FFEDD5;
	--lws-accent-tint:  #FFF7ED;
	--lws-cyan:         #0891B2;
	--lws-cyan-soft:    #E0F7FA;
	--lws-violet:       #7C3AED;
	--lws-mint:         #ECFDF5;
	--lws-amber:        #F59E0B;
	--lws-success:      #16A34A;
	--lws-whatsapp:     #25D366;
	--lws-text:         #0F172A;
	--lws-text-soft:    #334155;
	--lws-muted:        #64748B;
	--lws-muted-soft:   #94A3B8;
	--lws-line:         #E2E8F0;
	--lws-line-soft:    #F1F5F9;
	--lws-bg:           #FFFFFF;
	--lws-bg-soft:      #F8FAFC;
	--lws-bg-band:      #F1F5F9;

	/* Radius scale — modern, consistent */
	--lws-radius-sm:    6px;
	--lws-radius:       8px;
	--lws-radius-md:    12px;
	--lws-radius-lg:    14px;
	--lws-radius-xl:    20px;
	--lws-radius-pill:  999px;

	/* Shadow scale — subtle to pronounced */
	--lws-shadow-xs:    0 1px 2px rgba(15, 23, 42, .04);
	--lws-shadow-sm:    0 4px 12px rgba(15, 23, 42, .05);
	--lws-shadow:       0 10px 30px rgba(15, 23, 42, .07);
	--lws-shadow-lg:    0 24px 70px rgba(15, 23, 42, .14);
	--lws-shadow-glow:  0 0 0 1px var(--lws-accent), 0 12px 28px -8px rgba(249, 115, 22, .35);

	/* Typography stacks — system-first, OS-native premium feel */
	--lws-font-body:    -apple-system, BlinkMacSystemFont, "Inter", "SF Pro Text", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
	--lws-font-head:    -apple-system, BlinkMacSystemFont, "Inter Display", "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;

	/* Layout */
	--lws-container:    1180px;
	--lws-container-narrow: 880px;

	/* Transitions */
	--lws-ease:         cubic-bezier(.32, .72, 0, 1);
	--lws-dur:          .2s;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
	font-family: var(--lws-font-body);
	font-size: 16px;
	line-height: 1.6;
	color: var(--lws-text);
	background: var(--lws-bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--lws-accent); text-decoration: none; transition: color var(--lws-dur) var(--lws-ease); }
a:hover { text-decoration: underline; }
h1, h2, h3, h4, h5 { font-family: var(--lws-font-head); color: var(--lws-brand); line-height: 1.18; margin: 0 0 .5em; font-weight: 700; letter-spacing: -0.018em; }
h1 { font-size: clamp(2rem, 4.5vw, 2.85rem); letter-spacing: -0.022em; line-height: 1.08; }
h2 { font-size: clamp(1.55rem, 3.2vw, 2.1rem); letter-spacing: -0.018em; line-height: 1.18; }
h3 { font-size: 1.18rem; line-height: 1.3; letter-spacing: -0.01em; }
h4 { font-size: 1rem; line-height: 1.35; letter-spacing: -0.008em; }
p  { margin: 0 0 1em; }
::selection { background: var(--lws-accent); color: #fff; }

.lws-skip {
	position: absolute; left: -9999px; top: 1rem; background: var(--lws-brand);
	color: #fff; padding: .5rem 1rem; border-radius: var(--lws-radius); z-index: 9999;
}
.lws-skip:focus { left: 1rem; outline: 3px solid var(--lws-accent); outline-offset: 2px; }

/* Keyboard focus rings (visible on Tab, hidden on mouse click) */
.lws-btn:focus-visible,
.lws-nav a:focus-visible,
.lws-mega a:focus-visible,
.lws-mega button:focus-visible,
.lws-mobile-nav a:focus-visible,
.lws-mobile-nav button:focus-visible,
.lws-footer a:focus-visible,
.lws-topbar a:focus-visible,
.lws-tile:focus-within,
.lws-chip:focus-visible,
.lws-service-tile:focus-visible,
.lws-city-tile:focus-visible,
.lws-faq-item summary:focus-visible {
	outline: 3px solid var(--lws-accent);
	outline-offset: 2px;
	border-radius: 4px;
}

.lws-container { max-width: var(--lws-container); margin: 0 auto; padding: 0 20px; }

/* ---------- Topbar ---------- */
.lws-topbar { background: var(--lws-brand); color: #CBD5E1; font-size: .82rem; }
.lws-topbar-row { display: flex; flex-wrap: wrap; gap: .15rem 1.1rem; padding: .5rem 20px; align-items: center; max-width: var(--lws-container); margin: 0 auto; }
.lws-topbar-item { display: inline-flex; align-items: center; gap: .35rem; color: inherit; }
.lws-topbar-item:hover { color: #fff; text-decoration: none; }
.lws-topbar-item svg { color: var(--lws-accent); flex-shrink: 0; }
.lws-topbar-trust strong { color: #fff; }
.lws-topbar-spacer { flex: 1; }
.lws-topbar-wa svg { color: var(--lws-whatsapp); }
.lws-topbar-link strong { color: #fff; }
@media (max-width: 700px) {
	.lws-hide-sm { display: none; }
	.lws-topbar-spacer { display: none; }
	.lws-topbar-row { font-size: .78rem; gap: .15rem .75rem; }
}

/* ---------- Header / nav ---------- */
.lws-header { background: #fff; border-bottom: 1px solid var(--lws-line); position: sticky; top: 0; z-index: 200; box-shadow: var(--lws-shadow); }
.lws-header-row { display: flex; align-items: center; gap: 1.5rem; padding: .85rem 20px; max-width: var(--lws-container); margin: 0 auto; }
.lws-logo img { height: 40px; width: auto; display: block; }
.lws-nav { flex: 1; }
.lws-nav > ul { list-style: none; margin: 0; padding: 0; display: flex; gap: .15rem; align-items: center; justify-content: center; }
.lws-nav > ul > li > a { display: inline-block; padding: .55rem .85rem; color: var(--lws-brand); font-weight: 500; border-radius: 8px; font-size: .94rem; line-height: 1.2; }
.lws-nav > ul > li > a:hover { background: var(--lws-bg-band); text-decoration: none; color: var(--lws-accent); }
.lws-nav > ul > li.is-active > a { color: var(--lws-accent); font-weight: 600; }
.lws-nav .lws-has-mega { position: static; }
.lws-header-cta { display: flex; gap: .5rem; flex-shrink: 0; }

/* ---------- Mega panel (desktop) ---------- */
.lws-mega {
	position: absolute; left: 0; right: 0; top: 100%;
	background: #fff; border-top: 1px solid var(--lws-line);
	box-shadow: 0 16px 40px rgba(15, 23, 42, .12);
	opacity: 0; visibility: hidden; pointer-events: none;
	transform: translateY(-8px); transition: opacity .15s ease, transform .15s ease, visibility .15s ease;
	z-index: 150;
}
.lws-has-mega:hover > .lws-mega,
.lws-has-mega:focus-within > .lws-mega,
.lws-has-mega > .lws-mega:hover {
	opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0);
}
.lws-mega-inner { max-width: var(--lws-container); margin: 0 auto; padding: 1.75rem 20px 1.5rem; }
.lws-mega-grid { display: grid; gap: 1.5rem; }
.lws-mega-grid-3 { grid-template-columns: repeat(3, 1fr); }
.lws-mega-grid-4 { grid-template-columns: repeat(4, 1fr); }

.lws-mega-card { background: var(--lws-bg-soft); border: 1px solid var(--lws-line); border-radius: var(--lws-radius); padding: 1rem 1.1rem; display: flex; flex-direction: column; gap: .75rem; }
.lws-mega-card-head { display: flex; gap: .85rem; align-items: center; color: var(--lws-brand); padding-bottom: .65rem; border-bottom: 1px solid var(--lws-line); margin-bottom: .15rem; }
.lws-mega-card-head:hover { color: var(--lws-accent); text-decoration: none; }
.lws-mega-card-head img { flex-shrink: 0; }
.lws-mega-card-head strong { display: block; font-size: 1rem; line-height: 1.2; margin-bottom: .15rem; }
.lws-mega-card-head span { display: block; font-size: .82rem; color: var(--lws-muted); }
.lws-mega-card-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .1rem; }
.lws-mega-card-list-cols { display: grid; grid-template-columns: 1fr 1fr; gap: .1rem .75rem; }
.lws-mega-card-list li.lws-mega-list-head { font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: var(--lws-muted); margin-top: .5rem; padding: .25rem 0; font-weight: 600; }
.lws-mega-card-list li:first-child.lws-mega-list-head { margin-top: 0; }
.lws-mega-card-list a {
	display: flex; justify-content: space-between; align-items: center;
	padding: .35rem .5rem; border-radius: 6px; color: var(--lws-brand); font-size: .9rem; line-height: 1.3;
}
.lws-mega-card-list a:hover { background: #fff; color: var(--lws-accent); text-decoration: none; }
.lws-mega-price { font-size: .78rem; color: var(--lws-muted); font-weight: 500; flex-shrink: 0; margin-left: .5rem; }
.lws-mega-card-list a:hover .lws-mega-price { color: var(--lws-accent); }
.lws-mega-more { color: var(--lws-accent) !important; font-weight: 600; }

.lws-mega-nearby { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px dashed var(--lws-line); display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.lws-mega-nearby .lws-mega-list-head { font-size: .82rem; color: var(--lws-muted); font-weight: 600; margin-right: .5rem; }
.lws-mega-nearby .lws-chip { font-size: .85rem; padding: .3rem .75rem; }

.lws-mega-footer {
	background: var(--lws-bg-band); border-top: 1px solid var(--lws-line);
	margin: 1.25rem -20px -1.5rem; padding: 1rem 20px;
	display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .75rem 1.5rem;
}
.lws-mega-cta { font-weight: 600; color: var(--lws-brand); font-size: .92rem; padding: .35rem 0; }
.lws-mega-cta:hover { color: var(--lws-accent); text-decoration: none; }
.lws-mega-cta-accent { color: var(--lws-accent); }
.lws-mega-footer-note { font-size: .82rem; color: var(--lws-muted); flex: 1; min-width: 280px; }
.lws-mega-footer-note a { color: var(--lws-brand); font-weight: 500; }
.lws-mega-footer-note a:hover { color: var(--lws-accent); text-decoration: none; }

@media (max-width: 1180px) {
	.lws-mega-grid-4 { grid-template-columns: repeat(2, 1fr); }
	.lws-mega-grid-3 { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- Burger + mobile drawer ---------- */
.lws-burger {
	display: none; flex-direction: column; gap: 4px; background: transparent;
	border: none; padding: .5rem; cursor: pointer; margin-left: auto;
}
.lws-burger span { display: block; width: 24px; height: 2px; background: var(--lws-brand); border-radius: 2px; transition: transform .15s ease, opacity .15s ease; }
.lws-burger.is-open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.lws-burger.is-open span:nth-child(2) { opacity: 0; }
.lws-burger.is-open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.lws-mobile-nav {
	position: fixed; top: 0; right: 0; bottom: 0; width: min(360px, 88vw);
	background: #fff; z-index: 250; transform: translateX(100%);
	transition: transform .25s ease; overflow-y: auto;
	box-shadow: -16px 0 40px rgba(15, 23, 42, .15); display: none;
}
.lws-mobile-nav.is-open { transform: translateX(0); }
.lws-mobile-nav-inner { padding: 1.25rem 1rem 2rem; }
.lws-mobile-nav ul { list-style: none; margin: 0; padding: 0; }
.lws-mobile-nav > div > ul > li > a,
.lws-mobile-nav > div > ul > li > button {
	display: block; padding: .85rem 1rem; color: var(--lws-brand); font-weight: 500;
	border-radius: 8px; width: 100%; background: transparent; border: none; font: inherit;
	text-align: left; cursor: pointer; font-size: 1rem;
}
.lws-mobile-nav a:hover, .lws-mobile-nav button:hover { background: var(--lws-bg-soft); text-decoration: none; }
.lws-mobile-accordion > button { display: flex; justify-content: space-between; align-items: center; }
.lws-mobile-accordion > button span { transition: transform .15s ease; color: var(--lws-muted); }
.lws-mobile-accordion.is-open > button span { transform: rotate(180deg); color: var(--lws-accent); }
.lws-mobile-acc-body { display: none; padding-left: 1rem; border-left: 2px solid var(--lws-line); margin: .25rem .5rem .5rem 1rem; }
.lws-mobile-accordion.is-open > .lws-mobile-acc-body { display: block; }
.lws-mobile-acc-body a { display: block; padding: .55rem .75rem; color: var(--lws-text); font-size: .92rem; border-radius: 6px; }
.lws-mobile-acc-body a:hover { background: var(--lws-bg-soft); color: var(--lws-accent); text-decoration: none; }
.lws-mobile-acc-divider { display: block; font-size: .7rem; text-transform: uppercase; letter-spacing: .05em; color: var(--lws-muted); padding: .85rem .75rem .25rem; font-weight: 600; }
.lws-mobile-actions { display: flex; flex-direction: column; gap: .5rem; padding: 1.25rem 1rem 0; margin-top: 1rem; border-top: 1px solid var(--lws-line); }
.lws-mobile-actions .lws-btn { justify-content: center; }
body.lws-no-scroll { overflow: hidden; }

@media (max-width: 980px) {
	.lws-nav { display: none; }
	.lws-burger { display: flex; }
	.lws-mobile-nav { display: block; }
	.lws-header-cta { display: none; }
	.lws-header-row { gap: .75rem; padding: .65rem 16px; }
}

/* ---------- Buttons ---------- */
/* min-height: 44px meets WCAG 2.5.5 (target size) and Apple HIG. */
.lws-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
	font-weight: 600; padding: .65rem 1.15rem; border-radius: 999px;
	border: 1px solid transparent; cursor: pointer; transition: background-color .15s ease, color .15s ease, transform .15s ease, box-shadow .15s ease;
	font-size: .95rem; text-decoration: none; line-height: 1.2; min-height: 44px;
}
.lws-btn-primary { background: var(--lws-accent); color: #fff; }
.lws-btn-primary:hover { background: #EA580C; color: #fff; text-decoration: none; }
.lws-btn-primary:active { background: #C2410C; color: #fff; }
.lws-btn-ghost { background: transparent; border-color: var(--lws-line); color: var(--lws-brand); }
.lws-btn-ghost:hover { background: var(--lws-bg-band); text-decoration: none; }
.lws-btn-ghost:active { background: var(--lws-line); }
.lws-btn-lg { padding: .9rem 1.6rem; font-size: 1rem; min-height: 48px; }

/* ---------- Sections ---------- */
.lws-section { padding: 3.5rem 0; }
.lws-section + .lws-section { border-top: 1px solid var(--lws-line); }
.lws-section-head { text-align: center; max-width: 720px; margin: 0 auto 2.5rem; }
.lws-section-head h2 { margin-bottom: .35rem; }
.lws-section-head p { color: var(--lws-muted); }

/* Tighter vertical rhythm on small screens so pages don't feel like a series
   of huge gaps on a 375 px viewport. */
@media (max-width: 600px) {
	.lws-section { padding: 2.25rem 0; }
	.lws-section-head { margin: 0 auto 1.5rem; }
	.lws-hero { padding: 2rem 0 2.5rem; }
	.lws-hero-grid { gap: 1.5rem; }
	.lws-page-intro { padding: 2rem 0 1rem; }
	.lws-service-hero { padding: 1.5rem 0; }
}

/* ---------- Breadcrumbs ---------- */
.lws-breadcrumbs { background: var(--lws-bg-soft); border-bottom: 1px solid var(--lws-line); padding: .85rem 0; font-size: .9rem; }
.lws-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem .5rem; }
.lws-breadcrumbs li + li::before { content: "›"; margin-right: .5rem; color: var(--lws-muted); }
.lws-breadcrumbs a { color: var(--lws-muted); }
.lws-breadcrumbs li[aria-current="page"] span { color: var(--lws-brand); font-weight: 500; }

/* ---------- Hero ---------- */
.lws-hero { background: linear-gradient(180deg, var(--lws-bg-soft) 0%, var(--lws-bg) 100%); padding: 3rem 0 4rem; }
.lws-hero-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 3rem; align-items: center; }
.lws-hero-eyebrow { color: var(--lws-accent); font-weight: 600; font-size: .9rem; letter-spacing: .05em; text-transform: uppercase; margin: 0 0 .75rem; }
.lws-hero-sub { font-size: 1.15rem; color: var(--lws-muted); margin: .75rem 0 1.5rem; }
.lws-hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0 0 1.25rem; }
.lws-hero-trust { font-size: .85rem; color: var(--lws-muted); margin: 0; }
.lws-hero-media img { border-radius: var(--lws-radius-lg); box-shadow: var(--lws-shadow-lg); }

@media (max-width: 820px) {
	.lws-hero-grid { grid-template-columns: 1fr; gap: 2rem; }
}

/* ---------- Service grid ---------- */
.lws-service-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.25rem; }
.lws-service-tile {
	display: block; padding: 1.5rem 1.25rem; background: #fff; border: 1px solid var(--lws-line);
	border-radius: var(--lws-radius); color: var(--lws-brand); transition: all .15s ease;
	box-shadow: var(--lws-shadow);
}
.lws-service-tile:hover { border-color: var(--lws-accent); transform: translateY(-2px); text-decoration: none; box-shadow: var(--lws-shadow-lg); }
.lws-service-tile img { margin: 0 0 .85rem; }
.lws-service-tile h3 { margin: 0 0 .5rem; font-size: 1.1rem; }
.lws-service-tile p { color: var(--lws-muted); font-size: .92rem; margin: 0 0 .75rem; }
.lws-service-tile .lws-arrow { color: var(--lws-accent); font-weight: 600; font-size: .9rem; }

/* ---------- Cities grid ---------- */
.lws-city-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.25rem; }
.lws-city-tile {
	display: block; padding: 1.5rem 1.25rem; background: var(--lws-bg-soft); border: 1px solid var(--lws-line);
	border-radius: var(--lws-radius); color: var(--lws-brand); transition: all .15s ease;
}
.lws-city-tile:hover { border-color: var(--lws-accent); background: #fff; box-shadow: var(--lws-shadow-lg); text-decoration: none; }
.lws-city-tile h3 { margin: 0 0 .25rem; }
.lws-city-region { color: var(--lws-muted); font-size: .85rem; margin: 0 0 .5rem; }
.lws-city-sectors { color: var(--lws-muted); font-size: .85rem; margin: 0 0 1rem; }

/* ---------- Why us ---------- */
.lws-why { background: var(--lws-bg-soft); }
.lws-why-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.5rem; }
.lws-why-card {
	background: #fff; padding: 1.5rem; border-radius: var(--lws-radius);
	border: 1px solid var(--lws-line); box-shadow: var(--lws-shadow);
}
.lws-why-card img { margin: 0 0 .75rem; }
.lws-why-card h3 { margin: 0 0 .35rem; }
.lws-why-card p  { color: var(--lws-muted); margin: 0; font-size: .94rem; }

/* ---------- Process strip ---------- */
.lws-process-grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.5rem; counter-reset: step; }
.lws-process-step { position: relative; padding: 1.5rem 1.25rem 1.5rem 1.25rem; background: #fff; border: 1px solid var(--lws-line); border-radius: var(--lws-radius); }
.lws-process-num {
	position: absolute; top: -14px; left: 1.25rem; background: var(--lws-accent); color: #fff;
	width: 28px; height: 28px; border-radius: 999px; display: flex; align-items: center;
	justify-content: center; font-weight: 700; font-size: .9rem;
}
.lws-process-step img { margin: .25rem 0 .85rem; }
.lws-process-step h3 { margin: 0 0 .35rem; }
.lws-process-step p  { color: var(--lws-muted); margin: 0; font-size: .94rem; }

/* ---------- Pricing table ---------- */
.lws-pricing-table-wrap { overflow-x: auto; }
.lws-pricing-table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--lws-line); border-radius: var(--lws-radius); overflow: hidden; }
.lws-pricing-table th, .lws-pricing-table td { padding: .9rem 1.1rem; text-align: left; border-bottom: 1px solid var(--lws-line); }
.lws-pricing-table thead th { background: var(--lws-bg-band); font-size: .85rem; text-transform: uppercase; letter-spacing: .04em; color: var(--lws-muted); }
.lws-pricing-table tbody th { font-weight: 500; }
.lws-pricing-table tbody tr:last-child th, .lws-pricing-table tbody tr:last-child td { border-bottom: none; }
.lws-pricing-table td { font-weight: 700; color: var(--lws-accent); }
.lws-pricing-note { color: var(--lws-muted); font-size: .9rem; margin-top: 1rem; text-align: center; }

/* ---------- Issues list ---------- */
.lws-issues-grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: .5rem 1.5rem; }
.lws-issues-grid li { display: flex; gap: .5rem; align-items: flex-start; padding: .5rem 0; border-bottom: 1px solid var(--lws-line); }
.lws-issues-grid svg { color: var(--lws-success); flex-shrink: 0; margin-top: .15rem; }

/* ---------- FAQ ---------- */
.lws-faq { background: var(--lws-bg-soft); }
.lws-faq-list { max-width: 820px; margin: 0 auto; }
.lws-faq-item { background: #fff; border: 1px solid var(--lws-line); border-radius: var(--lws-radius); margin-bottom: .75rem; padding: 0 1.25rem; }
/* Summary tap target: padding 1rem top/bottom + line-height 1.5 ≈ 48 px tall. */
.lws-faq-item summary { cursor: pointer; font-weight: 600; padding: 1rem 0; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; color: var(--lws-brand); min-height: 48px; }
.lws-faq-item summary::after { content: "+"; color: var(--lws-accent); font-size: 1.5rem; line-height: 1; flex-shrink: 0; }
.lws-faq-item[open] summary::after { content: "−"; }
.lws-faq-item summary::-webkit-details-marker { display: none; }
.lws-faq-answer { padding: 0 0 1rem; color: var(--lws-muted); }
.lws-faq-answer p { margin: 0; }

/* ---------- Page intros & generic ---------- */
.lws-page-intro { padding: 3rem 0 1rem; }
.lws-lede { font-size: 1.1rem; color: var(--lws-muted); max-width: 720px; }
.lws-prose h2 { margin-top: 2rem; }
.lws-prose p { color: var(--lws-text); max-width: 760px; }

/* ---------- Service hero (pillar/city pages) ---------- */
.lws-service-hero { padding: 2.5rem 0; }
.lws-service-hero-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 3rem; align-items: center; }
.lws-service-hero-media img { border-radius: var(--lws-radius-lg); box-shadow: var(--lws-shadow-lg); }
@media (max-width: 820px) { .lws-service-hero-grid { grid-template-columns: 1fr; } }

/* ---------- Narrative + city context ---------- */
.lws-narrative { background: var(--lws-bg-soft); }
.lws-narrative .lws-container { max-width: 820px; }
.lws-narrative p { font-size: 1.08rem; color: var(--lws-text); }

.lws-city-context-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 2.5rem; }
.lws-city-fact { background: var(--lws-bg-soft); padding: 1.5rem; border-radius: var(--lws-radius); border: 1px solid var(--lws-line); }
.lws-city-fact h3 { margin-top: 0; }
.lws-city-fact p { margin: .25rem 0; color: var(--lws-text); font-size: .95rem; }
@media (max-width: 820px) { .lws-city-context-grid { grid-template-columns: 1fr; } }

/* ---------- Booking wizard ---------- */
.lws-wizard { background: var(--lws-brand); color: #fff; padding: 4rem 0; }
.lws-wizard-card { max-width: 1120px; margin: 0 auto; background: #fff; color: var(--lws-text); border-radius: var(--lws-radius-lg); padding: 2rem; box-shadow: var(--lws-shadow-lg); }
.lws-wizard-main { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 2rem; align-items: start; }
.lws-wizard-head { margin-bottom: 1.5rem; }
.lws-wizard-head h2 { margin: 0 0 .5rem; }
.lws-wizard-sub { color: var(--lws-muted); margin: 0; }
.lws-kicker { margin: 0 0 .45rem; color: #0e7490; font-size: .78rem; font-weight: 800; letter-spacing: 0; text-transform: uppercase; }
.lws-honeypot { position: absolute; left: -9999px; opacity: 0; }

.lws-steps { list-style: none; padding: 0; margin: 0 0 1.75rem; display: flex; gap: .5rem; counter-reset: step; }
.lws-steps li { flex: 1; text-align: center; font-size: .82rem; color: var(--lws-muted); padding: .5rem 0; border-bottom: 3px solid var(--lws-line); position: relative; }
.lws-steps li.is-active { color: var(--lws-accent); border-bottom-color: var(--lws-accent); font-weight: 600; }
.lws-steps li::before { counter-increment: step; content: counter(step) ". "; }

.lws-step { display: none; border: none; padding: 0; margin: 0; }
.lws-step.is-active { display: block; }
.lws-step > legend { font-size: 1.15rem; font-weight: 600; color: var(--lws-brand); margin-bottom: 1rem; }

.lws-tile-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: .65rem; margin-bottom: 1.25rem; }
.lws-service-picker { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lws-city-picker { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lws-tile { position: relative; cursor: pointer; }
.lws-tile input { position: absolute; opacity: 0; }
.lws-tile span {
	display: block; padding: .85rem 1rem; border: 2px solid var(--lws-line); border-radius: var(--lws-radius);
	text-align: center; font-weight: 500; transition: all .15s ease; background: #fff;
}
.lws-tile strong { display: block; font-weight: 800; color: var(--lws-brand); }
.lws-tile small { display: block; margin-top: .25rem; color: var(--lws-muted); font-size: .78rem; line-height: 1.25; }
.lws-service-choice span { display: grid; grid-template-columns: 34px minmax(0, 1fr); column-gap: .7rem; text-align: left; align-items: center; min-height: 78px; }
.lws-service-choice img { grid-row: span 2; width: 34px; height: 34px; object-fit: contain; padding: .28rem; border-radius: 8px; background: #fff7ed; border: 1px solid #fed7aa; }
.lws-tile input:checked + span { border-color: var(--lws-accent); background: var(--lws-accent-soft); color: var(--lws-brand); }
.lws-tile:hover span { border-color: var(--lws-accent); }

.lws-field { display: block; margin-bottom: 1rem; }
.lws-field > span { display: block; font-weight: 500; font-size: .92rem; margin-bottom: .35rem; }
.lws-field input, .lws-field textarea, .lws-field select {
	width: 100%; padding: .75rem 1rem; border: 1px solid var(--lws-line); border-radius: var(--lws-radius);
	font: inherit; color: inherit; background: var(--lws-bg-soft);
}
.lws-field input:focus, .lws-field textarea:focus, .lws-field select:focus { outline: 2px solid var(--lws-accent); outline-offset: 1px; background: #fff; }
.lws-field textarea { resize: vertical; }
.lws-form-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }

.lws-chip-grid { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.lws-chip { position: relative; cursor: pointer; }
.lws-chip input { position: absolute; opacity: 0; }
.lws-chip span { display: inline-flex; align-items: center; gap: .35rem; min-height: 42px; padding: .55rem .75rem; border: 1px solid var(--lws-line); border-radius: 999px; background: #fff; color: var(--lws-text); font-weight: 700; line-height: 1.2; transition: all .15s ease; }
.lws-chip small { color: var(--lws-muted); font-weight: 600; font-size: .76rem; }
.lws-chip input:checked + span { border-color: #16a34a; background: #f0fdf4; color: #14532d; box-shadow: 0 0 0 2px rgba(34,197,94,.12); }
.lws-chip:hover span { border-color: #16a34a; }

.lws-radio-row { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 1.25rem; }
.lws-radio { display: inline-flex; align-items: center; gap: .45rem; font-size: .92rem; cursor: pointer; min-height: 42px; padding: .5rem .7rem; border: 1px solid var(--lws-line); border-radius: 999px; background: #fff; }
.lws-radio:has(input:checked) { border-color: #16a34a; background: #f0fdf4; color: #14532d; }

.lws-form-privacy { font-size: .82rem; color: var(--lws-muted); }
.lws-step-actions { display: flex; justify-content: space-between; gap: .75rem; margin-top: 1.25rem; }
.lws-step-actions > :only-child { margin-left: auto; }
.lws-whatsapp-route-note { display: grid; gap: .2rem; margin: .35rem 0 1rem; padding: .9rem 1rem; border: 1px solid #bbf7d0; border-radius: var(--lws-radius); background: #f0fdf4; color: #14532d; }
.lws-whatsapp-route-note strong { font-size: .95rem; }
.lws-whatsapp-route-note span { font-size: .88rem; color: #166534; }

.lws-wizard-success, .lws-wizard-error {
	text-align: center; padding: 1.5rem; border-radius: var(--lws-radius);
	background: #DCFCE7; border: 1px solid #BBF7D0; color: var(--lws-brand);
}
.lws-wizard-error { background: #FEE2E2; border-color: #FECACA; }
.lws-wizard-success-actions { display: flex; gap: .5rem; justify-content: center; margin-top: 1rem; }
.lws-wizard-result { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; max-width: 480px; margin: 1rem auto 0; }
.lws-wizard-result div { padding: .75rem; border-radius: var(--lws-radius); background: rgba(255,255,255,.72); border: 1px solid #bbf7d0; }
.lws-wizard-result dt { font-size: .76rem; color: var(--lws-muted); font-weight: 700; text-transform: uppercase; }
.lws-wizard-result dd { margin: .15rem 0 0; font-weight: 800; color: var(--lws-brand); overflow-wrap: anywhere; }
.lws-wizard-summary { position: sticky; top: 112px; padding: 1.1rem; border-radius: var(--lws-radius); background: linear-gradient(180deg, #f8fafc 0%, #ecfeff 100%); border: 1px solid var(--lws-line); box-shadow: 0 10px 24px rgba(15,23,42,.06); }
.lws-wizard-summary h3 { margin: 0 0 1rem; font-size: 1.35rem; color: var(--lws-brand); }
.lws-wizard-summary ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .65rem; }
.lws-wizard-summary li { display: flex; justify-content: space-between; gap: 1rem; padding-bottom: .65rem; border-bottom: 1px solid rgba(148,163,184,.35); }
.lws-wizard-summary li span { color: var(--lws-muted); font-size: .85rem; }
.lws-wizard-summary li strong { text-align: right; color: var(--lws-brand); max-width: 58%; overflow-wrap: anywhere; }
.lws-summary-proof { margin-top: 1rem; padding: .9rem; border-radius: var(--lws-radius); background: #fff; border: 1px solid rgba(8,145,178,.22); }
.lws-summary-proof strong { color: #0e7490; }
.lws-summary-proof p { margin: .35rem 0 0; color: var(--lws-muted); font-size: .9rem; }

/* ---------- Sticky CTA (mobile) ---------- */
.lws-sticky-cta {
	position: fixed; bottom: 0; left: 0; right: 0; z-index: 200;
	display: none; background: #fff; border-top: 1px solid var(--lws-line);
	box-shadow: 0 -4px 16px rgba(15, 23, 42, .08);
}
.lws-sticky-cta a { flex: 1; padding: .85rem; text-align: center; font-weight: 600; display: flex; align-items: center; justify-content: center; gap: .35rem; }
.lws-sticky-call { background: var(--lws-accent); color: #fff; }
.lws-sticky-wa { background: var(--lws-whatsapp); color: #fff; }
.lws-sticky-cta a:hover { text-decoration: none; opacity: .92; }
@media (max-width: 900px) { .lws-sticky-cta { display: flex; } body { padding-bottom: calc(60px + env(safe-area-inset-bottom)); } }

/* ============================================================
   Mega Footer — 6 bands (CTA / Trust / Main / Popular / Cities / Bottom)
   ============================================================ */

/* Band 1 — CTA strip */
.lws-footer-cta { background: var(--lws-accent); color: #fff; padding: 2rem 0; }
.lws-footer-cta-row { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.lws-footer-cta-copy h2 { color: #fff; margin: 0 0 .25rem; font-size: 1.7rem; }
.lws-footer-cta-copy p { margin: 0; color: rgba(255,255,255,.92); font-size: .98rem; }
.lws-footer-cta-actions { display: flex; gap: .65rem; flex-wrap: wrap; }
.lws-btn-ghost-on-dark { background: transparent; border-color: rgba(255,255,255,.4); color: #fff; }
.lws-btn-ghost-on-dark:hover { background: rgba(255,255,255,.15); color: #fff; text-decoration: none; }
.lws-btn-wa { background: var(--lws-whatsapp); color: #fff; }
.lws-btn-wa:hover { background: #1DAA52; color: #fff; text-decoration: none; }
.lws-footer-cta .lws-btn-primary { background: #fff; color: var(--lws-accent); }
.lws-footer-cta .lws-btn-primary:hover { background: var(--lws-bg-soft); color: var(--lws-accent); }
@media (max-width: 760px) {
	.lws-footer-cta-row { flex-direction: column; align-items: flex-start; }
	.lws-footer-cta-actions { width: 100%; }
	.lws-footer-cta-actions .lws-btn { flex: 1; justify-content: center; }
}

/* Band 2 — Trust badges */
.lws-footer-trust { background: var(--lws-bg-band); padding: 1.5rem 0; border-bottom: 1px solid var(--lws-line); }
.lws-footer-trust-row {
	list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: repeat(6, 1fr); gap: 1.25rem;
}
.lws-footer-trust-row li { display: flex; align-items: center; gap: .65rem; font-size: .82rem; color: var(--lws-muted); line-height: 1.35; }
.lws-footer-trust-row li strong { color: var(--lws-brand); display: block; font-size: .92rem; }
.lws-footer-trust-row li img { flex-shrink: 0; }
@media (max-width: 980px) { .lws-footer-trust-row { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .lws-footer-trust-row { grid-template-columns: repeat(2, 1fr); } }

/* Main footer wrapper */
.lws-footer { background: var(--lws-brand); color: #CBD5E1; padding: 3rem 0 0; }
.lws-footer a { color: #CBD5E1; }
.lws-footer a:hover { color: #fff; }

/* Band 3 — Main columns */
.lws-footer-main {
	display: grid;
	grid-template-columns: 1.6fr 1fr 1.1fr 1.1fr 1fr;
	gap: 2.5rem; padding-bottom: 2.5rem;
}
.lws-footer-col h3,
.lws-footer-col .lws-footer-h { color: #fff; font-size: .95rem; margin: 0 0 1rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.lws-footer-col ul { list-style: none; padding: 0; margin: 0; }
.lws-footer-col li { padding: .2rem 0; font-size: .92rem; line-height: 1.4; }
.lws-footer-col .lws-footer-li-head { font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: #94A3B8; margin-top: .85rem; padding: .25rem 0; font-weight: 600; }
.lws-footer-col .lws-footer-li-head:first-child { margin-top: 0; }
.lws-footer-col .lws-footer-li-hl a { color: var(--lws-accent); font-weight: 600; }

.lws-footer-brand .lws-footer-logo-link { display: inline-block; margin: 0 0 1rem; line-height: 0; }
.lws-footer-brand .lws-footer-logo-link:hover { text-decoration: none; }
.lws-footer-brand .lws-footer-logo { background: #fff; padding: .4rem .8rem; border-radius: var(--lws-radius); display: inline-block; }
.lws-footer-tagline { color: #CBD5E1; font-size: .92rem; line-height: 1.6; margin: 0 0 1rem; }
.lws-footer-brand .lws-nap { font-style: normal; font-size: .9rem; line-height: 1.65; color: #CBD5E1; margin: 0 0 1rem; }
.lws-footer-brand .lws-nap strong { color: #fff; }
.lws-footer-contact { list-style: none; padding: 0; margin: 0 0 1.25rem; }
.lws-footer-contact li { padding: .25rem 0; font-size: .9rem; }
.lws-footer-contact a { display: inline-flex; align-items: center; gap: .4rem; }
.lws-footer-contact svg { color: var(--lws-accent); flex-shrink: 0; }
.lws-footer-contact .lws-footer-hours { color: #CBD5E1; display: inline-flex; align-items: center; gap: .4rem; }
.lws-footer-social { display: flex; flex-wrap: wrap; gap: .5rem; }
.lws-footer-social a { display: inline-block; padding: .3rem .85rem; border: 1px solid #475569; border-radius: 999px; font-size: .82rem; }
.lws-footer-social a:hover { border-color: var(--lws-accent); color: var(--lws-accent); text-decoration: none; }

/* Mobile accordion buttons hidden on desktop */
.lws-footer-acc .lws-footer-h { background: transparent; border: none; padding: 0; text-align: left; cursor: default; width: 100%; display: block; font: inherit; }
.lws-footer-acc .lws-footer-h span { display: none; }

@media (max-width: 980px) {
	.lws-footer-main { grid-template-columns: 1fr 1fr; gap: 1.75rem; }
	.lws-footer-brand { grid-column: 1 / -1; }
	.lws-footer-acc .lws-footer-h { cursor: pointer; display: flex; justify-content: space-between; align-items: center; padding: .85rem 0; border-bottom: 1px solid rgba(255,255,255,.1); margin: 0; }
	.lws-footer-acc .lws-footer-h span { display: inline; color: var(--lws-accent); transition: transform .15s ease; }
	.lws-footer-acc.is-open .lws-footer-h span { transform: rotate(180deg); }
	.lws-footer-acc ul { display: none; padding: .5rem 0 .75rem; }
	.lws-footer-acc.is-open ul { display: block; }
}
@media (max-width: 560px) {
	.lws-footer-main { grid-template-columns: 1fr; }
	.lws-footer-brand { grid-column: 1; }
}

/* Band 4 — Popular searches */
.lws-footer-popular { padding: 2rem 0; border-top: 1px solid rgba(255,255,255,.08); border-bottom: 1px solid rgba(255,255,255,.08); }
.lws-footer-popular h3 { color: #fff; font-size: .95rem; margin: 0 0 1rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.lws-footer-popular-grid {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: .35rem .85rem;
	list-style: none; padding: 0; margin: 0;
}
.lws-footer-popular-grid li { margin: 0; }
.lws-footer-popular-grid a {
	display: block; padding: .3rem 0; font-size: .9rem;
	color: #CBD5E1; transition: color .15s ease;
}
.lws-footer-popular-grid a:hover { color: var(--lws-accent); text-decoration: none; }
@media (max-width: 980px) { .lws-footer-popular-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .lws-footer-popular-grid { grid-template-columns: 1fr; } }

/* Band 5 — City + Area taxonomy */
.lws-footer-cities { padding: 2rem 0; }
.lws-footer-cities h3 { color: #fff; font-size: .95rem; margin: 0 0 1.5rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.lws-footer-city-grid {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem;
}
.lws-footer-city-block h4 { color: #fff; font-size: 1.05rem; margin: 0 0 .35rem; display: flex; align-items: baseline; gap: .5rem; flex-wrap: wrap; }
.lws-footer-city-block h4 a { color: #fff; }
.lws-footer-city-block h4 a:hover { color: var(--lws-accent); text-decoration: none; }
.lws-footer-city-region { color: #94A3B8; font-size: .78rem; font-weight: 400; text-transform: uppercase; letter-spacing: .04em; }
.lws-footer-area-list { list-style: none; padding: 0; margin: .65rem 0 0; column-count: 1; }
.lws-footer-area-list li { padding: .15rem 0; font-size: .87rem; }
.lws-footer-nearby { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px dashed rgba(255,255,255,.15); }
.lws-footer-nearby h4 { color: #fff; font-size: .9rem; margin: 0 0 .75rem; font-weight: 500; }
.lws-footer-nearby .lws-chip { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.15); color: #fff; }
.lws-footer-nearby .lws-chip:hover { background: var(--lws-accent); color: #fff; border-color: var(--lws-accent); }
@media (max-width: 980px) { .lws-footer-city-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .lws-footer-city-grid { grid-template-columns: 1fr; } }

/* Band 6 — Bottom bar */
.lws-footer-bottom { background: rgba(0,0,0,.25); padding: 1.25rem 0; font-size: .82rem; border-top: 1px solid rgba(255,255,255,.05); }
.lws-footer-bottom-row { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; align-items: center; justify-content: space-between; }
.lws-footer-copy { margin: 0; color: #94A3B8; }
.lws-footer-bottom-links { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .25rem 1rem; }
.lws-footer-bottom-links a { color: #CBD5E1; }
.lws-footer-bottom-links a:hover { color: #fff; }
.lws-footer-meta { display: flex; flex-wrap: wrap; gap: .15rem 1rem; color: #94A3B8; font-size: .78rem; }
.lws-footer-meta strong { color: #CBD5E1; font-weight: 600; }
@media (max-width: 760px) {
	.lws-footer-bottom-row { flex-direction: column; align-items: flex-start; text-align: left; }
}

/* ---------- Stats / contact ---------- */
.lws-stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1.5rem; text-align: center; }
.lws-stat { background: #fff; padding: 1.5rem; border: 1px solid var(--lws-line); border-radius: var(--lws-radius); box-shadow: var(--lws-shadow); }
.lws-stat strong { display: block; font-size: 2rem; color: var(--lws-accent); }
.lws-stat span  { color: var(--lws-muted); font-size: .92rem; }

.lws-contact-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.25rem; }
.lws-contact-card { display: block; background: #fff; border: 1px solid var(--lws-line); border-radius: var(--lws-radius); padding: 1.75rem 1.5rem; text-align: center; color: var(--lws-brand); box-shadow: var(--lws-shadow); }
.lws-contact-card:hover { border-color: var(--lws-accent); text-decoration: none; box-shadow: var(--lws-shadow-lg); }
.lws-contact-big { font-size: 1.4rem; font-weight: 700; color: var(--lws-accent); margin: .5rem 0; }
.lws-contact-address-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; }
@media (max-width: 820px) { .lws-contact-address-grid { grid-template-columns: 1fr; } }
.lws-hours { list-style: none; padding: 0; margin: 0; }
.lws-hours li { padding: .35rem 0; border-bottom: 1px solid var(--lws-line); }
.lws-coverage-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .65rem; }
.lws-coverage-list li { background: var(--lws-bg-soft); padding: .85rem 1rem; border-radius: var(--lws-radius); border: 1px solid var(--lws-line); display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; }
.lws-coverage-list strong { color: var(--lws-brand); }
.lws-coverage-list span { color: var(--lws-muted); font-size: .85rem; }
.lws-coverage-list a { margin-left: auto; }

/* ---------- About ---------- */
.lws-about-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; }
@media (max-width: 820px) { .lws-about-cols { grid-template-columns: 1fr; } }

/* ---------- Locations ---------- */
.lws-location-card { background: var(--lws-bg-soft); border: 1px solid var(--lws-line); border-radius: var(--lws-radius-lg); padding: 2rem; margin-bottom: 2rem; }
.lws-location-card h2 { margin: 0 0 .25rem; }
.lws-location-region { color: var(--lws-muted); margin: 0 0 1rem; }
.lws-location-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; margin: 1rem 0 1.5rem; }
.lws-location-facts dt { font-size: .82rem; color: var(--lws-muted); text-transform: uppercase; letter-spacing: .04em; margin: 0 0 .25rem; }
.lws-location-facts dd { margin: 0; color: var(--lws-text); font-weight: 500; }

.lws-chip-grid { display: flex; flex-wrap: wrap; gap: .5rem; }
.lws-chip { display: inline-block; padding: .35rem .85rem; background: #fff; border: 1px solid var(--lws-line); border-radius: 999px; color: var(--lws-brand); font-size: .9rem; font-weight: 500; }
.lws-chip:hover { background: var(--lws-accent); color: #fff; border-color: var(--lws-accent); text-decoration: none; }

/* ---------- Nearby strip + locations expansion ---------- */
.lws-nearby-strip { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px dashed var(--lws-line); text-align: center; }
.lws-nearby-label { color: var(--lws-muted); font-size: .9rem; margin: 0 0 .75rem; }
.lws-nearby-strip .lws-chip-grid { justify-content: center; }
.lws-locations-header { margin: 2.5rem 0 1.25rem; font-size: 1.4rem; color: var(--lws-brand); border-bottom: 2px solid var(--lws-accent); display: inline-block; padding-bottom: .25rem; }
.lws-location-card h3 { margin: 0 0 .25rem; font-size: 1.5rem; }
.lws-location-card-sm { padding: 1.5rem; margin-bottom: 1.25rem; }
.lws-location-card-sm h3 { font-size: 1.15rem; }
.lws-location-card-sm p { font-size: .92rem; color: var(--lws-text); margin: 0 0 .85rem; }
.lws-location-areas { margin-top: 1rem; }
.lws-location-areas h4, .lws-location-services h4 { margin: 1rem 0 .5rem; font-size: 1rem; color: var(--lws-brand); }
.lws-tier2-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.25rem; }

/* ---------- 404 ---------- */
.lws-404 { text-align: center; padding: 5rem 0 3rem; }
.lws-404 .lws-hero-actions { justify-content: center; }

/* ==========================================================================
   R14 — Premium polish (UI/UX refinement pass)
   Layered on top of the baseline to add: premium typography rhythm, hero
   backdrop accent, refined card hover, sticky-header backdrop blur, mega
   menu visual hierarchy, mega-footer accent strip and hairline section
   accents, button gradients, and mobile typography clamps. Every rule below
   is additive — it overrides specific properties only, leaving layout intact.
   ========================================================================== */

/* --- Section rhythm: remove harsh hairlines between sections, use bg shift */
.lws-section + .lws-section { border-top: none; }
.lws-section.lws-section-band { background: var(--lws-bg-soft); }
.lws-section-head h2 { letter-spacing: -0.02em; }
.lws-section-head p { color: var(--lws-muted); font-size: 1.02rem; line-height: 1.6; max-width: 620px; margin-left: auto; margin-right: auto; }

/* --- Topbar — subtle gradient base, refined dividers */
.lws-topbar { background: linear-gradient(180deg, var(--lws-brand-deep) 0%, var(--lws-brand) 100%); border-bottom: 1px solid rgba(255,255,255,.04); }
.lws-topbar-item { position: relative; }
.lws-topbar-link strong { color: #fff; font-weight: 600; letter-spacing: -0.005em; }

/* --- Sticky header — refined shadow, backdrop blur for premium glass feel */
.lws-header {
	background: rgba(255, 255, 255, .94);
	-webkit-backdrop-filter: saturate(140%) blur(10px);
	backdrop-filter: saturate(140%) blur(10px);
	border-bottom: 1px solid var(--lws-line);
	box-shadow: 0 1px 0 rgba(15, 23, 42, .03), 0 8px 24px -16px rgba(15, 23, 42, .12);
}
.lws-header-row { gap: 1.25rem; padding: .7rem 20px; }
.lws-logo img { transition: opacity var(--lws-dur) var(--lws-ease); }
.lws-logo:hover img { opacity: .88; }

/* --- Primary nav — premium active state with hairline accent */
.lws-nav > ul > li > a {
	position: relative;
	transition: color var(--lws-dur) var(--lws-ease), background var(--lws-dur) var(--lws-ease);
}
.lws-nav > ul > li > a::after {
	content: '';
	position: absolute;
	left: 50%;
	bottom: 2px;
	width: 0;
	height: 2px;
	background: var(--lws-accent);
	border-radius: 2px;
	transform: translateX(-50%);
	transition: width var(--lws-dur) var(--lws-ease);
}
.lws-nav > ul > li > a:hover::after,
.lws-nav > ul > li.is-active > a::after,
.lws-nav > ul > li.is-open > a::after { width: 22px; }
.lws-nav > ul > li.is-active > a,
.lws-nav > ul > li:hover > a { background: transparent; }

/* --- Mega panel — refined corners, deeper shadow, smoother entrance */
.lws-mega {
	border-top: 1px solid var(--lws-line);
	box-shadow: 0 24px 60px -12px rgba(15, 23, 42, .18), 0 1px 0 rgba(15, 23, 42, .04);
}
.lws-mega-inner { padding: 2rem 20px 1.75rem; }
.lws-mega-card {
	background: var(--lws-bg-soft);
	border: 1px solid var(--lws-line);
	border-radius: var(--lws-radius-md);
	padding: 1.1rem 1.2rem;
	transition: border-color var(--lws-dur) var(--lws-ease), background var(--lws-dur) var(--lws-ease);
}
.lws-mega-card:hover { border-color: var(--lws-line); background: #fff; }
.lws-mega-card-head { padding-bottom: .85rem; }
.lws-mega-card-head strong { letter-spacing: -0.01em; font-size: 1.02rem; }
.lws-mega-card-list a {
	transition: background var(--lws-dur) var(--lws-ease), color var(--lws-dur) var(--lws-ease), padding-left var(--lws-dur) var(--lws-ease);
}
.lws-mega-card-list a:hover { background: var(--lws-accent-tint); padding-left: .75rem; }
.lws-mega-footer { border-radius: 0 0 0 0; background: linear-gradient(180deg, var(--lws-bg-band) 0%, var(--lws-bg-soft) 100%); }

/* --- Buttons — refined gradient on primary, subtle press feedback */
.lws-btn {
	transition: background var(--lws-dur) var(--lws-ease), color var(--lws-dur) var(--lws-ease), transform var(--lws-dur) var(--lws-ease), box-shadow var(--lws-dur) var(--lws-ease);
	letter-spacing: -0.008em;
}
.lws-btn-primary {
	background: linear-gradient(180deg, var(--lws-accent) 0%, var(--lws-accent-hover) 100%);
	box-shadow: 0 1px 0 rgba(255, 255, 255, .25) inset, 0 4px 12px -4px rgba(249, 115, 22, .45);
}
.lws-btn-primary:hover {
	background: linear-gradient(180deg, var(--lws-accent-hover) 0%, var(--lws-accent-deep) 100%);
	box-shadow: 0 1px 0 rgba(255, 255, 255, .25) inset, 0 6px 16px -4px rgba(249, 115, 22, .55);
	transform: translateY(-1px);
}
.lws-btn-primary:active { transform: translateY(0); box-shadow: 0 1px 0 rgba(255, 255, 255, .2) inset, 0 2px 6px -2px rgba(249, 115, 22, .4); }
.lws-btn-ghost { background: #fff; border-color: var(--lws-line); }
.lws-btn-ghost:hover { background: var(--lws-bg-soft); border-color: #CBD5E1; transform: translateY(-1px); }

/* --- Hero — premium backdrop with subtle accent geometry */
.lws-hero {
	background: linear-gradient(180deg, var(--lws-bg-soft) 0%, var(--lws-bg) 100%);
	position: relative;
	overflow: hidden;
}
.lws-hero::before {
	content: '';
	position: absolute;
	top: -120px;
	right: -120px;
	width: 380px;
	height: 380px;
	background: radial-gradient(closest-side, rgba(249, 115, 22, .08), transparent);
	pointer-events: none;
	z-index: 0;
}
.lws-hero::after {
	content: '';
	position: absolute;
	bottom: -160px;
	left: -100px;
	width: 320px;
	height: 320px;
	background: radial-gradient(closest-side, rgba(15, 23, 42, .04), transparent);
	pointer-events: none;
	z-index: 0;
}
.lws-hero-grid { position: relative; z-index: 1; }
.lws-hero-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .3rem .85rem .35rem;
	background: var(--lws-accent-tint);
	color: var(--lws-accent-deep);
	border: 1px solid rgba(249, 115, 22, .18);
	border-radius: var(--lws-radius-pill);
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	margin: 0 0 1.1rem;
}
.lws-hero h1 { font-size: clamp(2.25rem, 5.5vw, 3.6rem); letter-spacing: -0.028em; line-height: 1.05; margin-bottom: .9rem; color: var(--lws-brand-deep); font-weight: 800; }
.lws-service-hero h1,
.lws-page-intro h1,
.lws-reviews-hero h1 { font-size: clamp(2rem, 4.8vw, 2.85rem); letter-spacing: -0.025em; line-height: 1.08; font-weight: 700; }
.lws-hero-sub { color: var(--lws-text-soft); font-size: 1.12rem; line-height: 1.6; max-width: 540px; }
.lws-hero-trust { color: var(--lws-muted); font-size: .9rem; display: flex; flex-wrap: wrap; gap: .35rem .85rem; align-items: center; }
.lws-hero-media img { border-radius: var(--lws-radius-lg); box-shadow: 0 30px 70px -20px rgba(15, 23, 42, .25), 0 0 0 1px rgba(15, 23, 42, .04); }

/* --- Service tiles — refined card with subtle accent on hover */
.lws-service-tile {
	border-radius: var(--lws-radius-md);
	border: 1px solid var(--lws-line);
	box-shadow: var(--lws-shadow-xs);
	transition: border-color var(--lws-dur) var(--lws-ease), box-shadow var(--lws-dur) var(--lws-ease), transform var(--lws-dur) var(--lws-ease);
	position: relative;
	overflow: hidden;
}
.lws-service-tile::before {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: linear-gradient(135deg, rgba(249, 115, 22, .03), transparent 60%);
	opacity: 0;
	transition: opacity var(--lws-dur) var(--lws-ease);
	pointer-events: none;
}
.lws-service-tile:hover { border-color: rgba(249, 115, 22, .35); box-shadow: var(--lws-shadow); transform: translateY(-2px); }
.lws-service-tile:hover::before { opacity: 1; }
.lws-service-tile h3 { letter-spacing: -0.012em; }
.lws-service-tile .lws-arrow { transition: gap var(--lws-dur) var(--lws-ease); display: inline-block; }
.lws-service-tile:hover .lws-arrow { color: var(--lws-accent-hover); }

/* --- City tiles — same premium treatment */
.lws-city-tile {
	border-radius: var(--lws-radius-md);
	transition: border-color var(--lws-dur) var(--lws-ease), background var(--lws-dur) var(--lws-ease), box-shadow var(--lws-dur) var(--lws-ease), transform var(--lws-dur) var(--lws-ease);
}
.lws-city-tile:hover { transform: translateY(-2px); box-shadow: var(--lws-shadow); }
.lws-city-tile h3 { letter-spacing: -0.012em; }

/* --- Pricing table — premium row hover, accent bar on the price */
.lws-pricing-table { border-radius: var(--lws-radius-md); box-shadow: var(--lws-shadow-xs); }
.lws-pricing-table thead th { background: linear-gradient(180deg, var(--lws-bg-band), var(--lws-bg-soft)); font-weight: 600; letter-spacing: .04em; }
.lws-pricing-table tbody tr { transition: background var(--lws-dur) var(--lws-ease); }
.lws-pricing-table tbody tr:hover { background: var(--lws-accent-tint); }
.lws-pricing-table td { font-size: 1.02rem; letter-spacing: -0.008em; }

/* --- Issues list — refined check icon */
.lws-issues-grid li { padding: .65rem 0; }
.lws-issues-grid svg { color: var(--lws-success); }

/* --- FAQ — premium accordion polish */
.lws-faq-item { transition: border-color var(--lws-dur) var(--lws-ease), box-shadow var(--lws-dur) var(--lws-ease); }
.lws-faq-item[open] { border-color: rgba(249, 115, 22, .25); box-shadow: var(--lws-shadow-sm); }
.lws-faq-item summary { font-weight: 600; letter-spacing: -0.008em; }
.lws-faq-item summary::-webkit-details-marker { display: none; }
.lws-faq-item summary { list-style: none; }
.lws-faq-list { gap: .65rem; display: flex; flex-direction: column; }
.lws-faq-list .lws-faq-item { margin-bottom: 0; }

/* --- Why-us cards — refined */
.lws-why-card { border-radius: var(--lws-radius-md); transition: border-color var(--lws-dur) var(--lws-ease), box-shadow var(--lws-dur) var(--lws-ease), transform var(--lws-dur) var(--lws-ease); }
.lws-why-card:hover { border-color: rgba(249, 115, 22, .25); box-shadow: var(--lws-shadow); transform: translateY(-2px); }
.lws-why-card h3 { letter-spacing: -0.012em; }

/* --- Process strip — premium step indicator */
.lws-process-step { border-radius: var(--lws-radius-md); transition: border-color var(--lws-dur) var(--lws-ease), box-shadow var(--lws-dur) var(--lws-ease); }
.lws-process-step:hover { border-color: rgba(249, 115, 22, .25); box-shadow: var(--lws-shadow-sm); }
.lws-process-num { box-shadow: 0 4px 10px -2px rgba(249, 115, 22, .45); }

/* --- Chips — premium pill polish */
.lws-chip { transition: background var(--lws-dur) var(--lws-ease), color var(--lws-dur) var(--lws-ease), border-color var(--lws-dur) var(--lws-ease), transform var(--lws-dur) var(--lws-ease); }
.lws-chip:hover { transform: translateY(-1px); }

/* --- Mega footer — accent gradient strip at the top + premium h3 underline */
.lws-footer { position: relative; }
.lws-footer::before {
	content: '';
	display: block;
	height: 3px;
	background: linear-gradient(90deg, var(--lws-accent) 0%, var(--lws-amber) 40%, var(--lws-accent) 100%);
	opacity: .9;
}
.lws-footer-col h3,
.lws-footer-col .lws-footer-h {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	position: relative;
}
.lws-footer-col h3::before,
.lws-footer-col .lws-footer-h::before {
	content: '';
	display: inline-block;
	width: 14px;
	height: 2px;
	background: var(--lws-accent);
	border-radius: 2px;
}
.lws-footer-tagline { font-size: .94rem; line-height: 1.65; }
.lws-footer-contact a { transition: color var(--lws-dur) var(--lws-ease); }
.lws-footer-social a { transition: all var(--lws-dur) var(--lws-ease); }
.lws-footer-popular,
.lws-footer-cities { padding: 2.25rem 0; }
.lws-footer-popular h3,
.lws-footer-cities h3 { font-size: .85rem; }
.lws-footer-bottom { background: rgba(0,0,0,.28); border-top: 1px solid rgba(255,255,255,.06); }
.lws-footer-bottom-row { gap: .65rem 1.5rem; }
.lws-footer-meta-item { font-size: .76rem; }

/* --- Breadcrumbs — premium spacing */
.lws-breadcrumbs { background: var(--lws-bg-soft); border-bottom: 1px solid var(--lws-line); padding: .9rem 0; font-size: .88rem; }
.lws-breadcrumbs a { transition: color var(--lws-dur) var(--lws-ease); }
.lws-breadcrumbs a:hover { color: var(--lws-accent); text-decoration: none; }

/* --- Article wrap — premium section padding */
.lws-article > .lws-section:first-child { padding-top: 2.5rem; }

/* --- Mobile typography & spacing polish */
@media (max-width: 640px) {
	.lws-section-head { margin-bottom: 1.5rem; }
	.lws-section-head h2 { font-size: clamp(1.45rem, 6.5vw, 1.85rem); }
	.lws-section-head p { font-size: .95rem; }
	.lws-hero-eyebrow { font-size: .72rem; padding: .25rem .7rem .3rem; margin-bottom: .85rem; }
	.lws-hero h1 { font-size: clamp(1.85rem, 8vw, 2.35rem); letter-spacing: -0.025em; }
	.lws-hero-sub { font-size: 1.02rem; }
	.lws-service-tile h3 { font-size: 1.05rem; }
	.lws-footer-bottom { font-size: .8rem; }
	.lws-footer-bottom-row { gap: .5rem; }
}

/* --- Sticky CTA — premium gradient buttons */
.lws-sticky-cta { box-shadow: 0 -4px 16px rgba(15, 23, 42, .08), 0 -1px 0 rgba(15, 23, 42, .04); }
.lws-sticky-call { background: linear-gradient(180deg, var(--lws-accent) 0%, var(--lws-accent-hover) 100%); }
.lws-sticky-wa { background: linear-gradient(180deg, #2BD672 0%, var(--lws-whatsapp) 100%); }

/* --- Topbar links — premium hover */
.lws-topbar-item.lws-topbar-link {
	padding: .15rem .55rem;
	border-radius: var(--lws-radius-pill);
	transition: background var(--lws-dur) var(--lws-ease);
}
.lws-topbar-item.lws-topbar-link:hover { background: rgba(255, 255, 255, .08); text-decoration: none; }

/* ==========================================================================
   R17/R18 — Icon softening + mascot integration
   The loudest icons (warranty, pay-later, speed-test, verify, shield,
   secure-payment) were replaced in v1.24 with brand-palette versions. The
   remaining cartoon icons get a slightly heavier desaturation now since they
   no longer have the muted ones to anchor them.
   ========================================================================== */

/* Global desaturation for remaining cartoon icons. */
img[src*="/icons/"] {
	filter: saturate(.78) brightness(1.02);
	transition: filter var(--lws-dur, .2s) ease;
}
/* The new muted icons don't need filtering — they're already in palette. */
img[src*="/icons/warranty"],
img[src*="/icons/pay-later"],
img[src*="/icons/speed-test"],
img[src*="/icons/verify"],
img[src*="/icons/shield"],
img[src*="/icons/secure-payment"] {
	filter: none;
}

/* Footer trust band — circular warm tint behind each badge icon. Lifts the
   icon out of the flat band into a designed "chip" that matches accent. */
.lws-footer-trust-row li img {
	width: 32px;
	height: 32px;
	padding: 6px;
	background: var(--lws-accent-tint, #FFF7ED);
	border: 1px solid rgba(249, 115, 22, .14);
	border-radius: 50%;
	box-sizing: content-box;
	filter: saturate(.78);
}

/* Why-us cards — soft tinted rounded square behind each icon. */
.lws-why-card img {
	width: 44px;
	height: 44px;
	padding: 9px;
	background: linear-gradient(135deg, var(--lws-accent-tint, #FFF7ED) 0%, #fff 100%);
	border: 1px solid rgba(249, 115, 22, .12);
	border-radius: 12px;
	box-sizing: content-box;
	margin-bottom: 1rem;
	filter: saturate(.82);
}

/* Process step icons — same tinted treatment, different radius for variety. */
.lws-process-step img {
	width: 40px;
	height: 40px;
	padding: 8px;
	background: linear-gradient(135deg, var(--lws-accent-tint, #FFF7ED) 0%, #fff 100%);
	border: 1px solid rgba(249, 115, 22, .12);
	border-radius: 10px;
	box-sizing: content-box;
	filter: saturate(.82);
}

/* Service-grid tile icons — frame the icon in a square chip for a designed feel. */
.lws-service-tile img {
	width: 44px;
	height: 44px;
	padding: 9px;
	background: var(--lws-bg-soft, #F8FAFC);
	border: 1px solid var(--lws-line, #E2E8F0);
	border-radius: 10px;
	box-sizing: content-box;
	filter: saturate(.82);
	transition: background var(--lws-dur, .2s) ease, border-color var(--lws-dur, .2s) ease, filter var(--lws-dur, .2s) ease;
}
.lws-service-tile:hover img {
	background: var(--lws-accent-tint, #FFF7ED);
	border-color: rgba(249, 115, 22, .35);
	filter: saturate(.95);
}

/* Mega-menu card header icons — small tinted square. */
.lws-mega-card-head img {
	width: 32px;
	height: 32px;
	padding: 5px;
	background: var(--lws-bg, #fff);
	border: 1px solid var(--lws-line, #E2E8F0);
	border-radius: 8px;
	box-sizing: content-box;
	filter: saturate(.82);
}

/* Footer contact list icons (svg) — keep current accent treatment, no filter. */
.lws-footer-contact svg { filter: none; }

/* ==========================================================================
   R18 — Mascot integration: cartoon character vignettes mounted as
   contextual accents on key pages (404 / doorstep / why-us / booking).
   The mascot images themselves are not subject to the /icons/ filter.
   ========================================================================== */

img[src*="/mascot/"] { filter: none; }

/* 404 page — mascot side-by-side with copy on desktop, stacked on mobile. */
.lws-404-grid {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 2.5rem;
	align-items: center;
}
.lws-404-media img {
	width: 100%;
	max-width: 280px;
	height: auto;
	border-radius: var(--lws-radius-lg, 14px);
	background: var(--lws-accent-tint, #FFF7ED);
	box-shadow: 0 12px 30px -10px rgba(15, 23, 42, .12);
}
@media (max-width: 720px) {
	.lws-404-grid { grid-template-columns: 1fr; gap: 1.5rem; text-align: center; }
	.lws-404-media { max-width: 220px; margin: 0 auto; }
	.lws-hero-actions { justify-content: center; }
}

/* Doorstep page reuses .lws-service-hero — the mascot replaces the photo.
   Reduce shadow on the cartoon vignette so it sits softer. */
.lws-service-hero-media img[src*="/mascot/"] {
	background: var(--lws-accent-tint, #FFF7ED);
	border-radius: var(--lws-radius-lg, 14px);
	box-shadow: 0 12px 30px -10px rgba(15, 23, 42, .12);
}

/* Why-us section — wrap container with mascot tucked into top-right, copy
   and grid below. Mascot becomes a quiet greeter, not the main subject. */
.lws-why-wrap { position: relative; }
.lws-why-mascot {
	position: absolute;
	top: -1rem;
	right: -1rem;
	width: 220px;
	max-width: 28vw;
	pointer-events: none;
	z-index: 1;
}
.lws-why-mascot img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 50%;
	background: var(--lws-accent-tint, #FFF7ED);
	box-shadow: 0 14px 32px -10px rgba(15, 23, 42, .14);
}
.lws-why-head { max-width: calc(100% - 260px); margin-left: 0; text-align: left; }
@media (max-width: 820px) {
	.lws-why-mascot { position: relative; top: auto; right: auto; width: 140px; margin: 0 auto 1rem; max-width: none; }
	.lws-why-head { max-width: 100%; text-align: center; margin-left: auto; margin-right: auto; }
}

/* Booking wizard skip card — mascot replaces the small SVG circle. Keeps the
   warm green WhatsApp button visible and aligned right. */
.lws-wizard-skip-mascot {
	flex-shrink: 0;
	width: 76px;
	height: 76px;
	border-radius: 50%;
	background: var(--lws-accent-tint, #FFF7ED);
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	box-shadow: 0 6px 14px -4px rgba(15, 23, 42, .15);
}
.lws-wizard-skip-mascot img {
	width: 88px;
	height: 88px;
	display: block;
	margin-top: 4px;
}
.lws-wizard-skip-btn { display: inline-flex; align-items: center; gap: .4rem; }
.lws-wizard-skip-btn svg { flex-shrink: 0; }
@media (max-width: 640px) {
	.lws-wizard-skip-mascot { width: 64px; height: 64px; margin: 0 auto; }
	.lws-wizard-skip-mascot img { width: 72px; height: 72px; }
}

/* ==========================================================================
   R15 — Booking conversion micro-features
   Adds: skip-the-form WhatsApp shortcut, summary checkmarks, trust strip,
   live activity ticker, exit-intent modal, completed-step indicator.
   ========================================================================== */

/* Skip-the-form shortcut card above the wizard — visible escape hatch for
   visitors who'd rather chat than fill a form. Reduces form abandonment. */
.lws-wizard-skip {
	display: flex;
	align-items: center;
	gap: 1rem;
	max-width: 1120px;
	margin: 0 auto 1.25rem;
	padding: .9rem 1.1rem;
	background: linear-gradient(135deg, rgba(37, 211, 102, .08) 0%, rgba(37, 211, 102, .02) 100%);
	border: 1px solid rgba(37, 211, 102, .25);
	border-radius: var(--lws-radius-md);
	color: #fff;
}
.lws-wizard-skip-icon {
	flex-shrink: 0;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4px 10px -2px rgba(37, 211, 102, .35);
}
.lws-wizard-skip-copy { flex: 1; min-width: 0; }
.lws-wizard-skip-copy strong { display: block; color: #fff; font-size: 1rem; letter-spacing: -0.01em; margin-bottom: .15rem; }
.lws-wizard-skip-copy span { display: block; color: rgba(255, 255, 255, .82); font-size: .9rem; line-height: 1.5; }
.lws-wizard-skip-btn {
	flex-shrink: 0;
	background: var(--lws-whatsapp);
	color: #fff;
	border: none;
	padding: .6rem 1.1rem;
	font-weight: 600;
	letter-spacing: -0.005em;
}
.lws-wizard-skip-btn:hover { background: #1DAA52; color: #fff; text-decoration: none; transform: translateY(-1px); }

/* Summary list — refined with checkmark indicator on filled rows. */
.lws-summary-list { list-style: none; padding: 0; margin: 0 0 1rem; }
.lws-summary-list li {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: .85rem;
	padding: .55rem 0;
	border-bottom: 1px dashed rgba(15, 23, 42, .08);
	font-size: .9rem;
	transition: color var(--lws-dur) var(--lws-ease);
}
.lws-summary-list li:last-child { border-bottom: none; }
.lws-summary-list li > span { color: var(--lws-muted); display: inline-flex; align-items: center; gap: .4rem; }
.lws-summary-list li > span::before {
	content: '';
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--lws-line);
	flex-shrink: 0;
	transition: background var(--lws-dur) var(--lws-ease);
}
.lws-summary-list li.is-filled > span::before { background: var(--lws-success); box-shadow: 0 0 0 2px rgba(22, 163, 74, .15); }
.lws-summary-list li > strong { color: var(--lws-brand); text-align: right; max-width: 60%; overflow-wrap: anywhere; }

/* Trust strip in summary — small reassurance bullets. */
.lws-summary-trust {
	list-style: none;
	padding: .75rem .9rem;
	margin: 0 0 1rem;
	background: var(--lws-bg);
	border: 1px solid var(--lws-line);
	border-radius: var(--lws-radius-md);
	display: flex;
	flex-direction: column;
	gap: .35rem;
}
.lws-summary-trust li {
	display: flex;
	align-items: flex-start;
	gap: .5rem;
	font-size: .82rem;
	color: var(--lws-text-soft);
	line-height: 1.45;
}
.lws-summary-trust svg { color: var(--lws-success); flex-shrink: 0; margin-top: .15rem; }

/* Live activity ticker — rotating recent jobs feed. */
.lws-summary-activity {
	display: flex;
	gap: .7rem;
	align-items: flex-start;
	margin: 0 0 1rem;
	padding: .75rem .9rem;
	background: linear-gradient(135deg, #fff7ed 0%, #fff 100%);
	border: 1px solid rgba(249, 115, 22, .18);
	border-radius: var(--lws-radius-md);
}
.lws-summary-activity-dot {
	flex-shrink: 0;
	margin-top: .35rem;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--lws-success);
	box-shadow: 0 0 0 4px rgba(22, 163, 74, .15);
	animation: lwsPulse 2s ease-in-out infinite;
}
@keyframes lwsPulse {
	0%, 100% { box-shadow: 0 0 0 4px rgba(22, 163, 74, .15); }
	50%      { box-shadow: 0 0 0 7px rgba(22, 163, 74, .05); }
}
.lws-summary-activity-body { flex: 1; min-width: 0; }
.lws-summary-activity-label { display: block; font-size: .68rem; color: var(--lws-muted); text-transform: uppercase; letter-spacing: .06em; font-weight: 600; margin-bottom: .15rem; }
.lws-summary-activity-body p { margin: 0; font-size: .82rem; line-height: 1.45; color: var(--lws-text); transition: opacity .2s ease; }
.lws-summary-activity-body p.is-rotating { opacity: .35; }
.lws-summary-activity-body strong { color: var(--lws-brand); font-weight: 600; }
.lws-summary-activity-body em { color: var(--lws-muted); font-style: normal; font-size: .76rem; display: inline-block; margin-left: .25rem; }

/* Step indicators — add completed (done) state with checkmark. */
.lws-steps li.is-done {
	color: var(--lws-success);
	border-bottom-color: var(--lws-success);
	font-weight: 600;
}
.lws-steps li.is-done::after {
	content: ' ✓';
	color: var(--lws-success);
	font-weight: 700;
}

/* Exit-intent modal — slides in from top. Desktop only. */
.lws-exit-intent {
	position: fixed;
	inset: 0;
	z-index: 9000;
	background: rgba(15, 23, 42, .55);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: 5vh 1rem;
	opacity: 0;
	transition: opacity .25s var(--lws-ease);
}
.lws-exit-intent.is-open { opacity: 1; }
.lws-exit-intent[hidden] { display: none; }
.lws-exit-intent-card {
	position: relative;
	background: #fff;
	border-radius: var(--lws-radius-lg);
	max-width: 460px;
	width: 100%;
	padding: 2rem 1.85rem 1.85rem;
	box-shadow: 0 30px 80px -10px rgba(15, 23, 42, .4);
	transform: translateY(-20px);
	transition: transform .3s var(--lws-ease);
}
.lws-exit-intent.is-open .lws-exit-intent-card { transform: translateY(0); }
.lws-exit-intent-close {
	position: absolute;
	top: .75rem;
	right: .85rem;
	background: transparent;
	border: none;
	font-size: 1.6rem;
	line-height: 1;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	cursor: pointer;
	color: var(--lws-muted);
	transition: background var(--lws-dur) var(--lws-ease), color var(--lws-dur) var(--lws-ease);
}
.lws-exit-intent-close:hover { background: var(--lws-bg-soft); color: var(--lws-brand); }
.lws-exit-intent-icon {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: linear-gradient(135deg, #ECFDF5 0%, #fff 100%);
	box-shadow: 0 6px 14px -4px rgba(37, 211, 102, .35);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 0 1rem;
}
.lws-exit-intent-card h3 {
	font-size: 1.35rem;
	letter-spacing: -0.018em;
	color: var(--lws-brand-deep);
	margin: 0 0 .5rem;
}
.lws-exit-intent-card p { color: var(--lws-text-soft); font-size: .98rem; line-height: 1.55; margin: 0 0 1.25rem; }
.lws-exit-intent-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin: 0; }
.lws-exit-intent-actions .lws-btn { flex: 1; justify-content: center; min-width: 160px; }

/* Mobile: stack the skip card vertically. */
@media (max-width: 640px) {
	.lws-wizard-skip { flex-direction: column; align-items: stretch; text-align: left; gap: .75rem; padding: .85rem; }
	.lws-wizard-skip-icon { width: 40px; height: 40px; }
	.lws-wizard-skip-btn { width: 100%; text-align: center; padding: .7rem 1rem; }
	.lws-exit-intent-card { padding: 1.5rem 1.25rem 1.35rem; }
	.lws-exit-intent-card h3 { font-size: 1.2rem; }
	.lws-exit-intent-actions { flex-direction: column; }
	.lws-exit-intent-actions .lws-btn { width: 100%; }
}

/* ============================================================
   Accessibility: reduce motion when user prefers it.
   Disables transforms, animations, smooth scroll for users with
   vestibular conditions or motion sensitivity (WCAG 2.3.3).
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
	.lws-service-tile:hover { transform: none; }
	.lws-mega { transform: none; }
	.lws-mobile-nav { transition: none; }
}

/* ============================================================
   Print stylesheet — strip the chrome and let the content print
   cleanly. Useful when customers print a quote, location card,
   or service page for their records.
   ============================================================ */
@media print {
	.lws-topbar,
	.lws-header,
	.lws-mobile-nav,
	.lws-footer,
	.lws-footer-cta,
	.lws-footer-trust,
	.lws-footer-popular,
	.lws-footer-cities,
	.lws-footer-bottom,
	.lws-sticky-cta,
	.lws-wizard,
	.lws-breadcrumbs,
	.lws-skip,
	.lws-hero-actions,
	.lws-burger {
		display: none !important;
	}
	body { color: #000; background: #fff; }
	.lws-section { padding: 1rem 0; border-top: 1px solid #ccc; page-break-inside: avoid; }
	.lws-section + .lws-section { border-top: 1px solid #999; }
	.lws-container { max-width: 100%; padding: 0; }
	.lws-hero-grid,
	.lws-service-hero-grid,
	.lws-city-context-grid,
	.lws-about-cols,
	.lws-contact-address-grid {
		grid-template-columns: 1fr !important;
		gap: 1rem;
	}
	.lws-hero-media,
	.lws-service-hero-media { display: none; }
	.lws-service-tile,
	.lws-city-tile,
	.lws-why-card,
	.lws-process-step,
	.lws-mega-card {
		border: 1px solid #ccc;
		box-shadow: none !important;
		break-inside: avoid;
	}
	a { color: #000; text-decoration: underline; }
	a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 0.9em; color: #555; }
	a[href^="tel:"]::after, a[href^="mailto:"]::after { content: ""; }
	h1, h2, h3 { color: #000; page-break-after: avoid; }
	.lws-pricing-table { border-color: #000; }
	.lws-pricing-table th, .lws-pricing-table td { border-color: #000; }
	.lws-pricing-table td { color: #000; }
	.lws-faq-item { border: 1px solid #ccc; break-inside: avoid; }
	.lws-faq-item summary::after { content: ""; }
	.lws-faq-item .lws-faq-answer { display: block !important; }
	.lws-faq-item:not([open]) .lws-faq-answer { display: block !important; }
}

/* ==========================================================================
   R13 — Legal / Warranty / Reviews / Brands hub / FAQ hub / HTML sitemap
   ========================================================================== */

/* Shared narrow prose column for legal / warranty long-form text */
.lws-prose-narrow { max-width: 760px; margin: 0 auto; }
.lws-legal .lws-prose h2 { font-size: 1.35rem; margin: 2.25rem 0 .75rem; color: var(--lws-ink, #0f172a); }
.lws-legal .lws-prose ul { margin: .5rem 0 1rem 1.25rem; line-height: 1.7; }
.lws-legal .lws-prose ul li { padding: .15rem 0; }
.lws-legal .lws-prose p { line-height: 1.7; }

/* Warranty page — covered / not-covered grids */
.lws-warranty-grid { margin: .75rem 0 1.5rem; }
.lws-warranty-grid li { padding: .65rem 0; align-items: flex-start; }
.lws-warranty-grid li svg { color: #10b981; flex-shrink: 0; margin-top: .15rem; }
.lws-warranty-grid-x li svg { color: #ef4444; }

/* Reviews hero — split layout */
.lws-reviews-hero-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 2.5rem; align-items: start; }
.lws-reviews-summary { background: linear-gradient(135deg, #fffbeb 0%, #fff 100%); border: 1px solid #fde68a; border-radius: var(--lws-radius); padding: 1.75rem 1.5rem; text-align: center; }
.lws-reviews-summary-rating { padding-bottom: 1rem; border-bottom: 1px solid #fef3c7; margin-bottom: 1rem; }
.lws-reviews-bigstar { font-size: 3.25rem; font-weight: 800; color: #b45309; line-height: 1; letter-spacing: 0; margin-bottom: .5rem; }
.lws-reviews-stars { display: inline-flex; gap: 2px; align-items: center; margin-bottom: .5rem; }
.lws-reviews-count { font-size: .85rem; color: #78350f; margin: 0; font-weight: 500; }
.lws-reviews-trust { margin: 0; text-align: left; }
.lws-reviews-trust > div { padding: .5rem 0; border-bottom: 1px dashed #fde68a; }
.lws-reviews-trust > div:last-child { border-bottom: none; }
.lws-reviews-trust dt { font-size: .75rem; color: #78350f; text-transform: uppercase; letter-spacing: .04em; margin-bottom: .15rem; }
.lws-reviews-trust dd { margin: 0; font-size: .9rem; font-weight: 600; color: #0f172a; }
@media (max-width: 900px) {
	.lws-reviews-hero-grid { grid-template-columns: 1fr; gap: 1.5rem; }
}

/* Reviews list */
.lws-reviews-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 1.25rem; }
.lws-review-card { background: #fff; border: 1px solid #e2e8f0; border-radius: var(--lws-radius); padding: 1.25rem 1.35rem; transition: border-color .15s, box-shadow .15s; }
.lws-review-card:hover { border-color: #cbd5e1; box-shadow: 0 4px 12px -4px rgba(15,23,42,.08); }
.lws-review-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .85rem; }
.lws-review-stars { display: inline-flex; gap: 1px; align-items: center; }
.lws-review-verified { display: inline-flex; align-items: center; gap: .25rem; font-size: .72rem; padding: .15rem .55rem; background: #ecfdf5; color: #065f46; border-radius: 999px; font-weight: 600; letter-spacing: .02em; }
.lws-review-verified svg { color: #10b981; }
.lws-review-card blockquote { margin: 0 0 1rem; font-size: .94rem; line-height: 1.6; color: #334155; quotes: none; }
.lws-review-card blockquote::before, .lws-review-card blockquote::after { content: ""; }
.lws-review-foot { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; padding-top: .85rem; border-top: 1px solid #f1f5f9; }
.lws-review-author strong { display: block; font-size: .9rem; color: #0f172a; }
.lws-review-meta { display: block; font-size: .78rem; color: #64748b; margin-top: .15rem; }
.lws-review-meta a { color: #64748b; text-decoration: underline; text-decoration-color: #cbd5e1; }
.lws-review-meta a:hover { color: var(--lws-accent, #f59e0b); }
.lws-review-date { font-size: .75rem; color: #94a3b8; white-space: nowrap; }

/* Brands hub */
.lws-brands-tiles { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.lws-brand-tile h3 { font-size: 1.05rem; margin-bottom: .35rem; }
.lws-brand-models { font-size: .8rem; color: #64748b; margin: 0 0 .75rem; line-height: 1.5; }
.lws-brand-cities { font-size: .8rem; color: #475569; margin: 0 0 .85rem; line-height: 1.5; }
.lws-brand-cities a { color: #334155; }
.lws-brand-cities a:hover { color: var(--lws-accent, #f59e0b); }

/* FAQ hub — pill TOC + section groups */
.lws-faq-toc { position: sticky; top: 64px; z-index: 5; background: rgba(248,250,252,.94); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-bottom: 1px solid #e2e8f0; padding: .85rem 0; margin-bottom: 1rem; }
.lws-faq-toc ul { display: flex; flex-wrap: wrap; gap: .35rem; list-style: none; padding: 0; margin: 0; }
.lws-faq-toc a { display: inline-flex; align-items: center; gap: .4rem; padding: .35rem .75rem; font-size: .85rem; color: #475569; border-radius: 999px; border: 1px solid transparent; transition: all .15s; }
.lws-faq-toc a:hover { background: #fff; border-color: #cbd5e1; color: #0f172a; text-decoration: none; }
.lws-faq-toc-count { background: #f1f5f9; color: #64748b; font-size: .7rem; padding: 1px 6px; border-radius: 999px; font-weight: 700; }
.lws-faq-hub-group { padding-top: 2rem; padding-bottom: 2rem; scroll-margin-top: 120px; }
.lws-faq-hub-group + .lws-faq-hub-group { border-top: 1px solid #f1f5f9; }

/* ==========================================================================
   HTML sitemap (/sitemap/) — modelled on backlinkhut.com/sitemap pattern
   ========================================================================== */

.lws-sitemap-html { background: linear-gradient(180deg, #f8fafc 0%, #fff 240px); }

/* Hero */
.lws-sitemap-hero { padding: 2rem 0 1rem; }
.lws-sitemap-hero h1 { font-size: 3rem; line-height: 1.05; margin: .25rem 0 1rem; letter-spacing: 0; }
.lws-sitemap-hero .lws-lede { max-width: 700px; margin: 0 0 1.5rem; }

/* Hero meta pills */
.lws-sitemap-meta { display: flex; flex-wrap: wrap; gap: .65rem; align-items: center; }
.lws-sitemap-pill { display: inline-flex; align-items: center; gap: .45rem; padding: .5rem .9rem; border-radius: 999px; background: #fff; border: 1px solid #e2e8f0; color: #334155; font-size: .85rem; font-weight: 500; transition: all .15s; }
.lws-sitemap-pill:hover { border-color: #94a3b8; background: #f1f5f9; color: #0f172a; text-decoration: none; }
.lws-sitemap-pill-primary { background: #0f172a; color: #fff; border-color: #0f172a; }
.lws-sitemap-pill-primary:hover { background: #1e293b; color: #fff; }

/* Stats grid */
.lws-sitemap-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: .75rem; margin: 1.5rem 0 2rem; }
.lws-sitemap-stat { background: #fff; border: 1px solid #e2e8f0; border-radius: var(--lws-radius); padding: 1rem 1.1rem; }
.lws-sitemap-stat-val { font-size: 1.75rem; font-weight: 700; color: #0f172a; line-height: 1; letter-spacing: 0; }
.lws-sitemap-stat-lbl { font-size: .72rem; color: #64748b; margin-top: .35rem; font-weight: 500; letter-spacing: .02em; }
.lws-sitemap-stat-total .lws-sitemap-stat-val { color: var(--lws-accent, #f59e0b); }

/* Sticky pill TOC */
.lws-sitemap-toc { position: sticky; top: 16px; z-index: 5; background: rgba(248,250,252,.94); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); padding: .75rem 0; margin-bottom: 2rem; border-bottom: 1px solid #e2e8f0; }
.lws-sitemap-toc ul { display: flex; flex-wrap: wrap; gap: .35rem; list-style: none; padding: 0; margin: 0; }
.lws-sitemap-toc a { display: inline-flex; align-items: center; gap: .4rem; padding: .4rem .75rem; font-size: .82rem; color: #475569; border-radius: 999px; border: 1px solid transparent; transition: all .15s; }
.lws-sitemap-toc a:hover { background: #fff; border-color: #cbd5e1; color: #0f172a; text-decoration: none; }
.lws-sitemap-toc-count { background: #f1f5f9; color: #64748b; font-size: .7rem; padding: 1px 6px; border-radius: 999px; font-weight: 700; }

/* Section card */
.lws-sitemap-section { background: #fff; border: 1px solid #e2e8f0; border-radius: var(--lws-radius); padding: 1.65rem 1.75rem 1.85rem; margin-bottom: 1.25rem; scroll-margin-top: 80px; box-shadow: 0 1px 2px rgba(15,23,42,.03); }
.lws-sitemap-section-head { display: flex; align-items: center; gap: .9rem; margin-bottom: 1.25rem; padding-bottom: 1.1rem; border-bottom: 1px solid #f1f5f9; }
.lws-sitemap-section-icon { width: 40px; height: 40px; border-radius: var(--lws-radius); background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%); color: #fff; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.lws-sitemap-section-head h2 { font-size: 1.3rem; margin: 0; color: #0f172a; flex: 1; letter-spacing: 0; line-height: 1.2; }
.lws-sitemap-section-count { background: #f1f5f9; color: #475569; font-size: .75rem; font-weight: 700; padding: .2rem .65rem; border-radius: 999px; }

/* Default list — 3-col responsive grid */
.lws-sitemap-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 0 1.5rem; list-style: none; padding: 0; margin: 0; }
.lws-sitemap-list li { margin: 0; }
.lws-sitemap-list a { display: block; padding: .55rem 1.25rem .55rem 0; color: #334155; font-size: .93rem; line-height: 1.4; border-bottom: 1px solid #f1f5f9; position: relative; transition: all .15s; }
.lws-sitemap-list a::after { content: '→'; position: absolute; right: 4px; top: 50%; transform: translate(-4px, -50%); opacity: 0; color: var(--lws-accent, #f59e0b); font-weight: 600; transition: all .15s; }
.lws-sitemap-list a:hover { color: #0f172a; padding-left: 6px; text-decoration: none; }
.lws-sitemap-list a:hover::after { opacity: 1; transform: translate(0, -50%); }

/* Featured (main pages section) — bigger cards */
.lws-sitemap-featured { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: .85rem; list-style: none; padding: 0; margin: 0; }
.lws-sitemap-featured li { margin: 0; }
.lws-sitemap-featured a { display: flex; flex-direction: column; gap: .35rem; padding: 1rem 1.15rem; border-radius: var(--lws-radius); background: linear-gradient(135deg, #f8fafc 0%, #fff 100%); border: 1px solid #e2e8f0; color: #0f172a; transition: all .2s; height: 100%; }
.lws-sitemap-featured a:hover { border-color: var(--lws-accent, #f59e0b); box-shadow: 0 8px 24px -10px rgba(245,158,11,.22); transform: translateY(-1px); text-decoration: none; }
.lws-sitemap-featured-title { font-weight: 600; font-size: .95rem; line-height: 1.3; color: #0f172a; }
.lws-sitemap-featured-cta { color: var(--lws-accent, #f59e0b); font-size: .78rem; font-weight: 600; }

/* Final CTA */
.lws-sitemap-cta { margin: 2rem 0 3rem; padding: 2.25rem 1.85rem; border-radius: var(--lws-radius); background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%); color: #f1f5f9; text-align: center; }
.lws-sitemap-cta h2 { color: #fff; font-size: 1.55rem; margin: 0 0 .5rem; letter-spacing: 0; }
.lws-sitemap-cta p { color: #cbd5e1; font-size: 1rem; margin: 0 auto 1.25rem; max-width: 560px; }
.lws-sitemap-cta a { display: inline-block; padding: .8rem 1.85rem; background: var(--lws-accent, #f59e0b); color: #fff; font-weight: 600; border-radius: 999px; font-size: .95rem; transition: all .15s; }
.lws-sitemap-cta a:hover { background: #d97706; transform: translateY(-1px); text-decoration: none; }

@media (max-width: 720px) {
	.lws-sitemap-section { padding: 1.35rem 1.15rem 1.5rem; }
	.lws-sitemap-section-head h2 { font-size: 1.1rem; }
	.lws-sitemap-list { grid-template-columns: 1fr; gap: 0; }
	.lws-sitemap-cta { padding: 1.75rem 1.25rem; }
	.lws-sitemap-cta h2 { font-size: 1.3rem; }
}

/* ==========================================================================
   Professional visual refresh — header, footer, page systems, cards
   ========================================================================== */

body {
	background:
		linear-gradient(180deg, #fff 0, #fff 420px, #f8fafc 100%);
	text-rendering: optimizeLegibility;
}

a {
	text-underline-offset: .18em;
}

h1 {
	font-weight: 800;
	letter-spacing: 0;
}

h2,
h3,
h4 {
	letter-spacing: 0;
}

.lws-container {
	width: min(100%, var(--lws-container));
}

.lws-topbar {
	background: #09111f;
	border-bottom: 1px solid rgba(255,255,255,.08);
}

.lws-topbar-row {
	min-height: 38px;
	gap: .35rem 1rem;
}

.lws-topbar-item {
	opacity: .92;
}

.lws-topbar-trust {
	color: #FDE68A;
}

.lws-topbar-link {
	padding: .18rem .35rem;
	border-radius: 999px;
}

.lws-topbar-link:hover {
	background: rgba(255,255,255,.08);
}

.lws-header {
	background: rgba(255,255,255,.94);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
	border-bottom: 1px solid rgba(226,232,240,.82);
	box-shadow: 0 12px 30px rgba(15,23,42,.06);
}

.lws-header-row {
	min-height: 76px;
	gap: 1rem;
}

.lws-logo {
	display: inline-flex;
	align-items: center;
	padding: .45rem .55rem;
	border: 1px solid transparent;
	border-radius: var(--lws-radius);
	transition: border-color .15s ease, background .15s ease;
}

.lws-logo:hover {
	background: #fff;
	border-color: var(--lws-line);
	text-decoration: none;
}

.lws-logo img {
	height: 38px;
}

.lws-nav > ul {
	justify-content: flex-end;
	gap: .05rem;
}

.lws-nav > ul > li > a {
	border: 1px solid transparent;
	font-weight: 650;
	color: #263244;
}

.lws-nav > ul > li > a:hover,
.lws-nav > ul > li.is-active > a {
	background: #fff7ed;
	border-color: #fed7aa;
	color: #c2410c;
}

.lws-nav > ul > li > a span {
	color: #94a3b8;
	font-size: .78rem;
}

.lws-header-cta .lws-btn {
	box-shadow: none;
	white-space: nowrap;
}

.lws-header-cta .lws-btn-ghost {
	background: #fff;
}

.lws-burger {
	width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--lws-line);
	border-radius: var(--lws-radius);
	background: #fff;
}

.lws-mega {
	background:
		linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(248,250,252,.98) 100%);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
	border-top: 1px solid rgba(226,232,240,.9);
	box-shadow: 0 26px 70px rgba(15,23,42,.16);
}

.lws-mega-inner {
	padding-top: 1.35rem;
}

.lws-mega-card {
	background: #fff;
	border-color: rgba(203,213,225,.86);
	border-radius: var(--lws-radius);
	box-shadow: 0 1px 0 rgba(15,23,42,.04), 0 16px 34px rgba(15,23,42,.05);
}

.lws-mega-card-head img,
.lws-service-tile img,
.lws-why-card img,
.lws-process-step img,
.lws-footer-trust-row li img {
	width: 64px;
	height: 64px;
	object-fit: contain;
	padding: .64rem;
	border-radius: var(--lws-radius);
	background: linear-gradient(135deg, #0f172a 0%, #164e63 58%, #ea580c 100%);
	border: 1px solid rgba(255,255,255,.72);
	box-shadow:
		0 16px 32px rgba(15,23,42,.16),
		inset 0 0 0 1px rgba(255,255,255,.14);
	filter: saturate(1.2) contrast(1.18) drop-shadow(0 1px 1px rgba(15,23,42,.24));
	flex: 0 0 auto;
}

.lws-why-card img {
	background: linear-gradient(135deg, #0f172a 0%, #164e63 58%, #ea580c 100%);
}

.lws-why-card:nth-child(2) img {
	background: linear-gradient(135deg, #064e3b 0%, #0e7490 100%);
}

.lws-why-card:nth-child(3) img {
	background: linear-gradient(135deg, #7c2d12 0%, #f97316 100%);
}

.lws-why-card:nth-child(4) img {
	background: linear-gradient(135deg, #1e293b 0%, #2563eb 100%);
}

.lws-why-card:nth-child(5) img {
	background: linear-gradient(135deg, #0f172a 0%, #0891b2 100%);
}

.lws-why-card:nth-child(6) img {
	background: linear-gradient(135deg, #312e81 0%, #db2777 100%);
}

.lws-process-step:nth-child(1) img,
.lws-footer-trust-row li:nth-child(1) img {
	background: linear-gradient(135deg, #0f172a 0%, #2563eb 100%);
}

.lws-process-step:nth-child(2) img,
.lws-footer-trust-row li:nth-child(2) img {
	background: linear-gradient(135deg, #312e81 0%, #7c3aed 100%);
}

.lws-process-step:nth-child(3) img,
.lws-footer-trust-row li:nth-child(3) img {
	background: linear-gradient(135deg, #7c2d12 0%, #f97316 100%);
}

.lws-process-step:nth-child(4) img,
.lws-footer-trust-row li:nth-child(4) img {
	background: linear-gradient(135deg, #0f172a 0%, #b45309 100%);
}

.lws-footer-trust-row li:nth-child(5) img {
	background: linear-gradient(135deg, #064e3b 0%, #0e7490 100%);
}

.lws-footer-trust-row li:nth-child(6) img {
	background: linear-gradient(135deg, #0f172a 0%, #0891b2 100%);
}

.lws-mega-card-head img,
.lws-footer-trust-row li img {
	width: 52px;
	height: 52px;
	padding: .54rem;
	box-shadow:
		0 10px 22px rgba(15,23,42,.13),
		inset 0 0 0 1px rgba(255,255,255,.14);
}

.lws-footer-trust-row li img {
	margin: 0;
}

.lws-mega-card-list a {
	min-height: 34px;
}

.lws-mega-footer {
	background: #fff;
	border-top-color: rgba(226,232,240,.9);
}

.lws-mobile-nav {
	background: #f8fafc;
}

.lws-mobile-nav-inner {
	padding-top: 1rem;
}

.lws-mobile-nav > div > ul > li > a,
.lws-mobile-nav > div > ul > li > button {
	background: #fff;
	border: 1px solid var(--lws-line);
	margin-bottom: .5rem;
}

.lws-mobile-acc-body {
	background: #fff;
	border: 1px solid var(--lws-line);
	border-radius: var(--lws-radius);
	margin: -.25rem 0 .75rem;
	padding: .35rem;
}

.lws-btn {
	border-radius: var(--lws-radius);
	font-weight: 750;
	box-shadow: 0 8px 18px rgba(15,23,42,.06);
}

.lws-btn:hover {
	transform: translateY(-1px);
}

.lws-btn-primary {
	background: linear-gradient(135deg, #F97316 0%, #EA580C 100%);
}

.lws-btn-ghost {
	background: #fff;
}

.lws-btn-wa {
	background: linear-gradient(135deg, #25D366 0%, #16A34A 100%);
}

.lws-section {
	position: relative;
	padding: 4.25rem 0;
}

.lws-section + .lws-section {
	border-top: 0;
}

.lws-section:nth-of-type(even) {
	background: #fff;
}

.lws-section-head {
	margin-bottom: 2rem;
}

.lws-section-head h2 {
	font-weight: 800;
}

.lws-section-head p,
.lws-lede,
.lws-hero-sub {
	color: #536276;
}

.lws-breadcrumbs {
	background: #fff;
	border-bottom: 1px solid rgba(226,232,240,.86);
}

.lws-breadcrumbs a:hover {
	color: var(--lws-accent);
	text-decoration: none;
}

.lws-hero,
.lws-page-intro,
.lws-service-hero,
.lws-reviews-hero {
	overflow: hidden;
	background:
		radial-gradient(circle at 12% 10%, rgba(8,145,178,.13), transparent 32%),
		radial-gradient(circle at 82% 22%, rgba(249,115,22,.14), transparent 34%),
		linear-gradient(180deg, #fff 0%, #f8fafc 100%);
}

.lws-hero::before,
.lws-page-intro::before,
.lws-service-hero::before,
.lws-reviews-hero::before {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(8,145,178,.35), rgba(249,115,22,.45), transparent);
}

.lws-hero-grid,
.lws-service-hero-grid,
.lws-reviews-hero-grid {
	position: relative;
}

.lws-hero-copy,
.lws-service-hero-copy {
	max-width: 720px;
}

.lws-hero-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	padding: .35rem .65rem;
	border: 1px solid #fed7aa;
	border-radius: 999px;
	background: #fff7ed;
	color: #c2410c;
	font-size: .78rem;
	letter-spacing: .04em;
}

.lws-hero-eyebrow::before {
	content: "";
	width: .42rem;
	height: .42rem;
	border-radius: 999px;
	background: var(--lws-success);
	box-shadow: 0 0 0 4px rgba(22,163,74,.12);
}

.lws-hero h1,
.lws-service-hero h1,
.lws-page-intro h1,
.lws-reviews-hero h1 {
	max-width: 780px;
	font-size: 4rem;
	line-height: 1.04;
	margin-bottom: .45em;
}

.lws-hero-media,
.lws-service-hero-media {
	position: relative;
}

.lws-hero-media::before,
.lws-service-hero-media::before {
	content: "";
	position: absolute;
	inset: 9% -4% -6% 10%;
	border-radius: var(--lws-radius-lg);
	background: linear-gradient(135deg, rgba(8,145,178,.18), rgba(249,115,22,.18));
	transform: rotate(-2deg);
}

.lws-hero-media img,
.lws-service-hero-media img {
	position: relative;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--lws-radius-lg);
	border: 1px solid rgba(226,232,240,.86);
	box-shadow: var(--lws-shadow-lg);
}

.lws-hero-trust {
	display: inline-flex;
	padding: .5rem .75rem;
	border-radius: var(--lws-radius);
	background: #fff;
	border: 1px solid var(--lws-line);
}

.lws-prose-inline .lws-container {
	max-width: 980px;
}

.lws-prose-inline p {
	margin: 0;
	padding: 1.35rem 1.5rem;
	background: #fff;
	border: 1px solid var(--lws-line);
	border-left: 4px solid var(--lws-cyan);
	border-radius: var(--lws-radius);
	box-shadow: var(--lws-shadow);
	font-size: 1.03rem;
}

.lws-service-tile,
.lws-city-tile,
.lws-why-card,
.lws-process-step,
.lws-stat,
.lws-contact-card,
.lws-location-card,
.lws-faq-item,
.lws-review-card,
.lws-sitemap-section,
.lws-sitemap-featured a,
.lws-sitemap-stat {
	border-radius: var(--lws-radius);
	border-color: rgba(203,213,225,.92);
	box-shadow: 0 1px 0 rgba(15,23,42,.04), 0 14px 34px rgba(15,23,42,.055);
}

.lws-service-tile,
.lws-city-tile,
.lws-contact-card,
.lws-location-card,
.lws-review-card {
	background:
		linear-gradient(180deg, #fff 0%, #fff 70%, #f8fafc 100%);
}

.lws-service-tile:hover,
.lws-city-tile:hover,
.lws-contact-card:hover,
.lws-location-card:hover,
.lws-review-card:hover,
.lws-sitemap-featured a:hover {
	border-color: rgba(249,115,22,.55);
	box-shadow: 0 18px 48px rgba(15,23,42,.1);
	transform: translateY(-2px);
}

.lws-service-tile h3,
.lws-city-tile h3,
.lws-contact-card h3,
.lws-location-card h3,
.lws-review-author strong {
	font-weight: 800;
}

.lws-service-tile .lws-arrow,
.lws-city-tile .lws-arrow {
	display: inline-flex;
	align-items: center;
	color: #c2410c;
	font-weight: 800;
}

.lws-why {
	background:
		linear-gradient(180deg, #eff6ff 0%, #f8fafc 100%);
}

.lws-why-card {
	position: relative;
	overflow: hidden;
}

.lws-why-card::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, var(--lws-cyan), var(--lws-accent));
}

.lws-process-step {
	counter-increment: lws-step;
	padding-top: 2rem;
}

.lws-process-num {
	background: #0f172a;
	box-shadow: 0 8px 16px rgba(15,23,42,.18);
}

.lws-pricing-table {
	border-radius: var(--lws-radius);
	box-shadow: var(--lws-shadow);
}

.lws-pricing-table thead th {
	background: #0f172a;
	color: #fff;
}

.lws-pricing-table td {
	color: #c2410c;
}

.lws-issues-grid li {
	background: #fff;
	border: 1px solid var(--lws-line);
	border-radius: var(--lws-radius);
	padding: .85rem .95rem;
	box-shadow: 0 1px 0 rgba(15,23,42,.03);
}

.lws-faq {
	background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
}

.lws-faq-item {
	padding: 0 1.1rem;
}

.lws-faq-item[open] {
	border-color: rgba(8,145,178,.35);
}

.lws-wizard {
	background:
		linear-gradient(135deg, #0f172a 0%, #12253f 46%, #083344 100%);
}

.lws-wizard-card {
	border-radius: var(--lws-radius-lg);
	border: 1px solid rgba(255,255,255,.18);
}

.lws-tile span,
.lws-field input,
.lws-field textarea {
	border-radius: var(--lws-radius);
}

.lws-stats-grid {
	text-align: left;
}

.lws-stat strong {
	color: #0e7490;
}

.lws-contact-grid {
	background: linear-gradient(180deg, #f0fdfa 0%, #fff 100%);
}

.lws-contact-card {
	text-align: left;
}

.lws-contact-big {
	font-size: 1.35rem;
	color: #0e7490;
	overflow-wrap: anywhere;
}

.lws-contact-address-grid > div {
	background: #fff;
	border: 1px solid var(--lws-line);
	border-radius: var(--lws-radius);
	padding: 1.6rem;
	box-shadow: var(--lws-shadow);
}

.lws-coverage-list li {
	background: #fff;
}

.lws-about-grid {
	background:
		linear-gradient(90deg, #fff 0%, #fff 50%, #f8fafc 50%, #f8fafc 100%);
}

.lws-about-cols > div {
	background: #fff;
	border: 1px solid var(--lws-line);
	border-radius: var(--lws-radius);
	padding: 1.75rem;
	box-shadow: var(--lws-shadow);
}

.lws-about-stats {
	background: #f8fafc;
}

.lws-locations-list {
	background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
}

.lws-locations-header {
	border: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: .65rem;
}

.lws-locations-header::before {
	content: "";
	width: 30px;
	height: 3px;
	border-radius: 999px;
	background: var(--lws-accent);
}

.lws-location-card {
	transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.lws-location-card header {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	border-bottom: 1px solid var(--lws-line);
	margin-bottom: 1rem;
	padding-bottom: .75rem;
}

.lws-location-region {
	margin: 0;
}

.lws-location-facts div {
	background: #f8fafc;
	border: 1px solid var(--lws-line);
	border-radius: var(--lws-radius);
	padding: .9rem;
}

.lws-chip {
	border-radius: var(--lws-radius);
	background: #fff;
}

.lws-reviews-hero {
	background:
		radial-gradient(circle at 84% 10%, rgba(245,158,11,.2), transparent 30%),
		linear-gradient(180deg, #fff 0%, #fffbeb 100%);
}

.lws-reviews-summary {
	border-radius: var(--lws-radius);
	background: #fff;
	box-shadow: 0 24px 64px rgba(180,83,9,.13);
}

.lws-review-card {
	position: relative;
}

.lws-review-card::before {
	content: "“";
	position: absolute;
	right: 1rem;
	top: .15rem;
	color: #f1f5f9;
	font-size: 4rem;
	line-height: 1;
	font-family: Georgia, serif;
}

.lws-review-foot {
	position: relative;
}

.lws-review-verified {
	border-radius: var(--lws-radius);
}

.lws-legal .lws-page-intro,
.lws-privacy-policy .lws-page-intro,
.lws-terms .lws-page-intro,
.lws-refund-policy .lws-page-intro {
	background:
		linear-gradient(135deg, #f8fafc 0%, #fff 65%, #eff6ff 100%);
}

.lws-legal .lws-prose,
.lws-prose-narrow {
	background: #fff;
	border: 1px solid var(--lws-line);
	border-radius: var(--lws-radius);
	padding: 1.75rem;
	box-shadow: var(--lws-shadow);
}

.lws-warranty .lws-narrative {
	background: #fff;
}

.lws-warranty-grid {
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: .85rem;
}

.lws-warranty-grid li {
	border-bottom: 0;
}

.lws-brands-cat:nth-of-type(odd) {
	background: #f8fafc;
}

.lws-brand-tile {
	min-height: 220px;
}

.lws-faq-toc,
.lws-sitemap-toc {
	top: 76px;
	background: rgba(255,255,255,.94);
}

.lws-sitemap-html {
	background:
		linear-gradient(180deg, #f8fafc 0%, #fff 340px);
}

.lws-sitemap-hero {
	padding: 3rem 0 1.25rem;
}

.lws-sitemap-section-icon,
.lws-sitemap-cta {
	border-radius: var(--lws-radius);
}

.lws-sitemap-pill,
.lws-sitemap-toc a,
.lws-faq-toc a,
.lws-sitemap-section-count,
.lws-sitemap-toc-count,
.lws-faq-toc-count {
	border-radius: var(--lws-radius);
}

.lws-footer-cta {
	background:
		linear-gradient(135deg, #0f172a 0%, #164e63 58%, #ea580c 100%);
	padding: 2.35rem 0;
}

.lws-footer-cta-copy h2 {
	font-weight: 850;
	letter-spacing: 0;
}

.lws-footer-trust {
	background: #fff;
}

.lws-footer-trust-row {
	gap: .85rem;
}

.lws-footer-trust-row li {
	background: #f8fafc;
	border: 1px solid var(--lws-line);
	border-radius: var(--lws-radius);
	padding: .85rem;
}

.lws-footer {
	background:
		linear-gradient(180deg, #0f172a 0%, #0b1220 100%);
}

.lws-footer-main {
	gap: 2rem;
}

.lws-footer-brand {
	background: rgba(255,255,255,.04);
	border: 1px solid rgba(255,255,255,.08);
	border-radius: var(--lws-radius);
	padding: 1.25rem;
}

.lws-footer-brand .lws-footer-logo {
	border-radius: var(--lws-radius);
}

.lws-footer-col .lws-footer-h {
	color: #f8fafc;
}

.lws-footer-col li {
	padding: .24rem 0;
}

.lws-footer a:hover {
	color: #FDBA74;
	text-decoration: none;
}

.lws-footer-social a,
.lws-footer-nearby .lws-chip {
	border-radius: var(--lws-radius);
}

.lws-footer-popular,
.lws-footer-cities {
	background: rgba(255,255,255,.025);
}

.lws-footer-popular-grid a {
	padding: .42rem 0;
}

.lws-footer-city-block {
	border-left: 1px solid rgba(255,255,255,.1);
	padding-left: 1rem;
}

.lws-footer-bottom {
	background: #060b14;
}

@media (max-width: 1120px) {
	.lws-header-row {
		gap: .65rem;
	}

	.lws-nav > ul > li > a {
		padding: .5rem .62rem;
		font-size: .9rem;
	}
}

@media (max-width: 980px) {
	.lws-header-row {
		min-height: 64px;
	}

	.lws-footer-brand {
		grid-column: 1 / -1;
	}

	.lws-footer-acc .lws-footer-h {
		border-bottom-color: rgba(255,255,255,.12);
	}
}

@media (max-width: 820px) {
	.lws-hero h1,
	.lws-service-hero h1,
	.lws-page-intro h1,
	.lws-reviews-hero h1 {
		font-size: 2.65rem;
	}

	.lws-hero-media::before,
	.lws-service-hero-media::before {
		inset: 10% 4% -5% 8%;
	}

	.lws-location-card header {
		display: block;
	}

	.lws-about-grid {
		background: #fff;
	}

	.lws-wizard-main {
		grid-template-columns: 1fr;
	}

	.lws-wizard-summary {
		position: static;
	}
}

@media (max-width: 600px) {
	.lws-container {
		padding: 0 16px;
	}

	.lws-section {
		padding: 2.6rem 0;
	}

	.lws-page-intro,
	.lws-service-hero,
	.lws-hero,
	.lws-reviews-hero {
		padding: 2.35rem 0 2.8rem;
	}

	.lws-hero-actions,
	.lws-footer-cta-actions,
	.lws-step-actions,
	.lws-wizard-success-actions {
		display: grid;
		grid-template-columns: 1fr;
		width: 100%;
	}

	.lws-hero-actions .lws-btn,
	.lws-footer-cta-actions .lws-btn,
	.lws-step-actions .lws-btn,
	.lws-wizard-success-actions .lws-btn {
		width: 100%;
	}

	.lws-wizard-card {
		padding: 1.15rem;
	}

	.lws-service-picker,
	.lws-city-picker,
	.lws-form-pair,
	.lws-wizard-result {
		grid-template-columns: 1fr;
	}

	.lws-steps {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.lws-chip span {
		border-radius: var(--lws-radius);
		width: 100%;
		justify-content: center;
		text-align: center;
	}

	.lws-chip {
		flex: 1 1 calc(50% - .5rem);
	}

	.lws-prose-inline p,
	.lws-about-cols > div,
	.lws-contact-address-grid > div,
	.lws-legal .lws-prose,
	.lws-prose-narrow {
		padding: 1.15rem;
	}

	.lws-service-tiles,
	.lws-city-tiles,
	.lws-reviews-grid,
	.lws-warranty-grid {
		grid-template-columns: 1fr;
	}

	.lws-footer-trust-row {
		grid-template-columns: 1fr;
	}

	.lws-footer-city-block {
		padding-left: .85rem;
	}
}

/* Header alignment and stable mega-menu hover path */
.lws-header-row {
	align-items: stretch;
	min-height: 72px;
	padding-top: 0;
	padding-bottom: 0;
}

.lws-logo,
.lws-header-cta,
.lws-burger {
	align-self: center;
}

.lws-nav {
	align-self: stretch;
	display: flex;
	min-width: 0;
}

.lws-nav > ul {
	align-items: stretch;
	width: 100%;
}

.lws-nav > ul > li {
	display: flex;
	align-items: stretch;
	position: relative;
}

.lws-nav > ul > li > a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .34rem;
	min-height: 44px;
	margin: 14px 0;
	padding: .45rem .68rem;
	line-height: 1.05;
	white-space: nowrap;
}

.lws-nav > ul > li > a span[aria-hidden="true"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: .72rem;
	height: .72rem;
	margin-top: .08rem;
	color: #64748b;
	font-size: .68rem;
	line-height: 1;
	opacity: 1;
}

.lws-has-mega::after {
	content: none;
}

.lws-has-mega > a {
	position: relative;
}

.lws-has-mega > a::after {
	content: "";
	position: absolute;
	left: -8px;
	right: -8px;
	bottom: -16px;
	height: 18px;
	pointer-events: auto;
}

.lws-has-mega.is-open > .lws-mega,
.lws-has-mega:hover > .lws-mega,
.lws-has-mega:focus-within > .lws-mega,
.lws-has-mega > .lws-mega:hover {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
}

.lws-mega {
	top: 100%;
	z-index: 260;
}

.lws-topbar svg,
.lws-header svg,
.lws-mobile-nav svg {
	display: inline-block;
	flex: 0 0 auto;
	opacity: 1;
	overflow: visible;
}

@media (max-width: 1180px) {
	.lws-header-row {
		gap: .5rem;
	}

	.lws-nav > ul > li > a {
		padding-left: .52rem;
		padding-right: .52rem;
		font-size: .86rem;
	}
}

/* Mobile hardening: this block lives last so desktop refresh rules cannot
   re-enable the primary nav or widen phone layouts. */
@media (max-width: 980px) {
	/* overflow-x: clip (not hidden) — `hidden` creates a scroll context which
	   kills `position: sticky` on .lws-header. `clip` blocks horizontal overflow
	   without creating a scrolling box, so the sticky header keeps working. */
	html,
	body {
		max-width: 100%;
		overflow-x: clip;
	}

	.lws-topbar-row,
	.lws-header-row,
	.lws-container {
		width: 100%;
		max-width: 100%;
	}

	.lws-nav {
		display: none !important;
	}

	.lws-header-cta {
		display: none !important;
	}

	.lws-header {
		top: 0;
		z-index: 500;
	}

	.lws-header-row {
		align-items: center;
		justify-content: space-between;
		min-height: 64px;
		padding: 0 14px;
		gap: .75rem;
	}

	.lws-logo {
		min-width: 0;
		padding: .25rem 0;
		border: 0;
		background: transparent;
	}

	.lws-logo img {
		width: min(190px, 52vw);
		height: auto;
		max-height: 42px;
		object-fit: contain;
	}

	.lws-burger {
		display: inline-flex !important;
		flex: 0 0 44px;
		margin-left: auto;
		position: relative;
		z-index: 1001;
	}

	.lws-mobile-nav {
		display: none !important;
		width: min(372px, 94vw);
		max-width: 100vw;
		z-index: 1000;
		overscroll-behavior: contain;
		transform: none;
	}

	.lws-mobile-nav.is-open {
		display: block !important;
		transform: none;
	}

	.lws-mobile-nav-inner {
		padding: .85rem .85rem calc(2rem + env(safe-area-inset-bottom));
	}

	.lws-mobile-nav-head {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 1rem;
		margin-bottom: .75rem;
		padding: .35rem .25rem .75rem;
		border-bottom: 1px solid var(--lws-line);
	}

	.lws-mobile-logo {
		display: inline-flex;
		align-items: center;
		min-width: 0;
	}

	.lws-mobile-logo img {
		width: min(150px, 46vw);
		height: auto;
	}

	.lws-mobile-close {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 42px;
		height: 42px;
		border: 1px solid var(--lws-line);
		border-radius: var(--lws-radius);
		background: #fff;
		color: var(--lws-brand);
		font: inherit;
		font-size: 1.55rem;
		line-height: 1;
		cursor: pointer;
	}
}

@media (max-width: 640px) {
	.lws-topbar {
		font-size: .8rem;
	}

	.lws-topbar-row {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		gap: .25rem .65rem;
		padding: .45rem 14px;
	}

	.lws-topbar-loc,
	.lws-topbar-hours,
	.lws-topbar-wa,
	.lws-topbar-spacer {
		display: none;
	}

	.lws-topbar-trust,
	.lws-topbar-link {
		min-width: 0;
		white-space: nowrap;
	}

	.lws-topbar-link {
		justify-self: end;
	}

	.lws-main,
	.lws-section,
	.lws-hero,
	.lws-page-intro,
	.lws-service-hero,
	.lws-reviews-hero {
		overflow-x: clip;
	}

	.lws-hero,
	.lws-page-intro,
	.lws-service-hero,
	.lws-reviews-hero {
		padding: 2rem 0 2.35rem;
	}

	.lws-hero h1,
	.lws-service-hero h1,
	.lws-page-intro h1,
	.lws-reviews-hero h1,
	.lws-sitemap-hero h1 {
		font-size: clamp(2rem, 9vw, 2.35rem);
		line-height: 1.08;
		overflow-wrap: anywhere;
		text-wrap: balance;
	}

	.lws-hero-sub,
	.lws-lede {
		font-size: 1rem;
		line-height: 1.6;
	}

	.lws-hero-eyebrow {
		max-width: 100%;
		white-space: normal;
	}

	.lws-hero-media,
	.lws-service-hero-media {
		margin-top: .5rem;
	}

	.lws-hero-media::before,
	.lws-service-hero-media::before {
		display: none;
	}

	.lws-hero-actions,
	.lws-footer-cta-actions,
	.lws-step-actions,
	.lws-wizard-success-actions,
	.lws-sitemap-meta {
		display: grid;
		grid-template-columns: 1fr;
		width: 100%;
	}

	.lws-hero-actions .lws-btn,
	.lws-footer-cta-actions .lws-btn,
	.lws-step-actions .lws-btn,
	.lws-wizard-success-actions .lws-btn,
	.lws-sitemap-pill {
		width: 100%;
		min-width: 0;
		white-space: normal;
	}

	.lws-wizard {
		padding: 2.5rem 0;
	}

	.lws-wizard-card {
		padding: 1rem;
		border-radius: 10px;
	}

	.lws-service-picker,
	.lws-city-picker,
	.lws-form-pair,
	.lws-wizard-main,
	.lws-wizard-result,
	.lws-sitemap-stats,
	.lws-sitemap-featured {
		grid-template-columns: 1fr;
	}

	/* Wizard side-rail collapses below the form on mobile. Was minmax(0, 1fr) 320px
	   which forced horizontal scroll on phones narrower than ~380px. */
	.lws-wizard-card { padding: 1rem; }
	.lws-wizard-aside { margin-top: 1rem; }

	.lws-steps {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: .4rem;
	}

	.lws-steps li {
		font-size: .78rem;
	}

	.lws-chip {
		flex: 1 1 100%;
	}

	.lws-chip span {
		width: 100%;
		justify-content: center;
		text-align: center;
		border-radius: var(--lws-radius);
	}

	.lws-footer-cta {
		padding: 1.65rem 0;
	}

	.lws-footer-cta-copy h2 {
		font-size: 1.35rem;
		line-height: 1.18;
	}

	.lws-footer-main {
		display: block;
		padding-top: 1.7rem;
		padding-bottom: 1.25rem;
	}

	.lws-footer-brand {
		margin-bottom: 1rem;
		padding: 1rem;
	}

	.lws-footer-acc {
		border-top: 1px solid rgba(255,255,255,.1);
	}

	.lws-footer-acc .lws-footer-h {
		min-height: 52px;
		font-size: 1rem;
	}

	.lws-footer-popular,
	.lws-footer-cities {
		padding: 1.45rem 0;
	}

	.lws-footer-popular-grid a {
		display: block;
		padding: .7rem .8rem;
		border: 1px solid rgba(255,255,255,.1);
		border-radius: var(--lws-radius);
		background: rgba(255,255,255,.04);
	}

	.lws-footer-city-block {
		border-left: 0;
		border-top: 1px solid rgba(255,255,255,.1);
		padding: 1rem 0 0;
	}

	.lws-footer-bottom {
		padding-bottom: calc(5.25rem + env(safe-area-inset-bottom));
	}

	.lws-footer-bottom-links,
	.lws-footer-meta {
		gap: .4rem .8rem;
	}

	.lws-sticky-cta {
		padding-bottom: env(safe-area-inset-bottom);
	}

	.lws-sticky-cta a {
		min-width: 0;
		padding: .85rem .5rem;
		font-size: .92rem;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}
}
