/*
 * Recoveron Industrial site styles.
 * Typography and base colours live in Elementor > Site Settings; this file adds the
 * "industrial" design layer (cards, feature bands, heroes, motion) and styles shortcode output.
 */

:root {
	--ri-red: #eb2329;
	--ri-red-deep: #9e1016;
	--ri-dark: #1a1a1a;
	--ri-charcoal: #1e1e1e;
	--ri-text: #333333;
	--ri-light: #f5f5f5;
	--ri-border: #e6e6e6;
	--ri-radius: 3px;
	--ri-condensed: "Barlow Condensed", "Arial Narrow", sans-serif;
	--ri-shadow: 0 14px 36px rgba(17, 17, 17, 0.08);
	--ri-shadow-lg: 0 26px 60px rgba(17, 17, 17, 0.16);
	--ri-ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	--ri-admin-bar: var(--wp-admin--admin-bar--height, 0px);
}

html {
	scroll-behavior: smooth;
}

::selection {
	background: var(--ri-red);
	color: #fff;
}

/* =====================================================================
   Header
   ===================================================================== */
header#masthead {
	position: sticky !important;
	top: var(--ri-admin-bar);
	z-index: 1000;
}

.ri-overlay-header header#masthead {
	position: fixed !important;
	left: 0;
	right: 0;
}

.ri-header-main {
	transition: background-color 0.3s ease, padding 0.3s ease, box-shadow 0.3s ease;
}

.ri-overlay-header:not(.ri-scrolled) .ri-header-main {
	background: linear-gradient(rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0)) !important;
}

.ri-scrolled .ri-header-main {
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.28);
}

@media (min-width: 1025px) {
	.ri-scrolled .ri-header-main {
		padding-top: 6px !important;
		padding-bottom: 6px !important;
	}
}

/* Desktop menu */
.ri-nav .hfe-nav-menu a.hfe-menu-item {
	color: #fff !important;
	font-family: var(--ri-condensed) !important;
	font-size: 18px !important;
	font-weight: 600 !important;
	letter-spacing: 1.2px;
	text-transform: uppercase;
}

.ri-nav .hfe-nav-menu a.hfe-menu-item:hover,
.ri-nav .hfe-nav-menu li.current-menu-item > a.hfe-menu-item,
.ri-nav .hfe-nav-menu li.current-menu-item > .hfe-has-submenu-container > a.hfe-menu-item,
.ri-nav .hfe-nav-menu li.current-menu-ancestor > .hfe-has-submenu-container > a.hfe-menu-item {
	color: var(--ri-red) !important;
}

.ri-nav a.hfe-menu-item::after {
	background-color: var(--ri-red) !important;
	height: 3px !important;
}

.ri-nav .hfe-nav-menu .sub-menu {
	background: var(--ri-charcoal) !important;
	border-top: 3px solid var(--ri-red);
	box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35);
	min-width: 280px;
}

.ri-nav .hfe-nav-menu__layout-horizontal .sub-menu {
	transform: translateY(10px);
	transition: opacity 0.2s ease, transform 0.25s var(--ri-ease), visibility 0.2s;
}

.ri-nav .hfe-nav-menu__layout-horizontal li:hover > .sub-menu {
	transform: none;
}

.ri-nav .hfe-nav-menu .sub-menu a.hfe-sub-menu-item {
	color: #fff !important;
	font-family: Montserrat, sans-serif !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	letter-spacing: 0;
	text-transform: none;
	padding: 11px 20px;
	transition: color 0.2s ease, background-color 0.2s ease, padding-left 0.2s ease;
}

.ri-nav .hfe-nav-menu .sub-menu a.hfe-sub-menu-item:hover,
.ri-nav .hfe-nav-menu .sub-menu li.current-menu-item > a.hfe-sub-menu-item {
	color: var(--ri-red) !important;
	background: rgba(255, 255, 255, 0.04) !important;
	padding-left: 26px;
}

/* Third-level flyouts under the last top-level item open to the left */
.ri-nav .hfe-nav-menu li.ri-flyout-left .menu-item-has-children > .sub-menu {
	left: auto !important;
	right: 100%;
}

/* Mobile / tablet menu */
.ri-header-main .ri-nav-mobile {
	flex: 0 0 auto !important;
	width: 44px !important;
	max-width: 44px !important;
	margin-left: auto;
}

