/*
 * Shared design layer, on every page (body.ri-styled). This is the homepage look the team
 * approved, minus the parts that only make sense on the front page: tokens, typography,
 * buttons, header, cards, reviews, FAQ, the closing CTA band, footer and the phone call bar.
 *
 * Front page extras live in home.css (body.ri-home); inner-page pieces, including the compact
 * title band, live in inner.css (body.ri-inner). Both load after this file, so they win on ties.
 */

.ri-styled {
	--rh-red: #eb2329;
	--rh-red-dark: #c4161c;
	--rh-red-light: #ff6a4d;
	--rh-ink: #14171c;
	--rh-text: #3d434c;
	--rh-muted: #6b7280;
	--rh-line: #e5e7eb;
	--rh-surface-2: #f6f5f3;
	--rh-radius: 14px;
	--rh-radius-sm: 10px;
	--rh-shadow: 0 1px 2px rgba(20, 23, 28, .06), 0 8px 24px rgba(20, 23, 28, .08);
	--rh-shadow-lg: 0 2px 4px rgba(20, 23, 28, .06), 0 18px 40px rgba(20, 23, 28, .14);
	--rh-ease: cubic-bezier(.2, .7, .2, 1);
	--rh-head: Raleway, Montserrat, sans-serif;
	--rh-h2: clamp(30px, 2.8vw, 42px);
	color: var(--rh-text);
	-webkit-font-smoothing: antialiased;
}

html:has(body.ri-styled), body.ri-styled { overflow-x: clip; }

/* Typography
   ========================================================================== */

.ri-styled [data-elementor-type="wp-page"] .elementor-heading-title {
	font-family: var(--rh-head) !important;
	text-transform: none !important;
	letter-spacing: -0.015em !important;
}
.ri-styled [data-elementor-type="wp-page"] h2.elementor-heading-title {
	font-size: var(--rh-h2) !important; line-height: 1.15 !important; font-weight: 700 !important; color: var(--rh-ink);
	text-wrap: balance;
}
.ri-styled [data-elementor-type="wp-page"] .ri-dark h2.elementor-heading-title { color: #fff; }
/* The red bar under headings is replaced by the underline (home) or by spacing (inner pages) */
.ri-styled [data-elementor-type="wp-page"] .elementor-widget-heading h2.elementor-heading-title::after { display: none; }
.ri-styled [data-elementor-type="wp-page"] > .e-con:not(.ri-hero) > .e-con-inner > .elementor-widget-heading:first-child { margin-bottom: 18px; }

.ri-styled [data-elementor-type="wp-page"] .elementor-widget-text-editor { color: var(--rh-text); }
.ri-styled [data-elementor-type="wp-page"] .ri-dark .elementor-widget-text-editor,
.ri-styled [data-elementor-type="wp-page"] .ri-red .elementor-widget-text-editor { color: rgba(255, 255, 255, .78); }
.ri-styled [data-elementor-type="wp-page"] .elementor-widget-text-editor p { max-width: 68ch; }

/* Buttons
   ========================================================================== */

.ri-styled .elementor-button,
.rh-btn {
	position: relative; overflow: hidden; isolation: isolate;
	border-radius: 999px !important;
	font-family: Montserrat, sans-serif !important; font-weight: 700 !important;
	text-transform: none !important; letter-spacing: .01em !important;
	transition: transform .2s var(--rh-ease), box-shadow .2s var(--rh-ease), background-color .2s var(--rh-ease), color .2s !important;
}
.ri-styled [data-elementor-type="wp-page"] .elementor-button { padding: 1em 1.8em !important; font-size: 16px !important; }
.ri-styled .elementor-button:hover,
.rh-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(235, 35, 41, .28); }
.ri-styled .elementor-button:hover .elementor-button-icon { transform: none; }

/* Light sweep across red buttons on hover */
.ri-styled .elementor-button:not(.rh-hero-call)::after,
.rh-btn--light::after {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .35) 50%, transparent 70%);
	transform: translateX(-120%); transition: transform .7s var(--rh-ease);
}
.ri-styled .elementor-button:not(.rh-hero-call):hover::after,
.rh-btn--light:hover::after { transform: translateX(120%); }

