/* Ridewell Cargo · rw-base.css: site-wide utilities only (instructions/04 §6).
   Colours read the Elementor Global Colors (--e-global-color-*), so Site Settings stays the one place to change them.
   Section-specific styling lives in that section's element Custom CSS, not here. */

:root {
	--rw-ease: cubic-bezier(.22, .8, .24, 1);
	--rw-fast: 150ms;
	--rw-med: 260ms;
	--rw-slow: 520ms;
	--rw-e1: 0 1px 2px rgba(17, 30, 56, .05), 0 2px 8px rgba(17, 30, 56, .05);
	--rw-e2: 0 2px 6px rgba(17, 30, 56, .06), 0 18px 48px rgba(17, 30, 56, .12);
	--rw-e3: 0 24px 80px rgba(11, 20, 40, .22);
	--rw-teal: var(--e-global-color-secondary, #207F86);
	--rw-teal-text: var(--e-global-color-accent, #1B7077);
	--rw-ink: var(--e-global-color-primary, #111E38);
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* The small inline icons the reference draws as <svg> inside the words. They are decorative, so they are CSS
   masks here instead of markup the client could break: same lucide icons, from assets/icons/. */
:root {
	--rw-i-sparkle: url("data:image/svg+xml,<svg class='lucide lucide-sparkles' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' > <path d='M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z' /> <path d='M20 3v4' /> <path d='M22 5h-4' /> <path d='M4 17v2' /> <path d='M5 18H3' /> </svg>");
	--rw-i-list: url("data:image/svg+xml,<svg class='lucide lucide-list' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' > <path d='M3 12h.01' /> <path d='M3 18h.01' /> <path d='M3 6h.01' /> <path d='M8 12h13' /> <path d='M8 18h13' /> <path d='M8 6h13' /> </svg>");
	--rw-i-book: url("data:image/svg+xml,<svg class='lucide lucide-book-marked' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' > <path d='M10 2v8l3-3 3 3V2' /> <path d='M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20' /> </svg>");
	--rw-i-alert: url("data:image/svg+xml,<svg class='lucide lucide-info' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' > <circle cx='12' cy='12' r='10' /> <path d='M12 16v-4' /> <path d='M12 8h.01' /> </svg>");
	--rw-i-table: url("data:image/svg+xml,<svg class='lucide lucide-file-text' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' > <path d='M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z' /> <path d='M14 2v4a2 2 0 0 0 2 2h4' /> <path d='M10 9H8' /> <path d='M16 13H8' /> <path d='M16 17H8' /> </svg>");
	--rw-i-phone: url("data:image/svg+xml,<svg class='lucide lucide-phone-call' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' > <path d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z' /> <path d='M14.05 2a9 9 0 0 1 8 7.94' /> <path d='M14.05 6A5 5 0 0 1 18 10' /> </svg>");
	--rw-i-phone-m: url("data:image/svg+xml,<svg class='lucide lucide-phone-call' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' > <path d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z' /> <path d='M14.05 2a9 9 0 0 1 8 7.94' /> <path d='M14.05 6A5 5 0 0 1 18 10' /> </svg>");
	--rw-i-out: url("data:image/svg+xml,<svg class='lucide lucide-arrow-up-right' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' > <path d='M7 7h10v10' /> <path d='M7 17 17 7' /> </svg>");
	--rw-i-badge: url("data:image/svg+xml,<svg class='lucide lucide-shield-check' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' > <path d='M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z' /> <path d='m9 12 2 2 4-4' /> </svg>");
	--rw-i-check: url("data:image/svg+xml,<svg class='lucide lucide-check' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' > <path d='M20 6 9 17l-5-5' /> </svg>");
	--rw-i-mail: url("data:image/svg+xml,<svg class='lucide lucide-mail' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' > <rect width='20' height='16' x='2' y='4' rx='2' /> <path d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7' /> </svg>");
	--rw-i-printer: url("data:image/svg+xml,<svg class='lucide lucide-printer' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' > <path d='M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2' /> <path d='M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6' /> <rect x='6' y='14' width='12' height='8' rx='1' /> </svg>");
	--rw-i-link: url("data:image/svg+xml,<svg class='lucide lucide-link' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' > <path d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71' /> <path d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71' /> </svg>");
	--rw-i-copy: url("data:image/svg+xml,<svg class='lucide lucide-copy' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' > <rect width='14' height='14' x='8' y='8' rx='2' ry='2' /> <path d='M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2' /> </svg>");
	--rw-i-arrow: url("data:image/svg+xml,<svg class='lucide lucide-arrow-right' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' > <path d='M5 12h14' /> <path d='m12 5 7 7-7 7' /> </svg>");
	--rw-i-info: url("data:image/svg+xml,<svg class='lucide lucide-info' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' > <circle cx='12' cy='12' r='10' /> <path d='M12 16v-4' /> <path d='M12 8h.01' /> </svg>");
	--rw-i-pin: url("data:image/svg+xml,<svg class='lucide lucide-map-pin' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' > <path d='M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0' /> <circle cx='12' cy='10' r='3' /> </svg>");
	--rw-i-q: url("data:image/svg+xml,<svg class='lucide lucide-message-circle-question' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' > <path d='M7.9 20A9 9 0 1 0 4 16.1L2 22Z' /> <path d='M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3' /> <path d='M12 17h.01' /> </svg>");
	--rw-i-clock: url("data:image/svg+xml,<svg class='lucide lucide-clock-4' xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' > <circle cx='12' cy='12' r='10' /> <polyline points='12 6 12 12 16 14' /> </svg>");
}

/* Anchored sections clear the sticky header (instructions/06 §6). */
[id] {
	scroll-margin-top: 110px;
}

/* Side gutter of every full-width band: the reference clamp(20px, 4vw, 56px), so content is min(1280 px, viewport − 2 gutters).
   Add the class rw-gutter to a section's outer container (its own left/right padding controls are the fallback). */
.e-con.rw-gutter {
	padding-left: clamp(20px, 4vw, 56px) !important;
	padding-right: clamp(20px, 4vw, 56px) !important;
}

/* ---------- Accessibility ---------- */
.sr-only,
.elementor-widget.sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* Hello Elementor's skip link ("Skip to content" → #content). */
.skip-link.screen-reader-text:focus {
	position: fixed;
	left: 16px;
	top: 12px;
	z-index: 100000;
	width: auto;
	height: auto;
	clip: auto;
	padding: 10px 16px;
	border-radius: 8px;
	background: var(--rw-ink);
	color: #fff;
	font-weight: 600;
	text-decoration: none;
}

/* Elementor 4 ships its own focus ring — 2 px black with a white halo — on a, button, input, select, textarea
   and [tabindex], element selectors that outrank a bare :focus-visible whichever way the sheets load. The design's
   ring is the teal one (reference v2.css), so these selectors carry one step more specificity and drop the halo. */
html :focus-visible,
html a:focus-visible,
html button:focus-visible,
html input:focus-visible,
html select:focus-visible,
html textarea:focus-visible,
html summary:focus-visible,
html video:focus-visible,
html [tabindex]:not([tabindex="-1"]):focus-visible {
	outline: 2px solid var(--rw-teal);
	outline-offset: 3px;
	border-radius: 6px;
	box-shadow: none;
}

/* The mega menu's dropdown toggle and burger draw a 3 px navy ring of their own that nothing in a stylesheet
   overrides — not even !important — so it is not the teal one here (build-log/issues.md). The ring is visible
   and high-contrast, and the menu link beside it shows the teal ring, so this is left as it is; the rule below
   takes over the moment Elementor stops painting its own. */
html .e-n-menu-dropdown-icon:focus-visible,
html .e-n-menu-toggle:focus-visible {
	outline: 2px solid var(--rw-teal);
	outline-offset: 3px;
}

.rw-on-dark :focus-visible {
	outline-color: var(--e-global-color-rwodtl0, #7FD0D6);
}

/* Hidden below 480 px (e.g. " · answered 24/7" in the hero call block). */
@media (max-width: 480px) {
	.rw-hide-xs {
		display: none !important;
	}
}

/* ---------- Heading emphasis: the teal italic words, written <em>…</em> in a Heading widget ---------- */
.elementor-heading-title em {
	font-family: "Figtree", ui-sans-serif, system-ui, sans-serif;
	font-style: italic;
	font-weight: 800;
	letter-spacing: -.022em;
	color: var(--rw-teal-text);
}

.rw-on-dark .elementor-heading-title em {
	color: var(--e-global-color-rwodtl0, #7FD0D6);
}

/* ---------- Kicker: "— What we transport" (Heading or Text widget, class rw-kicker) ---------- */
.rw-kicker .elementor-heading-title,
.rw-kicker p,
.rw-kicker .elementor-widget-container > :first-child {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

.rw-kicker .elementor-heading-title::before,
.rw-kicker p::before {
	content: "";
	flex: none;
	width: 22px;
	height: 1.5px;
	border-radius: 2px;
	background: currentColor;
}

/* "01 / 05" index variant. */
.rw-kicker-idx .elementor-heading-title {
	font-family: "IBM Plex Mono", ui-monospace, monospace;
	letter-spacing: .08em;
	gap: 6px;
}

/* ---------- Section head (most sections): kicker + H2 on the left (7fr), lead on the right (5fr, bottom-aligned).
   Outer container class rw-sec-head; the lead's Text widget class rw-lead. Stacks below 1024 px. ---------- */
.e-con.rw-sec-head {
	display: grid !important;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: 56px;
	align-items: end;
	margin-bottom: 48px;
}

.e-con.rw-sec-head > .e-con {
	width: auto;
	min-width: 0;
}

/* One-column head (kicker + H2, no lead beside it). */
.e-con.rw-sec-head.rw-sec-head-one {
	grid-template-columns: 1fr;
}

.elementor-element.elementor-widget.rw-kicker {
	margin-block-end: 18px; /* outranks Elementor's widget spacing */
}

.rw-lead p {
	max-width: 44ch;
	margin: 0;
	padding-bottom: 6px;
}

.elementor-widget-heading h2.elementor-heading-title {
	text-wrap: balance;
}

@media (max-width: 1024px) {
	.e-con.rw-sec-head {
		grid-template-columns: 1fr;
		gap: 20px;
	}
}

/* ---------- Buttons ----------
   Variant selectors start with .elementor-widget so they outrank the kit's .elementor-kit-N .elementor-button rules.
   The Teal pill itself is the Global Kit button (Site Settings → Buttons). These add what the kit can't:
   the 1 px inner highlight, motion, press state, arrow nudge and the class variants. */
.elementor-button {
	transition: background-color var(--rw-fast) var(--rw-ease), color var(--rw-fast) var(--rw-ease), box-shadow var(--rw-med) var(--rw-ease), border-color var(--rw-fast) var(--rw-ease), transform var(--rw-fast) var(--rw-ease);
}

/* The glow and the 1 px inner highlight belong to the filled teal button only (reference .btn-teal). The kit's
   button shadow is off, so text links, outline pills, chips, tabs, share, copy and verify buttons stay flat like
   the reference; a plain Button widget with no Ridewell class is the teal pill and keeps the glow. */
.elementor-widget-button:not([class*=" rw-"]) .elementor-button,
.elementor-widget.rw-btn-contract .elementor-button,
.elementor-widget.rw-btn-teal .elementor-button,
.elementor-widget.rw-btn-pulse .elementor-button,
.rw-form .elementor-field-type-submit .elementor-button,
.rw-form .e-form__buttons__wrapper__button-next {
	background-image: linear-gradient(rgba(255, 255, 255, .18), rgba(255, 255, 255, .18));
	background-size: 100% 1px;
	background-repeat: no-repeat;
	background-position: top;
	box-shadow: 0 6px 16px -6px rgba(32, 127, 134, .6);
}

.elementor-widget-button:not([class*=" rw-"]) .elementor-button:hover,
.elementor-widget.rw-btn-teal .elementor-button:hover,
.rw-form .elementor-field-type-submit .elementor-button:hover,
.rw-form .e-form__buttons__wrapper__button-next:hover {
	box-shadow: 0 10px 24px -8px rgba(32, 127, 134, .7);
}

.elementor-widget-button {
	line-height: 0; /* the button is inline-block: no extra line strut under it (its own line-height comes from the kit) */
}

.elementor-widget-button .elementor-button {
	vertical-align: middle;
}

.elementor-button .elementor-button-content-wrapper {
	gap: 10px; /* reference .btn; the widget's Icon Spacing control still overrides it */
}

.rw-tlink .elementor-button .elementor-button-content-wrapper {
	gap: 8px;
}

.elementor-button:active {
	transform: scale(.98);
}

.elementor-button .elementor-button-icon svg {
	transition: transform var(--rw-med) var(--rw-ease);
}

/* A button's words and icon sit in the middle of the button whatever height a section gives it (the reference
   .btn is an inline-flex box; Elementor's inline-block would leave them at the top of a taller button). */
.elementor-widget-button .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* Button and text-link icons are 17 px, as the reference's .btn .i (Elementor would size them 1em). Widgets
   with their own icon size (call ring, verify, utility links…) set it in a more specific rule. */
.elementor-widget-button .elementor-button-icon svg {
	width: 17px;
	height: 17px;
}

/* Arrow icons nudge right on hover; phone icons don't. */
.elementor-widget-button:not(.rw-btn-call):not(.rw-no-nudge) .elementor-button:hover .elementor-button-icon svg {
	transform: translateX(3px);
}

/* Outline: white, navy text, Line strong border. */
.elementor-widget.rw-btn-line .elementor-button {
	padding-top: 11px; /* 48 px tall including the 1 px border */
	padding-bottom: 11px;
	background-color: var(--e-global-color-rwwhite, #fff);
	background-image: none !important;
	color: var(--rw-ink);
	border: 1px solid var(--e-global-color-rwline1, #CDD5DD);
	box-shadow: none;
}

.elementor-widget.rw-btn-line .elementor-button:hover,
.elementor-widget.rw-btn-line .elementor-button:focus-visible {
	background-color: var(--e-global-color-rwwhite, #fff);
	color: var(--rw-ink);
	border-color: var(--rw-ink);
	box-shadow: none;
}

/* Small: 42 px. */
.elementor-widget.rw-btn-sm .elementor-button {
	padding: 9px 18px;
	font-size: 14.5px;
	line-height: 24px; /* 42 px tall */
}

/* Phone pill: white, ring around the phone icon with a sonar pulse, bold number. */
.elementor-widget.rw-btn-call .elementor-button {
	gap: 12px;
	padding: 3px 22px 3px 3px; /* 48 px tall: 40 px ring + padding + border */
	background-color: var(--e-global-color-rwwhite, #fff);
	background-image: none !important;
	color: var(--rw-ink);
	border: 1px solid var(--e-global-color-rwline1, #CDD5DD);
	box-shadow: none;
	font-family: "Figtree", ui-sans-serif, system-ui, sans-serif;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.elementor-widget.rw-btn-call .elementor-button:hover,
.elementor-widget.rw-btn-call .elementor-button:focus-visible {
	background-color: var(--e-global-color-rwwhite, #fff);
	color: var(--rw-ink);
	border-color: var(--rw-ink);
	box-shadow: none;
}

.elementor-widget.rw-btn-call .elementor-button-content-wrapper {
	align-items: center;
}

.elementor-widget.rw-btn-call .elementor-button-icon {
	position: relative;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--e-global-color-rwtealt, #E9F4F5);
	color: var(--rw-teal);
	fill: currentColor;
}

.elementor-widget.rw-btn-call .elementor-button-icon svg {
	width: 18px;
	height: 18px;
}

/* Contract button: teal pill with a light sweep every 6 s and a breathing glow. */
.elementor-widget.rw-btn-contract .elementor-button {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	animation: rw-glow 3.2s var(--rw-ease) infinite;
}

.elementor-widget.rw-btn-contract .elementor-button::after {
	content: "";
	position: absolute;
	top: -20%;
	bottom: -20%;
	left: -60%;
	width: 40%;
	z-index: -1;
	background: linear-gradient(100deg, transparent 0%, rgba(255, 255, 255, .38) 50%, transparent 100%);
	transform: skewX(-18deg);
	animation: rw-shine 6s ease-in-out infinite;
	pointer-events: none;
}

.elementor-widget.rw-btn-contract .elementor-button:hover {
	box-shadow: 0 0 0 6px rgba(32, 127, 134, .16), 0 14px 30px -10px rgba(32, 127, 134, .75);
	animation: none;
}

@keyframes rw-shine {
	0%, 62% { transform: skewX(-18deg) translateX(0); }
	82%, 100% { transform: skewX(-18deg) translateX(420%); }
}

@keyframes rw-glow {
	0%, 100% { box-shadow: 0 6px 16px -6px rgba(32, 127, 134, .6), 0 0 0 0 rgba(32, 127, 134, 0); }
	50% { box-shadow: 0 8px 22px -6px rgba(32, 127, 134, .7), 0 0 0 5px rgba(32, 127, 134, .14); }
}

/* Text link with arrow: teal text, underline on hover, 44 px target (text centred in it, like the reference .tlink). */
.elementor-widget.rw-tlink .elementor-button {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0;
	border-radius: 0;
	background-color: transparent;
	background-image: none !important;
	box-shadow: none;
	color: var(--rw-teal-text);
	font-size: 15.5px;
	border-bottom: 1.5px solid transparent;
}

.elementor-widget.rw-tlink .elementor-button:hover,
.elementor-widget.rw-tlink .elementor-button:focus-visible {
	background-color: transparent;
	box-shadow: none;
	color: var(--rw-teal-text);
	border-bottom-color: currentColor;
}

.rw-on-dark .rw-tlink .elementor-button {
	color: var(--e-global-color-rwodhi0, #DCE4EE);
}

.rw-on-dark .rw-tlink .elementor-button:hover {
	color: #fff;
}

/* ---------- Motion utilities ---------- */

/* Sonar rings around a call icon (.rw-pulse on an Icon widget or the rw-btn-call icon). */
.rw-pulse .elementor-icon,
.elementor-widget.rw-btn-call .elementor-button-icon {
	position: relative;
}

.rw-pulse .elementor-icon::before,
.rw-pulse .elementor-icon::after,
.elementor-widget.rw-btn-call .elementor-button-icon::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	border: 2px solid var(--rw-teal);
	opacity: 0;
	animation: rw-sonar 2.6s var(--rw-ease) infinite;
	pointer-events: none;
}

.rw-pulse .elementor-icon::after {
	animation-delay: 1.3s;
}

@keyframes rw-sonar {
	0% { transform: scale(1); opacity: .55; }
	70%, 100% { transform: scale(1.75); opacity: 0; }
}

/* Pulsing outline on a filled button (quick bar "Call dispatch"). */
.elementor-widget.rw-btn-pulse .elementor-button {
	position: relative;
	overflow: visible;
}

.elementor-widget.rw-btn-pulse .elementor-button::before {
	content: "";
	position: absolute;
	inset: -3px;
	border-radius: inherit;
	border: 2px solid var(--rw-teal);
	opacity: 0;
	animation: rw-pulse-b 2.4s var(--rw-ease) infinite;
	pointer-events: none;
}

@keyframes rw-pulse-b {
	0% { transform: scale(1); opacity: .6; }
	70%, 100% { transform: scale(1.08, 1.3); opacity: 0; }
}

/* Live dot: green dot with a ping (an empty element or the ::before of .rw-live text). */
.rw-live-dot,
.rw-live::before {
	position: relative;
	display: inline-block;
	flex: none;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--e-global-color-rwlive0, #2FB67C);
	box-shadow: 0 0 0 0 rgba(47, 182, 124, .5);
	animation: rw-ping 2.4s var(--rw-ease) infinite;
}

.rw-live::before {
	content: "";
	margin-right: 8px;
	vertical-align: middle;
}

@keyframes rw-ping {
	0% { box-shadow: 0 0 0 0 rgba(47, 182, 124, .55); }
	80%, 100% { box-shadow: 0 0 0 6px rgba(47, 182, 124, 0); }
}

/* One-off credential shimmer when revealed (rw-site.js adds .go), and on hover. */
.rw-shimmer {
	position: relative;
	overflow: hidden;
}

.rw-shimmer::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: -70%;
	width: 50%;
	background: linear-gradient(100deg, transparent, rgba(32, 127, 134, .14) 50%, transparent);
	transform: skewX(-16deg);
	opacity: 0;
	pointer-events: none;
}

.rw-shimmer.go::after {
	animation: rw-shim 1.4s var(--rw-ease) calc(var(--si, 0) * 140ms) 1 both;
}

.rw-shimmer:hover::after {
	animation: rw-shim 1.1s var(--rw-ease) 1 both;
}

@keyframes rw-shim {
	0% { left: -70%; opacity: 1; }
	100% { left: 130%; opacity: 1; }
}

/* Teal halo on card hover. */
.rw-glow {
	transition: box-shadow var(--rw-med) var(--rw-ease), transform var(--rw-med) var(--rw-ease);
}

.rw-glow:hover {
	box-shadow: 0 0 0 1px rgba(32, 127, 134, .28), 0 18px 44px -14px rgba(32, 127, 134, .45), var(--rw-e2);
}

/* Hero load-in (inner-page heroes): add rw-in + rw-in-1…5 to stagger. Final state in the editor and with reduced motion. */
.rw-in {
	animation: rw-in .8s var(--rw-ease) both;
}

.rw-in-1 { animation-delay: .05s; }
.rw-in-2 { animation-delay: .14s; }
.rw-in-3 { animation-delay: .26s; }
.rw-in-4 { animation-delay: .36s; }
.rw-in-5 { animation-delay: .46s; }

@keyframes rw-in {
	from { opacity: 0; transform: translateY(16px); }
	to { opacity: 1; transform: none; }
}

.elementor-editor-active .rw-in {
	animation: none;
}

/* Breadcrumb (Rank Math [rank_math_breadcrumb] in a Text widget with class rw-crumbs): Home › Page, chevron separators. */
.rw-crumbs .rank-math-breadcrumb p {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0;
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--e-global-color-rwmuted);
}

.rw-crumbs .rank-math-breadcrumb .separator {
	display: inline-block;
	width: 5px;
	height: 5px;
	overflow: hidden;
	border-top: 1.5px solid var(--e-global-color-rwline1);
	border-right: 1.5px solid var(--e-global-color-rwline1);
	color: transparent;
	font-size: 0;
	transform: rotate(45deg);
}

.rw-crumbs .rank-math-breadcrumb a {
	color: var(--e-global-color-rwmuted);
	transition: color var(--rw-fast);
}

.rw-crumbs .rank-math-breadcrumb a:hover {
	color: var(--e-global-color-accent);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.rw-crumbs .rank-math-breadcrumb .last {
	color: var(--e-global-color-primary);
	font-weight: 500;
}

/* Grows to 100% as it scrolls in (rw-site.js sets --rw-scale-now; set the start size with --rw-scale on the element).
   Without JS and in the editor it stays at 100%; with reduced motion it rests at its start size. */
.rw-js .rw-scale {
	transform: scale(var(--rw-scale-now, 1));
	transform-origin: center top;
	transition: transform 120ms linear;
	will-change: transform;
}

.elementor-editor-active .rw-scale {
	transform: none !important;
}

/* Call pill (reference .btn-call): a Container-as-link with a ringed phone Icon, a small "Call dispatch" Heading
   and the number Heading ([rw_phone]); the link is [rw_tel] with a data-call-loc. */
.e-con.rw-call-pill {
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center;
	gap: 12px;
	width: auto;
	height: 48px;
	padding: 0 22px 0 8px !important;
	border: 1px solid var(--e-global-color-rwline1);
	border-radius: 999px;
	background: #fff;
	color: var(--e-global-color-primary);
	text-decoration: none;
	text-align: left;
	transition: border-color var(--rw-fast) var(--rw-ease), transform var(--rw-fast) var(--rw-ease);
}

/* Where the pill stretches (phones), its contents sit in the middle, as the reference .btn-call; the hero and
   closing-CTA pills keep them at the left, as the reference does there. */
.e-con.rw-call-pill.rw-disp-call,
.e-con.rw-call-pill.rw-cti-call,
.e-con.rw-call-pill.rw-cnf-call,
.e-con.rw-call-pill.rw-dwh-call {
	justify-content: center;
}

.e-con.rw-call-pill:hover {
	border-color: var(--e-global-color-primary);
}

.e-con.rw-call-pill:active {
	transform: scale(.98);
}

.e-con.rw-call-pill > .elementor-widget,
.e-con.rw-call-pill > .e-con {
	width: auto;
}

.rw-call-pill .rw-call-ring .elementor-icon {
	position: relative;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--e-global-color-rwtealt);
	color: var(--e-global-color-secondary);
	font-size: 18px;
}

.rw-call-pill .rw-call-ring .elementor-icon svg {
	width: 18px;
	height: 18px;
}

.rw-call-pill .rw-call-ring .elementor-icon::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	border: 2px solid var(--e-global-color-secondary);
	opacity: 0;
	animation: rw-sonar 2.6s var(--rw-ease) infinite;
	pointer-events: none;
}

.e-con.rw-call-pill .elementor-element.rw-call-small .elementor-heading-title { /* beats Elementor's per-widget typography rule */
	font-family: "Inter", sans-serif;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.15;
}

.e-con.rw-call-pill .elementor-element.rw-call-num .elementor-heading-title {
	font-family: "Figtree", sans-serif;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -.005em;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

/* Fade up when scrolled into view (rw-site.js adds .is-in; --i staggers by 80 ms). Without JS it stays visible. */
.rw-js .rw-reveal {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity var(--rw-slow) var(--rw-ease), transform var(--rw-slow) var(--rw-ease);
	transition-delay: calc(var(--i, 0) * 80ms);
}

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

/* In the Elementor editor, widgets render after page load (and again on every edit), so the observer never sees them:
   always show the final state there, or the client edits invisible content. */
.elementor-editor-active .rw-reveal {
	opacity: 1 !important;
	transform: none !important;
	transition: none !important;
}

/* ---------- Medical red: heart / heart-pulse (organ) and droplet / test-tube (blood) icons only ---------- */
.rw-ic-med,
.rw-ic-med .elementor-icon,
.rw-ic-med .elementor-icon-list-icon {
	color: var(--e-global-color-rwred00, #C8263A) !important;
	fill: var(--e-global-color-rwred00, #C8263A);
}

.rw-ic-med .elementor-icon {
	background-color: var(--e-global-color-rwredt0, #FDECEE);
}

.rw-on-dark .rw-ic-med,
.rw-on-dark .rw-ic-med .elementor-icon {
	color: var(--e-global-color-rwredd0, #FF8D99) !important;
	fill: var(--e-global-color-rwredd0, #FF8D99);
}

/* ---------- Form fields: what the kit can't set (forms get their full styling with each form task) ---------- */
.elementor-field-group .elementor-field-textual::placeholder {
	color: #7A8494;
}

.elementor-field-group .elementor-field-textual:hover:not(:focus) {
	border-color: #9AA4B2;
}

/* Ridewell forms (Form widget with CSS class rw-form; rw-site.js adds the inline checks). Shared parts only:
   each form's sizes and layout live in its section's Custom CSS. */
.rw-form .elementor-field-group > .elementor-field-label {
	margin-bottom: 8px;
	padding: 0;
	color: var(--e-global-color-primary);
	font-family: "Inter", sans-serif;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.6;
}

.rw-form .elementor-field-group .elementor-field-textual {
	border: 1px solid var(--e-global-color-rwline1);
	background-color: #fff;
	color: var(--e-global-color-primary);
	transition: border-color var(--rw-fast), box-shadow var(--rw-fast);
}

/* Elementor fades placeholders to 60%, which fails contrast: full strength in Ridewell forms. */
.rw-form .elementor-field-group .elementor-field-textual::placeholder {
	opacity: 1;
}

.rw-form .elementor-field-group .elementor-field-textual:focus {
	outline: none;
	border-color: var(--e-global-color-secondary);
	box-shadow: 0 0 0 4px rgba(32, 127, 134, .16);
}

.rw-form .elementor-field-group .elementor-field-textual[aria-invalid="true"] {
	border-color: #B42318;
	box-shadow: 0 0 0 3px rgba(180, 35, 24, .12);
}

/* Inline error: alert icon + message in the error red (#B42318, 4.9:1 on white). */
.rw-form .elementor-form-help-inline {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-top: 8px;
	color: #B42318;
	font-size: 13.5px;
	font-weight: 500;
	line-height: 1.4;
}

.rw-form .elementor-form-help-inline::before {
	content: "";
	flex: none;
	width: 15px;
	height: 15px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' x2='12' y1='8' y2='12'/%3E%3Cline x1='12' x2='12.01' y1='16' y2='16'/%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' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' x2='12' y1='8' y2='12'/%3E%3Cline x1='12' x2='12.01' y1='16' y2='16'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Fields visitors never see: hidden values, the honeypot (Elementor strips its group classes), the `messages` HTML field. */
.rw-form .elementor-field-type-hidden,
.rw-form .elementor-form-fields-wrapper > .elementor-field-type-text:not(.elementor-field-group),
.rw-form .elementor-field-group-messages {
	display: none !important;
}

/* While sending: keep the form as it is (Elementor fades it to 45%), dim the button a little, no spinner font. */
.rw-form .elementor-form.elementor-form-waiting {
	opacity: 1 !important;
}

.rw-form .elementor-form-spinner {
	display: none !important;
}

.rw-form button.rw-sending {
	pointer-events: none;
	opacity: .85;
}

.rw-form .elementor-message-danger:not(.elementor-help-inline) {
	margin-top: 10px;
	color: #B42318;
	font-size: 14px;
}

/* ---------- Request form (Form widget with CSS class rw-rqf; instructions/07 §1) ----------
   One design, two instances: Hospital Contracts #inquiry and Contact #request. Ported from the reference .rqf rules.
   rw-site.js adds the step line, the per-step heading and the two-line request cards; everything else is here. */
.rw-form [hidden] {
	display: none !important;
}

.rw-rqf {
	position: relative;
	padding: clamp(24px, 3vw, 36px);
	border-radius: 20px;
	background: #fff;
	box-shadow: var(--rw-e3);
	color: var(--e-global-color-text);
}

/* Step line and the three-segment progress (Elementor's own indicators, restyled). */
.rw-rqf .rw-rqf-count {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 14px;
	font-family: "IBM Plex Mono", ui-monospace, monospace;
	font-size: 11.5px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--e-global-color-accent);
}

.rw-rqf .rw-rqf-dot {
	color: var(--e-global-color-rwmuted);
}

.rw-rqf .e-form__indicators {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
	margin-bottom: 18px;
}

.rw-rqf .e-form__indicators__indicator {
	display: flex;
	flex-direction: column;
	/* Elementor centres each step's bar and name; the reference sets them from the left, bar full width. */
	align-items: stretch;
	gap: 9px;
	padding: 0;
	border: 0;
	font-size: 13px;
	font-weight: 500;
	color: var(--e-global-color-rwmuted);
}

.rw-rqf .e-form__indicators__indicator__separator {
	display: none;
}

.rw-rqf .e-form__indicators .e-form__indicators__indicator__number {
	display: block;
	min-height: 0;
	margin: 0;
	line-height: 4px;
	width: auto;
	height: 4px;
	border-radius: 4px;
	width: 100%;
	/* Elementor paints an inactive step's shape white with an equal-weight selector: the track wins here. */
	background-color: var(--e-global-color-rwline0) !important;
	color: transparent;
	font-size: 0;
	overflow: hidden;
	position: relative;
	border: 0;
}

.rw-rqf .e-form__indicators__indicator__number::after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--e-global-color-secondary);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--rw-slow) var(--rw-ease);
}

.rw-rqf .e-form__indicators__indicator--state-active,
.rw-rqf .e-form__indicators__indicator--state-completed {
	color: var(--e-global-color-primary);
}

.rw-rqf .e-form__indicators__indicator--state-active .e-form__indicators__indicator__number::after,
.rw-rqf .e-form__indicators__indicator--state-completed .e-form__indicators__indicator__number::after {
	transform: none;
}

.rw-rqf .e-form__indicators__indicator__label {
	margin: 0;
	padding: 0;
	text-align: left;
	line-height: 1.6;
	font-size: inherit;
	font-weight: inherit;
	color: inherit;
}

.rw-rqf .rw-rqf-top {
	margin-bottom: 26px;
}

.rw-rqf .rw-rqf-intro {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--e-global-color-rwmuted);
}

/* Per-step heading (the reference's legend), written from the step's own label. */
.rw-rqf .rw-rqf-legend {
	flex: 1 1 100%;
	margin: 0 9px 18px;
	font-family: "Figtree", sans-serif;
	font-size: 22px;
	font-weight: 700;
	letter-spacing: -.014em;
	line-height: 1.6;
	color: var(--e-global-color-primary);
}

.rw-rqf .rw-rqf-alert {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	margin: 0 0 20px;
	padding: 12px 14px;
	border-radius: 12px;
	background: var(--e-global-color-rwerrbg);
	border: 1px solid #F5C2BD;
	font-size: 14.5px;
	line-height: 1.5;
	color: var(--e-global-color-rwerror);
	outline: none;
}

.rw-rqf .rw-rqf-stat {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	margin: 14px 0 0;
	padding: 14px 16px;
	border-radius: 12px;
	background: var(--e-global-color-rwerrbg);
	border: 1px solid #F5C2BD;
	font-size: 14.5px;
	line-height: 1.55;
	color: #7A271A;
}

.rw-rqf .rw-rqf-alert::before,
.rw-rqf .rw-rqf-stat::before {
	content: "";
	flex: none;
	width: 18px;
	height: 18px;
	margin-top: 1px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' x2='12' y1='8' y2='12'/%3E%3Cline x1='12' x2='12.01' y1='16' y2='16'/%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' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' x2='12' y1='8' y2='12'/%3E%3Cline x1='12' x2='12.01' y1='16' y2='16'/%3E%3C/svg%3E") center / contain no-repeat;
}

.rw-rqf .rw-rqf-alert a,
.rw-rqf .rw-rqf-stat a,
.rw-rqf .rw-rqf-note a {
	font-weight: 600;
	white-space: nowrap;
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.rw-rqf .rw-rqf-note a {
	color: var(--e-global-color-accent);
}

/* Request type: two-line cards. */
.rw-rqf .elementor-field-subgroup.rw-rcards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.rw-rqf .rw-rcards .elementor-field-option {
	position: relative;
	display: block;
	padding: 0;
}

.rw-rqf .rw-rcards input[type="radio"] {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: pointer;
}

.rw-rqf .elementor-field-subgroup.rw-rcards .elementor-field-option label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 18px 16px;
	font-size: 17px;
	line-height: 1.6;
	border: 1.5px solid var(--e-global-color-rwline1);
	border-radius: 16px;
	cursor: pointer;
	transition: border-color var(--rw-fast) var(--rw-ease), background-color var(--rw-fast) var(--rw-ease);
}

.rw-rqf .elementor-field-subgroup.rw-rcards .elementor-field-option label::after {
	content: "";
	position: absolute;
	top: 16px;
	right: 16px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	border: 1.5px solid var(--e-global-color-rwline1);
	transition: border var(--rw-fast) var(--rw-ease);
}

.rw-rqf .elementor-field-subgroup.rw-rcards .elementor-field-option label:hover {
	border-color: var(--e-global-color-primary);
}

.rw-rqf .rw-rcards .rw-rc-t {
	font-size: 16px;
	font-weight: 600;
	color: var(--e-global-color-primary);
}

.rw-rqf .rw-rcards .rw-rc-s {
	font-size: 14px;
	/* The kit sets labels to 600; the description under the title is regular, as the reference's. */
	font-weight: 400;
	color: var(--e-global-color-rwmuted);
}

.rw-rqf .elementor-field-subgroup.rw-rcards .elementor-field-option:has(input:checked) label {
	border-color: var(--e-global-color-secondary);
	background: var(--e-global-color-rwtealt);
}

.rw-rqf .elementor-field-subgroup.rw-rcards .elementor-field-option:has(input:checked) label::after {
	border: 6px solid var(--e-global-color-secondary);
}

.rw-rqf .rw-rcards .elementor-field-option:has(input:focus-visible) label,
.rw-rqf .rw-chips .elementor-field-option:has(input:focus-visible) label {
	outline: 3px solid var(--e-global-color-secondary);
	outline-offset: 2px;
}

/* Request-type cards: the reference's icon tile. The glyph is the Lucide outline as a data URI (decorative), on the
   ice plate; both swap to teal / white when the card is picked. */
.rw-rqf .elementor-field-subgroup.rw-rcards .elementor-field-option label::before {
	content: "";
	display: block;
	width: 40px;
	height: 40px;
	margin-bottom: 8px;
	border-radius: 11px;
	background-color: var(--e-global-color-rwice00);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 19px 19px;
	transition: background-color var(--rw-fast) var(--rw-ease);
}

.rw-rqf .elementor-field-subgroup.rw-rcards .elementor-field-option:has(input:checked) label::before {
	background-color: var(--e-global-color-secondary);
}

.rw-rqf .elementor-field-subgroup.rw-rcards .elementor-field-option:has(input[value="contract"]) label::before {
	background-image: url("data:image/svg+xml,%3C%21--%20%40license%20lucide-static%20v0.460.0%20-%20ISC%20--%3E%20%3Csvg%20class=%22lucide%20lucide-calendar-check%22%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2224%22%20height=%2224%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23207F86%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20%3E%20%3Cpath%20d=%22M8%202v4%22%20/%3E%20%3Cpath%20d=%22M16%202v4%22%20/%3E%20%3Crect%20width=%2218%22%20height=%2218%22%20x=%223%22%20y=%224%22%20rx=%222%22%20/%3E%20%3Cpath%20d=%22M3%2010h18%22%20/%3E%20%3Cpath%20d=%22m9%2016%202%202%204-4%22%20/%3E%20%3C/svg%3E");
}

.rw-rqf .elementor-field-subgroup.rw-rcards .elementor-field-option:has(input[value="contract"]:checked) label::before {
	background-image: url("data:image/svg+xml,%3C%21--%20%40license%20lucide-static%20v0.460.0%20-%20ISC%20--%3E%20%3Csvg%20class=%22lucide%20lucide-calendar-check%22%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2224%22%20height=%2224%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23ffffff%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20%3E%20%3Cpath%20d=%22M8%202v4%22%20/%3E%20%3Cpath%20d=%22M16%202v4%22%20/%3E%20%3Crect%20width=%2218%22%20height=%2218%22%20x=%223%22%20y=%224%22%20rx=%222%22%20/%3E%20%3Cpath%20d=%22M3%2010h18%22%20/%3E%20%3Cpath%20d=%22m9%2016%202%202%204-4%22%20/%3E%20%3C/svg%3E");
}

.rw-rqf .elementor-field-subgroup.rw-rcards .elementor-field-option:has(input[value="lane"]) label::before {
	background-image: url("data:image/svg+xml,%3C%21--%20%40license%20lucide-static%20v0.460.0%20-%20ISC%20--%3E%20%3Csvg%20class=%22lucide%20lucide-route%22%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2224%22%20height=%2224%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23207F86%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20%3E%20%3Ccircle%20cx=%226%22%20cy=%2219%22%20r=%223%22%20/%3E%20%3Cpath%20d=%22M9%2019h8.5a3.5%203.5%200%200%200%200-7h-11a3.5%203.5%200%200%201%200-7H15%22%20/%3E%20%3Ccircle%20cx=%2218%22%20cy=%225%22%20r=%223%22%20/%3E%20%3C/svg%3E");
}

.rw-rqf .elementor-field-subgroup.rw-rcards .elementor-field-option:has(input[value="lane"]:checked) label::before {
	background-image: url("data:image/svg+xml,%3C%21--%20%40license%20lucide-static%20v0.460.0%20-%20ISC%20--%3E%20%3Csvg%20class=%22lucide%20lucide-route%22%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2224%22%20height=%2224%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23ffffff%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20%3E%20%3Ccircle%20cx=%226%22%20cy=%2219%22%20r=%223%22%20/%3E%20%3Cpath%20d=%22M9%2019h8.5a3.5%203.5%200%200%200%200-7h-11a3.5%203.5%200%200%201%200-7H15%22%20/%3E%20%3Ccircle%20cx=%2218%22%20cy=%225%22%20r=%223%22%20/%3E%20%3C/svg%3E");
}

.rw-rqf .elementor-field-subgroup.rw-rcards .elementor-field-option:has(input[value="scheduled"]) label::before {
	background-image: url("data:image/svg+xml,%3C%21--%20%40license%20lucide-static%20v0.460.0%20-%20ISC%20--%3E%20%3Csvg%20class=%22lucide%20lucide-calendar-clock%22%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2224%22%20height=%2224%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23207F86%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20%3E%20%3Cpath%20d=%22M21%207.5V6a2%202%200%200%200-2-2H5a2%202%200%200%200-2%202v14a2%202%200%200%200%202%202h3.5%22%20/%3E%20%3Cpath%20d=%22M16%202v4%22%20/%3E%20%3Cpath%20d=%22M8%202v4%22%20/%3E%20%3Cpath%20d=%22M3%2010h5%22%20/%3E%20%3Cpath%20d=%22M17.5%2017.5%2016%2016.3V14%22%20/%3E%20%3Ccircle%20cx=%2216%22%20cy=%2216%22%20r=%226%22%20/%3E%20%3C/svg%3E");
}

.rw-rqf .elementor-field-subgroup.rw-rcards .elementor-field-option:has(input[value="scheduled"]:checked) label::before {
	background-image: url("data:image/svg+xml,%3C%21--%20%40license%20lucide-static%20v0.460.0%20-%20ISC%20--%3E%20%3Csvg%20class=%22lucide%20lucide-calendar-clock%22%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2224%22%20height=%2224%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23ffffff%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20%3E%20%3Cpath%20d=%22M21%207.5V6a2%202%200%200%200-2-2H5a2%202%200%200%200-2%202v14a2%202%200%200%200%202%202h3.5%22%20/%3E%20%3Cpath%20d=%22M16%202v4%22%20/%3E%20%3Cpath%20d=%22M8%202v4%22%20/%3E%20%3Cpath%20d=%22M3%2010h5%22%20/%3E%20%3Cpath%20d=%22M17.5%2017.5%2016%2016.3V14%22%20/%3E%20%3Ccircle%20cx=%2216%22%20cy=%2216%22%20r=%226%22%20/%3E%20%3C/svg%3E");
}

.rw-rqf .elementor-field-subgroup.rw-rcards .elementor-field-option:has(input[value="stat"]) label::before {
	background-image: url("data:image/svg+xml,%3C%21--%20%40license%20lucide-static%20v0.460.0%20-%20ISC%20--%3E%20%3Csvg%20class=%22lucide%20lucide-siren%22%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2224%22%20height=%2224%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23207F86%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20%3E%20%3Cpath%20d=%22M7%2018v-6a5%205%200%201%201%2010%200v6%22%20/%3E%20%3Cpath%20d=%22M5%2021a1%201%200%200%200%201%201h12a1%201%200%200%200%201-1v-1a2%202%200%200%200-2-2H7a2%202%200%200%200-2%202z%22%20/%3E%20%3Cpath%20d=%22M21%2012h1%22%20/%3E%20%3Cpath%20d=%22M18.5%204.5%2018%205%22%20/%3E%20%3Cpath%20d=%22M2%2012h1%22%20/%3E%20%3Cpath%20d=%22M12%202v1%22%20/%3E%20%3Cpath%20d=%22m4.929%204.929.707.707%22%20/%3E%20%3Cpath%20d=%22M12%2012v6%22%20/%3E%20%3C/svg%3E");
}

.rw-rqf .elementor-field-subgroup.rw-rcards .elementor-field-option:has(input[value="stat"]:checked) label::before {
	background-image: url("data:image/svg+xml,%3C%21--%20%40license%20lucide-static%20v0.460.0%20-%20ISC%20--%3E%20%3Csvg%20class=%22lucide%20lucide-siren%22%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2224%22%20height=%2224%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23ffffff%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20%3E%20%3Cpath%20d=%22M7%2018v-6a5%205%200%201%201%2010%200v6%22%20/%3E%20%3Cpath%20d=%22M5%2021a1%201%200%200%200%201%201h12a1%201%200%200%200%201-1v-1a2%202%200%200%200-2-2H7a2%202%200%200%200-2%202z%22%20/%3E%20%3Cpath%20d=%22M21%2012h1%22%20/%3E%20%3Cpath%20d=%22M18.5%204.5%2018%205%22%20/%3E%20%3Cpath%20d=%22M2%2012h1%22%20/%3E%20%3Cpath%20d=%22M12%202v1%22%20/%3E%20%3Cpath%20d=%22m4.929%204.929.707.707%22%20/%3E%20%3Cpath%20d=%22M12%2012v6%22%20/%3E%20%3C/svg%3E");
}

/* The request type's own label repeats the step heading above it, as it does in the reference. */
.rw-rqf .elementor-field-group-type > .elementor-field-label {
	display: none;
}

/* Closing note beside the step buttons (rw-site.js puts a copy of the note field in every step). */
.rw-rqf .rw-rqf-foot {
	/* The step is a flex row, so the row has to claim the whole line: without the basis it shrinks to its
	   content and the note stops short of the card's edge on wide cards (Contact). */
	flex: 1 1 100%;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 18px 24px;
	/* 9 px each side: Elementor pads every field group by half the column gap, and the row lines up with them.
	   12 px on top, not the reference's 28: the field group above the row already carries the form's 16 px row gap. */
	margin: 12px 9px 0;
	padding-top: 22px;
	border-top: 1px solid var(--e-global-color-rwline0);
}

.rw-rqf .elementor-field-group-foot {
	display: none;
}

.rw-rqf .rw-rqf-foot .e-form__buttons {
	margin: 0 0 0 auto;
}

/* Cargo and temperature: chips. */
.rw-rqf .elementor-field-subgroup.rw-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.rw-rqf .elementor-field-subgroup.rw-chips .elementor-field-option {
	position: relative;
	flex: 0 0 auto;
	width: auto;
	padding: 0;
}

.rw-rqf .rw-chips input[type="radio"] {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: pointer;
}

.rw-rqf .elementor-field-subgroup.rw-chips .elementor-field-option label {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 10px 16px;
	border: 1.5px solid var(--e-global-color-rwline1);
	border-radius: 999px;
	font-size: 15px;
	font-weight: 500;
	color: var(--e-global-color-primary);
	cursor: pointer;
	transition: border-color var(--rw-fast) var(--rw-ease), background-color var(--rw-fast) var(--rw-ease), color var(--rw-fast) var(--rw-ease);
}

.rw-rqf .elementor-field-subgroup.rw-chips .elementor-field-option label:hover {
	border-color: var(--e-global-color-primary);
}

.rw-rqf .elementor-field-subgroup.rw-chips .elementor-field-option:has(input:checked) label {
	background: var(--e-global-color-primary);
	border-color: var(--e-global-color-primary);
	color: #fff;
}

/* Inputs. */
.rw-rqf .elementor-field-group .elementor-field-textual {
	min-height: 52px;
	padding: 13px 15px;
	border-width: 1.5px;
	border-radius: 12px;
	font-size: 16px;
}

.rw-rqf textarea.elementor-field-textual {
	min-height: 112px;
	line-height: 1.5;
	resize: vertical;
}

.rw-rqf .elementor-field-group > .elementor-field-label {
	font-size: 14.5px;
}

.rw-rqf .rw-rqf-hint {
	display: flex;
	gap: 7px;
	align-items: flex-start;
	margin: 0;
	font-size: 13.5px;
	line-height: 1.45;
	color: var(--e-global-color-rwmuted);
}

/* Footer: note on the left, Back / Continue on the right. */
.rw-rqf .rw-rqf-note {
	flex: 1 1 260px;
	margin: 0;
	font-size: 14px;
	line-height: 1.5;
	color: var(--e-global-color-rwmuted);
}

.rw-rqf .elementor-field-group-foot {
	margin-top: 28px;
	padding-top: 22px;
	border-top: 1px solid var(--e-global-color-rwline0);
}

.rw-rqf .e-form__buttons {
	justify-content: flex-end;
	gap: 10px;
	margin-top: 18px;
}

.rw-rqf .e-form__buttons .e-form__buttons__wrapper {
	width: auto;
	flex: 0 0 auto;
	/* !important: the widget's own gap rules (written per element id) pad and space every field group. */
	padding: 0 !important;
	margin: 0 !important;
}

/* Elementor pulls the field wrapper up by one row gap to swallow the last group's bottom margin; the step buttons
   sit in our own row below that group, so the card would lose 16 px of its bottom padding. */
/* Elementor pulls the field wrapper up by one row gap (-16 px) to swallow the last field group's bottom margin.
   The step buttons sit in our own row below that group, so the row gives the 16 px back and the card keeps its
   bottom padding. */
.rw-rqf .rw-rqf-foot {
	margin-bottom: 16px;
}

/* A field group whose only content moved out or is hidden leaves no gap behind. */
.rw-rqf .elementor-field-group.rw-rqf-empty {
	display: none !important;
}

/* Arrows on the step buttons, like the reference's Continue and Back (decorative). */
.rw-rqf .e-form__buttons__wrapper__button-next::after,
.rw-rqf .e-form__buttons__wrapper__button-previous::before {
	content: "";
	width: 17px;
	height: 17px;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 17px 17px;
	transition: transform var(--rw-med) var(--rw-ease);
}

.rw-rqf .e-form__buttons__wrapper__button-next::after {
	margin-left: 10px;
	background-image: url("data:image/svg+xml,%3C%21--%20%40license%20lucide-static%20v0.460.0%20-%20ISC%20--%3E%20%3Csvg%20class=%22lucide%20lucide-arrow-right%22%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2224%22%20height=%2224%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23ffffff%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20%3E%20%3Cpath%20d=%22M5%2012h14%22%20/%3E%20%3Cpath%20d=%22m12%205%207%207-7%207%22%20/%3E%20%3C/svg%3E");
}

.rw-rqf .e-form__buttons__wrapper__button-next:hover::after {
	transform: translateX(3px);
}

.rw-rqf .e-form__buttons__wrapper__button-previous::before {
	margin-right: 10px;
	background-image: url("data:image/svg+xml,%3C%21--%20%40license%20lucide-static%20v0.460.0%20-%20ISC%20--%3E%20%3Csvg%20class=%22lucide%20lucide-arrow-left%22%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2224%22%20height=%2224%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23111E38%22%20stroke-width=%222%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%20%3E%20%3Cpath%20d=%22m12%2019-7-7%207-7%22%20/%3E%20%3Cpath%20d=%22M19%2012H5%22%20/%3E%20%3C/svg%3E");
}

.rw-rqf .e-form__buttons button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 52px;
	padding: 0 22px;
	border-radius: 999px;
	font-size: 15px;
	font-weight: 600;
}

.rw-rqf .e-form__buttons .e-form__buttons__wrapper__button-previous.elementor-button {
	background: #fff;
	border: 1px solid var(--e-global-color-rwline1);
	color: var(--e-global-color-primary);
}

.rw-rqf .e-form__buttons__wrapper__button-previous:hover {
	border-color: var(--e-global-color-primary);
	background: #fff;
	color: var(--e-global-color-primary);
}

@media (prefers-reduced-motion: reduce) {
	.rw-rqf .e-form__indicators__indicator__number::after,
	.rw-rqf .rw-rcards label,
	.rw-rqf .elementor-field-subgroup.rw-chips .elementor-field-option label {
		transition: none;
	}
}

@media (max-width: 760px) {
	.rw-rqf .elementor-field-subgroup.rw-rcards {
		grid-template-columns: 1fr;
	}

	.rw-rqf .elementor-field-subgroup.rw-rcards .elementor-field-option label {
		display: grid;
		grid-template-columns: 40px 1fr;
		column-gap: 14px;
		padding: 14px 48px 14px 14px;
	}

	.rw-rqf .elementor-field-subgroup.rw-rcards .elementor-field-option label::before {
		grid-row: 1 / 3;
		margin: 0;
	}

	.rw-rqf .elementor-field-subgroup.rw-rcards .elementor-field-option label::after {
		top: 50%;
		margin-top: -10px;
	}

	.rw-rqf .rw-rqf-foot .e-form__buttons {
		flex: 1 1 100%;
		width: 100%;
		margin: 0;
	}

	.rw-rqf .e-form__buttons .e-form__buttons__wrapper {
		flex: 1 1 0;
	}

	.rw-rqf .e-form__buttons button {
		width: 100%;
	}

	.rw-rqf .e-form__indicators__indicator {
		gap: 0;
	}

	.rw-rqf .e-form__indicators__indicator__label {
		font-size: 0;
	}
}

/* ---------- Copy and Verify pills (Compliance; rw-site.js does the copying) ----------
   Ported from the reference .cpy / .vfy rules; used by the AHCCCS card and the registry table. */
.elementor-widget.rw-copy .elementor-button {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	height: 40px;
	padding: 0 14px 0 12px;
	border-radius: 999px;
	border: 1px solid var(--e-global-color-rwline1);
	background: #fff;
	background-image: none;
	box-shadow: none;
	font-size: 13.5px;
	font-weight: 600;
	letter-spacing: normal;
	color: var(--e-global-color-primary);
	cursor: pointer;
	transition: border-color var(--rw-fast) var(--rw-ease), background-color var(--rw-fast) var(--rw-ease), color var(--rw-fast) var(--rw-ease);
}

.rw-copy .elementor-button-content-wrapper {
	gap: 7px;
}

.rw-copy .elementor-button-icon svg,
.rw-vfy .elementor-button-icon svg {
	width: 15px;
	height: 15px;
}

.elementor-widget.rw-copy .elementor-button:hover {
	border-color: var(--e-global-color-primary);
	background: #fff;
	color: var(--e-global-color-primary);
}

.elementor-widget.rw-copy .elementor-button:focus-visible,
.elementor-widget.rw-vfy .elementor-button:focus-visible {
	outline: 3px solid var(--e-global-color-secondary);
	outline-offset: 2px;
}

/* rw-site.js swaps the label to "Copied" for 1.8 s; the pill turns teal while it is. */
.elementor-widget.rw-copy .elementor-button.rw-copied {
	background: var(--e-global-color-secondary);
	border-color: var(--e-global-color-secondary);
	color: #fff;
}

/* "Verify" and "on FMCSA" sit 5 px apart, as the reference's flex items (its span's leading space collapses). */
.rw-vfy .elementor-button-text {
	display: inline-flex;
	gap: 5px;
}

.elementor-widget.rw-vfy .elementor-button {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	height: 40px;
	padding: 0 14px 0 16px;
	border-radius: 999px;
	background: var(--e-global-color-rwtealt);
	background-image: none;
	box-shadow: none;
	font-size: 13.5px;
	font-weight: 600;
	letter-spacing: normal;
	color: var(--e-global-color-accent);
	transition: background-color var(--rw-fast) var(--rw-ease), color var(--rw-fast) var(--rw-ease);
}

.rw-vfy .elementor-button-content-wrapper {
	gap: 5px;
}

.elementor-widget.rw-vfy .elementor-button:hover {
	background: var(--e-global-color-secondary);
	color: #fff;
}

/* Phones: the copy pill keeps only its icon and the verify pill drops " on NPPES" (reference .cpy / .vfy-on). */
@media (max-width: 760px) {
	.elementor-widget.rw-copy .elementor-button {
		width: 40px;
		padding: 0;
		justify-content: center;
	}

	.rw-copy .elementor-button-text {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}

	.elementor-widget.rw-vfy .elementor-button {
		padding: 0 12px;
	}

	.rw-vfy-on {
		display: none;
	}
}

/* Lucide icons (all icons on the site) are line icons: Elementor's icon colour must set the stroke, never fill them. */
svg.lucide,
svg.lucide * {
	fill: none !important;
}

svg.lucide {
	stroke: currentColor;
}

/* Live Arizona time never jumps width. */
.rw-az {
	font-variant-numeric: tabular-nums;
}

/* ---------- Reduced motion: every animation and transition above off, final states shown ---------- */
@media (prefers-reduced-motion: reduce) {
	.elementor-button,
	.elementor-button .elementor-button-icon svg,
	.rw-glow,
	.rw-js .rw-reveal {
		transition: none !important;
	}

	.rw-btn-contract .elementor-button,
	.rw-btn-contract .elementor-button::after,
	.rw-btn-pulse .elementor-button::before,
	.rw-btn-call .elementor-button-icon::before,
	.rw-pulse .elementor-icon::before,
	.rw-pulse .elementor-icon::after,
	.rw-live-dot,
	.rw-live::before,
	.rw-shimmer.go::after,
	.rw-shimmer:hover::after {
		animation: none !important;
	}

	.rw-js .rw-reveal {
		opacity: 1;
		transform: none;
	}

	/* No motion: the frame shows at full size, its end state (decisions 2026-10-31 T10-06: the reference's frame
	   stays stuck at 92% here because its script exits, a reference fault). */
	.rw-js .rw-scale {
		transform: none;
		transition: none;
	}

	.rw-in {
		animation: none;
	}

	.rw-call-pill .rw-call-ring .elementor-icon::before {
		animation: none;
	}

	.e-con.rw-call-pill {
		transition: none;
	}

	.elementor-button:active,
	.elementor-widget-button .elementor-button:hover .elementor-button-icon svg {
		transform: none;
	}

	/* Elementor entrance animations (Motion Effects) show their final state at once. */
	.elementor-invisible {
		visibility: visible !important;
	}

	.animated {
		animation: none !important;
	}

	html {
		scroll-behavior: auto;
	}
}

/* "(optional)" after a form label: regular weight, muted (reference .opt). inc/forms.php wraps it. */
.elementor-form .rw-opt {
	font-weight: 400;
	color: var(--e-global-color-rwmuted);
}

/* The request form's Back button is the outline pill, beside the teal Continue (reference .btn-line). */
.rw-rqf .e-form__buttons .e-form__buttons__wrapper__button-previous.elementor-button {
	/* Colours: the form's Style → Previous Button controls. This adds the outline and keeps it flat. */
	background-image: none;
	border-width: 1px;
	border-style: solid;
	box-shadow: none;
}

.rw-rqf .e-form__buttons .e-form__buttons__wrapper__button-previous.elementor-button:hover,
.rw-rqf .e-form__buttons .e-form__buttons__wrapper__button-previous.elementor-button:focus {
	box-shadow: none;
}

/* Fields in one row start at the same top, so two labels side by side line up (a field group is a wrapping flex
   row, which spreads its label and input over the row's height). */
.rw-rqf .elementor-form-fields-wrapper {
	align-items: flex-start;
}

.rw-rqf .elementor-field-group {
	align-content: flex-start;
}

/* Line icons draw at 1.75, the reference's svg.i weight (the Lucide files carry 2). Zero specificity, so the few
   icons the design draws heavier (ticks, map strokes) keep their own rule. */
:where(svg[stroke="currentColor"]) {
	stroke-width: 1.75;
}

/* Words that stay together on one line (the reference's .nw): a span or em with this class inside any heading or text. */
.rw-nw {
	white-space: nowrap;
}

/* Icon List icons keep their set size: Elementor gives the SVG an end margin inside a box exactly the icon's width,
   which squeezed 17 px icons to 12.8 px (Home service specs, About chips, the checklists). */
.elementor-icon-list-icon svg {
	flex: none;
}

/* An Image widget with a link (Link → Custom URL, or a post URL in a Loop card) wraps the photo in an inline link,
   which adds a text line under it: a cover photo stopped filling its card and the cards grew. The link holds only
   the photo, so it is a block with no line height, as tall as the widget. */
.elementor-widget.elementor-widget-image a { /* outranks Elementor's own inline-block rule */
	display: block;
	height: 100%; /* a photo set to fill its widget (height: 100%) still fills it through the link */
	line-height: 0;
}