.ri-nav-mobile .hfe-nav-menu__toggle {
	margin-left: auto;
	padding: 6px !important;
	border: 1px solid rgba(255, 255, 255, 0.35) !important;
	border-radius: var(--ri-radius);
}

.ri-nav .hfe-nav-menu__toggle .hfe-nav-menu-icon,
.ri-nav .hfe-nav-menu__toggle .hfe-nav-menu-icon i {
	color: #fff !important;
}

.ri-nav .hfe-nav-menu__toggle .hfe-nav-menu-icon svg {
	fill: #fff !important;
}

.ri-nav-mobile nav.hfe-nav-menu__layout-expandible,
.ri-nav-mobile nav.hfe-nav-menu__layout-expandible .sub-menu {
	background: var(--ri-charcoal) !important;
}

.ri-nav-mobile nav.hfe-nav-menu__layout-expandible {
	box-shadow: 0 16px 30px rgba(0, 0, 0, 0.3);
	border-top: 3px solid var(--ri-red);
}

.ri-nav-mobile nav .menu-item {
	border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
}

.ri-nav-mobile nav a.hfe-menu-item,
.ri-nav-mobile nav a.hfe-sub-menu-item {
	color: #fff !important;
	padding-left: 20px !important;
	padding-right: 20px !important;
}

.ri-nav-mobile nav .sub-menu a.hfe-sub-menu-item {
	padding-left: 36px !important;
}

.ri-nav-mobile .hfe-menu-toggle {
	border-color: rgba(255, 255, 255, 0.25) !important;
	color: #fff !important;
}

@media (max-width: 1024px) {
	.ri-header-main .elementor-widget-button {
		margin-left: auto;
	}

	.ri-header-main .ri-nav-mobile {
		margin-left: 12px;
	}
}

@media (max-width: 767px) {
	.ri-header-main .ri-nav-mobile {
		margin-left: auto;
	}
}

/* =====================================================================
   Page building blocks
   ===================================================================== */

/* Red accent bar under section headings */
[data-elementor-type="wp-page"] .elementor-widget-heading h2.elementor-heading-title::after {
	content: "";
	display: block;
	width: 64px;
	height: 4px;
	margin-top: 20px;
	background: var(--ri-red);
}

[data-elementor-type="wp-page"] .ri-center h2.elementor-heading-title::after {
	margin-left: auto;
	margin-right: auto;
}

/* Heroes */
/* Overlay 30 points lighter than the one set in Elementor (0.55 to 0.88), so the photo shows */
.ri-hero::before,
.ri-hero > .elementor-background-slideshow::before,
.ri-hero > .e-con-inner > .elementor-background-slideshow::before {
	background-image: linear-gradient(180deg, rgba(12, 12, 12, 0.25) 0%, rgba(12, 12, 12, 0.58) 100%) !important;
}

.ri-hero h1.elementor-heading-title {
	font-size: clamp(38px, 6.2vw, 94px);
	line-height: 0.92;
	letter-spacing: 2px;
}

.ri-hero h1.elementor-heading-title::before {
	content: "";
	display: block;
	width: 72px;
	height: 5px;
	margin: 0 auto 28px;
	background: var(--ri-red);
}

.ri-hero h2.elementor-heading-title::after {
	display: none;
}

.ri-hero h3.elementor-heading-title,
.ri-hero .elementor-widget-text-editor {
	font-family: var(--ri-condensed);
	font-size: clamp(19px, 1.9vw, 27px);
	font-weight: 600;
	letter-spacing: 3px;
	line-height: 1.35;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.9) !important;
}

.ri-hero .elementor-heading-title,
.ri-hero .elementor-widget-text-editor {
	text-shadow: 0 2px 18px rgba(0, 0, 0, 0.35);
}

.ri-hero .elementor-button {
	padding: 20px 46px;
	font-size: 19px;
	box-shadow: 0 14px 34px rgba(235, 35, 41, 0.35);
}

/* Buttons */
.elementor-button {
	transition: transform 0.25s var(--ri-ease), box-shadow 0.25s var(--ri-ease), background-color 0.25s ease, color 0.25s ease;
}

.elementor-button:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 26px rgba(17, 17, 17, 0.22);
}

.elementor-button .elementor-button-icon {
	transition: transform 0.25s var(--ri-ease);
}

.elementor-button:hover .elementor-button-icon {
	transform: translateX(5px);
}

