/*
 * Anchorline Home Services — brand design system
 * Light/dark theme via CSS custom properties + [data-theme] attribute on <html>.
 */

:root {
	--cl-bg: #f3ebe0;
	--cl-surface: #fffaf3;
	--cl-surface-alt: #e7d9c6;
	--cl-text: #1c1610;
	--cl-text-muted: #5c5348;
	--cl-primary: #c45c22;
	--cl-primary-dark: #9a4316;
	--cl-secondary: #2a2118;
	--cl-accent: #2f5d4a;
	--cl-cta: #c45c22;
	--cl-cta-dark: #9a4316;
	--cl-cta-on-navy: #e8a06a;
	--cl-navy: #1c1610;
	--cl-navy-text: #f6efe4;
	--cl-navy-text-muted: #cbbba8;
	--cl-navy-border: rgba(246, 239, 228, 0.12);
	--cl-border: rgba(28, 22, 16, 0.12);
	--cl-shadow: 0 18px 40px rgba(28, 22, 16, 0.1);
	--cl-shadow-sm: 0 8px 20px rgba(28, 22, 16, 0.08);
	--cl-shadow-lg: 0 28px 56px rgba(28, 22, 16, 0.16);
	--cl-radius: 10px;
	--cl-radius-lg: 18px;
}

* {
	box-sizing: border-box;
}

html,
body {
	max-width: 100%;
	overflow-x: hidden;
}

html[data-theme="dark"] {
	--cl-bg: #0c1116;
	--cl-surface: #151b22;
	--cl-surface-alt: #1c2530;
	--cl-text: #f3efe7;
	--cl-text-muted: #b7c0c9;
	--cl-primary: #e08a45;
	--cl-primary-dark: #c1682b;
	--cl-secondary: #6fa0c7;
	--cl-accent: #4fb79e;
	--cl-border: rgba(243, 239, 231, 0.14);
	--cl-shadow: 0 20px 45px rgba(0, 0, 0, 0.45);
	--cl-cta: #1f8f7c;
	--cl-cta-dark: #166b5d;
	--cl-cta-on-navy: #5fd3b8;
	--cl-navy: #071620;
	--cl-navy-text: #f3efe7;
	--cl-navy-text-muted: #a9b7c2;
	--cl-navy-border: rgba(243, 239, 231, 0.12);
}

html[data-theme="dark"] body {
	background-color: var(--cl-bg);
	color: var(--cl-text);
}

html[data-theme="dark"] .has-base-background-color.cl-section {
	background-color: var(--cl-bg) !important;
}

body {
	font-feature-settings: "kern" 1;
	-webkit-font-smoothing: antialiased;
}

.cl-section {
	background-color: var(--cl-bg);
	color: var(--cl-text);
	transition: background-color 0.25s ease, color 0.25s ease;
}

.cl-surface {
	background-color: var(--cl-surface) !important;
	border: 1px solid var(--cl-border);
	border-radius: var(--cl-radius);
	box-shadow: var(--cl-shadow);
}

.cl-surface-alt {
	background-color: var(--cl-surface-alt) !important;
	border-radius: var(--cl-radius);
}

/* Section rhythm + subtle depth so blocks read as distinct, intentional bands */
main .wp-block-group.cl-section {
	position: relative;
}

h1, h2, h3 {
	letter-spacing: -0.01em;
	line-height: 1.15;
}

.cl-card {
	box-shadow: var(--cl-shadow-sm);
}

.cl-eyebrow {
	display: inline-block;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-size: 0.78rem;
	font-weight: 700;
	color: var(--cl-primary) !important;
	margin-bottom: 0.5rem;
}

.cl-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	background: var(--cl-surface-alt);
	color: var(--cl-secondary);
	border: 1px solid var(--cl-border);
	border-radius: 999px;
	padding: 0.35rem 0.9rem;
	font-size: 0.85rem;
	font-weight: 600;
}

.cl-card {
	background-color: var(--cl-surface);
	border: 1px solid var(--cl-border);
	border-radius: var(--cl-radius);
	padding: 1.75rem;
	transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.25s ease;
}

.cl-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--cl-shadow-lg);
	border-color: rgba(20, 92, 82, 0.35);
}

.cl-card-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border-radius: var(--cl-radius);
	background: var(--cl-surface-alt);
	color: var(--cl-primary);
	margin-bottom: 0.9rem;
}

.cl-card-icon svg {
	width: 22px;
	height: 22px;
	display: block;
}

.cl-legal-content {
	max-width: 720px;
}

.cl-legal-content h2 {
	display: flex;
	align-items: center;
	gap: 0.6rem;
}

.cl-legal-icon {
	display: inline-block;
	width: 1.3em;
	height: 1.3em;
	flex-shrink: 0;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}

.cl-legal-content .cl-card-icon {
	margin-bottom: 1.2rem;
}

.cl-btn-primary,
.cl-btn-outline,
.cl-btn-primary .wp-block-button__link,
.cl-btn-outline .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	padding: 0.75rem 1.5rem;
	border-radius: 999px !important;
	font-weight: 700;
	font-size: 0.92rem;
	line-height: 1.2;
	text-decoration: none !important;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
}