.rh-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .55em;
	padding: 1em 1.7em; font-size: 17px; line-height: 1.2; text-decoration: none !important; white-space: nowrap;
}
.rh-btn--light { background: #fff; color: var(--rh-red) !important; }
.rh-btn--light:hover { background: var(--rh-ink); color: #fff !important; box-shadow: 0 10px 24px rgba(0, 0, 0, .25); }
.rh-btn--outline { color: #fff !important; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .75); }
.rh-btn--outline:hover { background: #fff; color: var(--rh-red) !important; box-shadow: none; }
.rh-btn--red { background: var(--rh-red); color: #fff !important; }
.rh-btn--red:hover { background: var(--rh-red-dark); color: #fff !important; }
.rh-btn--sm { padding: .8em 1.4em; font-size: 15px; }
.rh-btn--phone::before {
	content: ""; width: 1.05em; height: 1.05em; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Header
   ========================================================================== */

/* Logo: a taller lockup that shrinks once the page is scrolled, as on recoveron.com */
.ri-styled .ri-header-main .elementor-widget-image img {
	display: block; width: auto !important; max-width: none;
	height: var(--rh-logo-h, 88px);
	transition: height .3s var(--rh-ease);
}
.ri-styled .ri-header-main { transition: min-height .3s var(--rh-ease), background-color .3s, box-shadow .3s, padding .3s var(--rh-ease); }

@media (min-width: 1025px) {
	.ri-styled .ri-header-main { min-height: 110px; }

	/* Inner pages: the header is sticky, so anything that changes its height on scroll also
	   changes the document above the viewport. The browser's scroll anchoring then pulls the
	   page back under the trigger point, the class comes off, and the header flickers. Instead
	   the header sticks one top-bar higher, so the red bar scrolls out of view on its own with
	   no layout change at all. --rh-topbar-h is measured in shell.js. */
	.ri-styled:not(.ri-overlay-header) header#masthead {
		top: calc(var(--ri-admin-bar) - var(--rh-topbar-h, 44px));
	}
	/* Nothing else about it may change size on scroll, so the padding site.css tightens stays put */
	.ri-styled:not(.ri-overlay-header).ri-scrolled .ri-header-main {
		padding-top: 12px !important; padding-bottom: 12px !important;
	}

	/* The front page's header is fixed, so it is out of flow and free to resize on scroll. */
	.ri-styled.ri-overlay-header .ri-topbar {
		overflow: hidden; max-height: 60px;
		transition: max-height .3s var(--rh-ease), padding .3s var(--rh-ease), opacity .25s ease;
	}
	.ri-styled.ri-overlay-header.ri-scrolled .ri-topbar {
		max-height: 0; opacity: 0;
		padding-top: 0 !important; padding-bottom: 0 !important;
	}
	.ri-styled.ri-overlay-header.ri-scrolled .ri-header-main { min-height: 90px; }
	.ri-styled.ri-overlay-header.ri-scrolled { --rh-logo-h: 70px; }
	/* Where the header sits over a photo, a gradient keeps the logo and menu readable */
	.ri-styled.ri-overlay-header:not(.ri-scrolled) .ri-header-main {
		background: linear-gradient(180deg, rgba(10, 12, 16, .72) 0%, rgba(10, 12, 16, .4) 70%, rgba(10, 12, 16, 0) 100%) !important;
	}
}
@media (max-width: 1024px) {
	.ri-styled { --rh-logo-h: 64px; }
	/* Only the front page, whose header is fixed; a sticky header that resizes on scroll shifts
	   the page under the reader. */
	.ri-styled.ri-overlay-header.ri-scrolled { --rh-logo-h: 56px; }
}
@media (max-width: 767px) {
	.ri-styled, .ri-styled.ri-scrolled { --rh-logo-h: 50px; }
}

.ri-styled .ri-nav .hfe-nav-menu a.hfe-menu-item {
	position: relative;
	font-family: Montserrat, sans-serif !important; font-size: 17px !important; font-weight: 500 !important;
	letter-spacing: 0; text-transform: none;
}
/* Underline grows from the middle */
.ri-styled .ri-nav .hfe-nav-menu__layout-horizontal > ul > li > a.hfe-menu-item::after,
.ri-styled .ri-nav .hfe-nav-menu__layout-horizontal > ul > li > .hfe-has-submenu-container > a.hfe-menu-item::after {
	content: ""; position: absolute; left: 50%; right: 50%; bottom: .2em; width: auto !important; height: 2px !important;
	opacity: 1 !important; background: var(--rh-red) !important;
	transition: left .25s var(--rh-ease), right .25s var(--rh-ease);
}
.ri-styled .ri-nav .hfe-nav-menu__layout-horizontal > ul > li:hover > a.hfe-menu-item::after,
.ri-styled .ri-nav .hfe-nav-menu__layout-horizontal > ul > li:hover > .hfe-has-submenu-container > a.hfe-menu-item::after { left: 18px; right: 18px; }
.ri-styled .ri-nav .hfe-nav-menu a.hfe-menu-item:hover { color: #ff8a80 !important; }
/* The current page reads as white with the red underline held open, rather than red text */
.ri-styled .ri-nav .hfe-nav-menu li.current-menu-item > a.hfe-menu-item,
.ri-styled .ri-nav .hfe-nav-menu li.current-menu-item > .hfe-has-submenu-container > a.hfe-menu-item,
.ri-styled .ri-nav .hfe-nav-menu li.current-menu-ancestor > .hfe-has-submenu-container > a.hfe-menu-item { color: #fff !important; }
.ri-styled .ri-nav .hfe-nav-menu__layout-horizontal > ul > li.current-menu-item > a.hfe-menu-item::after,
.ri-styled .ri-nav .hfe-nav-menu__layout-horizontal > ul > li.current-menu-item > .hfe-has-submenu-container > a.hfe-menu-item::after,
.ri-styled .ri-nav .hfe-nav-menu__layout-horizontal > ul > li.current-menu-ancestor > .hfe-has-submenu-container > a.hfe-menu-item::after { left: 18px; right: 18px; }

/* No dropdown arrows on the desktop bar; the phone menu keeps them to open its submenus */
@media (min-width: 1025px) {
	.ri-styled .ri-nav .hfe-nav-menu__layout-horizontal > ul > li > .hfe-has-submenu-container > a.hfe-menu-item > .sub-arrow { display: none !important; }
}

/* Dropdowns: white rounded panels */
.ri-styled .ri-nav .hfe-nav-menu__layout-horizontal .sub-menu {
	padding: 8px !important; border: 0 !important; border-radius: 12px; background: #fff !important; min-width: 240px;
	box-shadow: 0 2px 4px rgba(20, 23, 28, .08), 0 18px 44px rgba(20, 23, 28, .22);
}
.ri-styled .ri-nav .hfe-nav-menu__layout-horizontal .sub-menu a.hfe-sub-menu-item {
	padding: 10px 14px !important; border-radius: 8px; color: var(--rh-ink) !important; font-size: 15px !important; font-weight: 600 !important;
	border: 0 !important;
}
.ri-styled .ri-nav .hfe-nav-menu__layout-horizontal .sub-menu a.hfe-sub-menu-item:hover { background: rgba(235, 35, 41, .08) !important; color: var(--rh-red) !important; }
.ri-styled .ri-nav .hfe-nav-menu__layout-horizontal .sub-menu li { border: 0 !important; }

/* Phone number beside Get a Quote, added by shell.js */
.rh-header-phone {
	display: inline-flex; flex-direction: column; justify-content: center; margin-right: 10px; line-height: 1.15;
	color: #fff !important; text-decoration: none !important; font-weight: 800; font-size: 20px; letter-spacing: -.01em; white-space: nowrap;
}
.rh-header-phone small { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--rh-red); }
.rh-header-phone:hover { color: #ff8a80 !important; }
/* Tablets and phones show a single compact line with the handset icon instead */
.rh-header-phone--mobile { display: none; flex-direction: row; align-items: center; gap: 8px; font-size: 16px; font-weight: 600; }
.rh-header-phone--mobile svg { width: 16px; height: 16px; fill: currentColor; }
@media (max-width: 1024px) {
	.rh-header-phone--desk { display: none; }
	.rh-header-phone--mobile { display: inline-flex; }
}
@media (max-width: 560px) {
	.rh-header-phone--mobile { display: none; }
}

.ri-styled .ri-header-main .elementor-widget-button .elementor-button { box-shadow: 0 6px 16px rgba(235, 35, 41, .35); padding: 15px 26px !important; font-size: 15px !important; }
.ri-styled.ri-scrolled .ri-header-main {
	background: rgba(14, 17, 22, .9) !important;
	-webkit-backdrop-filter: saturate(160%) blur(14px); backdrop-filter: saturate(160%) blur(14px);
}

/* Scroll progress bar (width set by shell.js) */
.rh-progress {
	position: fixed; left: 0; top: 0; z-index: 10000; width: 100%; height: 3px; pointer-events: none;
	background: linear-gradient(90deg, var(--rh-red), var(--rh-red-light)); box-shadow: 0 0 10px rgba(235, 35, 41, .6);
	transform-origin: 0 50%; transform: scaleX(var(--rh-scroll, 0));
}
.admin-bar .rh-progress { top: 32px; }

/* Cards
   ========================================================================== */

.ri-styled .ri-card:not(.ri-card--dark) {
	position: relative; overflow: hidden;
	border: 0 !important; border-radius: var(--rh-radius); background: #fff; box-shadow: var(--rh-shadow-lg);
	transition: transform .25s var(--rh-ease), box-shadow .25s var(--rh-ease);
}
.ri-styled .ri-card::before {
	content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; z-index: 1;
	background: linear-gradient(90deg, var(--rh-red), var(--rh-red-light), var(--rh-red)); background-size: 200% 100%;
	transition: background-position .6s var(--rh-ease);
}
.ri-styled .ri-card:hover::before { background-position: 100% 0; }
.ri-styled .ri-card:not(.ri-card--dark):hover { transform: translateY(-4px); box-shadow: 0 4px 8px rgba(20, 23, 28, .08), 0 26px 50px rgba(20, 23, 28, .18); }
.ri-styled .ri-card h3.elementor-heading-title {
	font-size: 21px !important; line-height: 1.25 !important; font-weight: 700 !important; color: var(--rh-ink) !important;
}
.ri-styled .ri-card h3.elementor-heading-title a { color: inherit; text-decoration: none; transition: color .2s ease; }
.ri-styled .ri-card h3.elementor-heading-title a:hover,
.ri-styled .ri-card h3.elementor-heading-title a:focus-visible { color: var(--rh-red); }

/* Check lists inside cards: small round red ticks */
.ri-styled [data-elementor-type="wp-page"] .ri-card .elementor-widget-text-editor ul:not([class]) > li { padding-left: 30px; font-size: 16px; }
.ri-styled [data-elementor-type="wp-page"] .ri-card .elementor-widget-text-editor ul:not([class]) > li + li { margin-top: .45em; }
.ri-styled [data-elementor-type="wp-page"] .ri-card .elementor-widget-text-editor ul:not([class]) > li::before {
	left: 0; top: .3em; width: 19px; height: 19px; border: 0; border-radius: 50%; transform: none;
	background: rgba(235, 35, 41, .12) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23eb2329' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 11px no-repeat;
}

/* A bold first line becomes the card title */
.ri-styled .ri-card .elementor-widget-text-editor p > strong:first-child {
	display: block; margin-bottom: 6px; font-family: var(--rh-head); font-size: 21px; line-height: 1.25; font-weight: 700; color: var(--rh-ink); letter-spacing: -0.01em;
}
.ri-styled .ri-card .elementor-widget-text-editor p > strong:first-child + br { display: none; }
.ri-styled .ri-card .elementor-widget-text-editor p { font-size: 16px; line-height: 1.65; }

/* Cards on a dark band */
.ri-styled .ri-card--dark {
	position: relative; overflow: hidden;
	border: 1px solid rgba(255, 255, 255, .08) !important; border-radius: var(--rh-radius);
	background: rgba(255, 255, 255, .04) !important; box-shadow: none;
	-webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
	transition: transform .25s var(--rh-ease), background-color .25s, box-shadow .25s var(--rh-ease);
}
.ri-styled .ri-card--dark:hover { transform: translateY(-4px); background: rgba(255, 255, 255, .07) !important; box-shadow: 0 24px 50px rgba(0, 0, 0, .4); }
.ri-styled .ri-card--dark h3.elementor-heading-title { color: #fff !important; }
.ri-styled .ri-card--dark .elementor-widget-text-editor ul > li::before { background-color: rgba(235, 35, 41, .22) !important; }
.ri-styled .ri-card--dark .elementor-widget-text-editor a { color: rgba(255, 255, 255, .88) !important; text-decoration: none !important; transition: color .2s; }
.ri-styled .ri-card--dark .elementor-widget-text-editor a:hover { color: #fff !important; }

/* Accordions: white rounded panel with a chevron
   ========================================================================== */

.ri-styled .e-n-accordion-item { border-radius: 12px; background: #fff; box-shadow: var(--rh-shadow); overflow: hidden; }
.ri-styled .e-n-accordion-item-title { border: 0 !important; background: #fff; padding: 20px 22px !important; }
.ri-styled .e-n-accordion-item-title-text {
	font-family: var(--rh-head) !important; font-size: 18px !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important;
	color: var(--rh-ink) !important;
}
.ri-styled .e-n-accordion-item-title:hover .e-n-accordion-item-title-text { color: var(--rh-red) !important; }
.ri-styled .e-n-accordion-item-title-icon svg { fill: var(--rh-red) !important; }
.ri-styled .e-n-accordion-item > [role="region"] { border: 0 !important; border-top: 1px solid var(--rh-line) !important; }

/* Reviews
   ========================================================================== */

.ri-styled [data-elementor-type="wp-page"] > .e-con:has(.ri-tcarousel) { background: var(--rh-surface-2) !important; }
.ri-styled .ri-tcard {
	border: 0; border-radius: var(--rh-radius); box-shadow: var(--rh-shadow); overflow: hidden;
	transition: transform .3s var(--rh-ease), box-shadow .3s var(--rh-ease);
}
.ri-styled .ri-tcard::after {
	content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px;
	background: linear-gradient(90deg, var(--rh-red), var(--rh-red-light));
}
.ri-styled .ri-tcard::before { left: auto; right: 18px; top: -4px; }
.ri-styled .ri-tcard:hover { transform: translateY(-4px); box-shadow: var(--rh-shadow-lg); }
.ri-styled .ri-tcard__stars { color: #ffb400; font-size: 18px; letter-spacing: 2px; }
.ri-styled .ri-tcard__text { color: var(--rh-text); }
.ri-styled .ri-tcard__author {
	font-family: var(--rh-head); font-size: 18px; font-weight: 700; letter-spacing: -0.01em; text-transform: none; color: var(--rh-ink);
}
.ri-styled .ri-tcarousel button.ri-tcard__more {
	font-family: Montserrat, sans-serif; font-size: 14px !important; letter-spacing: 0; text-transform: none;
}
.ri-styled .ri-tcard .ri-btn {
	padding: 9px 16px; border-radius: 999px; font-family: Montserrat, sans-serif; font-size: 13px; letter-spacing: 0; text-transform: none;
}
.ri-styled .ri-tcarousel button.ri-tcarousel__arrow {
	border-radius: 50% !important; border: 0 !important; background: #fff !important; box-shadow: var(--rh-shadow) !important;
	color: var(--rh-ink) !important;
}
.ri-styled .ri-tcarousel button.ri-tcarousel__arrow:hover { background: var(--rh-red) !important; color: #fff !important; }
.ri-styled .ri-tcarousel .ri-tcarousel__dots button { border-radius: 999px !important; }

/* FAQ
   ========================================================================== */

.rh-faq-section { background: var(--rh-surface-2); padding: 90px 20px; }
.rh-faq-wrap { max-width: 1240px; margin: 0 auto; }
.rh-section-head { max-width: 720px; margin: 0 auto 40px; text-align: center; }
.rh-eyebrow {
	display: inline-block; margin-bottom: .9em;
	font-size: 13px; line-height: 1.4; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--rh-red);
}
.ri-styled .rh-section-head h2 {
	margin: 0; font-family: var(--rh-head); font-size: var(--rh-h2); line-height: 1.15; font-weight: 700;
	letter-spacing: -0.015em; text-transform: none; color: var(--rh-ink); text-wrap: balance;
}
.rh-faq { columns: 2; column-gap: 32px; }
.rh-faq__item { break-inside: avoid; margin-bottom: 12px; }
.rh-faq__item { border-radius: 12px; background: #fff; box-shadow: var(--rh-shadow); }
.rh-faq__item summary { position: relative; padding: 20px 56px 20px 22px; cursor: pointer; list-style: none; }
.rh-faq__item summary::-webkit-details-marker { display: none; }
.ri-styled .rh-faq__item summary h3 {
	margin: 0; font-family: var(--rh-head); font-size: 18px; line-height: 1.35; font-weight: 700;
	letter-spacing: 0; text-transform: none; color: var(--rh-ink); transition: color .2s;
}
.ri-styled .rh-faq__item summary:hover h3 { color: var(--rh-red); }
.rh-faq__item summary::after {
	content: ""; position: absolute; right: 22px; top: 50%; width: 12px; height: 12px; margin-top: -8px;
	border-right: 2.5px solid var(--rh-red); border-bottom: 2.5px solid var(--rh-red);
	transform: rotate(45deg); transition: transform .25s var(--rh-ease), margin .25s var(--rh-ease);
}
.rh-faq__item[open] summary::after { transform: rotate(225deg); margin-top: -2px; }
.rh-faq__item p { margin: 0; padding: 0 22px 20px; font-size: 16px; line-height: 1.65; color: var(--rh-text); }

/* Closing quote band
   ========================================================================== */

.rh-cta-band {
	position: relative; overflow: hidden; padding: 64px 20px;
	background:
		repeating-linear-gradient(135deg, rgba(255, 255, 255, .05) 0 2px, transparent 2px 22px),
		radial-gradient(700px 300px at 85% 50%, rgba(255, 255, 255, .18), transparent 70%),
		linear-gradient(120deg, var(--rh-red) 0%, #a9131a 100%);
}
.rh-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px; max-width: 1240px; margin: 0 auto; }
.ri-styled .rh-cta h2 {
	margin: 0 0 .25em; font-family: var(--rh-head); font-size: clamp(28px, 2.6vw, 40px); line-height: 1.15; font-weight: 800;
	letter-spacing: -0.015em; text-transform: none; color: #fff;
}
.rh-cta h2::after { display: none !important; }
.ri-styled .rh-cta p { margin: 0; color: rgba(255, 255, 255, .9); font-size: 18px; }
.rh-cta__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.rh-cta .rh-btn--light { animation: rh-ring 2.4s ease-out infinite; }

/* Footer
   ========================================================================== */

.ri-styled .ri-footer { position: relative; border-top: 0 !important; }
.ri-styled .ri-footer::before {
	content: ""; position: absolute; left: 0; right: 0; top: 0; z-index: 1; height: 4px;
	background: linear-gradient(90deg, var(--rh-red), var(--rh-red-light), var(--rh-red));
}
.ri-styled .ri-footer .elementor-heading-title {
	font-family: Montserrat, sans-serif !important; font-size: 12px !important; line-height: 1.3 !important; font-weight: 700 !important;
	letter-spacing: .14em !important; text-transform: uppercase !important; color: var(--rh-red) !important;
}
.ri-styled .ri-footer .ri-menu-list a { color: #e4e4e7; }
.ri-styled .ri-footer .ri-menu-list a:hover { color: #fff; transform: translateX(3px); }

/* Phone call bar
   ========================================================================== */

.rh-mobile-bar { display: none; }

/* Motion
   ========================================================================== */

@keyframes rh-fade-up { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes rh-ring { 0% { box-shadow: 0 0 0 0 rgba(255, 255, 255, .6); } 70%, 100% { box-shadow: 0 0 0 16px rgba(255, 255, 255, 0); } }

@media (prefers-reduced-motion: reduce) {
	.ri-styled *, .ri-styled *::before, .ri-styled *::after { animation: none !important; transition: none !important; }
	.rh-progress { display: none; }
}

/* Phone
   ========================================================================== */

@media (max-width: 767px) {
	.ri-styled [data-elementor-type="wp-page"] h2.elementor-heading-title { font-size: 28px !important; }

	.rh-faq-section { padding: 56px 16px; }
	.rh-section-head { margin-bottom: 28px; }
	.ri-styled .rh-section-head h2 { font-size: 28px; }
	.rh-faq { columns: 1; }
	.rh-faq__item { margin-bottom: 10px; }
	.rh-faq__item summary { padding: 16px 48px 16px 16px; }
	.ri-styled .rh-faq__item summary h3 { font-size: 16px; }
	.rh-faq__item summary::after { right: 18px; }
	.rh-faq__item p { padding: 0 16px 16px; font-size: 15px; }

	.rh-cta-band { padding: 44px 16px; }
	.rh-cta { flex-direction: column; align-items: stretch; }
	.rh-cta__actions .rh-btn { flex: 1 1 100%; }

	/* Call bar slides up once the first screen is scrolled past */
	.rh-mobile-bar {
		display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 1000;
		padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
		background: rgba(20, 23, 28, .96); box-shadow: 0 -6px 20px rgba(0, 0, 0, .25);
		transform: translateY(110%); transition: transform .35s var(--rh-ease);
	}
	body.rh-past-hero .rh-mobile-bar { transform: none; }
	.rh-mobile-bar a {
		display: flex; align-items: center; justify-content: center; min-height: 48px;
		border-radius: 999px; font-weight: 700; font-size: 16px; text-decoration: none; color: #fff;
	}
	.rh-mobile-bar__call { background: var(--rh-red); }
	.rh-mobile-bar__quote { box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .6); }
	body.ri-styled { padding-bottom: 72px; }

	/* Chat button rides above the call bar once the bar has slid up */
	.a1ai-global-chatbot-container.a1ai-position-br { bottom: 16px !important; right: 12px !important; transition: bottom .35s var(--rh-ease); }
	body.rh-past-hero .a1ai-global-chatbot-container.a1ai-position-br { bottom: 88px !important; }
}