/* Text-style button ("Learn More ›") */
.ri-text-btn .elementor-button {
	background: transparent !important;
	color: var(--ri-red) !important;
	padding: 4px 0 !important;
	letter-spacing: 2px;
	box-shadow: none !important;
}

.ri-text-btn .elementor-button:hover {
	color: var(--ri-dark) !important;
	transform: none;
}

/* Cards (text-only columns) */
.ri-card {
	border-top: 4px solid var(--ri-red) !important;
	border-radius: var(--ri-radius);
	box-shadow: var(--ri-shadow);
	transition: transform 0.35s var(--ri-ease), box-shadow 0.35s var(--ri-ease);
}

.ri-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--ri-shadow-lg);
}

.ri-card--dark {
	border: 1px solid #2e2e2e;
	box-shadow: none;
}

.ri-card--dark:hover {
	box-shadow: 0 26px 54px rgba(0, 0, 0, 0.45);
}

.ri-card h3.elementor-heading-title {
	font-size: 26px;
}

/* Photo + text feature rows */
.ri-feature .elementor-heading-title,
.ri-feature .elementor-widget-text-editor {
	text-align: left !important;
}

.ri-feature .ri-center h2.elementor-heading-title::after {
	margin-left: 0;
}

.ri-feature .elementor-widget-button {
	text-align: left !important;
}

.ri-feature .elementor-widget-button .elementor-button-wrapper,
.ri-feature .elementor-widget-button.elementor-align-center .elementor-button {
	justify-content: flex-start;
	margin-left: 0;
	margin-right: auto;
}

.ri-feature h3.elementor-heading-title {
	font-size: clamp(26px, 2.4vw, 34px);
}

.ri-photo img {
	border-radius: var(--ri-radius);
	box-shadow: 0 26px 54px rgba(17, 17, 17, 0.18);
	transition: transform 0.6s var(--ri-ease), box-shadow 0.6s var(--ri-ease);
}

.ri-feature .ri-photo img {
	box-shadow: 18px 18px 0 var(--ri-red), 0 26px 54px rgba(17, 17, 17, 0.18);
}

.ri-photo img:hover {
	transform: scale(1.015);
}

@media (max-width: 767px) {
	.ri-feature .ri-photo img {
		box-shadow: 10px 10px 0 var(--ri-red), 0 18px 36px rgba(17, 17, 17, 0.16);
	}
}

/* Text */
[data-elementor-type="wp-page"] .elementor-widget-text-editor ul:not([class]),
.ri-cols {
	list-style: none;
	padding-left: 0;
	margin-bottom: 1em;
}

[data-elementor-type="wp-page"] .elementor-widget-text-editor ul:not([class]) > li,
.ri-cols > li {
	position: relative;
	padding-left: 1.75em;
}

[data-elementor-type="wp-page"] .elementor-widget-text-editor ul:not([class]) > li::before,
.ri-cols > li::before {
	content: "";
	position: absolute;
	left: 0.1em;
	top: 0.62em;
	width: 0.7em;
	height: 0.38em;
	border-left: 3px solid var(--ri-red);
	border-bottom: 3px solid var(--ri-red);
	transform: rotate(-45deg);
}

.ri-red .elementor-widget-text-editor ul > li::before,
.ri-red .ri-cols > li::before {
	border-color: #fff !important;
}

.ri-red h2.elementor-heading-title::after {
	background: #fff !important;
}

[data-elementor-type="wp-page"] .elementor-widget-text-editor ul ul > li::before {
	width: 0.45em;
	height: 0.25em;
	border-width: 2px;
}

[data-elementor-type="wp-page"] .elementor-widget-text-editor li + li {
	margin-top: 0.3em;
}

[data-elementor-type="wp-page"] .elementor-widget-text-editor ol li::marker {
	color: var(--ri-red);
	font-weight: 700;
}

.elementor-widget-text-editor p:last-child,
.elementor-widget-text-editor ul:last-child {
	margin-bottom: 0;
}

.ri-cols {
	columns: var(--ri-n, 3);
	column-gap: 40px;
}

.ri-cols li {
	break-inside: avoid;
}

@media (max-width: 1024px) {
	.ri-cols {
		columns: min(var(--ri-n, 3), 3);
	}
}

@media (max-width: 767px) {
	.ri-cols {
		columns: 2;
	}
}