.cl-btn-primary,
.cl-btn-primary .wp-block-button__link {
	background: linear-gradient(135deg, var(--cl-cta), var(--cl-cta-dark)) !important;
	color: #fff !important;
	border: 2px solid transparent !important;
	box-shadow: 0 10px 24px -8px rgba(20, 92, 82, 0.55);
}

.cl-btn-primary:hover,
.cl-btn-primary .wp-block-button__link:hover {
	background: linear-gradient(135deg, var(--cl-cta-dark), var(--cl-cta-dark)) !important;
	transform: translateY(-2px);
	box-shadow: 0 16px 32px -8px rgba(20, 92, 82, 0.6);
}

.cl-btn-outline,
.cl-btn-outline .wp-block-button__link {
	background: transparent !important;
	border: 2px solid var(--cl-secondary) !important;
	color: var(--cl-secondary) !important;
	box-shadow: none !important;
}

.cl-btn-outline:hover,
.cl-btn-outline .wp-block-button__link:hover {
	background-color: var(--cl-secondary) !important;
	color: #fff !important;
	transform: translateY(-2px);
}

html[data-theme="dark"] .cl-btn-outline,
html[data-theme="dark"] .cl-btn-outline .wp-block-button__link {
	border-color: var(--cl-text) !important;
	color: var(--cl-text) !important;
}

html[data-theme="dark"] .cl-btn-outline:hover,
html[data-theme="dark"] .cl-btn-outline .wp-block-button__link:hover {
	background-color: var(--cl-text) !important;
	color: var(--cl-bg) !important;
}

/* The post-content wrapper itself is an unaligned child of the constrained
   <main>, so core WP CSS was capping it (and every alignwide/alignfull
   section inside it — hero, columns, cards) to the ~645px text content
   width instead of the page's full/wide width. Let it use the full
   available width; its own non-aligned children still get centered at
   content-size as normal. */
.wp-block-post-content.is-layout-constrained {
	max-width: none !important;
}

/* Inner pages without alignfull/alignwide were stuck at the theme content
   width (~645px) while the homepage used full/wide bands. Keep marketing
   groups and card rows on the wide measure. Legal pages stay narrow below. */
body.page .wp-block-post-content.is-layout-constrained > .wp-block-group:not(.alignfull),
body.page .wp-block-post-content.is-layout-constrained > .wp-block-columns:not(.alignwide):not(.alignfull) {
	max-width: min(100%, var(--wp--style--global--wide-size, 1200px)) !important;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
}

/* About / Service Areas / Why Choose Us mixed two widths: headings sat at
   content-size (~800px) while the next band's columns went wide. One well. */
body.page main .cl-section.alignfull {
	padding-left: clamp(1.25rem, 5vw, 3.125rem);
	padding-right: clamp(1.25rem, 5vw, 3.125rem);
	padding-top: clamp(2.25rem, 5vw, 4.5rem);
	padding-bottom: clamp(2.25rem, 5vw, 4.5rem);
	box-sizing: border-box;
}

body.page main .cl-section.alignfull.is-layout-constrained > *,
body.page main .cl-section.alignfull > .alignwide,
body.page main .cl-section.alignfull > .wp-block-group,
body.page main .cl-section.alignfull > .wp-block-columns,
body.page main .cl-section.alignfull > .wp-block-heading,
body.page main .cl-section.alignfull > .wp-block-paragraph,
body.page main .cl-section.alignfull > .wp-block-buttons,
body.page main .cl-section.alignfull > .wp-block-list,
body.page main .cl-section.alignfull > p,
body.page main .cl-section.alignfull > h1,
body.page main .cl-section.alignfull > h2,
body.page main .cl-section.alignfull > h3 {
	max-width: min(100%, var(--wp--style--global--wide-size, 1200px)) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	width: 100%;
}

body.page main .cl-section .wp-block-columns.alignwide {
	max-width: 100% !important;
}

#noir-theme-toggle {
	display: none !important;
}

/* Inner-page hero: same centered faded eyebrow + title + lead on every
   page. Home keeps its two-column landing hero. !important beats the
   shared alignfull well (width:100% / max-width 1200) so the top stack
   sits in one place on every route and viewport. */
body.page:not(.home) :is(.entry-content, .wp-block-post-content) > .cl-section:first-child {
	text-align: center !important;
	padding-top: clamp(2.75rem, 6vw, 5rem);
	padding-bottom: clamp(2.25rem, 5vw, 3.75rem);
}

body.page:not(.home) :is(.entry-content, .wp-block-post-content) > .cl-section:first-child > .wp-block-group {
	text-align: center !important;
}

body.page:not(.home) :is(.entry-content, .wp-block-post-content) > .cl-section:first-child .cl-eyebrow {
	display: block !important;
	width: 100% !important;
	max-width: min(100%, 40rem) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	margin-bottom: 0.85rem;
	text-align: center !important;
}

