/* contextual internal links added by the SEO layer (visible for everyone) */
a.rac-il { color: #25408e; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
a.rac-il:hover { color: #1b2f6b; text-decoration-thickness: 2px; }
a.rac-il:focus-visible { outline: 3px solid #25408e; outline-offset: 2px; border-radius: 3px; }

/* ==========================================================================
   RenewAnyCar Redesign  v1.0.0
   Everything is scoped to  html.rac  so the old design is untouched until
   the class is switched on (preview cookie or live mode).
   Sections:  1 Tokens  2 Base  3 Header  4 Buttons  5 Forms  6 Page rhythm
              7 Hero  8 Services  9 Steps  10 Benefits  11 Supporting
              12 CTA band + quote form  13 Footer  14 Mobile bar  15 Motion
   ========================================================================== */

/* ---------- 1. Tokens (values taken from the existing brand) ------------- */
html.rac {
	--rac-blue: #25408e;          /* brand blue (Elementor kit) */
	--rac-blue-dark: #1b2f6b;
	--rac-yellow: #ffc829;        /* hero yellow (existing) */
	--rac-yellow-hover: #fbc421;  /* "DG yellow" (Elementor kit) */
	--rac-cta: var(--rac-blue);   /* primary button colour: change here to restyle every CTA */
	--rac-cta-hover: var(--rac-blue-dark);
	--rac-ink: #0f1729;
	--rac-body: #3f4756;
	--rac-muted: #5b6474;
	--rac-line: #e4e7ec;
	--rac-surface: #f4f4f4;       /* "Light Gray" (Elementor kit) */
	--rac-wa: #0e8a44;           /* WhatsApp green, darkened for AA contrast with white text */
	--rac-wa-hover: #0a7038;

	--rac-font-head: "Encode Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--rac-font-body: "Urbanist", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;   /* replaces Roboto */

	--rac-container: 1140px;      /* width of the existing layout */
	--rac-gutter: clamp(16px, 4vw, 32px);
	--rac-section: clamp(48px, 7vw, 88px);
	--rac-radius: 20px;
	--rac-radius-sm: 12px;
	--rac-shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 8px 24px rgba(16, 24, 40, .06);
	--rac-shadow-hover: 0 2px 4px rgba(16, 24, 40, .08), 0 16px 36px rgba(16, 24, 40, .12);
	--rac-t-fast: .18s;
	--rac-t: .28s;
}

/* ---------- 2. Base ------------------------------------------------------ */
html.rac {
	scroll-behavior: smooth;
	/* Elementor global fonts: Roboto -> Urbanist (Encode Sans is not touched) */
	--e-global-typography-primary-font-family: "Urbanist";
	--e-global-typography-text-font-family: "Urbanist";
	--e-global-typography-accent-font-family: "Urbanist";
}
html.rac body {
	font-family: var(--rac-font-body);
	color: var(--rac-body);
	overflow-x: clip;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
html.rac img { max-width: 100%; height: auto; }
html.rac :focus-visible {
	outline: 3px solid var(--rac-blue);
	outline-offset: 3px;
	border-radius: 6px;
}
@media (prefers-reduced-motion: reduce) {
	html.rac { scroll-behavior: auto; }
	html.rac *, html.rac *::before, html.rac *::after {
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
	}
}

/* Content container: one width for every section */
html.rac .elementor-6 > .e-con-boxed > .e-con-inner {
	max-width: calc(var(--rac-container) + 2 * var(--rac-gutter));
	padding-inline: var(--rac-gutter);
}

/* Skip link (ours comes first, before the header; the theme's duplicate is hidden) */
.rac-skip { display: none; }
html.rac .skip-link.screen-reader-text:not(.rac-skip) { display: none; }
html.rac .rac-skip {
	display: block;
	position: fixed;
	left: 12px;
	top: 12px;
	z-index: 3000;
	padding: 12px 18px;
	border-radius: var(--rac-radius-sm);
	background: #fff;
	color: var(--rac-blue);
	font-family: var(--rac-font-body);
	font-weight: 700;
	text-decoration: none;
	box-shadow: var(--rac-shadow-hover);
	transform: translateY(-200%);
	transition: transform var(--rac-t-fast) ease;
}
html.rac .rac-skip:focus { transform: none; }

/* ---------- 3. Header ------------------------------------------------------
   New header (rendered by the plugin): logo left, WhatsApp pill + toggle button
   right, all menu items inside the toggle. The Elementor header is hidden. */
.rac-hdr { display: none; }
html.rac .elementor-location-header { display: none; }
html.rac .rac-hdr {
	display: block;
	position: sticky;
	top: 0;
	z-index: 1000;
	background: #fff;
	border-bottom: 1px solid var(--rac-line);
	transition: box-shadow var(--rac-t) ease;
}
/* legacy mobile-nav-fix.css clips every <header>: keep the dropdown visible */
html.rac header.rac-hdr { overflow: visible !important; max-width: none !important; }
html.rac.rac-scrolled .rac-hdr { box-shadow: 0 6px 20px rgba(16, 24, 40, .08); }
html.rac body.admin-bar .rac-hdr { top: 32px; }
@media (max-width: 782px) { html.rac body.admin-bar .rac-hdr { top: 46px; } }

html.rac .rac-hdr__inner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	max-width: calc(var(--rac-container) + 2 * var(--rac-gutter));
	min-height: 76px;
	margin: 0 auto;
	padding: 8px var(--rac-gutter);
}
html.rac .rac-hdr__logo { display: inline-flex; flex: 0 0 auto; }
html.rac .rac-hdr__logo img { display: block; height: 52px; width: auto; max-width: none; }
html.rac .rac-hdr__actions { display: flex; align-items: center; gap: 12px; flex: 0 0 auto; }

/* WhatsApp pill (brand yellow, like the existing hotline pill) */
html.rac .rac-hdr__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 48px;
	padding: 8px 22px;
	border-radius: 999px;
	background: var(--rac-yellow);
	color: #111827;
	font-family: var(--rac-font-body);
	font-size: 17px;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
	text-decoration: none;
	transition: transform var(--rac-t-fast) ease, box-shadow var(--rac-t-fast) ease, background-color var(--rac-t-fast) ease;
}
html.rac .rac-hdr__cta svg { width: 24px; height: 24px; fill: #128c4a; flex: none; }
html.rac .rac-hdr__cta:hover { background: var(--rac-yellow-hover); transform: translateY(-1px); box-shadow: 0 6px 16px rgba(16, 24, 40, .16); color: #111827; }
html.rac .rac-hdr__cta:active { transform: translateY(0); }

/* Toggle button (bordered square, like the reference) */
html.rac .rac-hdr__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 2px solid var(--rac-blue);
	border-radius: 10px;
	background: #fff;
	color: var(--rac-blue);
	cursor: pointer;
	transition: background-color var(--rac-t-fast) ease;
}
html.rac .rac-hdr__toggle:hover { background: #eef1f8; }
html.rac .rac-hdr__bars { position: relative; display: block; width: 22px; height: 16px; }
html.rac .rac-hdr__bars i {
	position: absolute;
	right: 0;
	display: block;
	height: 2.5px;
	border-radius: 2px;
	background: currentColor;
	transition: transform var(--rac-t) ease, opacity var(--rac-t-fast) ease, width var(--rac-t) ease, top var(--rac-t) ease;
}
html.rac .rac-hdr__bars i:nth-child(1) { top: 0; width: 22px; }
html.rac .rac-hdr__bars i:nth-child(2) { top: 6.75px; width: 15px; }
html.rac .rac-hdr__bars i:nth-child(3) { top: 13.5px; width: 22px; }
html.rac .rac-hdr.is-open .rac-hdr__bars i:nth-child(1) { top: 6.75px; transform: rotate(45deg); }
html.rac .rac-hdr.is-open .rac-hdr__bars i:nth-child(2) { opacity: 0; }
html.rac .rac-hdr.is-open .rac-hdr__bars i:nth-child(3) { top: 6.75px; transform: rotate(-45deg); }

/* Menu dropdown */
html.rac .rac-menu {
	position: absolute;
	top: calc(100% + 8px);
	right: var(--rac-gutter);
	display: flex;
	flex-direction: column;
	width: 300px;
	max-width: calc(100vw - 2 * var(--rac-gutter));
	max-height: calc(100vh - 110px);
	overflow-y: auto;
	padding: 10px;
	background: #fff;
	border: 1px solid var(--rac-line);
	border-radius: 16px;
	box-shadow: 0 16px 40px rgba(16, 24, 40, .16);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-8px);
	transition: opacity var(--rac-t-fast) ease, transform var(--rac-t) ease, visibility 0s linear var(--rac-t);
}
html.rac .rac-hdr.is-open .rac-menu {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition-delay: 0s;
}
html.rac .rac-menu a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 48px;
	padding: 12px 16px;
	border-radius: 10px;
	color: var(--rac-ink);
	font-family: var(--rac-font-body);
	font-size: 17px;
	font-weight: 600;
	text-decoration: none;
	transition: background-color var(--rac-t-fast) ease, color var(--rac-t-fast) ease;
}
html.rac .rac-menu a::after {
	content: "";
	width: 8px;
	height: 8px;
	border-top: 2px solid currentColor;
	border-right: 2px solid currentColor;
	transform: rotate(45deg);
	opacity: .5;
	transition: transform var(--rac-t-fast) ease, opacity var(--rac-t-fast) ease;
}
html.rac .rac-menu a:hover,
html.rac .rac-menu a:focus-visible { background: #eef1f8; color: var(--rac-blue); }
html.rac .rac-menu a:hover::after { transform: translateX(3px) rotate(45deg); opacity: 1; }
html.rac .rac-menu a[aria-current="page"] { background: #eef1f8; color: var(--rac-blue); font-weight: 700; }

@media (max-width: 640px) {
	html.rac .rac-hdr__inner { min-height: 68px; gap: 8px; }
	html.rac .rac-hdr__logo img { height: 40px; }
	html.rac .rac-hdr__cta { min-height: 44px; padding: 6px 14px; font-size: 16px; }
	html.rac .rac-hdr__cta-label { display: none; }   /* icon + number only on phones */
	html.rac .rac-hdr__toggle { width: 44px; height: 44px; }
	html.rac .rac-menu { left: 12px; right: 12px; width: auto; max-width: none; }
}
@media (max-width: 380px) {
	html.rac .rac-hdr__inner { gap: 6px; }
	html.rac .rac-hdr__actions { gap: 6px; }
	html.rac .rac-hdr__logo img { height: 32px; }
	html.rac .rac-hdr__cta { padding: 6px 10px; font-size: 15px; gap: 6px; }
	html.rac .rac-hdr__cta svg { width: 20px; height: 20px; }
	html.rac .rac-hdr__toggle { width: 42px; height: 42px; }
}
@media (max-width: 345px) {
	html.rac { --rac-gutter: 12px; }
	html.rac .rac-hdr__logo img { height: 28px; }
	html.rac .rac-hdr__cta { padding: 6px 8px; font-size: 14px; gap: 5px; min-height: 40px; }
	html.rac .rac-hdr__cta svg { width: 18px; height: 18px; }
	html.rac .rac-hdr__toggle { width: 40px; height: 40px; }
}

/* ---------- 4. Buttons (one system everywhere) --------------------------- */
html.rac body .elementor .elementor-element .elementor-button.elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 52px;
	padding: 14px 28px;
	font-family: var(--rac-font-body);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: .005em;
	color: #fff;
	background: var(--rac-cta);
	background-image: none;
	border: 2px solid var(--rac-cta);
	border-radius: var(--rac-radius-sm);
	box-shadow: 0 1px 2px rgba(16, 24, 40, .12);
	transition: transform var(--rac-t-fast) ease, box-shadow var(--rac-t-fast) ease, background-color var(--rac-t-fast) ease, border-color var(--rac-t-fast) ease;
}
html.rac body .elementor .elementor-element .elementor-button.elementor-button:hover {
	background: var(--rac-cta-hover);
	background-image: none;
	border-color: var(--rac-cta-hover);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(37, 64, 142, .28);
}
html.rac body .elementor .elementor-element .elementor-button.elementor-button:active {
	transform: translateY(0) scale(.99);
	box-shadow: 0 1px 2px rgba(16, 24, 40, .12);
}
html.rac .elementor-button .elementor-button-text { color: inherit; }

/* ---------- 5. Forms (visual only: fields, names and handlers untouched) - */
html.rac body .elementor .elementor-field-group .elementor-field-textual.elementor-field-textual {
	min-height: 52px;
	padding: 12px 16px;
	font-family: var(--rac-font-body);
	font-size: 16px;
	color: var(--rac-ink);
	background-color: #fff;
	border: 1.5px solid #c9d0db;
	border-radius: var(--rac-radius-sm);
	transition: border-color var(--rac-t-fast) ease, box-shadow var(--rac-t-fast) ease;
}
html.rac body .elementor .elementor-field-group .elementor-field-textual.elementor-field-textual:focus {
	border-color: var(--rac-blue);
	box-shadow: 0 0 0 4px rgba(37, 64, 142, .18);
	outline: none;
}
html.rac .elementor-field-textual::placeholder { color: #667085; opacity: 1; }
html.rac .elementor-field-group .elementor-select-wrapper { width: 100%; }
html.rac .elementor-field-group .elementor-select-wrapper select { width: 100%; padding-inline-end: 44px; }
html.rac .elementor-field-group .elementor-field-label { font-family: var(--rac-font-body); font-weight: 600; color: var(--rac-ink); margin-bottom: 6px; }
html.rac .elementor-form .elementor-form-fields-wrapper { row-gap: 12px; }
html.rac .elementor-form .elementor-field-group { margin-bottom: 0; }
html.rac .elementor-message { font-family: var(--rac-font-body); font-size: 15px; margin-top: 12px; }
html.rac .elementor-message-success { color: #067647; }
html.rac .elementor-message-danger { color: #b42318; }

/* ---------- 6. Page rhythm: order, spacing, headings --------------------- */
/* Section order (visual only; DOM/SEO order and content unchanged):
   hero > services intro > steps > benefits > supporting info > testimonials > CTA band > quote form */
html.rac .elementor-6 { display: flex; flex-direction: column; }
html.rac .elementor-6 > .elementor-element-b829d14 { order: 1; }
html.rac .elementor-6 > .elementor-element-d57efac { order: 2; }
html.rac .elementor-6 > .elementor-element-2292184 { order: 3; }
html.rac .elementor-6 > .elementor-element-3c717ef { order: 4; }
html.rac .elementor-6 > .elementor-element-3f3e5d7 { order: 5; }
html.rac .elementor-6 > .elementor-element-ddef062 { order: 6; }
html.rac .elementor-6 > .elementor-element-5905db7 { order: 7; }
html.rac .elementor-6 > .elementor-element-2e83a20 { order: 8; }

html.rac .elementor-6 > .e-parent {
	--padding-top: var(--rac-section);
	--padding-bottom: var(--rac-section);
	--padding-left: 0px;
	--padding-right: 0px;
	--gap: 28px;
	--row-gap: 28px;
	--column-gap: 28px;
}
html.rac .elementor-6 > .elementor-element-3c717ef { background: var(--rac-surface); }

/* Headings (existing font, clearer hierarchy) */
html.rac body .elementor-6 .elementor-element .elementor-heading-title.elementor-heading-title {
	font-family: var(--rac-font-head);
	color: var(--rac-ink);
	font-weight: 700;
	letter-spacing: -.015em;
	margin: 0;
}
html.rac body .elementor-6 .elementor-element h2.elementor-heading-title.elementor-heading-title {
	font-size: clamp(1.65rem, 1.2rem + 1.9vw, 2.6rem);
	line-height: 1.15;
}
html.rac body .elementor-6 .elementor-element h3.elementor-heading-title.elementor-heading-title {
	font-size: clamp(1.15rem, 1rem + .5vw, 1.35rem);
	line-height: 1.3;
	letter-spacing: -.005em;
}
/* Sub-titles: the sentence that sits under a section title */
html.rac body .elementor-6 .elementor-element.elementor-element-3a6b4cf .elementor-heading-title.elementor-heading-title,
html.rac body .elementor-6 .elementor-element.elementor-element-c37ab38 .elementor-heading-title.elementor-heading-title {
	font-family: var(--rac-font-head);
	font-size: clamp(1.05rem, .95rem + .55vw, 1.35rem);
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0;
	color: var(--rac-muted);
	max-width: 46ch;
	margin-inline: auto;
}
html.rac body .elementor-6 .elementor-element.elementor-widget-text-editor,
html.rac body .elementor-6 .elementor-element.elementor-widget-text-editor p {
	font-family: var(--rac-font-body);
	color: var(--rac-body);
	font-size: clamp(1rem, .95rem + .25vw, 1.1rem);
	line-height: 1.65;
}
html.rac .elementor-6 .elementor-widget-text-editor p { margin: 0 0 .9em; }
html.rac .elementor-6 .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* ---------- 7. Hero ------------------------------------------------------ */
html.rac .elementor-6 > .elementor-element-b829d14 {
	--padding-top: clamp(32px, 5vw, 64px);
	--padding-bottom: clamp(32px, 5vw, 64px);
}
html.rac .elementor-6 > .elementor-element-b829d14 > .e-con-inner {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
	gap: clamp(24px, 4vw, 56px);
	align-items: center;
}
html.rac .elementor-6 .elementor-element-ec8dfcb {
	--width: 100%;
	width: 100%;
	--gap: 20px;
	--row-gap: 20px;
	--overflow: visible;
	overflow: visible;
	align-items: flex-start;
}
html.rac .elementor-6 .elementor-element-ec8dfcb > .elementor-widget-spacer { display: none; }
html.rac body .elementor-6 .elementor-element h1.elementor-heading-title.elementor-heading-title {
	font-family: var(--rac-font-head);
	font-weight: 700;
	font-size: clamp(2rem, 1.1rem + 3.6vw, 3.5rem);
	line-height: 1.08;
	letter-spacing: -.025em;
	color: #000;
	text-align: left;
}
html.rac body .elementor-6 .elementor-element.elementor-element-6fe8aa1,
html.rac body .elementor-6 .elementor-element.elementor-element-6fe8aa1 p {
	font-size: clamp(1.05rem, 1rem + .4vw, 1.25rem);
	color: #1c2333;
}
/* Hero actions: WhatsApp is the primary action, Get Quote scrolls to the form */
.rac-cta-row { display: block; }
.rac-wa-btn { display: none; }
html.rac .elementor-6 .elementor-element-82cbf8b { width: 100%; }
html.rac .rac-cta-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
}
html.rac .rac-cta-row .elementor-button-wrapper { margin: 0; }
html.rac .rac-wa-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 52px;
	padding: 14px 28px;
	font-family: var(--rac-font-body);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	color: #fff;
	background: var(--rac-wa);
	border: 2px solid var(--rac-wa);
	border-radius: var(--rac-radius-sm);
	box-shadow: 0 1px 2px rgba(16, 24, 40, .12);
	transition: transform var(--rac-t-fast) ease, box-shadow var(--rac-t-fast) ease, background-color var(--rac-t-fast) ease;
}
html.rac .rac-wa-btn svg { width: 22px; height: 22px; fill: currentColor; flex: none; transition: transform var(--rac-t-fast) ease; }
html.rac .rac-wa-btn:hover {
	background: var(--rac-wa-hover);
	border-color: var(--rac-wa-hover);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(14, 138, 68, .32);
}
html.rac .rac-wa-btn:hover svg { transform: scale(1.1); }
html.rac .rac-wa-btn:active { transform: translateY(0) scale(.99); }
/* on the yellow hero the secondary button gets a white outline look */
html.rac .elementor-6 .elementor-element-82cbf8b .elementor-button.elementor-button { min-width: 0; }

/* Trust checklist: 2 x 2 */
html.rac .elementor-6 .elementor-element-460bef7 .elementor-icon-list-items {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 20px;
	margin: 0;
	padding: 0;
}
html.rac .elementor-6 .elementor-element-460bef7 .elementor-icon-list-item { margin: 0; align-items: center; }
html.rac .elementor-6 .elementor-element-460bef7 .elementor-icon-list-text {
	font-family: var(--rac-font-body);
	font-size: 1rem;
	font-weight: 500;
	color: #1c2333;
}
/* the original offset (-75px / 150px margins) pushed the car out of its column */
html.rac .elementor-6 .elementor-element.elementor-element-0c3f5a7 { width: 100%; margin: 0; }
html.rac .elementor-6 .elementor-element-0c3f5a7 img { width: 100%; height: auto; display: block; }

/* Quote form card */
html.rac .elementor-6 .elementor-element.elementor-element-965dd41 {
	--width: 100%;
	width: 100%;
	--margin-top: 0px;
	--margin-bottom: 0px;
	--padding-top: clamp(20px, 3vw, 32px);
	--padding-bottom: clamp(20px, 3vw, 32px);
	--padding-left: clamp(18px, 3vw, 32px);
	--padding-right: clamp(18px, 3vw, 32px);
	--gap: 16px;
	--row-gap: 16px;
	--border-radius: var(--rac-radius);
	border-radius: var(--rac-radius);
	background: #fff;
	box-shadow: var(--rac-shadow-hover);
}
html.rac body .elementor-6 .elementor-element.elementor-element-e61f52a .elementor-heading-title.elementor-heading-title {
	font-size: clamp(1.3rem, 1.1rem + 1vw, 1.7rem);
	text-align: center;
}
html.rac .elementor-6 .elementor-element-e16ad65 {
	--padding-left: 0px;
	--padding-right: 0px;
	--padding-top: 4px;
	justify-content: center;
	gap: 16px;
}

@media (max-width: 1024px) {
	html.rac .elementor-6 > .elementor-element-b829d14 > .e-con-inner { grid-template-columns: minmax(0, 1fr); }
	html.rac body .elementor-6 .elementor-element-0c3f5a7 img { max-width: 520px; margin-inline: auto; }
}
@media (max-width: 560px) {
	html.rac .elementor-6 .elementor-element-460bef7 .elementor-icon-list-items { grid-template-columns: minmax(0, 1fr); }
	html.rac .elementor-6 .elementor-element-82cbf8b { width: 100%; }
	html.rac .rac-cta-row { flex-direction: column; align-items: stretch; }
	html.rac .rac-cta-row .rac-wa-btn { order: -1; width: 100%; }   /* WhatsApp first on phones */
	html.rac .rac-cta-row .elementor-button { width: 100%; }
}

@media (min-width: 561px) {
	html.rac .elementor-6 .elementor-element-d1bc1b0 .elementor-field-group.elementor-field-group-make,
	html.rac .elementor-6 .elementor-element-d1bc1b0 .elementor-field-group.elementor-field-group-model { width: 50%; }
	html.rac .elementor-6 .elementor-element-d1bc1b0 .elementor-field-group.elementor-field-group-field_4c72861 { width: 100%; }
}

/* Hero card: the three icon boxes stay in ONE row and each title wraps onto two lines */
html.rac .elementor-6 .elementor-element-e16ad65 {
	--flex-wrap: nowrap;
	--flex-wrap-mobile: nowrap;
	flex-wrap: nowrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 8px;
}
html.rac .elementor-6 .elementor-element-e16ad65 > .elementor-widget { flex: 1 1 0; min-width: 0; width: auto; }
html.rac .elementor-6 .elementor-element-e16ad65 .elementor-icon-box-wrapper { flex-direction: column; align-items: center; text-align: center; }
html.rac .elementor-6 .elementor-element-e16ad65 .elementor-icon-box-content { width: 100%; }
html.rac body .elementor-6 .elementor-element-e16ad65 .elementor-icon-box-title {
	width: min-content;          /* narrowest box = longest word, so 2 words = 2 lines */
	max-width: 100%;
	margin: 6px auto 0;
	font-family: var(--rac-font-body);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.25;
	text-align: center;
	color: var(--rac-ink);
}
html.rac body .elementor-6 .elementor-element-e16ad65 .elementor-icon { font-size: 68px; }
@media (max-width: 480px) {
	html.rac body .elementor-6 .elementor-element-e16ad65 .elementor-icon { font-size: 56px; }
	html.rac body .elementor-6 .elementor-element-e16ad65 .elementor-icon-box-title { font-size: 15px; }
}
@media (max-width: 360px) {
	html.rac body .elementor-6 .elementor-element-e16ad65 .elementor-icon { font-size: 48px; }
	html.rac body .elementor-6 .elementor-element-e16ad65 .elementor-icon-box-title { font-size: 14px; }
}

/* ---------- 8. Services intro (existing list, card layout) --------------- */
html.rac .elementor-6 .elementor-element-b087148 {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(20px, 3vw, 40px);
	align-items: start;
	width: 100%;
}
html.rac .elementor-6 .elementor-element-b087148 > .e-con { --width: 100%; width: 100%; min-width: 0; }
html.rac .elementor-6 .elementor-element-6cfc3c4 {
	border-radius: var(--rac-radius);
	box-shadow: var(--rac-shadow);
	--padding-top: 28px;
	--padding-bottom: 28px;
	--padding-left: 28px;
	--padding-right: 28px;
	--gap: 14px;
	--row-gap: 14px;
}
html.rac body .elementor-6 .elementor-element.elementor-element-19a3645 .elementor-heading-title.elementor-heading-title {
	font-size: clamp(1.25rem, 1.1rem + .6vw, 1.5rem);
	text-align: left;
}
html.rac .elementor-6 .elementor-icon-list-items { margin: 0; padding: 0; }
html.rac .elementor-6 .elementor-element-a5fe745 .elementor-icon-list-item,
html.rac .elementor-6 .elementor-element-d593122 .elementor-icon-list-item,
html.rac .elementor-6 .elementor-element-1ff3c26 .elementor-icon-list-item,
html.rac .elementor-6 .elementor-element-2fb026e .elementor-icon-list-item {
	padding: 8px 0;
	margin: 0;
	align-items: flex-start;
}
html.rac .elementor-6 .elementor-icon-list-text {
	font-family: var(--rac-font-body);
	font-size: 1rem;
	line-height: 1.5;
	color: var(--rac-body);
}
@media (max-width: 900px) {
	html.rac .elementor-6 .elementor-element-b087148 { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- 9. Steps ------------------------------------------------------ */
html.rac .elementor-6 .elementor-element-ebaecb1,
html.rac .elementor-6 .elementor-element-68590f1 {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	width: 100%;
}
html.rac .elementor-6 .elementor-element-ebaecb1 > .e-con,
html.rac .elementor-6 .elementor-element-68590f1 > .e-con {
	--width: 100%;
	--justify-content: flex-start;
	justify-content: flex-start;
	width: 100%;
	min-width: 0;
	position: relative;
	align-items: center;
	text-align: center;
	background: #fff;
	border: 1px solid var(--rac-line);
	border-radius: var(--rac-radius);
	box-shadow: var(--rac-shadow);
	--padding-top: 28px;
	--padding-bottom: 28px;
	--padding-left: 24px;
	--padding-right: 24px;
	--gap: 12px;
	--row-gap: 12px;
	transition: transform var(--rac-t) ease, box-shadow var(--rac-t) ease, border-color var(--rac-t) ease;
}
html.rac .elementor-6 .elementor-element-ebaecb1 > .e-con:hover,
html.rac .elementor-6 .elementor-element-68590f1 > .e-con:hover {
	transform: translateY(-4px);
	box-shadow: var(--rac-shadow-hover);
	border-color: #c5cde3;
}
html.rac .elementor-6 .elementor-element-ebaecb1 .elementor-widget-image img,
html.rac .elementor-6 .elementor-element-68590f1 .elementor-widget-image img {
	width: 150px;
	max-width: 100%;
	height: auto;
	margin-inline: auto;
	transition: transform var(--rac-t) ease;
}
html.rac .elementor-6 .elementor-element-ebaecb1 > .e-con:hover img,
html.rac .elementor-6 .elementor-element-68590f1 > .e-con:hover img { transform: scale(1.05); }
html.rac .elementor-6 .elementor-element-68590f1 { margin-top: 0; }
@media (max-width: 1024px) {
	html.rac .elementor-6 .elementor-element-ebaecb1,
	html.rac .elementor-6 .elementor-element-68590f1 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	html.rac .elementor-6 .elementor-element-ebaecb1,
	html.rac .elementor-6 .elementor-element-68590f1 { grid-template-columns: minmax(0, 1fr); gap: 16px; }
}

html.rac body .elementor-6 .elementor-element.elementor-element-ebaecb1 .elementor-heading-title.elementor-heading-title,
html.rac body .elementor-6 .elementor-element.elementor-element-68590f1 .elementor-heading-title.elementor-heading-title,
html.rac body .elementor-6 .elementor-element.elementor-element-180c397 .elementor-heading-title.elementor-heading-title {
	font-size: clamp(1.1rem, 1rem + .4vw, 1.3rem);
	line-height: 1.3;
	text-align: center;
}
html.rac .elementor-6 .elementor-element-ebaecb1 .elementor-widget-text-editor,
html.rac .elementor-6 .elementor-element-68590f1 .elementor-widget-text-editor,
html.rac .elementor-6 .elementor-element-180c397 .elementor-widget-text-editor { margin: 0; }

/* ---------- 10. Benefits -------------------------------------------------- */
html.rac .elementor-6 .elementor-element-180c397 {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
	width: 100%;
}
html.rac .elementor-6 .elementor-element-180c397 > .e-con {
	--width: 100%;
	--justify-content: flex-start;
	justify-content: flex-start;
	width: 100%;
	min-width: 0;
	align-items: center;
	text-align: center;
	background: #fff;
	border: 1px solid var(--rac-line);
	border-radius: var(--rac-radius);
	box-shadow: var(--rac-shadow);
	--padding-top: 28px;
	--padding-bottom: 28px;
	--padding-left: 22px;
	--padding-right: 22px;
	--gap: 12px;
	--row-gap: 12px;
	transition: transform var(--rac-t) ease, box-shadow var(--rac-t) ease, border-color var(--rac-t) ease;
}
html.rac .elementor-6 .elementor-element-180c397 > .e-con:hover {
	transform: translateY(-4px);
	box-shadow: var(--rac-shadow-hover);
	border-color: #c5cde3;
}
html.rac .elementor-6 .elementor-element-180c397 .elementor-widget-image img { width: 72px; height: 72px; object-fit: contain; margin-inline: auto; }
@media (max-width: 1100px) {
	html.rac .elementor-6 .elementor-element-180c397 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
	html.rac .elementor-6 .elementor-element-180c397 { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- 11. Supporting information ------------------------------------ */
html.rac .elementor-6 .elementor-element-26b30f4 { --width: 100%; width: 100%; max-width: 820px; margin-inline: auto; }
html.rac .elementor-6 .elementor-element-dcd246f {
	--width: 100%;
	width: 100%;
	--gap: 20px;
	--row-gap: 20px;
	--padding-top: 32px;
	--padding-bottom: 32px;
	--padding-left: clamp(16px, 3vw, 32px);
	--padding-right: clamp(16px, 3vw, 32px);
	border-radius: var(--rac-radius);
}
html.rac body .elementor-6 .elementor-element.elementor-element-3aa57fe .elementor-heading-title.elementor-heading-title {
	font-size: clamp(1.25rem, 1.1rem + .6vw, 1.6rem);
	text-align: center;
}
html.rac .elementor-6 .elementor-element-6c1643b {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	width: 100%;
}
html.rac .elementor-6 .elementor-element-6c1643b > .elementor-widget-icon-list {
	--width: 100%;
	width: 100%;
	min-width: 0;
	background: #fff;
	border: 1px solid var(--rac-line);
	border-radius: var(--rac-radius);
	box-shadow: var(--rac-shadow);
	padding: 16px 22px;
}
@media (max-width: 900px) {
	html.rac .elementor-6 .elementor-element-6c1643b { grid-template-columns: minmax(0, 1fr); }
}

/* Testimonials widget keeps its own styles; only guard against overflow */
html.rac .elementor-6 .elementor-element-ddef062 { overflow-x: clip; }

/* ---------- 12. CTA band + quote form ------------------------------------- */
html.rac .elementor-6 > .elementor-element-5905db7.elementor-element-5905db7:not(.elementor-motion-effects-element-type-background) {
	background: var(--rac-blue);
	--gap: 24px 32px;
	--row-gap: 24px;
	--column-gap: 32px;
	--padding-top: clamp(40px, 6vw, 72px);
	--padding-bottom: clamp(40px, 6vw, 72px);
}
html.rac .elementor-6 > .elementor-element-5905db7 > .e-con-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	gap: 24px;
}
html.rac .elementor-6 .elementor-element-5905db7 .elementor-widget { width: auto; max-width: 100%; }
html.rac body .elementor-6 .elementor-element.elementor-element-5905db7 .elementor-heading-title.elementor-heading-title { color: #fff; text-align: center; }
html.rac body .elementor .elementor-element-5905db7 .elementor-button.elementor-button {
	background: var(--rac-yellow);
	border-color: var(--rac-yellow);
	color: #111827;
}
html.rac body .elementor .elementor-element-5905db7 .elementor-button.elementor-button:hover {
	background: var(--rac-yellow-hover);
	border-color: var(--rac-yellow-hover);
	color: #111827;
	box-shadow: 0 8px 20px rgba(0, 0, 0, .25);
}
html.rac .elementor-6 > .elementor-element-2e83a20 > .e-con-inner { max-width: 1040px; }
html.rac .elementor-6 .elementor-element-2e83a20 .elementor-widget-form {
	width: 100%;
	max-width: 100%;
	background: #fff;
	border: 1px solid var(--rac-line);
	border-radius: var(--rac-radius);
	box-shadow: var(--rac-shadow);
	padding: clamp(18px, 3vw, 32px);
}
/* WhatsApp booking form (plugin-owned) replaces the Elementor one visually */
.rac-newform { display: none; }
html.rac .rac-newform { display: block; }
html.rac .rac-oldform { display: none; }
html.rac .rac-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px 20px;
}
html.rac .rac-field { min-width: 0; }
html.rac .rac-field label {
	display: block;
	margin: 0 0 8px;
	font-family: var(--rac-font-body);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.2;
	color: var(--rac-ink);
}
html.rac .rac-field input,
html.rac .rac-field select {
	display: block;
	width: 100%;
	min-height: 54px;
	margin: 0;
	padding: 12px 16px;
	font-family: var(--rac-font-body);
	font-size: 17px;
	line-height: 1.3;
	color: var(--rac-ink);
	background-color: #fff;
	border: 1.5px solid #c9d0db;
	border-radius: var(--rac-radius-sm);
	transition: border-color var(--rac-t-fast) ease, box-shadow var(--rac-t-fast) ease;
}
html.rac .rac-field select {
	appearance: none;
	-webkit-appearance: none;
	padding-right: 44px;
	text-overflow: ellipsis;
}
html.rac .rac-select { position: relative; }
html.rac .rac-select::after {
	content: "";
	position: absolute;
	right: 20px;
	top: 50%;
	width: 9px;
	height: 9px;
	border-right: 2px solid var(--rac-blue);
	border-bottom: 2px solid var(--rac-blue);
	transform: translateY(-70%) rotate(45deg);
	pointer-events: none;
}
html.rac .rac-field select:disabled { background-color: #f4f4f4; color: #667085; cursor: not-allowed; }
html.rac .rac-field input:focus,
html.rac .rac-field select:focus {
	border-color: var(--rac-blue);
	box-shadow: 0 0 0 4px rgba(37, 64, 142, .18);
	outline: none;
}
html.rac .rac-field input:user-invalid { border-color: #b42318; }
html.rac .rac-field--action { display: flex; align-items: flex-end; }
html.rac .rac-form__btn {
	white-space: normal;   /* the theme sets nowrap on all buttons */
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 54px;
	padding: 14px 24px;
	font-family: var(--rac-font-body);
	font-size: 17px;
	font-weight: 700;
	color: #fff;
	background: var(--rac-wa);
	border: 2px solid var(--rac-wa);
	border-radius: var(--rac-radius-sm);
	cursor: pointer;
	transition: transform var(--rac-t-fast) ease, box-shadow var(--rac-t-fast) ease, background-color var(--rac-t-fast) ease;
}
html.rac .rac-form__btn:hover { background: var(--rac-wa-hover); border-color: var(--rac-wa-hover); transform: translateY(-2px); box-shadow: 0 8px 20px rgba(14, 138, 68, .32); }
html.rac .rac-form__btn:active { transform: translateY(0) scale(.99); }
html.rac .rac-form__status { min-height: 1.4em; margin: 12px 0 0; font-size: .95rem; color: var(--rac-muted); }
/* wide screens: three columns so every placeholder / option is fully readable */
@media (min-width: 861px) {
	html.rac .rac-form__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px 24px; }
}
@media (max-width: 600px) {
	html.rac .rac-form__grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
}

html.rac .elementor-6 > .elementor-element-2e83a20.elementor-element-2e83a20:not(.elementor-motion-effects-element-type-background) { background: var(--rac-surface); }

/* ---------- 13. Footer ---------------------------------------------------- */
html.rac .elementor-location-footer { display: none; }   /* the empty Elementor footer */
.rac-footer, .rac-sticky { display: none; }              /* hidden until html.rac is on */
html.rac .rac-footer {
	display: block;
	background: var(--rac-blue);
	color: #e8ecf7;
	font-family: var(--rac-font-body);
	font-size: 1rem;
	line-height: 1.6;
	margin-top: 0;
}
html.rac .rac-footer a { color: #e8ecf7; text-decoration: none; }
html.rac .rac-footer__inner {
	max-width: var(--rac-container);
	margin: 0 auto;
	padding: clamp(40px, 6vw, 72px) var(--rac-gutter);
	display: grid;
	grid-template-columns: 1.4fr 1fr 1.2fr 1.4fr;
	gap: clamp(24px, 4vw, 48px);
}
html.rac .rac-footer__logo {
	display: inline-flex;
	background: #fff;
	padding: 10px 16px;
	border-radius: var(--rac-radius-sm);
}
html.rac .rac-footer__logo img { display: block; height: 40px; width: auto; }
html.rac .rac-footer__tagline { margin: 16px 0 0; max-width: 300px; color: #dbe1f2; }
html.rac .rac-footer__title {
	margin: 0 0 14px;
	font-family: var(--rac-font-head);
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--rac-yellow);
}
html.rac .rac-footer ul { list-style: none; margin: 0; padding: 0; }
html.rac .rac-footer li { margin: 0 0 8px; }
html.rac .rac-footer li a {
	display: inline-block;
	padding: 3px 0;
	background-image: linear-gradient(currentColor, currentColor);
	background-size: 0 1px;
	background-position: 0 100%;
	background-repeat: no-repeat;
	transition: background-size var(--rac-t) ease, color var(--rac-t-fast) ease;
}
html.rac .rac-footer li a:hover { color: #fff; background-size: 100% 1px; }
html.rac .rac-footer :focus-visible { outline-color: var(--rac-yellow); }
html.rac .rac-footer__address { font-style: normal; margin: 14px 0 0; color: #dbe1f2; }
html.rac .rac-footer__note { margin: 12px 0 0; font-size: .95rem; color: #cbd3ea; }
html.rac .rac-footer__bar { border-top: 1px solid rgba(255, 255, 255, .16); }
html.rac .rac-footer__bar p {
	max-width: var(--rac-container);
	margin: 0 auto;
	padding: 18px var(--rac-gutter);
	font-size: .9rem;
	color: #cbd3ea;
}
@media (max-width: 1024px) {
	html.rac .rac-footer__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	html.rac .rac-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
	html.rac .rac-footer__inner { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- 14. Mobile quick-action bar ----------------------------------- */
@media (max-width: 768px) {
	html.rac .rac-sticky {
		display: flex;
		gap: 10px;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 900;
		padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
		background: rgba(255, 255, 255, .96);
		border-top: 1px solid var(--rac-line);
		box-shadow: 0 -8px 24px rgba(16, 24, 40, .1);
		transition: transform var(--rac-t) ease, opacity var(--rac-t) ease;
	}
	html.rac .rac-sticky.is-hidden { transform: translateY(110%); opacity: 0; pointer-events: none; }
	html.rac:not(.rac-past-hero) .rac-sticky { transform: translateY(110%); opacity: 0; pointer-events: none; }
	html.rac .rac-sticky__btn {
		flex: 1 1 0;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 48px;
		padding: 12px 16px;
		border: 2px solid transparent;
		border-radius: var(--rac-radius-sm);
		font-family: var(--rac-font-body);
		font-size: 16px;
		font-weight: 600;
		text-decoration: none;
		transition: transform var(--rac-t-fast) ease;
	}
	html.rac .rac-sticky__btn:active { transform: scale(.98); }
	html.rac .rac-sticky__btn--wa { flex: 1.35 1 0; background: var(--rac-wa); color: #fff; gap: 8px; }
	html.rac .rac-sticky__btn--wa svg { width: 20px; height: 20px; fill: currentColor; }
	html.rac .rac-sticky__btn--primary { background: #fff; color: var(--rac-blue); border: 2px solid var(--rac-blue); }
	html.rac body { padding-bottom: 72px; }
}

/* ---------- 15. Motion (subtle, respects reduced-motion) ------------------ */
html.rac.rac-js .rac-reveal {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity .55s ease, transform .55s ease;
}
html.rac.rac-js .rac-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	html.rac.rac-js .rac-reveal { opacity: 1; transform: none; transition: none; }
}