[data-elementor-type="wp-page"] .elementor-widget-text-editor a {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-decoration-color: rgba(235, 35, 41, 0.35);
	text-underline-offset: 3px;
	transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

[data-elementor-type="wp-page"] .elementor-widget-text-editor a:hover {
	text-decoration-color: currentColor;
}

.ri-dark a:not(.elementor-button) {
	color: #fff;
	text-decoration-color: rgba(255, 255, 255, 0.35);
}

.ri-dark a:not(.elementor-button):hover {
	color: var(--ri-red);
}

/* Accordion */
.e-n-accordion-item-title {
	background: #fff;
	border-color: var(--ri-border) !important;
}

.e-n-accordion-item-title-text {
	font-family: var(--ri-condensed);
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: var(--ri-dark);
}

/* Embeds */
.elementor-widget-html iframe[src*="google.com/maps"] {
	width: 100%;
	min-height: 380px;
	border-radius: var(--ri-radius);
	box-shadow: var(--ri-shadow-lg);
}

.elementor-widget-video .elementor-wrapper {
	box-shadow: var(--ri-shadow-lg);
	border-radius: var(--ri-radius);
	overflow: hidden;
}

/* Scroll reveal (classes added by site.js) */
.ri-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.8s var(--ri-ease), transform 0.8s var(--ri-ease);
}

.ri-reveal.is-in {
	opacity: 1;
	transform: none;
}

/* =====================================================================
   Shortcodes
   ===================================================================== */
.ri-btn {
	display: inline-block;
	padding: 10px 18px;
	border-radius: var(--ri-radius);
	background: var(--ri-red);
	color: #fff !important;
	font-family: var(--ri-condensed);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 1.2px;
	line-height: 1.2;
	text-transform: uppercase;
	text-decoration: none !important;
	transition: background-color 0.2s ease, transform 0.2s var(--ri-ease);
}

.ri-btn:hover {
	background: var(--ri-dark);
	transform: translateY(-2px);
}

.ri-btn--dark {
	background: var(--ri-dark);
}

.ri-btn--dark:hover {
	background: var(--ri-red);
}

/* Testimonial carousel */
.ri-tcarousel {
	--ri-gap: 24px;
	position: relative;
	width: 100%;
}

.ri-tcarousel__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - (var(--ri-cols) - 1) * var(--ri-gap)) / var(--ri-cols));
	gap: var(--ri-gap);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding: 14px 2px 20px;
}

.ri-tcarousel__track::-webkit-scrollbar {
	display: none;
}

@media (max-width: 1024px) {
	.ri-tcarousel {
		--ri-cols: 2 !important;
	}
}

@media (max-width: 767px) {
	.ri-tcarousel {
		--ri-cols: 1 !important;
	}
}

.ri-tcard {
	position: relative;
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 44px 26px 28px;
	background: #fff;
	border: 1px solid var(--ri-border);
	border-top: 4px solid var(--ri-red);
	border-radius: var(--ri-radius);
	box-shadow: var(--ri-shadow);
	text-align: center;
	transition: transform 0.35s var(--ri-ease), box-shadow 0.35s var(--ri-ease);
}

.ri-tcard::before {
	content: "\201C";
	position: absolute;
	top: 2px;
	left: 16px;
	font-family: Georgia, serif;
	font-size: 96px;
	line-height: 1;
	color: rgba(235, 35, 41, 0.13);
	pointer-events: none;
}

.ri-tcard:hover {
	transform: translateY(-4px);
	box-shadow: var(--ri-shadow-lg);
}

.ri-tcard__stars {
	color: var(--ri-red);
	font-size: 20px;
	letter-spacing: 3px;
}

.ri-tcard__quote {
	margin: 0;
	padding: 0;
	border: 0;
	font-style: normal;
}

.ri-tcard__text {
	position: relative;
	max-height: 7.5em;
	overflow: hidden;
	font-size: 15px;
	line-height: 1.55;
}

.ri-tcard__text p {
	margin: 0 0 0.6em;
}

.ri-tcard.is-expanded .ri-tcard__text {
	max-height: none;
}

.ri-tcarousel button.ri-tcard__more {
	align-self: center;
	background: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0 !important;
	color: var(--ri-red) !important;
	font-family: var(--ri-condensed);
	font-size: 15px !important;
	font-weight: 700 !important;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	box-shadow: none !important;
}

.ri-tcarousel button.ri-tcard__more:hover {
	color: var(--ri-dark) !important;
	transform: none;
}

.ri-tcard__meta {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin-top: auto;
	font-size: 14px;
}