body.page:not(.home) :is(.entry-content, .wp-block-post-content) > .cl-section:first-child :is(h1, h2, .wp-block-heading) {
	text-align: center !important;
	max-width: min(100%, 40rem) !important;
	width: auto !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

body.page:not(.home) :is(.entry-content, .wp-block-post-content) > .cl-section:first-child :is(p, .wp-block-paragraph):not(.cl-eyebrow) {
	text-align: center !important;
	max-width: min(100%, 38rem) !important;
	width: auto !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

body.page:not(.home) :is(.entry-content, .wp-block-post-content) > .cl-section:first-child .wp-block-buttons {
	justify-content: center !important;
	max-width: min(100%, 38rem) !important;
	width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

body.page:not(.home) :is(.entry-content, .wp-block-post-content) > .cl-section:first-child .wp-block-buttons .wp-block-button {
	margin-left: 0.25rem;
	margin-right: 0.25rem;
}

@media (max-width: 781px) {
	body.page:not(.home) :is(.entry-content, .wp-block-post-content) > .cl-section:first-child .wp-block-buttons {
		flex-direction: column;
		align-items: stretch !important;
	}

	body.page:not(.home) :is(.entry-content, .wp-block-post-content) > .cl-section:first-child .wp-block-button,
	body.page:not(.home) :is(.entry-content, .wp-block-post-content) > .cl-section:first-child .wp-block-button .wp-block-button__link {
		width: 100%;
	}
}

body.page-id-3 .entry-content > h1:first-child,
body.page-id-101 .entry-content > h1:first-child,
body.page-id-102 .entry-content > h1:first-child {
	text-align: center;
	max-width: min(100%, 40rem);
	margin-left: auto;
	margin-right: auto;
}

body.page:not(.page-id-3):not(.page-id-101):not(.page-id-102) .wp-block-post-title {
	display: none;
}

@media (max-width: 781px) {
	main .wp-block-columns {
		flex-wrap: wrap !important;
		flex-direction: column !important;
	}

	main .wp-block-column {
		flex-basis: 100% !important;
		max-width: 100% !important;
		width: 100% !important;
	}

	.cl-section {
		padding-left: 1.25rem;
		padding-right: 1.25rem;
	}
}

.cl-float-call {
	display: none !important;
}

/* Screen-reader-only utility (matches core WP pattern, ensures accessible-hidden literal strings) */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

/* Header */
.cl-header {
	position: sticky;
	top: 0;
	z-index: 40;
	background-color: var(--cl-navy);
	border-bottom: 1px solid var(--cl-navy-border);
	box-shadow: 0 1px 0 rgba(16, 24, 32, 0.03), 0 8px 24px -20px rgba(16, 24, 32, 0.25);
	backdrop-filter: blur(6px);
	/* Unlike <main> and <footer>, this template-part is not given WP's
	   auto has-global-padding class, so it needs its own edge inset or
	   the logo/nav sit flush against the viewport edge. */
	padding-left: clamp(1rem, 5vw, 3.125rem);
	padding-right: clamp(1rem, 5vw, 3.125rem);
}

.cl-header .wp-block-group.alignwide {
	gap: clamp(1rem, 3vw, 2.5rem);
	align-items: center;
	max-width: 100%;
}

.cl-logo {
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--cl-navy-text) !important;
	text-decoration: none !important;
	line-height: 1.15;
	white-space: nowrap;
}

.cl-logo span {
	color: var(--cl-cta);
}

.cl-logo-tagline {
	display: block;
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--cl-navy-text-muted);
	margin-top: 0.15rem;
}

.cl-nav {
	align-items: center;
	gap: clamp(1rem, 2vw, 1.75rem) !important;
	flex: 1 1 auto;
	min-width: 0;
}

.cl-nav-links {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	column-gap: clamp(0.85rem, 1.6vw, 1.4rem);
	justify-content: flex-end;
	min-width: 0;
}

.cl-nav a,
.cl-nav-toggle {
	color: var(--cl-navy-text) !important;
	text-decoration: none !important;
	font-weight: 500;
	font-size: 0.88rem;
	letter-spacing: 0.01em;
	position: relative;
	padding-block: 0.35rem;
	white-space: nowrap;
}

.cl-nav-links > a::after,
.cl-nav-toggle::after {
	content: "";
	position: absolute;
	left: 0;
	right: 100%;
	bottom: 0;
	height: 2px;
	background-color: var(--cl-cta-on-navy);
	transition: right 0.2s ease;
}

.cl-nav-links > a:hover::after,
.cl-has-dropdown:hover .cl-nav-toggle::after,
.cl-nav-toggle[aria-expanded="true"]::after {
	right: 0;
}

.cl-nav a:hover,
.cl-nav-toggle:hover {
	color: var(--cl-cta-on-navy) !important;
}

.cl-nav-actions {
	display: flex;
	align-items: center;
	gap: 1.1rem;
	flex-shrink: 0;
	padding-left: clamp(1rem, 2vw, 1.75rem);
}

.cl-nav-divider {
	width: 1px;
	height: 28px;
	background-color: var(--cl-navy-border);
	flex-shrink: 0;
}

.cl-nav-phone {
	color: var(--cl-navy-text) !important;
	font-weight: 700 !important;
	font-size: 0.92rem;
	white-space: nowrap;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.cl-nav-phone-icon {
	color: var(--cl-cta-on-navy);
}

.cl-nav-phone:hover {
	color: var(--cl-cta-on-navy) !important;
}

.cl-nav-cta.cl-btn-primary {
	display: inline-flex;
	align-items: center;
	padding: 0.6rem 1.3rem;
	font-weight: 700;
	font-size: 0.85rem;
	white-space: nowrap;
}

/* Services dropdown */
.cl-has-dropdown {
	position: relative;
}

.cl-nav-toggle {
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	font-family: inherit;
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	min-height: 44px;
}

.cl-nav-toggle:focus-visible,
.cl-nav a:focus-visible,
.cl-dropdown li a:focus-visible,
.cl-selector-tab:focus-visible,
.cl-mobile-action:focus-visible,
#cl-mobile-menu-toggle:focus-visible,
.cl-mobile-menu a:focus-visible {
	outline: 2px solid var(--cl-cta);
	outline-offset: 2px;
}

.cl-caret {
	font-size: 0.7em;
}

.cl-dropdown {
	list-style: none;
	margin: 0;
	padding: 0.5rem;
	position: absolute;
	top: calc(100% + 0.75rem);
	left: 0;
	min-width: 200px;
	background-color: var(--cl-surface);
	border: 1px solid var(--cl-border);
	border-radius: var(--cl-radius);
	box-shadow: var(--cl-shadow-lg);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
	z-index: 50;
}

.cl-has-dropdown:hover .cl-dropdown,
.cl-has-dropdown:focus-within .cl-dropdown,
.cl-nav-toggle[aria-expanded="true"] + .cl-dropdown {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.cl-dropdown li a {
	display: block;
	padding: 0.5rem 0.75rem;
	border-radius: calc(var(--cl-radius) - 6px);
	white-space: nowrap;
	color: var(--cl-text) !important;
}

.cl-dropdown li a:hover {
	background-color: var(--cl-secondary);
	color: var(--cl-navy-text) !important;
}

/* Mobile quick-action bar */
.cl-mobile-bar {
	display: none;
}

.cl-mobile-menu {
	display: none;
}

@media (max-width: 1260px) {
	.cl-nav {
		display: none !important;
	}

	.cl-float-call,
	#noir-theme-toggle {
		display: none;
	}

	.cl-mobile-bar {
		display: flex;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 70;
		background-color: var(--cl-surface);
		border-top: 1px solid var(--cl-border);
		box-shadow: 0 -6px 20px rgba(16, 24, 32, 0.1);
	}

	.cl-mobile-action {
		flex: 1;
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 0.15rem;
		padding: 0.6rem 0.4rem 0.75rem;
		font-size: 0.75rem;
		font-weight: 700;
		color: var(--cl-text) !important;
		text-decoration: none !important;
		background: none;
		border: none;
		font-family: inherit;
		cursor: pointer;
	}

	.cl-mobile-action-primary {
		color: var(--cl-cta) !important;
	}

	body {
		padding-bottom: 4.5rem;
	}

	.cl-mobile-menu {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 4.2rem;
		z-index: 65;
		background-color: var(--cl-surface);
		border-top: 1px solid var(--cl-border);
		box-shadow: var(--cl-shadow);
		padding: 0.75rem;
		flex-direction: column;
	}

	.cl-mobile-menu:not([hidden]) {
		display: flex;
	}

	.cl-mobile-menu a {
		padding: 0.65rem 0.5rem;
		color: var(--cl-text) !important;
		text-decoration: none !important;
		font-weight: 600;
		border-bottom: 1px solid var(--cl-border);
	}

	.cl-mobile-menu a:last-child {
		border-bottom: none;
	}

	.cl-mobile-action,
	.cl-mobile-menu a {
		min-height: 44px;
	}
}

/* Fine-tuned small-phone treatment: 375–430px covers iPhone SE through
   iPhone 14/15 Pro Max and most Android flagships. Tighten spacing and
   type scale so hero, CTAs, and footer never overflow or crowd tap targets. */
@media (max-width: 430px) {
	.cl-header .wp-block-group.alignwide {
		padding-top: var(--wp--preset--spacing--20) !important;
		padding-bottom: var(--wp--preset--spacing--20) !important;
	}

	.cl-logo {
		font-size: 1.05rem !important;
	}

	.cl-logo-tagline {
		font-size: 0.62rem;
	}

	.cl-mobile-action {
		font-size: 0.7rem;
		padding: 0.55rem 0.3rem 0.7rem;
	}

	.cl-float-call {
		padding: 0.65rem 0.9rem;
		font-size: 0.8rem;
	}

	.cl-section {
		padding-left: 1rem;
		padding-right: 1rem;
	}

	.wp-block-buttons {
		flex-direction: column;
		align-items: stretch !important;
	}

	.wp-block-buttons .wp-block-button {
		width: 100%;
		box-sizing: border-box;
	}

	.wp-block-buttons .wp-block-button__link {
		width: 100%;
		text-align: center;
		min-height: 44px;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.cl-selector-tabs {
		gap: 0.4rem;
	}

	.cl-selector-tab {
		padding: 0.55rem 0.9rem;
		font-size: 0.85rem;
		min-height: 44px;
	}

	.cl-card {
		padding: 1.25rem;
	}

	h1, h2 {
		word-break: break-word;
		overflow-wrap: break-word;
	}

	.cl-journey-step {
		padding-left: 2.75rem;
	}

	.cl-journey-step .cl-step-number {
		width: 2.1rem;
		height: 2.1rem;
		font-size: 0.9rem;
	}

	.cl-footer .wp-block-group.alignwide {
		flex-direction: column;
		align-items: stretch;
	}

	.cl-footer-col {
		min-width: 0;
		flex-basis: auto;
	}

	.cl-legal-links {
		flex-direction: column;
		gap: 0.5rem;
	}

	.cl-service-area-list .cl-badge {
		font-size: 0.8rem;
		padding: 0.3rem 0.75rem;
	}

	.cl-map-placeholder {
		min-height: 180px;
		padding: 1rem;
	}

	table {
		display: block;
		overflow-x: auto;
		max-width: 100%;
	}

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

@media (max-width: 390px) {
	.cl-logo-tagline {
		display: none;
	}

	.cl-mobile-action {
		font-size: 0.65rem;
		gap: 0.1rem;
	}
}

@media (max-width: 375px) {
	.cl-card {
		padding: 1rem;
	}

	.cl-eyebrow {
		font-size: 0.7rem;
	}

	.cl-btn-primary,
	.cl-btn-outline {
		font-size: 0.9rem !important;
	}
}

/* Theme toggle button — fixed bottom-left so it never collides with the
   floating call button which is fixed bottom-right. */
#noir-theme-toggle {
	position: fixed;
	left: 20px;
	bottom: 20px;
	z-index: 60;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	border: 1px solid var(--cl-border);
	background-color: var(--cl-surface);
	color: var(--cl-text);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.25rem;
	cursor: pointer;
	box-shadow: var(--cl-shadow);
}

/* Floating call CTA — fixed bottom-right, offsets kept distinct from the toggle. */
.cl-float-call {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 60;
	background-color: var(--cl-cta);
	color: #fff !important;
	border-radius: 999px;
	padding: 0.85rem 1.4rem;
	font-weight: 700;
	text-decoration: none !important;
	box-shadow: var(--cl-shadow);
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}

@media (max-width: 600px) {
	#noir-theme-toggle {
		width: 46px;
		height: 46px;
		left: 12px;
		bottom: 12px;
	}
	.cl-float-call {
		right: 12px;
		bottom: 12px;
		padding: 0.7rem 1rem;
		font-size: 0.85rem;
	}
	.cl-float-call span.cl-call-label {
		display: none;
	}
}

/* Service selector */
.cl-selector-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin-bottom: 1.5rem;
}

.cl-selector-tab {
	background: var(--cl-surface-alt);
	border: 1px solid transparent;
	border-radius: 999px;
	padding: 0.6rem 1.2rem;
	font-weight: 600;
	cursor: pointer;
	color: var(--cl-text);
}

.cl-selector-tab.is-active {
	background: var(--cl-cta);
	color: #fff;
}

.cl-selector-panel {
	display: none;
}

.cl-selector-panel.is-active {
	display: block;
}

/* Journey steps */
.cl-journey-step {
	position: relative;
	padding-left: 3.25rem;
}

.cl-journey-step .cl-step-number {
	position: absolute;
	left: 0;
	top: 0;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	background: var(--cl-secondary);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
}

/* Reveal-on-scroll */
.cl-reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

.cl-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* Accordion (FAQ) — native <details>/<summary>, keyboard + touch accessible by default */
.cl-accordion {
	max-width: 760px;
	margin: 0 auto;
}

.cl-accordion-item {
	border: 1px solid var(--cl-border);
	border-radius: var(--cl-radius);
	background-color: var(--cl-surface);
	margin-bottom: 0.75rem;
	overflow: hidden;
}

.cl-accordion-item summary {
	cursor: pointer;
	list-style: none;
	padding: 1rem 1.25rem;
	min-height: 44px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	font-weight: 700;
	color: var(--cl-text);
}

.cl-accordion-item summary::-webkit-details-marker {
	display: none;
}

.cl-accordion-item summary::after {
	content: "+";
	font-size: 1.3rem;
	color: var(--cl-cta);
	flex-shrink: 0;
	transition: transform 0.2s ease;
}

.cl-accordion-item[open] summary::after {
	transform: rotate(45deg);
}

.cl-accordion-item summary:focus-visible {
	outline: 2px solid var(--cl-cta);
	outline-offset: -2px;
}

.cl-accordion-item .cl-accordion-body {
	padding: 0 1.25rem 1.1rem;
	color: var(--cl-text-muted);
}

/* Reviews grid — the parent section uses WP's "constrained" layout, which
   caps direct children to the theme content width; override so the grid can
   use the section's full wide width instead of looking squeezed. */
.cl-reviews-track {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 1.5rem;
	width: 100%;
	max-width: 1200px !important;
	margin: 0 auto;
	padding: 0 clamp(1rem, 4vw, 2rem);
}

.cl-reviews-track .cl-card {
	width: 100%;
	box-shadow: var(--cl-shadow-sm);
}

@media (max-width: 640px) {
	.cl-reviews-track {
		grid-template-columns: 1fr;
	}
}

/* Reviews meta */
.cl-stars {
	display: block;
	color: var(--cl-cta);
	letter-spacing: 0.1em;
	margin-bottom: 0.5rem;
}

.cl-review-service {
	color: var(--cl-text-muted);
	font-size: 0.85rem;
	font-weight: 600;
}

/* Service areas */
.cl-service-area-list {
	list-style: none;
	margin: 0 0 1.25rem;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
}

.cl-map-placeholder {
	min-height: 240px;
	border-radius: var(--cl-radius-lg);
	border: 1px solid var(--cl-border);
	background: radial-gradient(circle at 30% 20%, rgba(20, 92, 82, 0.12), transparent 55%),
		radial-gradient(circle at 75% 75%, rgba(16, 42, 64, 0.12), transparent 55%),
		var(--cl-surface-alt);
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 1.5rem;
	font-weight: 600;
	font-size: 1.05rem;
	color: var(--cl-text-muted);
	box-shadow: inset 0 0 0 1px rgba(16, 24, 32, 0.02);
}

/* These pages already open with their own H1 inside the content, so the
   template's automatic post-title would otherwise print the title twice. */
.page-id-3 .wp-block-post-title,
.page-id-101 .wp-block-post-title,
.page-id-102 .wp-block-post-title {
	display: none;
}

/* Legal/text-only pages (Terms, Accessibility, Privacy) read better in a
   narrow column. Scoped to those pages only — do NOT apply site-wide, or it
   crushes wider layouts like the homepage hero. */
.page-id-3 .wp-block-post-content,
.page-id-101 .wp-block-post-content,
.page-id-102 .wp-block-post-content {
	max-width: 750px;
	margin-left: auto;
	margin-right: auto;
}

.wp-block-post-content h1,
.wp-block-post-content h2,
.wp-block-post-content h3 {
	margin-top: 2rem;
	margin-bottom: 0.75rem;
}

.wp-block-post-content > h1:first-child,
.wp-block-post-content > h2:first-child {
	margin-top: 0;
}

.wp-block-post-content p {
	color: var(--cl-text-muted);
	line-height: 1.7;
}

.wp-block-post-content ul,
.wp-block-post-content ol {
	color: var(--cl-text-muted);
	line-height: 1.7;
	padding-left: 1.4rem;
}

/* Footer */
.cl-footer.cl-section.cl-surface-alt {
	background: #1c1610 !important;
	background-image: none !important;
}

.cl-footer .wp-block-group.alignwide {
	column-gap: clamp(1.5rem, 4vw, 3rem);
	row-gap: 2rem;
}

.cl-footer-col {
	min-width: 180px;
	flex: 1 1 180px;
}

.cl-footer-col:first-child {
	flex-basis: 240px;
	min-width: 220px;
}

/* Keep fixed call/toggle buttons from sitting on top of footer text once
   the footer scrolls into view. */
.cl-footer {
	padding-bottom: calc(var(--wp--preset--spacing--50, 3rem) + 70px) !important;
}

.cl-footer h2 {
	letter-spacing: 0.02em;
	color: var(--cl-navy-text);
	margin-bottom: 0.85rem;
}

.cl-footer-col p {
	color: #f0e4d4;
	margin: 0 0 0.65rem;
}

.cl-footer-col a {
	color: #fff8ee !important;
	text-decoration: none !important;
}

.cl-footer-col a:hover {
	color: var(--cl-cta-on-navy) !important;
}

.cl-footer-col a.cl-btn-primary,
.cl-footer-col a.cl-btn-primary:hover {
	color: #fff !important;
}

.cl-footer-col .cl-logo {
	color: var(--cl-navy-text) !important;
}

.cl-footer-cta {
	margin-top: 0.4rem;
	padding: 0.6rem 1.3rem;
	font-size: 0.85rem;
}

.cl-footer-bottom {
	border-top: 1px solid var(--cl-navy-border);
	padding-top: 1.5rem;
	margin-top: 0.5rem;
}

.cl-footer-bottom p {
	color: #eadcc8 !important;
}

.cl-social-links {
	list-style: none;
	display: flex;
	gap: 1rem;
	margin: 0.75rem 0 0;
	padding: 0;
}

.cl-social-links a {
	color: var(--cl-navy-text) !important;
	text-decoration: none !important;
	font-weight: 600;
	font-size: 0.85rem;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}

.cl-social-links svg {
	flex-shrink: 0;
}

.cl-nav-phone,
.cl-mobile-action,
.cl-float-call,
.cl-nav-toggle {
	display: inline-flex;
	align-items: center;
}

.cl-nav-phone svg,
.cl-float-call svg {
	flex-shrink: 0;
}

.cl-mobile-action svg {
	margin-bottom: 0.1rem;
}

#noir-theme-toggle svg {
	display: block;
}

