/*
 * RidgeRo Estimator: visitor wizard.
 * Uses the site's Elementor global accent colour when present. Every interactive state is set
 * explicitly with `.rre` in the selector, because the theme styles bare `button:hover/focus`
 * (blue background) with a higher specificity than a single class.
 */
.rre-wrap {
	--rre-accent: var(--e-global-color-accent, #f5a000);
	--rre-accent-soft: #fff7e6;
	--rre-ink: #1f2933;
	--rre-strong: #111827;
	--rre-muted: #5b6573;
	--rre-line: #e3e6ea;
	--rre-soft: #f6f7f9;
	--rre-card: #fff;
	--rre-error: #b42318;
	--rre-ok: #067647;
	--rre-radius: 12px;
	--rre-shadow: 0 1px 2px rgba(17, 24, 39, 0.04), 0 4px 16px rgba(17, 24, 39, 0.06);
	box-sizing: border-box;
	width: 100%;
	max-width: 1140px;
	margin: 0 auto;
	padding: 8px 0 56px;
	color: var(--rre-ink);
	font-size: 16px;
	line-height: 1.55;
}
/*
 * Page background: the site's warm neutral (as on the Services page) instead of the theme's light
 * blue, with a faint blueprint grid at the top that fades out, so the wide side margins don't look empty.
 */
body:has(.rre-wrap) {
	background-color: #f4f3ef;
	background-image:
		linear-gradient(to bottom, rgba(244, 243, 239, 0) 0, rgba(244, 243, 239, 0.6) 360px, #f4f3ef 760px),
		linear-gradient(rgba(54, 65, 81, 0.07) 1px, transparent 1px),
		linear-gradient(90deg, rgba(54, 65, 81, 0.07) 1px, transparent 1px);
	background-size: 100% 100%, 28px 28px, 28px 28px;
	background-repeat: no-repeat, repeat, repeat;
	background-position: 0 0, center -1px, center -1px;
}
.rre-wrap *,
.rre-wrap *::before,
.rre-wrap *::after { box-sizing: border-box; }

/* The theme capitalises headings, labels and buttons; the calculator uses sentence case. */
.rre-wrap h1,
.rre-wrap h2,
.rre-wrap h3,
.rre-wrap label,
.rre-wrap legend,
.rre-wrap button { text-transform: none; letter-spacing: normal; }

/* ------------------------------------------------------------------ header */
.rre-hero { margin: 0 0 28px; }
.rre-wrap .rre-eyebrow {
	margin: 0 0 8px;
	color: var(--rre-accent);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.rre-wrap .rre-h1 {
	margin: 0 0 10px;
	color: var(--rre-strong);
	font-size: clamp(30px, 4.2vw, 44px);
	line-height: 1.12;
}
.rre-hero-lead { max-width: 640px; margin: 0 0 16px; color: var(--rre-muted); font-size: 18px; }
.rre-trust {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 22px;
	margin: 0;
	padding: 0;
	list-style: none;
	color: var(--rre-ink);
	font-size: 15px;
	font-weight: 600;
}
.rre-trust li { display: flex; align-items: center; gap: 8px; margin: 0; }
.rre-trust li::before {
	content: "";
	width: 18px;
	height: 18px;
	flex: none;
	border-radius: 50%;
	background: var(--rre-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 10.5l3.2 3L15 7'/%3E%3C/svg%3E") center / 12px no-repeat;
}

/* ------------------------------------------------------------------ panel */
.rre {
	padding: clamp(18px, 3vw, 32px);
	border: 1px solid var(--rre-line);
	border-radius: 16px;
	background: var(--rre-card);
	box-shadow: var(--rre-shadow);
}
.rre-sample {
	margin: 0 0 20px;
	padding: 10px 14px;
	border: 1px dashed var(--rre-error);
	border-radius: 10px;
	background: #fff5f4;
	color: var(--rre-error);
	font-size: 14px;
}
.rre-loading { color: var(--rre-muted); }

/* ------------------------------------------------------------------ progress */
.rre-progress {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 8px;
	margin: 0 0 28px;
	padding: 0;
	list-style: none;
}
.rre-progress li { margin: 0; border-bottom: 3px solid var(--rre-line); }
.rre-progress li.is-done,
.rre-progress li.is-current { border-color: var(--rre-accent); }
.rre-step-tab {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 0 0 10px;
	color: var(--rre-muted);
	font-size: 14px;
}
.rre-progress li.is-current .rre-step-tab { color: var(--rre-strong); font-weight: 700; }
.rre-progress-num {
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--rre-soft);
	color: var(--rre-muted);
	font-size: 12px;
	font-weight: 700;
}
.rre-progress li.is-done .rre-progress-num,
.rre-progress li.is-current .rre-progress-num { background: var(--rre-accent); color: #fff; }
.rre-wrap button.rre-step-tab,
.rre-wrap button.rre-step-tab:hover,
.rre-wrap button.rre-step-tab:focus,
.rre-wrap button.rre-step-tab:active {
	width: 100%;
	min-height: 0;
	margin: 0;
	padding: 0 0 10px;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--rre-ink);
	font: inherit;
	font-size: 14px;
	text-align: left;
	cursor: pointer;
}
.rre-wrap button.rre-step-tab:hover .rre-step-label { text-decoration: underline; }
.rre-wrap button.rre-step-tab:focus-visible { outline: 2px solid var(--rre-accent); outline-offset: 4px; }
@media (max-width: 640px) {
	.rre-step-label { display: none; }
	.rre-progress li.is-current .rre-step-label { display: inline; }
}

/* ------------------------------------------------------------------ text */
.rre-wrap .rre-title {
	margin: 0 0 6px;
	color: var(--rre-strong);
	font-size: clamp(22px, 2.6vw, 28px);
	line-height: 1.25;
}
.rre-wrap .rre-title:focus { outline: none; }
.rre-lead { margin: 0 0 22px; color: var(--rre-muted); }
.rre-area + .rre-area { margin-top: 28px; }
.rre-wrap .rre-area-title {
	margin: 0 0 12px;
	color: var(--rre-muted);
	font-family: inherit;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

/* ------------------------------------------------------------------ cards */
.rre-cards {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}
@media (max-width: 1000px) { .rre-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .rre-cards { grid-template-columns: 1fr; } }

.rre-wrap .rre-card,
.rre-wrap .rre-card:hover,
.rre-wrap .rre-card:focus,
.rre-wrap .rre-card:active {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	width: 100%;
	min-height: 118px;
	margin: 0;
	padding: 18px 44px 18px 18px;
	border: 1px solid var(--rre-line);
	border-radius: var(--rre-radius);
	background: var(--rre-card);
	box-shadow: none;
	color: var(--rre-ink);
	font: inherit;
	line-height: 1.4;
	text-align: left;
	white-space: normal;
	cursor: pointer;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.rre-wrap .rre-card::after {
	content: "";
	position: absolute;
	top: 20px;
	right: 18px;
	width: 9px;
	height: 9px;
	border-top: 2px solid var(--rre-muted);
	border-right: 2px solid var(--rre-muted);
	transform: rotate(45deg);
	transition: transform 0.15s ease, border-color 0.15s ease;
}
.rre-wrap .rre-card:hover {
	border-color: var(--rre-accent);
	box-shadow: var(--rre-shadow);
	transform: translateY(-2px);
}
.rre-wrap .rre-card:hover::after { border-color: var(--rre-accent); transform: translateX(3px) rotate(45deg); }
.rre-wrap .rre-card:focus-visible { outline: 3px solid var(--rre-accent); outline-offset: 2px; }
.rre-card-title { color: var(--rre-strong); font-size: 17px; font-weight: 700; line-height: 1.3; }
.rre-card-text { color: var(--rre-muted); font-size: 14px; }
.rre-card-meta {
	align-self: stretch;
	margin: auto -26px 0 0;
	padding-top: 12px;
	border-top: 1px solid var(--rre-line);
	color: #8a5a00;
	font-size: 13px;
	font-weight: 700;
}
.rre-card-text + .rre-card-meta { margin-top: auto; }
/* Service card facts and status line: icons drawn with CSS masks, aligned with the title. */
.rre-fact,
.rre-card-status {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 14px;
	line-height: 1.4;
}
.rre-fact { color: var(--rre-muted); }
.rre-card-title + .rre-fact { margin-top: 4px; }
.rre-fact::before,
.rre-card-status::before {
	content: "";
	flex: 0 0 16px;
	width: 16px;
	height: 16px;
	margin-top: 1px;
	background: currentColor;
	-webkit-mask: var(--rre-icon) center / contain no-repeat;
	mask: var(--rre-icon) center / contain no-repeat;
}
.rre-fact::before { background: #9aa3ae; }
.rre-fact--measure { --rre-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 16.5 16.5 3 21 7.5 7.5 21z'/%3E%3Cpath d='m7.5 12 2 2M10.5 9l2 2M13.5 6l2 2'/%3E%3C/svg%3E"); }
.rre-fact--types { --rre-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 3 9 5-9 5-9-5z'/%3E%3Cpath d='m3 13 9 5 9-5'/%3E%3C/svg%3E"); }
.rre-fact--visit { --rre-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-6.2 7-11.5a7 7 0 0 0-14 0C5 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E"); }
.rre-card-status {
	align-self: stretch;
	align-items: center;
	margin: auto -26px 0 0;
	padding-top: 12px;
	border-top: 1px solid var(--rre-line);
	font-size: 13px;
	font-weight: 700;
}
.rre-card-title + .rre-card-status,
.rre-fact + .rre-card-status { margin-top: auto; }
.rre-card-status--instant { color: #8a5a00; }
.rre-card-status--instant::before { background: var(--rre-accent); --rre-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M13 2 4 14h7l-1 8 9-12h-7z'/%3E%3C/svg%3E"); }
.rre-card-status--visit { color: var(--rre-muted); }
.rre-card-status--visit::before { --rre-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E"); }
.rre-wrap .rre-card:has(.rre-card-status) { gap: 8px; min-height: 168px; }
.rre-wrap .rre-card:has(.rre-card-meta) { gap: 8px; min-height: 150px; }
@media (max-width: 520px) {
	.rre-wrap .rre-card:has(.rre-card-status),
	.rre-wrap .rre-card:has(.rre-card-meta) { min-height: 0; }
	.rre-card-status,
	.rre-card-meta { margin-top: 6px; }
}

/* ------------------------------------------------------------------ buttons and links */
.rre-wrap .rre-btn,
.rre-wrap .rre-btn:hover,
.rre-wrap .rre-btn:focus,
.rre-wrap .rre-btn:active {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 50px;
	margin: 0;
	padding: 12px 24px;
	border: 2px solid var(--rre-accent);
	border-radius: 10px;
	background: var(--rre-accent);
	box-shadow: none;
	color: #fff;
	font: inherit;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
}
.rre-wrap .rre-btn:hover { filter: brightness(0.94); }
.rre-wrap .rre-btn:active { filter: brightness(0.88); }
.rre-wrap .rre-btn:focus-visible { outline: 3px solid var(--rre-strong); outline-offset: 2px; }
.rre-wrap .rre-btn:disabled { opacity: 0.6; cursor: progress; }
.rre-wrap .rre-btn--block { width: 100%; }
.rre-wrap .rre-btn--ghost,
.rre-wrap .rre-btn--ghost:hover,
.rre-wrap .rre-btn--ghost:focus,
.rre-wrap .rre-btn--ghost:active { background: transparent; color: var(--rre-strong); filter: none; }
.rre-wrap .rre-btn--ghost:hover { background: var(--rre-accent-soft); }

.rre-wrap .rre-link,
.rre-wrap .rre-link:hover,
.rre-wrap .rre-link:focus,
.rre-wrap .rre-link:active,
.rre-wrap .rre-back,
.rre-wrap .rre-back:hover,
.rre-wrap .rre-back:focus,
.rre-wrap .rre-back:active {
	display: inline;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--rre-strong);
	font: inherit;
	font-size: 15px;
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: var(--rre-line);
	text-underline-offset: 3px;
	cursor: pointer;
}
.rre-wrap .rre-link:hover,
.rre-wrap .rre-back:hover { text-decoration-color: var(--rre-accent); }
.rre-wrap .rre-link:focus-visible,
.rre-wrap .rre-back:focus-visible { outline: 2px solid var(--rre-accent); outline-offset: 3px; }
.rre-wrap .rre-back { display: inline-block; margin-bottom: 14px; color: var(--rre-muted); text-decoration: none; }
.rre-wrap .rre-back:hover { color: var(--rre-strong); }
.rre-wrap .rre-link--danger { color: var(--rre-muted); }

/* ------------------------------------------------------------------ two-column layouts */
.rre-split {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 340px;
	align-items: start;
	gap: 32px;
}
.rre-aside { position: sticky; top: 110px; }
@media (max-width: 900px) {
	.rre-split { grid-template-columns: 1fr; gap: 20px; }
	.rre-aside { position: static; }
	/* On phones the live price stays visible at the bottom of the screen while scrolling the form. */
	.rre-aside--sticky-mobile { position: sticky; top: auto; bottom: 0; z-index: 5; margin: 0 calc(-1 * clamp(18px, 3vw, 32px)) calc(-1 * clamp(18px, 3vw, 32px)); }
	.rre-aside--sticky-mobile .rre-price-card { border-radius: 16px 16px 0 0; box-shadow: 0 -6px 24px rgba(17, 24, 39, 0.12); }
}

/* ------------------------------------------------------------------ form fields */
.rre-form,
.rre-lead-form { display: block; margin: 0; }
.rre-wrap .rre-field { margin: 0 0 20px; padding: 0; border: 0; }
.rre-wrap .rre-field > label,
.rre-wrap .rre-field > legend,
.rre-wrap .rre-group-label {
	display: block;
	margin: 0 0 8px;
	padding: 0;
	color: var(--rre-strong);
	font-size: 15px;
	font-weight: 700;
}
.rre-inputs { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 260px)); gap: 0 16px; }
.rre-lead-form .rre-inputs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 560px) { .rre-lead-form .rre-inputs { grid-template-columns: 1fr; } }
.rre-label-short { display: none; }
.rre-wrap input[type="number"],
.rre-wrap input[type="text"],
.rre-wrap input[type="email"],
.rre-wrap input[type="tel"],
.rre-wrap select,
.rre-wrap textarea {
	width: 100%;
	min-height: 48px;
	margin: 0;
	padding: 10px 12px;
	border: 1px solid #c9ced5;
	border-radius: 10px;
	background: #fff;
	box-shadow: none;
	color: var(--rre-ink);
	font: inherit;
}
.rre-wrap textarea { min-height: 96px; resize: vertical; }
.rre-wrap input:hover,
.rre-wrap select:hover,
.rre-wrap textarea:hover { border-color: #9aa3ae; }
.rre-wrap input:focus,
.rre-wrap select:focus,
.rre-wrap textarea:focus { border-color: var(--rre-accent); outline: 3px solid rgba(245, 160, 0, 0.25); outline-offset: 0; box-shadow: none; }
.rre-wrap [aria-invalid="true"] { border-color: var(--rre-error); }
.rre-unit { display: flex; align-items: stretch; }
.rre-wrap .rre-unit input { border-radius: 10px 0 0 10px; }
.rre-unit span {
	display: flex;
	align-items: center;
	padding: 0 14px;
	border: 1px solid #c9ced5;
	border-left: 0;
	border-radius: 0 10px 10px 0;
	background: var(--rre-soft);
	color: var(--rre-muted);
	font-size: 15px;
	white-space: nowrap;
}
.rre-help { margin: 6px 0 0; color: var(--rre-muted); font-size: 14px; }
.rre-help:empty,
.rre-error:empty { display: none; }
.rre-error { margin: 6px 0 0; color: var(--rre-error); font-size: 14px; font-weight: 600; }
.rre-req { color: var(--rre-error); }
.rre-qty {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: -6px 0 22px;
	padding: 6px 12px;
	border-radius: 999px;
	background: var(--rre-soft);
	color: var(--rre-strong);
	font-size: 14px;
	font-weight: 700;
}
.rre-qty:empty { display: none; }

.rre-choices,
.rre-options { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.rre-options { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); margin-bottom: 20px; }
.rre-wrap .rre-choice,
.rre-wrap .rre-check {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
	padding: 13px 14px;
	border: 1px solid var(--rre-line);
	border-radius: 10px;
	background: #fff;
	color: var(--rre-ink);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.4;
	cursor: pointer;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}
.rre-wrap .rre-choice:hover,
.rre-wrap .rre-check:hover { border-color: #b8bfc8; }
.rre-wrap .rre-choice:has(input:checked),
.rre-wrap .rre-check:has(input:checked) { border-color: var(--rre-accent); background: var(--rre-accent-soft); }
.rre-wrap .rre-choice:has(input:focus-visible),
.rre-wrap .rre-check:has(input:focus-visible) { outline: 3px solid rgba(245, 160, 0, 0.35); }
.rre-wrap .rre-choice input,
.rre-wrap .rre-check input { flex: none; width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--rre-accent); }

/* ------------------------------------------------------------------ price card */
.rre-price-card {
	padding: 22px;
	border: 1px solid var(--rre-line);
	border-top: 4px solid var(--rre-accent);
	border-radius: var(--rre-radius);
	background: #fff;
	box-shadow: var(--rre-shadow);
}
.rre-price { min-height: 70px; margin-bottom: 16px; transition: opacity 0.15s ease; }
.rre-price.is-loading { opacity: 0.5; }
.rre-wrap .rre-price-label,
.rre-wrap .rre-total-label {
	margin: 0 0 2px;
	color: var(--rre-muted);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.rre-wrap .rre-price-value {
	margin: 0;
	color: var(--rre-strong);
	font-size: clamp(26px, 3vw, 32px);
	font-weight: 800;
	line-height: 1.15;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
.rre-wrap .rre-price-value--text { font-size: 19px; white-space: normal; }
.rre-price-basis { margin: 4px 0 0; color: var(--rre-muted); font-size: 14px; }
.rre-price-note { margin: 0; color: var(--rre-muted); font-size: 15px; }
.rre-notes { margin: 12px 0 0; padding: 0; list-style: none; font-size: 14px; }
.rre-notes li {
	margin: 0 0 6px;
	padding: 8px 10px;
	border-radius: 8px;
	background: var(--rre-accent-soft);
	color: #6b4700;
}
.rre-fineprint { margin: 14px 0 0; color: var(--rre-muted); font-size: 13px; line-height: 1.45; }
@media (max-width: 900px) {
	.rre-aside--sticky-mobile .rre-price-card { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 16px; padding: 14px 18px; }
	.rre-aside--sticky-mobile .rre-price { min-height: 0; margin: 0; }
	.rre-aside--sticky-mobile .rre-notes,
	.rre-aside--sticky-mobile .rre-fineprint,
	.rre-aside--sticky-mobile .rre-price-basis { display: none; }
	.rre-aside--sticky-mobile .rre-btn { min-height: 46px; padding: 10px 16px; }
	.rre-aside--sticky-mobile .rre-price-value { font-size: 22px; }
	.rre-aside--sticky-mobile .rre-label-long { display: none; }
	.rre-aside--sticky-mobile .rre-label-short { display: inline; }
}

/* ------------------------------------------------------------------ cart bar */
.rre-cartbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin: -8px 0 24px;
	padding: 10px 16px;
	border-radius: 10px;
	background: var(--rre-soft);
	font-size: 15px;
}

/* ------------------------------------------------------------------ summary */
.rre-summary { margin: 0 0 18px; border-top: 1px solid var(--rre-line); }
.rre-line {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 4px 20px;
	padding: 16px 0;
	border-bottom: 1px solid var(--rre-line);
}
.rre-line-name { color: var(--rre-strong); font-size: 17px; font-weight: 700; }
.rre-line-qty { color: var(--rre-muted); font-weight: 500; }
.rre-line-detail { display: block; margin-top: 2px; color: var(--rre-muted); font-size: 14px; }
.rre-line-note { display: block; margin-top: 6px; color: #6b4700; font-size: 14px; }
.rre-line-price { color: var(--rre-strong); font-size: 17px; font-weight: 800; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.rre-line-price--text { font-size: 14px; font-weight: 700; color: var(--rre-muted); white-space: normal; max-width: 160px; }
.rre-line-actions { display: flex; gap: 18px; grid-column: 1 / -1; margin-top: 4px; }
@media (max-width: 560px) {
	.rre-line { grid-template-columns: 1fr; }
	.rre-line-price { text-align: left; }
}
.rre-total-row { display: flex; flex-direction: column; gap: 2px; }
.rre-total-note { margin: 10px 0 0; color: var(--rre-muted); font-size: 14px; }

/* ------------------------------------------------------------------ request form */
.rre-lead-form { margin-top: 28px; padding-top: 28px; border-top: 1px solid var(--rre-line); }
.rre-wrap .rre-lead-form h3 { margin: 0 0 4px; color: var(--rre-strong); font-size: 22px; line-height: 1.3; }
.rre-form-status { margin: 0 0 12px; color: var(--rre-error); font-weight: 600; }
.rre-form-status:empty { display: none; }
.rre-turnstile { max-width: 400px; margin: 4px 0 14px; }
.rre-privacy { margin: 12px 0 0; color: var(--rre-muted); font-size: 13px; }
.rre-success {
	margin-top: 28px;
	padding: 20px 22px;
	border: 1px solid #abefc6;
	border-radius: var(--rre-radius);
	background: #ecfdf3;
	color: var(--rre-ok);
	font-weight: 600;
}
.rre-success strong { display: block; margin-bottom: 4px; color: #054f31; font-size: 18px; }

/* Honeypot: off-screen for people, still in the DOM for bots. */
.rre-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

@media (max-width: 640px) {
	.rre { border-radius: 14px; }
	.rre-hero-lead { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
	.rre-wrap .rre-card,
	.rre-wrap .rre-card::after,
	.rre-wrap .rre-card:hover { transition: none; transform: none; }
}

/* Phones: measurement fields use the full width. */
@media (max-width: 560px) { .rre-inputs { grid-template-columns: 1fr; } }
.rre-line-price--text::first-letter { text-transform: uppercase; }