.ri-tcard__author {
	color: var(--ri-dark);
	font-family: var(--ri-condensed);
	font-size: 20px;
	letter-spacing: 1.2px;
	text-transform: uppercase;
}

.ri-tcard__company {
	color: var(--ri-red);
	font-weight: 600;
}

.ri-tcard__location {
	color: #888;
}

.ri-tcard__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-top: 6px;
}

.ri-tcarousel__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	margin-top: 22px;
}

.ri-tcarousel.is-static .ri-tcarousel__nav {
	display: none;
}

.ri-tcarousel button.ri-tcarousel__arrow {
	flex: 0 0 44px;
	width: 44px !important;
	height: 44px !important;
	padding: 0 0 3px !important;
	border: 2px solid var(--ri-dark) !important;
	border-radius: var(--ri-radius) !important;
	background: transparent !important;
	color: var(--ri-dark) !important;
	font-size: 26px !important;
	line-height: 1 !important;
	cursor: pointer;
	box-shadow: none !important;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.ri-tcarousel button.ri-tcarousel__arrow:hover {
	background: var(--ri-red) !important;
	border-color: var(--ri-red) !important;
	color: #fff !important;
	transform: none;
}

.ri-tcarousel__dots {
	display: flex;
	gap: 8px;
}

.ri-tcarousel .ri-tcarousel__dots button {
	width: 26px !important;
	height: 4px !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: #cfcfcf !important;
	cursor: pointer;
	box-shadow: none !important;
	transition: background-color 0.2s ease, width 0.3s var(--ri-ease);
}

.ri-tcarousel .ri-tcarousel__dots button[aria-current="true"] {
	width: 44px !important;
	background: var(--ri-red) !important;
}

/* Post cards */
.ri-post-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
	gap: 30px;
}

.ri-post-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--ri-border);
	border-radius: var(--ri-radius);
	overflow: hidden;
	box-shadow: var(--ri-shadow);
	transition: box-shadow 0.35s var(--ri-ease), transform 0.35s var(--ri-ease);
}

.ri-post-card:hover {
	box-shadow: var(--ri-shadow-lg);
	transform: translateY(-6px);
}

.ri-post-card__media {
	position: relative;
	display: block;
	aspect-ratio: 16 / 10;
	background: var(--ri-light);
	overflow: hidden;
}

.ri-post-card__media::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 4px;
	background: var(--ri-red);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.45s var(--ri-ease);
}

.ri-post-card:hover .ri-post-card__media::after {
	transform: scaleX(1);
}

.ri-post-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.7s var(--ri-ease);
}

.ri-post-card:hover .ri-post-card__img {
	transform: scale(1.05);
}

.ri-post-card__body {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 24px 24px 26px;
	flex: 1;
}

.ri-post-card__meta {
	font-family: var(--ri-condensed);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--ri-red);
}

.ri-post-card__title {
	margin: 0;
	font-family: var(--ri-condensed);
	font-size: 25px;
	font-weight: 700;
	letter-spacing: 0.5px;
	line-height: 1.1;
	text-transform: uppercase;
}

.ri-post-card .ri-post-card__title a {
	color: var(--ri-dark) !important;
}

.ri-post-card .ri-post-card__title a:hover {
	color: var(--ri-red) !important;
}

.ri-post-card__excerpt {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
}

.ri-post-card__more {
	margin-top: auto;
	font-family: var(--ri-condensed);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
}

/* =====================================================================
   Footer
   ===================================================================== */
.ri-footer {
	border-top: 4px solid var(--ri-red) !important;
}

.ri-footer h6,
.ri-footer .elementor-heading-title {
	color: #fff !important;
}

.ri-menu-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ri-menu-list li + li {
	margin-top: 9px;
}

.ri-footer .ri-menu-list li {
	line-height: 1.45;
}

.ri-footer .ri-menu-list li + li {
	margin-top: 7px;
}

/* 11 industries: two short columns instead of one long one */
.ri-fcol-industries .ri-menu-list {
	display: grid;
	grid-template-rows: repeat(6, auto);
	grid-auto-flow: column;
	grid-auto-columns: max-content;
	column-gap: 28px;
	row-gap: 7px;
}

.ri-fcol-industries .ri-menu-list li {
	margin: 0 !important;
	white-space: nowrap;
}

.ri-footer .elementor-icon-list-text {
	line-height: 1.45;
}

