/*
Theme Name: SDFR Hello Child
Theme URI: https://design.sandiegofloodrestoration.pro/
Description: Child theme of Hello Elementor for San Diego Flood Restoration / New View Restoration. Site-wide CSS for the UAE header and footer and the page-family components, plus templates for the blog, articles, archives and HTML sitemap that replace U-Design.
Author: SDFR redesign
Template: hello-elementor
Version: 1.2.7
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: sdfr-hello-child
*/

/* ---------- Tokens (mirror the Elementor kit globals) ---------- */
:root {
	--sdfr-navy: #003C68;
	--sdfr-navy-deep: #021F38;
	--sdfr-navy-hover: #00294A;
	--sdfr-gold: #FFC502;
	--sdfr-gold-hover: #E6B000;
	--sdfr-red: #C8102E;
	--sdfr-ink: #1B2433;
	--sdfr-muted: #5A6575;
	--sdfr-link: #0B5C9E;
	--sdfr-surface: #F3F6FA;
	--sdfr-border: #DCE3EC;
	--sdfr-on-dark-muted: #AAB6C5;
	--sdfr-header-h: 128px;
}

/* ---------- Base typography (Hello defaults to the system font stack) ---------- */
body { font-family: "DM Sans", system-ui, sans-serif; color: var(--sdfr-ink); }
h1, h2, h3, h4, h5, h6 { font-family: "Plus Jakarta Sans", system-ui, sans-serif; color: var(--sdfr-navy-deep); }
input, select, textarea, button { font-family: inherit; }

/* ---------- Global accessibility ---------- */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--sdfr-link);
	outline-offset: 2px;
}
.sdfr-dark :where(a, button, summary, [tabindex]):focus-visible,
.ehf-footer :where(a, button):focus-visible {
	outline-color: var(--sdfr-gold);
}
html { scroll-padding-top: calc(var(--sdfr-header-h) + 16px); }
/* Sticky header height per breakpoint (measured); functions.php keeps the exact value while the page is open */
@media (max-width: 1024px) { :root { --sdfr-header-h: 148px; } }
@media (max-width: 767px) { :root { --sdfr-header-h: 130px; } }
/* UAE nav removes outlines on its menu links and submenu toggles; restore a visible focus ring */
.sdfr-nav a.hfe-menu-item:focus-visible,
.sdfr-nav a.hfe-sub-menu-item:focus-visible,
.sdfr-nav .hfe-menu-toggle:focus-visible,
.sdfr-nav .hfe-nav-menu__toggle:focus-visible {
	outline: 3px solid var(--sdfr-link) !important;
	outline-offset: 2px !important;
	border-radius: 4px;
}
body { overflow-x: clip; }