.cl-social-links a:hover {
	color: var(--cl-cta-on-navy) !important;
}

.cl-legal-links {
	display: flex;
	gap: 1rem;
	margin: 0;
}

.cl-legal-links a {
	color: var(--cl-navy-text-muted) !important;
	text-decoration: none !important;
}

.cl-legal-links a:hover {
	color: var(--cl-cta-on-navy) !important;
}

/* Card/legal icon backgrounds (data-URI SVGs; page content strips inline <svg>) */
.cl-icon-wrench { background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20aria-hidden%3D%22true%22%3E%3Cpath%20d%3D%22M14.7%206.3a4%204%200%200%200-5.4%204.8L3%2017.4%205.6%2020l6.3-6.3a4%204%200%200%200%204.8-5.4l-2.6%202.6-2-2%202.6-2.6z%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-position: center; background-size: 22px 22px; }
.cl-icon-snowflame { background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20aria-hidden%3D%22true%22%3E%3Cpath%20d%3D%22M12%202v20M12%202c-1.5%201.7-2.3%203-2.3%204.3S10.5%208.6%2012%209c1.5-.4%202.3-1.4%202.3-2.7S13.5%203.7%2012%202z%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M4.5%208l3%201.7M19.5%208l-3%201.7M4.5%2016l3-1.7M19.5%2016l-3-1.7%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-position: center; background-size: 22px 22px; }
.cl-icon-bolt { background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20aria-hidden%3D%22true%22%3E%3Cpath%20d%3D%22M13%202%204%2014h6l-1%208%209-12h-6l1-8z%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-position: center; background-size: 22px 22px; }
.cl-icon-shield { background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20aria-hidden%3D%22true%22%3E%3Cpath%20d%3D%22M12%202l8%203v6c0%205-3.4%208.7-8%2011-4.6-2.3-8-6-8-11V5l8-3z%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M8.5%2012l2.3%202.3L16%209.5%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-position: center; background-size: 22px 22px; }
.cl-icon-dollar { background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20aria-hidden%3D%22true%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%2F%3E%3Cpath%20d%3D%22M12%207v10M15%209.5c0-1.4-1.3-2.5-3-2.5s-3%201-3%202.3c0%203%206%201.4%206%204.4%200%201.3-1.3%202.3-3%202.3s-3-1.1-3-2.5%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-position: center; background-size: 22px 22px; }
.cl-icon-clock { background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20aria-hidden%3D%22true%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%2F%3E%3Cpath%20d%3D%22M12%207v5l3.5%202%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-position: center; background-size: 22px 22px; }
.cl-icon-chat { background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20aria-hidden%3D%22true%22%3E%3Cpath%20d%3D%22M4%205h16v11H9l-5%204V5z%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-position: center; background-size: 22px 22px; }
.cl-icon-phone { background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20aria-hidden%3D%22true%22%3E%3Cpath%20d%3D%22M6.6%2010.8c1.4%202.8%203.8%205.2%206.6%206.6l2.2-2.2c.3-.3.7-.4%201-.2%201.1.4%202.3.6%203.6.6.6%200%201%20.4%201%201V20c0%20.6-.4%201-1%201C10.6%2021%203%2013.4%203%204c0-.6.4-1%201-1h3.4c.6%200%201%20.4%201%201%200%201.3.2%202.5.6%203.6.1.4%200%20.8-.2%201L6.6%2010.8z%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-position: center; background-size: 22px 22px; }
.cl-icon-clipboard { background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20aria-hidden%3D%22true%22%3E%3Crect%20x%3D%226%22%20y%3D%224%22%20width%3D%2212%22%20height%3D%2217%22%20rx%3D%222%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%2F%3E%3Cpath%20d%3D%22M9%203.5h6v2H9z%22%20fill%3D%22%23c1682b%22%2F%3E%3Cpath%20d%3D%22M9%2012l2%202%204-4.5%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-position: center; background-size: 22px 22px; }
.cl-icon-check { background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20aria-hidden%3D%22true%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%2F%3E%3Cpath%20d%3D%22M8%2012.5l2.5%202.5L16%209.5%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-position: center; background-size: 22px 22px; }
.cl-icon-calendar { background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20aria-hidden%3D%22true%22%3E%3Crect%20x%3D%224%22%20y%3D%225.5%22%20width%3D%2216%22%20height%3D%2214%22%20rx%3D%222%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%2F%3E%3Cpath%20d%3D%22M4%2010h16M8%203.5v3M16%203.5v3%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M9%2014l2%202%204-4.5%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-position: center; background-size: 22px 22px; }
.cl-icon-home { background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20aria-hidden%3D%22true%22%3E%3Cpath%20d%3D%22M4%2011.5%2012%204l8%207.5%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M6%2010v9.5h12V10%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-position: center; background-size: 22px 22px; }
.cl-icon-sparkle { background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20aria-hidden%3D%22true%22%3E%3Cpath%20d%3D%22M12%203l1.8%205.2L19%2010l-5.2%201.8L12%2017l-1.8-5.2L5%2010l5.2-1.8L12%203z%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.4%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-position: center; background-size: 22px 22px; }
.cl-icon-users { background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20aria-hidden%3D%22true%22%3E%3Ccircle%20cx%3D%229%22%20cy%3D%228.5%22%20r%3D%223%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%2F%3E%3Cpath%20d%3D%22M3.5%2019c.6-3%202.7-4.5%205.5-4.5s4.9%201.5%205.5%204.5%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%2F%3E%3Ccircle%20cx%3D%2217%22%20cy%3D%229%22%20r%3D%222.3%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%2F%3E%3Cpath%20d%3D%22M15.5%2014.6c2%20.2%203.6%201.6%204%204.4%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-position: center; background-size: 22px 22px; }
.cl-icon-heart { background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20aria-hidden%3D%22true%22%3E%3Cpath%20d%3D%22M12%2020.5s-7.5-4.6-9.5-9.3C1.3%208%203%205%206.3%205c2%200%203.4%201.1%204.2%202.4C11.3%206.1%2012.7%205%2014.7%205%2018%205%2019.7%208%2018.5%2011.2c-2%204.7-6.5%209.3-6.5%209.3z%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-position: center; background-size: 22px 22px; }
.cl-icon-star { background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20aria-hidden%3D%22true%22%3E%3Cpath%20d%3D%22M12%203l2.6%205.6%206%20.7-4.5%204.1%201.2%206-5.3-3-5.3%203%201.2-6L3.4%209.3l6-.7L12%203z%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-position: center; background-size: 22px 22px; }
.cl-icon-pin { background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20aria-hidden%3D%22true%22%3E%3Cpath%20d%3D%22M12%202C7.6%202%204%205.6%204%2010c0%205.6%206.9%2011%208%2011.7%201.1-.7%208-6.1%208-11.7%200-4.4-3.6-8-8-8z%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2210%22%20r%3D%222.5%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%2F%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-position: center; background-size: 22px 22px; }
.cl-icon-leaf { background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20aria-hidden%3D%22true%22%3E%3Cpath%20d%3D%22M20%204C10%204%204%2010%204%2018c8%200%2014-6%2014-14z%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M6%2018c3-5%207-8%2012-10%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-position: center; background-size: 22px 22px; }
.cl-icon-gift { background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20aria-hidden%3D%22true%22%3E%3Crect%20x%3D%224%22%20y%3D%229%22%20width%3D%2216%22%20height%3D%2211%22%20rx%3D%221.5%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%2F%3E%3Cpath%20d%3D%22M4%209h16v3H4z%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%209v11M12%209c-1-3-4.5-4-5.5-2.2C5.7%208%207.3%209%209%209h3zm0%200c1-3%204.5-4%205.5-2.2C18.3%208%2016.7%209%2015%209h-3z%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-position: center; background-size: 22px 22px; }
.cl-icon-book { background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20aria-hidden%3D%22true%22%3E%3Cpath%20d%3D%22M4%205c2-1%205-1%208%20.5V19c-3-1.5-6-1.5-8-.5V5z%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M20%205c-2-1-5-1-8%20.5V19c3-1.5%206-1.5%208-.5V5z%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-position: center; background-size: 22px 22px; }
.cl-icon-eye { background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20aria-hidden%3D%22true%22%3E%3Cpath%20d%3D%22M2.5%2012S6%205.5%2012%205.5%2021.5%2012%2021.5%2012%2018%2018.5%2012%2018.5%202.5%2012%202.5%2012z%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%222.6%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%2F%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-position: center; background-size: 22px 22px; }
.cl-icon-map { background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20aria-hidden%3D%22true%22%3E%3Cpath%20d%3D%22M3%206l6-2%206%202%206-2v14l-6%202-6-2-6%202V6z%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M9%204v14M15%206v14%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%2F%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-position: center; background-size: 22px 22px; }
.cl-icon-scroll { background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20aria-hidden%3D%22true%22%3E%3Cpath%20d%3D%22M6%204h12v14a2.5%202.5%200%200%201-2.5%202.5H8.5A2.5%202.5%200%200%201%206%2018V4z%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M9%208h6M9%2012h6M9%2016h4%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-position: center; background-size: 22px 22px; }
.cl-icon-accessibility { background-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20aria-hidden%3D%22true%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%225%22%20r%3D%222%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%2F%3E%3Cpath%20d%3D%22M5%209h14M12%209v6m0%200-3.5%206M12%2015l3.5%206M8%2012l4%201.5%204-1.5%22%20stroke%3D%22%23c1682b%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E"); background-repeat: no-repeat; background-position: center; background-size: 22px 22px; }

/* Micro-interactions: card icon lift on card hover */
.cl-card-icon {
	transition: transform 0.25s ease, background-color 0.25s ease;
}

.cl-card:hover .cl-card-icon {
	transform: scale(1.08) rotate(-4deg);
	background: var(--cl-primary);
	color: #fff;
}

.cl-journey-step {
	transition: transform 0.2s ease;
}

.cl-journey-step:hover {
	transform: translateY(-3px);
}

/* Request Service form */
.cl-form {
	max-width: 680px;
	margin: 0 auto;
}

.cl-field {
	margin-bottom: 1.1rem;
}

.cl-field label {
	display: block;
	font-weight: 600;
	font-size: 0.92rem;
	color: var(--cl-text);
	margin-bottom: 0.35rem;
}

.cl-field input,
.cl-field select,
.cl-field textarea {
	width: 100%;
	padding: 0.7rem 0.9rem;
	border-radius: 8px;
	border: 1px solid var(--cl-border);
	background-color: var(--cl-surface);
	color: var(--cl-text);
	font-size: 1rem;
	font-family: inherit;
	min-height: 44px;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.cl-field textarea {
	min-height: 110px;
	resize: vertical;
}

.cl-field input:hover,
.cl-field select:hover,
.cl-field textarea:hover {
	border-color: var(--cl-primary);
}

.cl-field input:focus-visible,
.cl-field select:focus-visible,
.cl-field textarea:focus-visible {
	outline: none;
	border-color: var(--cl-primary);
	box-shadow: 0 0 0 3px rgba(193, 104, 43, 0.25);
}

.cl-form button[type="submit"] {
	border: none;
	cursor: pointer;
}

/* Mobile: legal page heading + icon must not crowd or wrap awkwardly */
@media (max-width: 480px) {
	.cl-legal-content h2 {
		gap: 0.5rem;
		font-size: 1.15rem;
	}

	.cl-legal-icon {
		width: 1.15em;
		height: 1.15em;
	}
}

/* Respect reduced-motion preference across all custom animation/transition/transform effects */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}

	.cl-reveal {
		opacity: 1 !important;
		transform: none !important;
	}

	.cl-card:hover,
	.cl-card:hover .cl-card-icon,
	.cl-journey-step:hover,
	.cl-btn-primary:hover,
	.cl-btn-outline:hover {
		transform: none !important;
	}
}