@media (max-width: 480px) {
	.ri-fcol-industries .ri-menu-list {
		grid-auto-columns: 1fr;
		column-gap: 16px;
	}

	.ri-fcol-industries .ri-menu-list li {
		white-space: normal;
	}
}

.ri-footer a,
.ri-footer .ri-menu-list a {
	text-decoration: none !important;
}

.ri-footer .ri-menu-list a,
.ri-footer .elementor-icon-list-text {
	color: #b5b5b5;
	font-size: 14.5px;
}

.ri-footer .ri-menu-list a {
	display: inline-block;
	transition: color 0.2s ease, transform 0.2s var(--ri-ease);
}

/* "Website built by A1Ai Digital" credit on the copyright line */
.ri-footer .ri-footer-credit::before {
	content: "|";
	margin: 0 0.8em;
	color: #3f3f46;
}

.ri-footer .ri-footer-credit a {
	color: #a1a1aa !important;
	text-decoration: none;
	transition: color 0.15s ease;
}

.ri-footer .ri-footer-credit a:hover {
	color: #fff !important;
}

@media (max-width: 767px) {
	.ri-footer .ri-footer-credit {
		display: block;
		margin-top: 4px;
	}

	.ri-footer .ri-footer-credit::before {
		display: none;
	}

	/* keep the tall tap target from the footer link rule, without the side gap */
	.ri-footer .elementor-widget-text-editor .ri-footer-credit a {
		padding-left: 0;
		padding-right: 0;
	}
}

.ri-footer .ri-menu-list a:hover {
	color: #fff;
	transform: translateX(4px);
}

/* Tighter footer: on desktop, brand, Services and Company packed together on
   the left with Industries on the far right; on phones Services and Company
   sit side by side above Industries.
   !important because Elementor sets --width and the gaps per element. */
@media (min-width: 1200px) {
	.ri-footer .e-con:has(> .ri-fcol) {
		flex-wrap: nowrap !important;
		justify-content: flex-start;
		column-gap: 56px !important;
	}

	.ri-footer .ri-fcol {
		--width: auto !important;
		flex: 0 1 auto;
	}

	.ri-footer .ri-fcol-industries {
		margin-left: auto;
	}

	.ri-fcol-brand .elementor-icon-list-text {
		white-space: nowrap;
	}
}

/* Industries sits last (far right) on every desktop width */
@media (min-width: 1025px) {
	.ri-footer .ri-fcol-company {
		order: 2;
	}

	.ri-footer .ri-fcol-industries {
		order: 3;
	}
}

/* Below 1200px the industry names wrap inside their column instead of
   running into the Company column. */
@media (min-width: 481px) and (max-width: 1199px) {
	.ri-fcol-industries .ri-menu-list {
		grid-auto-columns: minmax(0, 1fr);
		column-gap: 20px;
	}

	.ri-fcol-industries .ri-menu-list li {
		white-space: normal;
	}
}

@media (max-width: 767px) {
	.ri-footer .e-con:has(> .ri-fcol) {
		row-gap: 28px !important;
		column-gap: 16px !important;
	}

	.ri-footer .ri-fcol-services,
	.ri-footer .ri-fcol-company {
		--width: calc(50% - 8px) !important;
	}

	.ri-footer .ri-fcol-company {
		order: 2;
	}

	.ri-footer .ri-fcol-industries {
		order: 3;
	}

	.ri-footer .elementor-widget-text-editor p {
		margin: 0;
	}

	.ri-footer .e-con:has(> .elementor-widget-text-editor) {
		row-gap: 8px !important;
	}
}

/* =====================================================================
   Gravity Forms and GravityView
   ===================================================================== */
.ri-form-section .gform_wrapper {
	background: #fff;
	padding: 52px 56px;
	border-top: 5px solid var(--ri-red);
	border-radius: var(--ri-radius);
	box-shadow: var(--ri-shadow-lg);
}

@media (max-width: 767px) {
	.ri-form-section .gform_wrapper {
		padding: 28px 20px;
	}
}

.gform_wrapper .gfield_label,
.gform_wrapper legend.gfield_label,
.gform_wrapper .gform-field-label:not(.gform-field-label--type-sub):not(.gform-field-label--type-inline) {
	font-family: var(--ri-condensed) !important;
	font-size: 17px !important;
	font-weight: 700 !important;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: var(--ri-dark) !important;
}

.gform_wrapper .gfield_required {
	color: var(--ri-red) !important;
}