/* ---------- Links (replaces Hello's default #c36) ---------- */
a { color: var(--sdfr-link); }
a:hover, a:focus { color: var(--sdfr-navy); }
.sdfr-dark a:not(.elementor-button) { color: var(--sdfr-gold); }
.sdfr-dark a:not(.elementor-button):hover { color: #fff; }

/* ---------- Sticky header (UAE) ---------- */
#masthead.sdfr-sticky,
.ehf-header #masthead {
	position: sticky;
	top: 0;
	z-index: 999;
}
/* admin-bar and ehf-header are both classes on <body> */
.admin-bar.ehf-header #masthead { top: 32px; }
@media (max-width: 782px) { .admin-bar.ehf-header #masthead { top: 46px; } }
@media (max-width: 600px) { .admin-bar.ehf-header #masthead { top: 0; } }

/* ---------- Media inside Elementor cards fill their column ---------- */
.sdfr-service-card .elementor-widget-image,
.sdfr-post-card .elementor-widget-image,
.sdfr-gallery-item .elementor-widget-image { width: 100%; }
.sdfr-service-card .elementor-widget-image img,
.sdfr-post-card .elementor-widget-image img,
.sdfr-gallery-item .elementor-widget-image img { width: 100% !important; display: block; }
.sdfr-service-card .elementor-widget-image a,
.sdfr-post-card .elementor-widget-image a { display: block; }

/* ---------- Header layout guards ---------- */
.sdfr-mainbar .sdfr-logo { flex: 0 0 auto !important; }
.sdfr-mainbar .sdfr-logo img { width: 64px !important; height: auto; }
.sdfr-mainbar .sdfr-header-cta,
.sdfr-mainbar .sdfr-header-phone,
.sdfr-mainbar .sdfr-header-call-mobile { flex: 0 0 auto; }
.sdfr-header-phone .elementor-icon-box-title { white-space: nowrap; }
@media (max-width: 1024px) {
	.sdfr-mainbar .sdfr-nav { margin-left: auto; }
}
@media (max-width: 767px) {
	.sdfr-mainbar .sdfr-logo img { width: 52px !important; }
	.sdfr-mobile-actions { display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px; }
	.sdfr-mobile-actions > .elementor-element { width: auto !important; max-width: none !important; }
	.sdfr-mobile-actions .elementor-button { width: 100%; padding: 11px 10px !important; white-space: nowrap; }
	.sdfr-hero-ctas .elementor-button { width: 100%; }
}

/* ---------- Compact cards on phones ---------- */
@media (max-width: 767px) {
	.sdfr-issue-card { padding: 14px !important; }
	.sdfr-issue-card .elementor-icon-box-title { font-size: 15px !important; }
	.sdfr-issue-card .elementor-icon-box-description { font-size: 13px !important; line-height: 1.45 !important; }
	.sdfr-issue-card .elementor-icon { font-size: 17px !important; padding: 10px !important; }
	.sdfr-issue-card .elementor-icon-box-icon { margin-bottom: 8px !important; }

	.sdfr-service-card,
	.sdfr-post-card {
		display: grid !important;
		grid-template-columns: 104px minmax(0, 1fr);
		column-gap: 14px;
		row-gap: 4px;
		align-items: start;
		padding: 12px !important;
	}
	.sdfr-service-card > .elementor-widget-image,
	.sdfr-post-card > .elementor-widget-image { grid-column: 1; grid-row: 1 / span 3; }
	.sdfr-service-card > :not(.elementor-widget-image),
	.sdfr-post-card > :not(.elementor-widget-image) { grid-column: 2; }
	.sdfr-service-card > *,
	.sdfr-post-card > * { margin: 0 !important; }
	.sdfr-service-card .elementor-widget-image img,
	.sdfr-post-card .elementor-widget-image img { height: 104px !important; border-radius: 10px !important; }
	.sdfr-service-card .elementor-heading-title,
	.sdfr-post-card .elementor-heading-title { font-size: 17px !important; }
	.sdfr-service-card .elementor-widget-text-editor p,
	.sdfr-post-card .elementor-widget-text-editor p { font-size: 14px !important; line-height: 1.45 !important; margin: 0; }
}

/* ---------- Hero form card sits on a dark section but is white ---------- */
.sdfr-dark .sdfr-hero-form a:not(.elementor-button) { color: var(--sdfr-link); }

/* ---------- Footer copyright ---------- */
.sdfr-footer .hfe-copyright-wrapper,
.sdfr-footer .hfe-copyright-wrapper a,
.sdfr-footer .hfe-copyright-wrapper span { color: var(--sdfr-on-dark-muted) !important; font-size: 14px; }
.sdfr-gallery-item { margin: 0; }
.sdfr-map iframe { border-radius: 14px; }
.sdfr-map--home { height: 100%; min-height: 360px; }
.sdfr-map--home iframe { min-height: 360px !important; }
.sdfr-map--footer iframe { min-height: 220px !important; height: 220px !important; }

/* ---------- UAE nav menu: colours (UAE defaults to the kit accent, gold on white) ---------- */
.sdfr-nav a.hfe-menu-item,
.sdfr-nav a.hfe-sub-menu-item { color: var(--sdfr-ink) !important; }
.sdfr-nav a.hfe-menu-item:hover,
.sdfr-nav a.hfe-menu-item:focus,
.sdfr-nav a.hfe-sub-menu-item:hover,
.sdfr-nav a.hfe-sub-menu-item:focus,
.sdfr-nav .menu-item.current-menu-item > a.hfe-menu-item,
.sdfr-nav .menu-item.current-menu-ancestor > a.hfe-menu-item,
.sdfr-nav .menu-item.current-menu-item > .hfe-has-submenu-container > a,
.sdfr-nav .hfe-active-menu > a,
.sdfr-nav .hfe-active-menu > .hfe-has-submenu-container > a { color: var(--sdfr-navy) !important; }
.sdfr-nav .sub-menu a.hfe-sub-menu-item:hover,
.sdfr-nav .sub-menu a.hfe-sub-menu-item:focus { background: var(--sdfr-surface); }
.sdfr-nav .hfe-nav-menu__toggle { color: var(--sdfr-navy-deep); }

/* ---------- UAE nav menu: desktop dropdowns that never drop the cursor ---------- */
@media (min-width: 1025px) {
	.sdfr-nav .hfe-nav-menu > li.menu-item-has-children > .sub-menu {
		margin-top: 0 !important;
		top: 100% !important;
	}
	/* invisible bridge between the parent item and its panel */
	.sdfr-nav .hfe-nav-menu > li.menu-item-has-children > .sub-menu::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		top: -14px;
		height: 14px;
	}
	.sdfr-nav .hfe-nav-menu .sub-menu .sub-menu::before {
		content: "";
		position: absolute;
		top: 0;
		bottom: 0;
		left: -12px;
		width: 12px;
	}
}
/* hover-intent: keep panels open briefly after the pointer leaves */
@media (min-width: 1025px) {
	.sdfr-nav .hfe-nav-menu li.menu-item-has-children > .sub-menu {
		transition: opacity .15s ease, visibility 0s linear .25s !important;
	}
	.sdfr-nav .hfe-nav-menu li.menu-item-has-children:hover > .sub-menu,
	.sdfr-nav .hfe-nav-menu li.menu-item-has-children:focus-within > .sub-menu {
		visibility: visible !important;
		opacity: 1 !important;
		transition-delay: 0s !important;
	}
	/* long leak-detection list: two columns instead of a page-tall column */
	.sdfr-nav .hfe-nav-menu > li > .sub-menu { width: 260px !important; }
	.sdfr-nav .hfe-nav-menu > li > .sub-menu a.hfe-sub-menu-item { white-space: nowrap; }
	.sdfr-nav .hfe-nav-menu .sdfr-menu-wide > .sub-menu {
		column-count: 2;
		column-gap: 0;
		width: 640px !important;
	}
	.sdfr-nav .hfe-nav-menu .sdfr-menu-wide > .sub-menu a.hfe-sub-menu-item { font-size: 15px; white-space: nowrap; }
	.sdfr-nav .hfe-nav-menu .sdfr-menu-wide > .sub-menu > li { break-inside: avoid; }
}
.sdfr-nav .hfe-nav-menu .sub-menu { box-shadow: 0 12px 28px rgba(2, 31, 56, .14); border-radius: 0 0 10px 10px; }
/* one-line desktop navigation */
@media (min-width: 1025px) {
	.sdfr-nav .hfe-nav-menu__layout-horizontal .hfe-nav-menu { flex-wrap: nowrap; }
	.sdfr-nav .hfe-nav-menu > li > a.hfe-menu-item,
	.sdfr-nav .hfe-nav-menu > li > .hfe-has-submenu-container > a.hfe-menu-item { white-space: nowrap; }
}
@media (min-width: 1025px) and (max-width: 1440px) {
	.sdfr-nav .hfe-nav-menu > li > a.hfe-menu-item,
	.sdfr-nav .hfe-nav-menu > li > .hfe-has-submenu-container > a.hfe-menu-item { padding-left: 11px !important; padding-right: 11px !important; font-size: 15px; }
}
@media (min-width: 1025px) and (max-width: 1180px) {
	.sdfr-nav .hfe-nav-menu > li > a.hfe-menu-item,
	.sdfr-nav .hfe-nav-menu > li > .hfe-has-submenu-container > a.hfe-menu-item { padding-left: 8px !important; padding-right: 8px !important; font-size: 14px; }
	.sdfr-header-phone .elementor-icon-box-description { display: none; }
}

/* ---------- Gravity Forms inside Elementor sections ---------- */
.sdfr-form .gform_wrapper.gravity-theme .gfield_label { font-weight: 600; color: var(--sdfr-ink); font-size: 14px; }
.sdfr-form .gform_wrapper.gravity-theme input[type=text],
.sdfr-form .gform_wrapper.gravity-theme input[type=email],
.sdfr-form .gform_wrapper.gravity-theme input[type=tel],
.sdfr-form .gform_wrapper.gravity-theme select,
.sdfr-form .gform_wrapper.gravity-theme textarea {
	border: 1px solid var(--sdfr-border);
	border-radius: 8px;
	padding: 11px 12px;
	font-size: 16px;
	background: #fff;
	color: var(--sdfr-ink);
}
.sdfr-form .gform_wrapper.gravity-theme textarea { min-height: 96px; height: 96px; }
.sdfr-form .gform_wrapper.gravity-theme .gform_fields { row-gap: 12px; }
.sdfr-form .gform_wrapper.gravity-theme .gform_footer { margin-top: 12px; padding: 0; }
.sdfr-form .gform_wrapper.gravity-theme .gform_button {
	width: 100%;
	background: var(--sdfr-gold);
	color: var(--sdfr-navy-deep);
	border: 0;
	border-radius: 999px;
	padding: 14px 20px;
	font-weight: 700;
	font-size: 16px;
	cursor: pointer;
}
.sdfr-form .gform_wrapper.gravity-theme .gform_button:hover { background: var(--sdfr-gold-hover); }
.sdfr-form .gform_wrapper.gravity-theme .gfield_required { color: var(--sdfr-red); }
.sdfr-form .gform_wrapper.gravity-theme .gfield_description.validation_message { color: var(--sdfr-red); }
.sdfr-dark .sdfr-form .gform_wrapper.gravity-theme .gfield_label { color: #fff; }

/* Gravity Forms legacy markup (forms 2 and 5 use it) */
.sdfr-form .gform_legacy_markup_wrapper { margin: 0; max-width: 100%; }
/* Get a Quote checkbox groups (1.2.6): fieldset + legend from the gform_field_content filter in functions.php; looks like the old label */
.gform_wrapper li.gfield fieldset.sdfr-gf-group { border: 0; margin: 0; padding: 2px 0 0; min-width: 0; }
/* a fieldset keeps child margins inside it; the old label layout let the list's and last checkbox's margins collapse into the field's own */
.gform_wrapper li.gfield fieldset.sdfr-gf-group > .ginput_container > .gfield_checkbox,
.gform_wrapper li.gfield fieldset.sdfr-gf-group > .ginput_container > .gfield_checkbox > li:last-child { margin-bottom: 0; }
/* Floating call / request bar: keyboard focus stops above it, as it already stops below the sticky header (1.2.7, P4) */
html:has(body.has-sdfr-ctabar) { scroll-padding-bottom: calc(104px + env(safe-area-inset-bottom, 0px)); }
@media (max-width: 767px) { html:has(body.has-sdfr-ctabar) { scroll-padding-bottom: calc(84px + env(safe-area-inset-bottom, 0px)); } }
.gform_wrapper li.gfield fieldset.sdfr-gf-group > legend.gfield_label { float: none; width: auto; padding: 0; line-height: 1.3; }
.sdfr-form .gform_legacy_markup_wrapper ul.gform_fields { padding: 0; margin: 0; list-style: none; }
.sdfr-form .gform_legacy_markup_wrapper ul.gform_fields li.gfield { padding: 0 !important; margin: 0 0 12px !important; width: 100% !important; max-width: 100% !important; }
.sdfr-form .gform_legacy_markup_wrapper .gfield_label { font-weight: 600; font-size: 14px; color: var(--sdfr-ink); margin: 0 0 4px; }
.sdfr-form .gform_legacy_markup_wrapper .ginput_complex { display: flex; gap: 10px; width: 100% !important; }
.sdfr-form .gform_legacy_markup_wrapper .ginput_complex > span { flex: 1 1 0; width: auto !important; padding: 0 !important; margin: 0 !important; }
.sdfr-form .gform_legacy_markup_wrapper .ginput_complex label { font-size: 12px; color: var(--sdfr-muted); }
.sdfr-form .gform_legacy_markup_wrapper .ginput_container { margin-top: 0 !important; }
.sdfr-form .gform_legacy_markup_wrapper input[type=text],
.sdfr-form .gform_legacy_markup_wrapper input[type=email],
.sdfr-form .gform_legacy_markup_wrapper input[type=tel],
.sdfr-form .gform_legacy_markup_wrapper select,
.sdfr-form .gform_legacy_markup_wrapper textarea {
	width: 100% !important;
	box-sizing: border-box;
	border: 1px solid var(--sdfr-border);
	border-radius: 8px;
	padding: 11px 12px !important;
	font-size: 16px !important;
	line-height: 1.3;
	background: #fff;
	color: var(--sdfr-ink);
}
.sdfr-form .gform_legacy_markup_wrapper input::placeholder,
.sdfr-form .gform_legacy_markup_wrapper textarea::placeholder { color: #6B7685; opacity: 1; }
.sdfr-form .gform_legacy_markup_wrapper textarea { height: 96px !important; min-height: 96px; }
.sdfr-form .gform_legacy_markup_wrapper .gform_footer { margin: 4px 0 0 !important; padding: 0 !important; }
.sdfr-form .gform_legacy_markup_wrapper .gform_footer input[type=submit],
.sdfr-form .gform_legacy_markup_wrapper .gform_button {
	width: 100% !important;
	margin: 0 !important;
	background: var(--sdfr-gold) !important;
	color: var(--sdfr-navy-deep) !important;
	border: 0 !important;
	border-radius: 999px !important;
	padding: 14px 20px !important;
	font: 700 16px/1.2 "Plus Jakarta Sans", sans-serif !important;
	text-transform: none !important;
	cursor: pointer;
}
.sdfr-form .gform_legacy_markup_wrapper .gform_button:hover { background: var(--sdfr-gold-hover) !important; }
.sdfr-form .gform_legacy_markup_wrapper .gfield_required { color: var(--sdfr-red); }
.sdfr-form .gform_legacy_markup_wrapper div.validation_error,
.sdfr-form .gform_legacy_markup_wrapper .validation_message { color: var(--sdfr-red) !important; border-color: var(--sdfr-red) !important; font-size: 14px; }
.sdfr-form .gform_legacy_markup_wrapper li.gfield_error { background: none !important; border: 0 !important; }
.sdfr-form .gform_legacy_markup_wrapper .gform_confirmation_message { color: var(--sdfr-ink); font-weight: 600; }
@media (max-width: 360px) { .sdfr-form .gform_legacy_markup_wrapper .ginput_complex { flex-direction: column; gap: 12px; } }
/* form 5 uses "left label" placement with hidden labels; drop the reserved label gutter. Visually hidden rather than display:none,
   so the labels still name their fields for screen readers (1.2.7, P1) */
.sdfr-form .gform_legacy_markup_wrapper .left_label li.gfield.hidden_label .gfield_label,
.sdfr-form .gform_legacy_markup_wrapper li.hidden_label > .gfield_label,
.sdfr-form .gform_legacy_markup_wrapper li.hidden_label > fieldset > legend.gfield_label {
	position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important;
	overflow: hidden !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; white-space: nowrap !important; border: 0 !important;
}
.sdfr-form .gform_legacy_markup_wrapper li.hidden_label > fieldset.sdfr-gf-group { padding-top: 0; }
/* Name sub-label asterisks (1.2.7, P2) stay on the label's line; a Gravity Forms mobile rule would make them a block of their own */
.sdfr-form .gform_legacy_markup_wrapper .ginput_complex label .gfield_required { display: inline; }
.sdfr-form .gform_legacy_markup_wrapper .left_label .gfield_label { float: none !important; width: auto !important; }
.sdfr-form .gform_legacy_markup_wrapper .left_label div.ginput_container,
.sdfr-form .gform_legacy_markup_wrapper .left_label div.ginput_complex,
.sdfr-form .gform_legacy_markup_wrapper .left_label .gfield_description { margin-left: 0 !important; width: 100% !important; max-width: 100% !important; float: none !important; }
.sdfr-form .gform_legacy_markup_wrapper .gform_footer.left_label { padding: 0 !important; margin-left: 0 !important; }
.sdfr-form .gform_legacy_markup_wrapper .ginput_complex > span input { width: 100% !important; }
.sdfr-form .gform_legacy_markup_wrapper .ginput_complex.ginput_container--name { flex-wrap: nowrap; }
.sdfr-form .gform_legacy_markup_wrapper .ginput_complex > span { min-width: 0; }
.sdfr-form .gform_legacy_markup_wrapper input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.sdfr-form .gform_legacy_markup_wrapper select,
.sdfr-form .gform_legacy_markup_wrapper textarea { margin-left: 0 !important; margin-right: 0 !important; }

/* ---------- Long unbreakable strings (email address) ---------- */
.elementor-icon-list-text { overflow-wrap: anywhere; }

/* ---------- Company-Info block (ported from U-Design child) ---------- */
.contact-block { display: flex; gap: 10px; margin-bottom: 12px; }
.contact-block .custom-width99 { width: 100%; }
.contact-span { font-size: 14px; }

/* ---------- Classic-editor and WPBakery pages under Hello ---------- */
.page-content > .vc_row,
.page-content .wpb-content-wrapper { margin-left: 0; margin-right: 0; }
body:not(.elementor-page) .site-main { padding-top: 32px; padding-bottom: 48px; }
body:not(.elementor-page) .site-main .page-content { line-height: 1.7; color: var(--sdfr-ink); }
body:not(.elementor-page) .site-main img { height: auto; max-width: 100%; }
/* WPBakery rows use -15px side margins; give the wrapper matching padding so they never overflow */
body:not(.elementor-page) .site-main { padding-left: 15px; padding-right: 15px; }
@media (min-width: 1200px) { body:not(.elementor-page) .site-main { padding-left: 0; padding-right: 0; } }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: 0s !important; animation-duration: 0s !important; scroll-behavior: auto !important; }
}

/* =====================================================================================
   Phase 3: page families and templates
   ===================================================================================== */

/* ---------- Interior page hero (Elementor pages and PHP templates) ---------- */
.sdfr-hero-img img { box-shadow: 0 24px 48px -24px rgba(0, 0, 0, .55); }
.sdfr-breadcrumbs, .sdfr-breadcrumbs .rank-math-breadcrumb p { margin: 0; font: 500 14px/1.4 "DM Sans", system-ui, sans-serif; color: var(--sdfr-on-dark-muted); }
.sdfr-breadcrumbs a { color: #fff !important; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .35); text-underline-offset: 3px; }
.sdfr-breadcrumbs a:hover { color: var(--sdfr-gold) !important; }
.sdfr-breadcrumbs .separator { margin: 0 6px; color: var(--sdfr-on-dark-muted); }
.sdfr-breadcrumbs .last { color: var(--sdfr-on-dark-muted); }

/* ---------- Readable content ---------- */
.sdfr-prose { max-width: 820px; }
.sdfr-prose p { margin: 0 0 16px; }
.sdfr-prose p:last-child { margin-bottom: 0; }
.sdfr-prose h3 { font: 700 22px/1.3 "Plus Jakarta Sans", system-ui, sans-serif; color: var(--sdfr-navy-deep); margin: 30px 0 10px; }
.sdfr-prose h3:first-child { margin-top: 0; }
.sdfr-prose h4 { font: 700 19px/1.3 "Plus Jakarta Sans", system-ui, sans-serif; margin: 24px 0 8px; }
.sdfr-prose ul, .sdfr-prose ol { margin: 0 0 18px; padding: 0; }
.sdfr-prose ul { list-style: none; }
.sdfr-prose ul li { position: relative; padding-left: 30px; margin: 0 0 10px; }
.sdfr-prose ul li::before {
	content: ""; position: absolute; left: 0; top: .32em; width: 18px; height: 18px; border-radius: 50%;
	background: var(--sdfr-navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%23FFC502' d='M6.4 11.2 3.2 8l1.1-1.1 2.1 2.1 5.3-5.3L12.8 4.8z'/%3E%3C/svg%3E") center/12px no-repeat;
}
.sdfr-prose ol { padding-left: 22px; }
.sdfr-prose ol li { margin: 0 0 10px; padding-left: 4px; }
.sdfr-prose a { text-decoration: underline; text-underline-offset: 3px; }
.sdfr-prose blockquote { margin: 0 0 18px; padding: 14px 20px; border-left: 4px solid var(--sdfr-gold); background: var(--sdfr-surface); border-radius: 0 12px 12px 0; }
.sdfr-prose table { width: 100%; border-collapse: collapse; margin: 0 0 18px; display: block; overflow-x: auto; }
.sdfr-prose th, .sdfr-prose td { border: 1px solid var(--sdfr-border); padding: 8px 10px; text-align: left; }
.sdfr-prose img { max-width: 100%; height: auto; border-radius: 12px; }
.sdfr-prose iframe { max-width: 100%; }
.sdfr-inline-btn { display: inline-block; padding: 10px 20px; border-radius: 999px; background: var(--sdfr-navy); color: #fff !important; text-decoration: none !important; font: 700 15px/1.2 "Plus Jakarta Sans", system-ui, sans-serif; }

/* ---------- Process steps ---------- */
.sdfr-step-num .elementor-heading-title {
	display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%;
	background: var(--sdfr-gold); color: var(--sdfr-navy-deep) !important;
}

/* ---------- Contextual CTA band ---------- */
.sdfr-cta-band .elementor-button { white-space: nowrap; }

/* ---------- Link grids (leak detection services, areas) ---------- */
.sdfr-related-card .elementor-icon-box-title a { color: inherit; }

/* ---------- Area directory (Areas Served) ---------- */
.sdfr-area-directory { columns: 4 220px; column-gap: 32px; }
.sdfr-area-letter { break-inside: avoid; margin: 0 0 18px; }
.sdfr-area-letter h3 { font: 800 18px/1.2 "Plus Jakarta Sans", system-ui, sans-serif; color: var(--sdfr-navy); margin: 0 0 6px; padding-bottom: 4px; border-bottom: 2px solid var(--sdfr-gold); display: inline-block; }
.sdfr-area-letter ul { list-style: none; margin: 0; padding: 0; }
.sdfr-area-letter li { margin: 0 0 4px; font-size: 16px; line-height: 1.45; }
.sdfr-area-letter a { display: inline-block; padding: 3px 0; }
@media (max-width: 767px) { .sdfr-area-directory { columns: 2 140px; column-gap: 20px; } }

/* ---------- Maps ---------- */
.sdfr-map--area { border-radius: 16px; overflow: hidden; min-height: 320px; height: 100%; }
.sdfr-map--contact { border-radius: 16px; overflow: hidden; height: 320px; }

/* =====================================================================================
   PHP templates (blog index, archives, article, sitemap)
   ===================================================================================== */
.sdfr-t-main { display: block; }
.sdfr-wrap { max-width: 1240px; margin: 0 auto; padding: 0 24px; }
@media (max-width: 767px) { .sdfr-wrap { padding: 0 16px; } }
.sdfr-template-hero { background: linear-gradient(120deg, #021F38, #003C68); padding: 56px 0 60px; }
@media (max-width: 767px) { .sdfr-template-hero { padding: 28px 0 34px; } }
.sdfr-template-hero .sdfr-eyebrow { margin: 14px 0 8px; font: 700 13px/1.2 "Plus Jakarta Sans", system-ui, sans-serif; letter-spacing: 1.4px; text-transform: uppercase; color: var(--sdfr-gold); }
.sdfr-hero-title { margin: 0; font: 800 46px/1.1 "Plus Jakarta Sans", system-ui, sans-serif; color: #fff !important; max-width: 920px; }
@media (max-width: 1024px) { .sdfr-hero-title { font-size: 38px; } }
@media (max-width: 767px) { .sdfr-hero-title { font-size: 30px; } }
.sdfr-hero-lead { margin: 14px 0 0; max-width: 680px; font-size: 19px; line-height: 1.6; color: var(--sdfr-on-dark-muted); }
.sdfr-hero-meta { margin: 14px 0 0; font-size: 15px; color: var(--sdfr-on-dark-muted); }
.sdfr-t-section { padding: 64px 0; }
.sdfr-t-section--surface { background: var(--sdfr-surface); }
@media (max-width: 767px) { .sdfr-t-section { padding: 40px 0; } }
.sdfr-t-h2 { font: 800 32px/1.15 "Plus Jakarta Sans", system-ui, sans-serif; margin: 0 0 20px; }
@media (max-width: 767px) { .sdfr-t-h2 { font-size: 25px; } }
.sdfr-count { font-weight: 600; color: var(--sdfr-muted); font-size: .6em; }

/* buttons (templates) */
.sdfr-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 22px; border-radius: 999px; font: 700 15px/1.2 "Plus Jakarta Sans", system-ui, sans-serif; text-decoration: none !important; border: 2px solid transparent; transition: background-color .2s, color .2s; }
.sdfr-btn--gold { background: var(--sdfr-gold); color: var(--sdfr-navy-deep) !important; }
.sdfr-btn--gold:hover { background: var(--sdfr-gold-hover); }
.sdfr-btn--outline-light { border-color: rgba(255, 255, 255, .75); color: #fff !important; }
.sdfr-btn--outline-light:hover { background: #fff; color: var(--sdfr-navy-deep) !important; }
.sdfr-btn--outline-navy { border-color: var(--sdfr-navy); color: var(--sdfr-navy) !important; }
.sdfr-btn--outline-navy:hover { background: var(--sdfr-navy); color: #fff !important; }

/* CTA band (template version) */
.sdfr-cta-band--t { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px 28px; border-radius: 16px; background: var(--sdfr-navy); margin: 40px 0 0; }
.sdfr-cta-band--t p { margin: 0; color: var(--sdfr-on-dark-muted); }
.sdfr-cta-band--t .sdfr-cta-band-title { font: 800 21px/1.25 "Plus Jakarta Sans", system-ui, sans-serif; color: #fff; margin-bottom: 4px; }
.sdfr-cta-band-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
@media (max-width: 767px) {
	.sdfr-cta-band--t { flex-direction: column; align-items: stretch; padding: 22px 20px; }
	.sdfr-cta-band-actions { flex-direction: column; }
}

/* post cards + grid */
.sdfr-post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 1024px) { .sdfr-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .sdfr-post-grid { grid-template-columns: 1fr; gap: 16px; } }
.sdfr-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--sdfr-border); border-radius: 16px; overflow: hidden; }
.sdfr-card-media { display: block; position: relative; overflow: hidden; aspect-ratio: 16 / 9; background: var(--sdfr-surface); }
.sdfr-card-media img, .sdfr-card-placeholder { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.sdfr-card-placeholder { background: linear-gradient(120deg, #021F38, #003C68); }
.sdfr-card-body { display: flex; flex-direction: column; gap: 8px; padding: 18px 20px 20px; flex: 1; }
.sdfr-card-cat { margin: 0; font: 700 13px/1.2 "Plus Jakarta Sans", system-ui, sans-serif; letter-spacing: 1.2px; text-transform: uppercase; color: var(--sdfr-red); }
.sdfr-card-title { margin: 0; font: 700 19px/1.3 "Plus Jakarta Sans", system-ui, sans-serif; }
.sdfr-card-title a { color: var(--sdfr-navy-deep); text-decoration: none; }
.sdfr-card-title a:hover { color: var(--sdfr-navy); text-decoration: underline; }
.sdfr-card-excerpt { margin: 0; font-size: 15px; line-height: 1.55; color: var(--sdfr-muted); }
.sdfr-card-foot { margin: auto 0 0; padding-top: 8px; display: flex; justify-content: space-between; align-items: center; gap: 12px; font-size: 14px; color: var(--sdfr-muted); }
.sdfr-more { font: 700 14px/1.3 "Plus Jakarta Sans", system-ui, sans-serif; color: var(--sdfr-link); }
.sdfr-pagination { margin-top: 32px; }
.sdfr-pagination ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0; }
.sdfr-pagination a, .sdfr-pagination span { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; padding: 0 14px; border: 1px solid var(--sdfr-border); border-radius: 10px; text-decoration: none; }
.sdfr-pagination .current { background: var(--sdfr-navy); color: #fff; border-color: var(--sdfr-navy); }
.sdfr-archive-intro { margin-bottom: 32px; }
@media (max-width: 640px) {
	.sdfr-post-card-t { display: grid; grid-template-columns: 104px 1fr; }
	.sdfr-post-card-t .sdfr-card-media { aspect-ratio: auto; height: 100%; min-height: 104px; }
	.sdfr-post-card-t .sdfr-card-body { padding: 12px 14px; }
	.sdfr-post-card-t .sdfr-card-excerpt { display: none; }
	.sdfr-post-card-t .sdfr-card-title { font-size: 16px; }
}

/* article layout */
.sdfr-article-layout { display: grid; grid-template-columns: minmax(0, 760px) 280px; gap: 56px; justify-content: space-between; padding-top: 48px; padding-bottom: 64px; }
.sdfr-article-content { font-size: 18px; line-height: 1.7; max-width: none; }
.sdfr-article-content h2 { font: 800 28px/1.2 "Plus Jakarta Sans", system-ui, sans-serif; margin: 36px 0 12px; }
.sdfr-article-content h2:first-child { margin-top: 0; }
.sdfr-article-content h3 { font-size: 22px; }
.sdfr-article-content iframe { width: 100%; min-height: 320px; border: 0; border-radius: 12px; }
.sdfr-article-figure { margin: 0 0 28px; }
.sdfr-article-figure img { width: 100%; height: auto; border-radius: 16px; display: block; }
.sdfr-article-aside { position: relative; }
.sdfr-aside-sticky { position: sticky; top: calc(var(--sdfr-header-h) + 24px); display: flex; flex-direction: column; gap: 20px; }
.sdfr-toc { border: 1px solid var(--sdfr-border); border-radius: 14px; padding: 18px 20px; background: #fff; }
.sdfr-toc ol { list-style: none; margin: 0; padding: 0; }
.sdfr-toc li { margin: 0 0 8px; font-size: 15px; line-height: 1.4; }
.sdfr-toc .sdfr-toc-l3 { padding-left: 14px; font-size: 14px; }
.sdfr-toc a { text-decoration: none; }
.sdfr-toc a:hover { text-decoration: underline; }
.sdfr-toc-title { margin: 0 0 10px; font: 800 15px/1.2 "Plus Jakarta Sans", system-ui, sans-serif; color: var(--sdfr-navy-deep); }
.sdfr-aside-card { padding: 20px; border-radius: 14px; background: var(--sdfr-surface); display: flex; flex-direction: column; gap: 10px; }
.sdfr-aside-card p { margin: 0; }
.sdfr-aside-title { font: 800 18px/1.2 "Plus Jakarta Sans", system-ui, sans-serif; color: var(--sdfr-navy-deep); }
.sdfr-toc--inline { display: none; margin: 0 0 24px; }
@media (max-width: 1100px) {
	.sdfr-article-layout { grid-template-columns: minmax(0, 1fr); gap: 0; max-width: 808px; padding-top: 32px; }
	.sdfr-article-aside { display: none; }
	.sdfr-toc--inline { display: block; }
}
@media (max-width: 767px) { .sdfr-article-content { font-size: 17px; } .sdfr-article-layout { padding-bottom: 40px; } }
.sdfr-service-links { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; list-style: none; margin: 0; padding: 0; }
.sdfr-service-links a { display: block; height: 100%; padding: 16px 18px; border-radius: 12px; border: 1px solid var(--sdfr-border); background: #fff; font: 700 16px/1.3 "Plus Jakarta Sans", system-ui, sans-serif; color: var(--sdfr-navy-deep); text-decoration: none; }
.sdfr-service-links a:hover { border-color: var(--sdfr-navy); color: var(--sdfr-navy); }
@media (max-width: 1024px) { .sdfr-service-links { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* HTML sitemap */
.sdfr-sitemap-jump { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px; }
.sdfr-sitemap-jump a { padding: 8px 14px; border-radius: 999px; background: var(--sdfr-surface); border: 1px solid var(--sdfr-border); text-decoration: none; font-weight: 600; font-size: 15px; }
.sdfr-sitemap-group { margin: 0 0 40px; }
.sdfr-sitemap-list { list-style: none; margin: 0; padding: 0; columns: 2 280px; column-gap: 32px; }
.sdfr-sitemap-list--cols { columns: 4 200px; }
.sdfr-sitemap-list li { break-inside: avoid; margin: 0 0 8px; line-height: 1.4; }
@media (max-width: 767px) { .sdfr-sitemap-list { columns: 1; } .sdfr-sitemap-list--cols { columns: 2 140px; column-gap: 16px; } }

/* Mobile/tablet menu button stays at the right edge whether the menu is open or closed */
@media (max-width: 1024px) {
	.sdfr-nav .hfe-nav-menu__toggle { margin-left: auto !important; margin-right: 0 !important; }
}

/* Long URLs and email addresses inside page text wrap instead of widening small screens */
.sdfr-prose, .sdfr-article-content { overflow-wrap: break-word; }
.sdfr-prose a, .sdfr-article-content a { overflow-wrap: anywhere; }

/* UAE submenu arrows ask for the old "FontAwesome" icon font, which this theme does not load.
   Draw the chevron in CSS instead (no icon font download). */
.sdfr-nav .hfe-nav-menu .sub-arrow i.fa::before {
	content: "" !important; display: inline-block; width: 7px; height: 7px; font-family: inherit !important;
	border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
	transform: translateY(-3px) rotate(45deg);
}
@media (min-width: 1025px) {
	.sdfr-nav .hfe-nav-menu .sub-menu .sub-arrow i.fa::before { transform: rotate(-45deg); }
}

/* 1.2.0 skip link: #content receives focus programmatically; the landmark itself needs no focus ring */
#content:focus { outline: none; }
/* 1.2.0 Areas Served search */
.sdfr-area-search { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 0 0 24px; }
.sdfr-area-search label { font: 700 15px/1.3 "Plus Jakarta Sans", system-ui, sans-serif; color: var(--sdfr-navy-deep); }
.sdfr-area-search input { flex: 1 1 260px; max-width: 420px; min-height: 48px; padding: 10px 16px; font: 400 16px/1.4 "DM Sans", system-ui, sans-serif; color: var(--sdfr-navy-deep); background: #fff; border: 1px solid var(--sdfr-border); border-radius: 12px; }
.sdfr-area-search input:focus { outline: 3px solid var(--sdfr-gold); outline-offset: 1px; border-color: var(--sdfr-navy); }
.sdfr-area-search p { flex-basis: 100%; margin: 0; min-height: 1.4em; font-size: 15px; color: #4A5B6E; }
.sdfr-area-letter[hidden], .sdfr-area-directory li[hidden] { display: none; }

/* ==== Final design pass (2026-10-14) ==== */
/* Comfortable reading width: Elementor's per-widget width overrides .sdfr-prose { max-width: 820px }, so text in full-width sections ran to ~1,180px lines. */
.sdfr-prose p, .sdfr-prose ul, .sdfr-prose ol, .sdfr-prose blockquote { max-width: 820px; }
/* Fire/smoke pages are excluded from design changes until their service status is confirmed. */
.page-id-1833 .sdfr-prose > *, .page-id-1843 .sdfr-prose > *, .page-id-1884 .sdfr-prose > *, .page-id-1889 .sdfr-prose > *, .page-id-1890 .sdfr-prose > *, .page-id-2085 .sdfr-prose > *, .page-id-2086 .sdfr-prose > *, .page-id-2126 .sdfr-prose > *, .page-id-2133 .sdfr-prose > *, .page-id-2170 .sdfr-prose > *, .page-id-2176 .sdfr-prose > *, .page-id-2177 .sdfr-prose > *, .page-id-2178 .sdfr-prose > * { max-width: none; }
/* Phase 27 (2026-10-15): about 80 characters per line for long-form prose in Elementor page content (was 820px, about 100).
   :where() keeps the specificity of the rule above, so the fire/smoke exclusion still wins; blog articles and header/footer templates keep 820px. */
:where([data-elementor-type="wp-page"] .elementor-widget-text-editor).sdfr-prose p,
:where([data-elementor-type="wp-page"] .elementor-widget-text-editor).sdfr-prose ul,
:where([data-elementor-type="wp-page"] .elementor-widget-text-editor).sdfr-prose ol,
:where([data-elementor-type="wp-page"] .elementor-widget-text-editor).sdfr-prose blockquote { max-width: 660px; }
/* Site footer always rendered: WP Rocket Lazy Render Content gave it content-visibility:auto with no placeholder size, so it collapsed to 0px until reached (blank in full-page captures). */
#colophon[data-wpr-lazyrender], #colophon [data-wpr-lazyrender] { content-visibility: visible; }
/* Footer link lists on phones: full-width groups set in two columns (two 44% columns wrapped items onto three lines). */
@media (max-width: 767px) {
	.sdfr-footer .elementor-element-ee7dd38, .sdfr-footer .elementor-element-0293111 { width: 100% !important; --width: 100%; }
	.sdfr-footer .elementor-element-a96caa4 .elementor-icon-list-items, .sdfr-footer .elementor-element-43ab178 .elementor-icon-list-items { display: block; columns: 2; column-gap: 20px; }
	.sdfr-footer .elementor-element-a96caa4 .elementor-icon-list-item, .sdfr-footer .elementor-element-43ab178 .elementor-icon-list-item { break-inside: avoid; margin-bottom: 8px; }
}
@media (max-width: 360px) { .sdfr-footer .elementor-element-a96caa4 .elementor-icon-list-items, .sdfr-footer .elementor-element-43ab178 .elementor-icon-list-items { columns: 1; } }
/* A photo beside a much longer text column stays in view while reading (desktop only; class set on those photo columns). */
@media (min-width: 1025px) { .e-con.sdfr-sticky-media { position: sticky; top: calc(var(--sdfr-header-h, 128px) + 24px); align-self: flex-start; } }

/* ---------- Header dropdowns (1.2.3, desktop): content-sized white panels, labels never spill past the panel, nested panels flush with their parent item ---------- */
/* Root cause: HFE fixes every submenu at 220px and this file fixed the first level at 260px, while labels are nowrap, so long labels and arrows ran past the white panel onto the dark page behind it. */
@media (min-width: 1025px) {
	.sdfr-nav .hfe-nav-menu .sub-menu {
		width: max-content !important; min-width: 232px; max-width: calc(100vw - 32px);
		/* HFE's keyup handler (and its tablet init) write an inline height:0 on submenus; panels keep their natural height, as on a fresh desktop load. Visibility/opacity still open and close them (1.2.5) */
		height: auto !important;
		padding: 6px 0 !important; background: #fff !important;
		border-radius: 0 0 12px 12px; box-shadow: 0 16px 36px rgba(2, 31, 56, .16), 0 2px 6px rgba(2, 31, 56, .06);
	}
	.sdfr-nav .hfe-nav-menu > li > .sub-menu { width: max-content !important; border-top: 3px solid var(--sdfr-gold); }
	.sdfr-nav .hfe-nav-menu .sub-menu .sub-menu { top: -6px !important; left: 100%; border-radius: 12px; }
	.sdfr-nav .hfe-nav-menu .sub-menu li.menu-item { background: transparent; }
	.sdfr-nav .hfe-nav-menu .sub-menu li.menu-item:not(:last-child) { border-bottom: 1px solid #E8EDF3 !important; }
	.sdfr-nav .hfe-nav-menu .sub-menu a.hfe-sub-menu-item {
		position: relative; display: block; white-space: nowrap;
		padding: 11px 20px !important; font-size: 15px !important; font-weight: 600; line-height: 1.35;
		color: var(--sdfr-navy-deep) !important; background: transparent !important;
		transition: background-color .12s ease, box-shadow .12s ease;
	}
	/* room for the arrow inside the panel */
	.sdfr-nav .hfe-nav-menu .sub-menu li.menu-item-has-children > .hfe-has-submenu-container > a.hfe-sub-menu-item { padding-right: 46px !important; }
	.sdfr-nav .hfe-nav-menu .sub-menu .sub-arrow { position: absolute; right: 18px; top: 50%; margin: 0 !important; padding: 0 !important; line-height: 0; transform: translateY(-50%); }
	.sdfr-nav .hfe-nav-menu .sub-menu li:hover > a.hfe-sub-menu-item,
	.sdfr-nav .hfe-nav-menu .sub-menu li:hover > .hfe-has-submenu-container > a.hfe-sub-menu-item,
	.sdfr-nav .hfe-nav-menu .sub-menu li:focus-within > a.hfe-sub-menu-item,
	.sdfr-nav .hfe-nav-menu .sub-menu li:focus-within > .hfe-has-submenu-container > a.hfe-sub-menu-item {
		background: var(--sdfr-surface) !important; color: var(--sdfr-navy) !important; box-shadow: inset 3px 0 0 var(--sdfr-gold);
	}
	.sdfr-nav .hfe-nav-menu .sub-menu a.hfe-sub-menu-item:focus-visible { outline-offset: -3px !important; border-radius: 0; }
	/* Leak Detection: 25 links in two columns */
	.sdfr-nav .hfe-nav-menu .sdfr-menu-wide > .sub-menu { column-count: 2; column-gap: 0; width: 560px !important; }
	.sdfr-nav .hfe-nav-menu .sdfr-menu-wide > .sub-menu a.hfe-sub-menu-item { font-size: 14.5px !important; padding: 10px 20px !important; }
	/* edge handling (footer script): open to the left, or shift into the viewport */
	.sdfr-nav .hfe-nav-menu .sub-menu li.sdfr-flip > .sub-menu { left: auto !important; right: 100%; }
	.sdfr-nav .hfe-nav-menu .sub-menu li.sdfr-flip > .sub-menu::before { left: auto; right: -12px; }
	/* Escape closes the open panel until the pointer or focus leaves it (footer script) */
	.sdfr-nav .hfe-nav-menu li.menu-item-has-children.sdfr-closed.sdfr-closed > .sub-menu { visibility: hidden !important; opacity: 0 !important; }
	/* Hover intent for nested panels: a short pass over a sibling item does not swap panels, and the open panel stays up briefly while the pointer travels diagonally into it */
	.sdfr-nav .hfe-nav-menu .sub-menu li.menu-item-has-children > .sub-menu { transition: opacity .15s ease .25s, visibility 0s linear .4s !important; }
	.sdfr-nav .hfe-nav-menu .sub-menu li.menu-item-has-children:hover > .sub-menu { transition: opacity .12s ease .1s, visibility 0s linear .1s !important; }
	.sdfr-nav .hfe-nav-menu .sub-menu li.menu-item-has-children:focus-within > .sub-menu { transition: opacity .12s ease, visibility 0s linear 0s !important; }
}
@media (min-width: 1025px) and (prefers-reduced-motion: reduce) {
	.sdfr-nav .hfe-nav-menu .sub-menu, .sdfr-nav .hfe-nav-menu .sub-menu a.hfe-sub-menu-item { transition: none !important; }
}

/* ---------- Floating call / request bar (1.2.4): one global component printed by functions.php on every front-end page ---------- */
.sdfr-ctabar {
	--sdfr-ctabar-h: 72px;
	position: fixed; z-index: 990; left: 50%; bottom: calc(18px + env(safe-area-inset-bottom, 0px));
	width: min(680px, calc(100% - 24px)); transform: translateX(-50%);
	background: #fff; border: 1px solid rgba(2, 31, 56, .08); border-radius: 22px;
	box-shadow: 0 14px 34px rgba(2, 31, 56, .18), 0 2px 8px rgba(2, 31, 56, .08);
	font-family: "Plus Jakarta Sans", "DM Sans", system-ui, sans-serif;
}
.sdfr-ctabar[hidden] { display: none !important; }
.sdfr-ctabar__inner { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 9px; }
.sdfr-ctabar__btn {
	display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 14px;
	border-radius: 16px; font-size: 15px; font-weight: 700; line-height: 1.2; letter-spacing: .005em;
	text-decoration: none !important; white-space: nowrap; box-sizing: border-box;
	transition: background-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.sdfr-ctabar__btn--call { background: #021F38; color: #fff !important; }
.sdfr-ctabar__btn--call .sdfr-ctabar__icon { color: #FFC502; }
.sdfr-ctabar__btn--quote { background: #FFC502; color: #021F38 !important; }
.sdfr-ctabar__btn--quote .sdfr-ctabar__icon { color: #021F38; }
.sdfr-ctabar__btn--call:hover { background: #003C68; }
.sdfr-ctabar__btn--quote:hover { background: #E6B000; }
.sdfr-ctabar__btn:hover { transform: translateY(-1px); box-shadow: 0 6px 14px rgba(2, 31, 56, .18); }
.sdfr-ctabar__btn:focus-visible, .sdfr-ctabar__close:focus-visible { outline: 3px solid #0B5C9E; outline-offset: 2px; }
.sdfr-ctabar__icon { flex: 0 0 auto; }
.sdfr-ctabar__close {
	position: absolute; top: -12px; right: -10px; width: 28px; height: 28px; padding: 0; margin: 0;
	display: flex; align-items: center; justify-content: center; border-radius: 50%; cursor: pointer;
	background: #fff; color: #021F38; border: 1px solid #DCE3EC; box-shadow: 0 2px 8px rgba(2, 31, 56, .18);
}
.sdfr-ctabar__close::before { content: ""; position: absolute; inset: -8px; } /* 44px touch target */
.sdfr-ctabar__close:hover { background: #F3F6FA; }
/* room at the end of the footer (same deep navy) so its last links and the copyright line scroll clear of the bar */
body.has-sdfr-ctabar #colophon { background-color: #021F38; padding-bottom: calc(var(--sdfr-ctabar-space, 104px) + env(safe-area-inset-bottom, 0px)); }
body.has-sdfr-ctabar:not(:has(#colophon)) { padding-bottom: calc(var(--sdfr-ctabar-space, 104px) + env(safe-area-inset-bottom, 0px)); }
/* phones: the header's own Call / Request row is the same pair, so it steps aside while the bar is shown (it returns if the bar is closed) */
@media (max-width: 767px) {
	body.has-sdfr-ctabar .sdfr-mobile-actions { display: none !important; }
	.sdfr-ctabar { bottom: calc(10px + env(safe-area-inset-bottom, 0px)); width: calc(100% - 20px); border-radius: 20px; }
	.sdfr-ctabar__inner { gap: 8px; padding: 7px; }
	.sdfr-ctabar__btn { min-height: 48px; padding: 0 10px; gap: 8px; border-radius: 14px; font-size: 14.5px; }
	body.has-sdfr-ctabar { --sdfr-ctabar-space: 84px; }
}
@media (max-width: 389px) { .sdfr-ctabar__btn { font-size: 14px; gap: 7px; padding: 0 8px; } .sdfr-ctabar__icon { width: 18px; height: 18px; } }
/* narrow phones: shorter visible labels; the full wording stays in each link's accessible name */
@media (max-width: 419px) { .sdfr-ctabar__verb { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; } }
@media (max-width: 359px) {
	.sdfr-ctabar__verb { position: static; width: auto; height: auto; overflow: visible; clip: auto; clip-path: none; }
	.sdfr-ctabar__num, .sdfr-ctabar__more { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
}
/* out of the way while the mobile menu is open, or while typing into a form on a phone */
body:has(.hfe-nav-menu__toggle.hfe-active-menu) .sdfr-ctabar,
body.sdfr-ctabar-typing .sdfr-ctabar { display: none; }
@media (prefers-reduced-motion: reduce) { .sdfr-ctabar__btn { transition: none; } .sdfr-ctabar__btn:hover { transform: none; } }
@media print { .sdfr-ctabar { display: none !important; } body.has-sdfr-ctabar { padding-bottom: 0; } }