.gform_wrapper .gform-field-label--type-sub {
	font-size: 13px !important;
	color: #777 !important;
}

.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="number"],
.gform_wrapper input[type="url"],
.gform_wrapper select,
.gform_wrapper textarea {
	min-height: 52px;
	padding: 12px 14px !important;
	background: #fafafa !important;
	border: 1px solid #d5d5d5 !important;
	border-radius: var(--ri-radius) !important;
	font-size: 16px !important;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.gform_wrapper input:focus,
.gform_wrapper select:focus,
.gform_wrapper textarea:focus {
	background: #fff !important;
	border-color: var(--ri-red) !important;
	box-shadow: 0 0 0 4px rgba(235, 35, 41, 0.14) !important;
	outline: none !important;
}

.gform_wrapper input[type="checkbox"],
.gform_wrapper input[type="radio"] {
	width: 18px;
	height: 18px;
	accent-color: var(--ri-red);
}

.gform_wrapper .gchoice label {
	font-size: 15px !important;
}

@media (min-width: 768px) {
	.gform_wrapper .gfield--width-full.gfield--type-checkbox .gfield_checkbox,
	.gform_wrapper .gfield--width-full.gfield--type-radio .gfield_radio {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px 28px;
	}
}

.gform_wrapper .gform_footer .gform_button,
.gform_wrapper .gform_next_button,
.gform_wrapper .gform_previous_button {
	padding: 17px 52px !important;
	background: var(--ri-red) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: var(--ri-radius) !important;
	font-family: var(--ri-condensed) !important;
	font-size: 19px !important;
	font-weight: 700 !important;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	transition: background-color 0.25s ease, transform 0.25s var(--ri-ease), box-shadow 0.25s var(--ri-ease);
}

.gform_wrapper .gform_footer .gform_button:hover {
	background: var(--ri-dark) !important;
	transform: translateY(-2px);
	box-shadow: 0 12px 26px rgba(17, 17, 17, 0.22);
}

.gv-list-view {
	margin-bottom: 20px !important;
	padding: 26px 30px !important;
	background: #fff;
	border: 1px solid var(--ri-border) !important;
	border-left: 4px solid var(--ri-red) !important;
	border-radius: var(--ri-radius);
	box-shadow: var(--ri-shadow);
}

.gv-list-view-title h3,
.gv-list-view-title {
	font-family: var(--ri-condensed);
	text-transform: uppercase;
	letter-spacing: 1px;
}

/* =====================================================================
   Overflow guards
   ===================================================================== */

/* The collapsed mobile menu keeps its sub-menus positioned off-canvas; clip them sideways only. */
header#masthead {
	overflow-x: clip;
}

.ri-tcarousel__dots {
	flex-wrap: wrap;
	justify-content: center;
	max-width: calc(100% - 130px);
}

@media (max-width: 767px) {
	.ri-tcarousel .ri-tcarousel__dots button {
		width: 12px !important;
	}

	.ri-tcarousel .ri-tcarousel__dots button[aria-current="true"] {
		width: 24px !important;
	}
}

/* =====================================================================
   Mobile friendliness (phones)
   ===================================================================== */

/* Long links and URLs in page copy may break instead of pushing the page sideways. */
@media (max-width: 767px) {
	[data-elementor-type="wp-page"] .elementor-widget-text-editor a,
	.elementor-widget-theme-post-content a {
		white-space: normal;
		overflow-wrap: anywhere;
	}
}

/* Checklists: one column on phones, two columns wrapped nearly every item. */
@media (max-width: 480px) {
	.ri-cols {
		columns: 1;
	}

	.ri-cols > li + li {
		margin-top: 4px;
	}
}

/* Stacks of buttons (e.g. "Our Services" on Industries): equal full-width buttons, even spacing. */
@media (max-width: 767px) {
	.e-con:has(> .elementor-widget-button ~ .elementor-widget-button) {
		gap: 10px !important;
	}

	.e-con:has(> .e-con > .elementor-widget-button ~ .elementor-widget-button) {
		gap: 10px !important;
	}

	.e-con:has(> .elementor-widget-button ~ .elementor-widget-button) > .elementor-widget-button {
		width: 100%;
		margin: 0 !important;
	}

	.e-con:has(> .elementor-widget-button ~ .elementor-widget-button) > .elementor-widget-button .elementor-button {
		display: flex;
		justify-content: center;
		width: 100%;
	}
}

/* Slimmer sticky header on phones. */
@media (max-width: 767px) {
	.ri-topbar {
		--padding-top: 0px !important;
		--padding-bottom: 0px !important;
	}

	.ri-topbar a {
		display: inline-flex;
		align-items: center;
		min-height: 34px;
	}

	.ri-header-main {
		--padding-top: 8px !important;
		--padding-bottom: 8px !important;
	}
}

/* Tap targets: footer, contact list, reviews, pagination. */
@media (max-width: 767px) {
	.ri-footer .ri-menu-list li + li,
	.ri-fcol-industries .ri-menu-list li {
		margin-top: 0 !important;
	}

	.ri-fcol-industries .ri-menu-list {
		row-gap: 0;
	}

	.ri-footer .ri-menu-list a {
		display: block;
		padding: 8px 0;
	}

	.ri-footer .elementor-icon-list-item > a {
		min-height: 36px;
		align-items: center;
	}

	.ri-footer .elementor-widget-text-editor a {
		display: inline-block;
		padding: 8px 4px;
	}

	.gv-list-view a,
	.gv-container a {
		display: inline-block;
		padding: 6px 0;
	}

	.gv-widget-page-links .page-numbers,
	.page-numbers {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 40px;
		min-height: 40px;
	}
}

/* Services Overview (custom HTML page): its 10-11px labels and 12-13px copy are too small on a phone. */
@media (max-width: 767px) {
	.rcvr-wrap .rcvr-tag {
		font-size: 12px;
		letter-spacing: 1px;
		padding: 4px 9px;
	}

	.rcvr-wrap .rcvr-badge,
	.rcvr-wrap .rcvr-eyebrow,
	.rcvr-wrap .rcvr-card-num,
	.rcvr-wrap .rcvr-section-label,
	.rcvr-wrap .rcvr-video-label,
	.rcvr-wrap .rcvr-diff-title,
	.rcvr-wrap .rcvr-coverage-label,
	.rcvr-wrap .rcvr-footer-eyebrow {
		font-size: 12.5px;
		letter-spacing: 2.5px;
	}

	.rcvr-wrap .rcvr-card-desc,
	.rcvr-wrap .rcvr-diff-text span,
	.rcvr-wrap .rcvr-coverage-text,
	.rcvr-wrap .rcvr-footer-info {
		font-size: 15px;
		line-height: 1.6;
		color: #bdbdbd;
	}
}

/* Tap targets: blog sidebar, post meta, card and text-style buttons. */
@media (max-width: 767px) {
	.ri-recent a,
	.ri-titlebar__meta a {
		display: inline-block;
		padding: 6px 0;
	}

	.ri-post-card__more,
	.elementor-button.elementor-size-sm {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}
}

/* Checklists that are really link lists (industries, certifications, services). */
@media (max-width: 767px) {
	.elementor-widget-text-editor li > a,
	.elementor-widget-text-editor li > strong > a,
	.ri-post-card h2 a,
	.ri-post-card h3 a {
		display: inline-block;
		padding: 5px 0;
	}
}

@media (max-width: 767px) {
	.ri-prose li > a,
	.elementor-icon-box-title > a {
		display: inline-block;
		padding: 6px 0;
	}

	.elementor-icon-list-item > a {
		min-height: 36px;
		align-items: center;
	}
}

/* Phones: 44px menu button so the sticky header is not taller than it needs to be. */
@media (max-width: 767px) {
	.ri-nav-mobile .hfe-nav-menu__toggle {
		width: 44px;
		height: 44px;
		padding: 0 !important;
		display: flex !important;
		align-items: center;
		justify-content: center;
	}

	.ri-nav-mobile .hfe-nav-menu__toggle .hfe-nav-menu-icon,
	.ri-nav-mobile .hfe-nav-menu__toggle .hfe-nav-menu-icon i {
		font-size: 22px !important;
		line-height: 1;
	}

	.ri-nav-mobile .hfe-nav-menu__toggle .hfe-nav-menu-icon svg {
		width: 22px !important;
		height: 22px !important;
	}

	/* Services Overview: its boxed sections keep 48px desktop margins; use the phone gutter. */
	.rcvr-wrap .rcvr-video-wrap,
	.rcvr-wrap .rcvr-diff {
		margin: 24px 20px 0;
	}

	.rcvr-wrap .rcvr-diff {
		padding: 28px 20px;
	}
}
