/* ==========================================================================
   Riverside Laundry — main stylesheet
   1. Tokens  2. Base  3. Layout & utilities  4. Buttons & form controls
   5. Header  6. Heroes  7. Sections & components  8. Page specific
   9. Footer  10. Blog  11. Responsive
   ========================================================================== */

/* 1. Tokens ---------------------------------------------------------------- */
:root {
	--rvl-navy: #0c2a43;
	--rvl-navy-900: #0a2236;
	--rvl-ink: #0f2233;
	--rvl-blue: #1b6fa8;
	--rvl-blue-600: #155a8a;
	--rvl-blue-100: #e3f0f9;
	--rvl-blue-50: #eef6fc;
	--rvl-sky: #f3f8fc;
	--rvl-teal-pill: #dcefee;
	--rvl-teal-ink: #0e4a57;
	--rvl-text: #3f5468;
	--rvl-muted: #6b7f92;
	--rvl-border: #e2ebf2;
	--rvl-white: #fff;
	--rvl-star: #f5b301;
	--rvl-success: #1f9d6b;
	--rvl-danger: #c0392b;
	--rvl-radius: 14px;
	--rvl-radius-sm: 10px;
	--rvl-radius-lg: 20px;
	--rvl-shadow: 0 1px 2px rgba(12, 42, 67, .04), 0 8px 24px rgba(12, 42, 67, .07);
	--rvl-shadow-lg: 0 20px 50px rgba(12, 42, 67, .14);
	--rvl-serif: "Source Serif 4", "Iowan Old Style", Georgia, serif;
	--rvl-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--rvl-hand: "Caveat", "Segoe Print", cursive;
	--rvl-container: 1240px;
	--rvl-gutter: 24px;
	--rvl-section: clamp(48px, 6vw, 80px);
}

/* 2. Base ------------------------------------------------------------------ */
[hidden] { display: none !important; }
html, body { overflow-x: clip; }
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 90px; }
body { margin: 0; font-family: var(--rvl-sans); font-size: 16px; line-height: 1.6; color: var(--rvl-text); background: var(--rvl-white); -webkit-font-smoothing: antialiased; }
img, svg, video, iframe { max-width: 100%; }
img { height: auto; display: block; }
a { color: var(--rvl-blue); text-decoration: none; transition: color .2s; }
a:hover { color: var(--rvl-blue-600); }
h1, h2, h3, h4, h5, h6 { font-family: var(--rvl-serif); color: var(--rvl-ink); line-height: 1.15; margin: 0 0 .5em; font-weight: 600; letter-spacing: -.01em; }
h1 em, h2 em, h3 em { font-style: italic; color: var(--rvl-blue); font-weight: 600; }
p { margin: 0 0 1em; }
ul, ol { margin: 0; padding: 0; }
address { font-style: normal; }
button { font: inherit; cursor: pointer; }
:focus-visible { outline: 3px solid rgba(27, 111, 168, .45); outline-offset: 2px; border-radius: 6px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.rvl-skip { position: absolute; left: -9999px; top: 8px; z-index: 1000; background: var(--rvl-navy); color: #fff; padding: 10px 16px; border-radius: 8px; }
.rvl-skip:focus { left: 8px; color: #fff; }
.rvl-icon { flex-shrink: 0; vertical-align: middle; }
.rvl-hp { position: absolute; left: -9999px; }

/* 3. Layout ---------------------------------------------------------------- */
.rvl-container { width: 100%; max-width: calc(var(--rvl-container) + var(--rvl-gutter) * 2); margin-inline: auto; padding-inline: var(--rvl-gutter); }
.rvl-section { padding-block: var(--rvl-section); }
.rvl-section + .rvl-section { padding-top: 0; }
.rvl-split { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); gap: 40px; align-items: start; }
.rvl-split__side--divider { border-left: 1px solid var(--rvl-border); padding-left: 32px; }
.rvl-muted { color: var(--rvl-muted); }
.rvl-card { background: #fff; border: 1px solid var(--rvl-border); border-radius: var(--rvl-radius-lg); padding: 28px; box-shadow: var(--rvl-shadow); }
.rvl-card--soft { background: var(--rvl-sky); box-shadow: none; border-color: transparent; }
.rvl-card--row { display: flex; gap: 18px; align-items: flex-start; }
.rvl-card + .rvl-card { margin-top: 20px; }

/* Eyebrow / headings */
.rvl-eyebrow { font-family: var(--rvl-sans); font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--rvl-blue); margin: 0 0 10px; }
.rvl-eyebrow--pill { display: inline-block; background: var(--rvl-teal-pill); color: var(--rvl-teal-ink); padding: 6px 12px; border-radius: 999px; font-size: 11px; }
.rvl-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 28px; }
.rvl-heading--center { justify-content: center; text-align: center; }
.rvl-heading__title { font-size: clamp(26px, 3vw, 36px); margin: 0 0 8px; }
.rvl-heading__title--sm { font-size: clamp(22px, 2.2vw, 26px); }
.rvl-heading__text { margin: 0; color: var(--rvl-text); max-width: 640px; }
.rvl-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: 14px; color: var(--rvl-blue); white-space: nowrap; }
.rvl-link .rvl-icon { transition: transform .2s; }
.rvl-link:hover .rvl-icon { transform: translateX(3px); }

/* Icon circles */
.rvl-ic { display: inline-grid; place-items: center; border-radius: 50%; background: var(--rvl-blue-100); color: var(--rvl-blue); flex-shrink: 0; }
.rvl-ic--sm { width: 40px; height: 40px; }
.rvl-ic--sm .rvl-icon { width: 20px; height: 20px; }
.rvl-ic--md { width: 52px; height: 52px; }
.rvl-ic--lg { width: 64px; height: 64px; }
.rvl-ic--lg .rvl-icon { width: 30px; height: 30px; }
.rvl-ic--xl { width: 96px; height: 96px; }
.rvl-ic--xl .rvl-icon { width: 44px; height: 44px; }

/* Checks */
.rvl-checks { list-style: none; display: grid; gap: 9px; margin: 0 0 22px; }
.rvl-checks li { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; }
.rvl-checks .rvl-icon { color: var(--rvl-blue); margin-top: 3px; }

/* Stars, avatars, proof */
.rvl-stars { display: inline-flex; gap: 2px; color: var(--rvl-star); }
.rvl-avatars { display: inline-flex; }
.rvl-avatars > * { width: 36px; height: 36px; border-radius: 50%; border: 2px solid #fff; margin-left: -10px; display: grid; place-items: center; color: #fff; font-size: 12px; font-weight: 600; object-fit: cover; }
.rvl-avatars > *:first-child { margin-left: 0; }
.rvl-proof { display: flex; align-items: center; gap: 14px; margin-top: 26px; }
.rvl-proof p { margin: 2px 0 0; font-size: 14px; color: var(--rvl-muted); }

/* Handwritten note */
.rvl-note { font-family: var(--rvl-hand); font-size: 24px; line-height: 1.15; color: var(--rvl-ink); transform: rotate(-8deg); margin: 0; max-width: 180px; pointer-events: none; }
.rvl-note .rvl-icon { display: block; margin: 4px auto 0; }

/* Images */
.rvl-img { width: 100%; height: 100%; object-fit: cover; }
.rvl-img--placeholder { display: grid; place-items: center; min-height: 160px; color: rgba(27, 111, 168, .35); background: linear-gradient(135deg, #f1f7fc 0%, #dceaf5 55%, #c9dceb 100%); }

/* Alerts */
.rvl-alert { display: flex; gap: 10px; align-items: center; padding: 14px 18px; border-radius: var(--rvl-radius-sm); background: var(--rvl-blue-50); color: var(--rvl-ink); margin-bottom: 18px; }
.rvl-alert--success { background: #e6f6ef; color: #135e41; }
.rvl-alert--error { background: #fdecea; color: #8c2a20; }

/* 4. Buttons & forms ------------------------------------------------------- */
.rvl-btn-row { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 26px; }
.rvl-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 12px 24px; border-radius: var(--rvl-radius-sm); border: 1.5px solid transparent; font-family: var(--rvl-sans); font-size: 15px; font-weight: 600; line-height: 1.2; text-align: center; transition: background .2s, color .2s, border-color .2s, transform .2s, box-shadow .2s; cursor: pointer; }
.rvl-btn--primary { background: var(--rvl-navy); color: #fff; }
.rvl-btn--primary:hover { background: var(--rvl-navy-900); color: #fff; transform: translateY(-1px); box-shadow: 0 10px 22px rgba(12, 42, 67, .22); }
.rvl-btn--outline { background: #fff; color: var(--rvl-ink); border-color: #c8d6e2; }
.rvl-btn--outline:hover { border-color: var(--rvl-navy); color: var(--rvl-navy); }
.rvl-btn--light { background: #fff; color: var(--rvl-navy); }
.rvl-btn--sm { min-height: 42px; padding: 9px 18px; font-size: 14px; }
.rvl-btn--block { width: 100%; }
.rvl-btn__icon { transition: transform .2s; }
.rvl-btn:hover .rvl-btn__icon { transform: translateX(3px); }
.rvl-btn[disabled], .rvl-btn.is-loading { opacity: .6; pointer-events: none; }

.rvl-field { display: block; margin-bottom: 16px; }
.rvl-field > span:first-child { display: block; font-size: 14px; font-weight: 600; color: var(--rvl-ink); margin-bottom: 7px; }
.rvl-field em { color: var(--rvl-danger); font-style: normal; }
.rvl-input { position: relative; display: flex; align-items: center; }
.rvl-input > .rvl-icon { position: absolute; left: 14px; color: var(--rvl-muted); pointer-events: none; }
.rvl-input--area > .rvl-icon { top: 14px; }
.rvl-input input, .rvl-input select, .rvl-input textarea,
.rvl-form input[type="text"], .rvl-form input[type="email"], .rvl-form input[type="tel"], .rvl-form select, .rvl-form textarea {
	width: 100%; min-height: 48px; padding: 12px 14px 12px 44px; border: 1.5px solid var(--rvl-border); border-radius: var(--rvl-radius-sm); background: #fff; font: inherit; font-size: 15px; color: var(--rvl-ink); transition: border-color .2s, box-shadow .2s; appearance: none;
}
.rvl-input textarea { resize: vertical; min-height: 110px; }
.rvl-input--select::after { content: ""; position: absolute; right: 16px; width: 8px; height: 8px; border-right: 2px solid var(--rvl-muted); border-bottom: 2px solid var(--rvl-muted); transform: rotate(45deg) translateY(-3px); pointer-events: none; }
.rvl-input input:focus, .rvl-input select:focus, .rvl-input textarea:focus { outline: none; border-color: var(--rvl-blue); box-shadow: 0 0 0 4px rgba(27, 111, 168, .12); }
.rvl-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.rvl-field--full { grid-column: 1 / -1; }
.rvl-search-box { position: relative; display: flex; align-items: center; margin-top: 26px; max-width: 560px; }
.rvl-search-box .rvl-icon { position: absolute; left: 18px; color: var(--rvl-blue); }
.rvl-search-box input { width: 100%; min-height: 56px; border: 1.5px solid var(--rvl-border); border-radius: 12px; padding: 14px 18px 14px 52px; font: inherit; box-shadow: var(--rvl-shadow); }
.rvl-searchform { display: flex; gap: 10px; margin: 18px 0; max-width: 520px; }
.rvl-searchform .rvl-input { flex: 1; }

/* 5. Header ---------------------------------------------------------------- */
.rvl-header { position: sticky; top: 0; z-index: 100; background: rgba(255, 255, 255, .96); backdrop-filter: saturate(160%) blur(10px); border-bottom: 1px solid transparent; transition: box-shadow .25s, border-color .25s; }
.admin-bar .rvl-header { top: 32px; }
.rvl-header.is-scrolled { box-shadow: 0 6px 24px rgba(12, 42, 67, .08); border-color: var(--rvl-border); }
.rvl-header__inner { display: flex; align-items: center; gap: 28px; min-height: 76px; }
.rvl-logo { display: inline-flex; align-items: center; gap: 10px; color: var(--rvl-blue); }
.rvl-logo__text { display: flex; flex-direction: column; line-height: 1; }
.rvl-logo__name { font-family: var(--rvl-serif); font-size: 25px; font-weight: 700; color: var(--rvl-navy); letter-spacing: -.02em; }
.rvl-logo__tag { font-size: 8.5px; letter-spacing: .2em; color: var(--rvl-blue); margin-top: 4px; font-weight: 600; }
.rvl-logo--light, .rvl-logo--light .rvl-logo__name { color: #fff; }
.rvl-logo__name { white-space: nowrap; }
.rvl-logo__mark { flex-shrink: 0; }
.rvl-footer .rvl-logo { gap: 8px; }
.rvl-footer .rvl-logo__name { font-size: 21px; }
.rvl-logo--light .rvl-logo__mark { color: #6fb6e6; }
.rvl-logo--light .rvl-logo__tag { color: #a9c7dd; }
.custom-logo-link img { max-height: 54px; width: auto; }
.rvl-nav { flex: 1; display: flex; justify-content: center; }
.rvl-menu { list-style: none; display: flex; gap: 32px; align-items: center; }
.rvl-menu > li { position: relative; }
.rvl-menu a { display: block; padding: 8px 0; color: var(--rvl-ink); font-size: 15px; font-weight: 500; position: relative; }
.rvl-menu > li > a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--rvl-blue); transform: scaleX(0); transition: transform .2s; }
.rvl-menu > li > a:hover::after, .rvl-menu > .current-menu-item > a::after, .rvl-menu > .current-menu-ancestor > a::after, .rvl-menu > .current_page_item > a::after { transform: scaleX(1); }
.rvl-menu .sub-menu { list-style: none; position: absolute; top: 100%; left: -16px; min-width: 230px; background: #fff; border: 1px solid var(--rvl-border); border-radius: 12px; padding: 10px; box-shadow: var(--rvl-shadow-lg); opacity: 0; visibility: hidden; transform: translateY(8px); transition: .2s; }
.rvl-menu li:hover > .sub-menu, .rvl-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.rvl-menu .sub-menu a { padding: 9px 12px; border-radius: 8px; font-size: 14px; }
.rvl-menu .sub-menu a:hover { background: var(--rvl-sky); }
.rvl-header__actions { display: flex; align-items: center; gap: 18px; }
.rvl-location { display: inline-flex; align-items: center; gap: 6px; color: var(--rvl-ink); font-size: 14px; font-weight: 500; }
.rvl-location .rvl-icon:first-child { color: var(--rvl-blue); }
.rvl-burger { display: none; background: none; border: 0; padding: 8px; color: var(--rvl-ink); }
.rvl-burger .rvl-icon { width: 26px; height: 26px; max-width: none; }
.rvl-burger__close { display: none; }
.rvl-nav__mobile-cta { display: none; }

/* 6. Heroes ---------------------------------------------------------------- */
.rvl-hero { position: relative; overflow: hidden; background: linear-gradient(180deg, #f6fafd 0%, #eef5fb 100%); }
.rvl-hero__inner { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; align-items: center; padding-block: 56px 64px; }
.rvl-hero__content { max-width: 560px; }
.rvl-hero__title { font-size: clamp(38px, 5vw, 60px); line-height: 1.05; margin-bottom: 18px; letter-spacing: -.02em; }
.rvl-hero__title--xl { font-size: clamp(40px, 4.6vw, 58px); }
.rvl-hero__lead { font-size: clamp(17px, 1.6vw, 19px); color: var(--rvl-text); margin-bottom: 14px; }
.rvl-hero__text { font-size: 16px; margin-bottom: 8px; }
.rvl-hero__media { position: absolute; inset: 0 0 0 42%; z-index: 1; }
.rvl-hero__media .rvl-img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.rvl-hero__media::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, #f3f8fc 0%, rgba(243, 248, 252, .85) 14%, rgba(243, 248, 252, 0) 42%); pointer-events: none; }
.rvl-hero__media--center { inset: 0 32% 0 26%; }
.rvl-hero__media--center::before { background: linear-gradient(90deg, #f3f8fc 0%, rgba(243, 248, 252, 0) 35%, rgba(243, 248, 252, 0) 70%, #f3f8fc 100%); }
.rvl-hero__note { position: absolute; z-index: 2; left: 16%; top: 14%; }
.rvl-hero__aside { justify-self: end; width: 100%; max-width: 360px; }
.rvl-hero__aside--quote { align-self: start; margin-top: 24px; }
.rvl-hero--inner .rvl-hero__inner { min-height: 300px; padding-block: 44px 40px; }
.rvl-hero--sm .rvl-hero__inner { min-height: 240px; }
.rvl-hero--lg .rvl-hero__inner { min-height: 420px; padding-block: 36px 70px; }
.rvl-hero--home .rvl-hero__inner { min-height: 560px; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); }
.rvl-hero--home .rvl-hero__media { inset: 0 0 0 38%; }
.rvl-hero--home .rvl-hero__note { left: 14%; top: 14%; }
.rvl-hero--simple { padding-block: 56px 48px; }
.rvl-hero--simple .rvl-hero__title { font-size: clamp(34px, 4vw, 48px); }
.rvl-hero__features { list-style: none; display: flex; flex-wrap: wrap; gap: 14px 28px; margin-top: 26px; }
.rvl-hero__features li { display: flex; gap: 12px; align-items: center; font-size: 13px; color: var(--rvl-muted); }
.rvl-hero__features strong { display: block; font-family: var(--rvl-serif); color: var(--rvl-ink); font-size: 15px; font-weight: 600; }

.rvl-crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; font-size: 13px; margin-bottom: 18px; }
.rvl-crumbs li + li::before { content: "›"; margin-right: 6px; color: var(--rvl-muted); }
.rvl-crumbs a { color: var(--rvl-blue); }
.rvl-crumbs span { color: var(--rvl-ink); }

/* Quote card */
.rvl-quote-card { background: rgba(255, 255, 255, .94); backdrop-filter: blur(6px); border-radius: var(--rvl-radius-lg); padding: 24px; box-shadow: var(--rvl-shadow-lg); max-width: 300px; margin-left: auto; }
.rvl-quote-card__text { font-family: var(--rvl-serif); font-size: 22px; line-height: 1.2; color: var(--rvl-ink); margin-bottom: 14px; }
.rvl-quote-card__text em { color: var(--rvl-blue); font-style: italic; }
.rvl-quote-card .rvl-stars { display: flex; margin: 10px 0 8px; }
.rvl-quote-card__meta { font-size: 13px; color: var(--rvl-muted); margin: 0; }

/* Schedule card */
.rvl-schedule { padding: 26px; border-radius: var(--rvl-radius-lg); box-shadow: var(--rvl-shadow-lg); }
.rvl-schedule__title { font-size: 22px; margin-bottom: 2px; }
.rvl-schedule__sub { font-size: 14px; color: var(--rvl-muted); margin-bottom: 16px; }
.rvl-schedule__foot { display: flex; gap: 6px; align-items: center; justify-content: center; font-size: 12px; color: var(--rvl-muted); margin: 12px 0 0; }
.rvl-schedule__foot .rvl-icon { color: var(--rvl-blue); }

/* Info card (single service) */
.rvl-info-card__title { font-size: 22px; margin-bottom: 2px; }
.rvl-info-card__sub { color: var(--rvl-muted); font-size: 14px; }
.rvl-info-list { list-style: none; margin: 8px 0 22px; }
.rvl-info-list li { display: flex; gap: 16px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--rvl-border); }
.rvl-info-list li:last-child { border-bottom: 0; }
.rvl-info-list small { display: block; font-size: 13px; color: var(--rvl-muted); }
.rvl-info-list strong { font-family: var(--rvl-serif); font-size: 17px; color: var(--rvl-ink); }
.rvl-info-list strong em { font-family: var(--rvl-sans); font-style: normal; font-size: 13px; color: var(--rvl-muted); font-weight: 500; }
.rvl-info-list--plain li { align-items: flex-start; border: 0; padding: 12px 0; }
.rvl-info-list--plain em { display: block; font-size: 13px; color: var(--rvl-muted); font-style: normal; }
.rvl-info-list--plain address { color: var(--rvl-ink); }

/* 7. Components ------------------------------------------------------------ */
/* Feature strip */
.rvl-strip { list-style: none; display: grid; grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr)); }
.rvl-strip--bar { background: var(--rvl-sky); border-radius: var(--rvl-radius-lg); padding: 22px 8px; }
.rvl-strip--overlap { background: #fff; border-radius: var(--rvl-radius-lg); padding: 20px 8px; box-shadow: var(--rvl-shadow); border: 1px solid var(--rvl-border); }
.rvl-strip-wrap--overlap { position: relative; z-index: 3; margin-top: -40px; }
.rvl-strip-wrap--bar { padding-bottom: 0; }
.rvl-strip-wrap--bar + .rvl-section { padding-top: var(--rvl-section); }
.rvl-strip__item { display: flex; gap: 14px; align-items: center; padding: 6px 22px; }
.rvl-strip--bar .rvl-strip__item + .rvl-strip__item, .rvl-strip--overlap .rvl-strip__item + .rvl-strip__item { border-left: 1px solid var(--rvl-border); }
.rvl-strip__title { font-size: 16px; margin: 0 0 2px; }
.rvl-strip--lg .rvl-strip__title { font-size: 18px; }
.rvl-strip__text { margin: 0; font-size: 14px; color: var(--rvl-muted); }
.rvl-strip--plain { gap: 18px; }
.rvl-strip--plain .rvl-strip__item { padding: 0; align-items: flex-start; }
.rvl-strip--compact .rvl-strip__title { font-size: 15px; font-family: var(--rvl-sans); font-weight: 600; }
.rvl-strip--compact .rvl-strip__text { font-size: 13px; }

/* Tabs */
.rvl-tabs { display: flex; gap: 10px; overflow-x: auto; padding: 4px 2px 6px; margin-bottom: 28px; scrollbar-width: thin; }
.rvl-tab { display: inline-flex; align-items: center; gap: 10px; padding: 12px 22px; border-radius: 999px; background: var(--rvl-sky); border: 1px solid transparent; color: var(--rvl-ink); font-size: 14px; font-weight: 500; white-space: nowrap; transition: .2s; }
.rvl-tab .rvl-icon { color: var(--rvl-blue); }
.rvl-tab:hover { border-color: var(--rvl-border); background: #fff; }
.rvl-tab.is-active { background: var(--rvl-navy); color: #fff; }
.rvl-tab.is-active .rvl-icon { color: #fff; }

/* Services grid */
.rvl-services__grid { list-style: none; display: grid; grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr)); gap: 20px; }
.rvl-svc { background: #fff; border: 1px solid var(--rvl-border); border-radius: var(--rvl-radius); overflow: hidden; box-shadow: var(--rvl-shadow); transition: transform .25s, box-shadow .25s; }
.rvl-svc:hover { transform: translateY(-3px); box-shadow: var(--rvl-shadow-lg); }
.rvl-svc[hidden] { display: none; }
.rvl-svc__media { display: block; overflow: hidden; }
.rvl-svc__media .rvl-img { transition: transform .5s; }
.rvl-svc:hover .rvl-svc__media .rvl-img { transform: scale(1.04); }
.rvl-svc__body { padding: 20px; }
.rvl-svc__title { font-size: 19px; margin: 12px 0 6px; }
.rvl-svc__title a { color: var(--rvl-ink); }
.rvl-svc__text { font-size: 14px; color: var(--rvl-muted); margin-bottom: 14px; }
.rvl-svc__price { font-weight: 600; color: var(--rvl-ink); font-size: 14px; }
.rvl-services--wide .rvl-svc { display: grid; grid-template-columns: 46% 54%; min-height: 210px; }
.rvl-services--wide .rvl-svc__media { height: 100%; }
.rvl-services--wide .rvl-svc__body { padding: 16px 14px 16px 16px; display: flex; flex-direction: column; }
.rvl-services--wide .rvl-svc__body .rvl-ic { width: 44px; height: 44px; }
.rvl-services--wide .rvl-svc__title { font-size: 18px; margin-top: 10px; }
.rvl-services--wide .rvl-svc__text { font-size: 13px; line-height: 1.5; }
.rvl-services--wide .rvl-svc__text { flex: 1; }
.rvl-services--compact .rvl-svc__media { aspect-ratio: 16 / 10; }
.rvl-services--compact .rvl-svc__body { position: relative; padding-top: 32px; }
.rvl-services--compact .rvl-svc__body .rvl-ic { position: absolute; top: -26px; left: 20px; border: 4px solid #fff; }
.rvl-services--compact .rvl-svc__title { margin-top: 0; }

/* Plans */
.rvl-plans--side .rvl-plans__inner { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 36px; }
.rvl-plans--side .rvl-heading { flex-direction: column; align-items: flex-start; }
.rvl-plans__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; }
.rvl-plans--side .rvl-plans__head { display: block; }
.rvl-toggle { display: inline-flex; padding: 4px; border: 1px solid var(--rvl-border); border-radius: 10px; background: #fff; margin-bottom: 28px; }
.rvl-toggle button { border: 0; background: none; padding: 8px 20px; border-radius: 7px; font-size: 13px; font-weight: 500; color: var(--rvl-ink); }
.rvl-toggle button.is-active { background: var(--rvl-navy); color: #fff; }
.rvl-toggle--center { display: flex; width: max-content; margin: -12px auto 18px; }
.rvl-plans__grid { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.rvl-plans__grid--all { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.rvl-plan { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--rvl-border); border-radius: var(--rvl-radius-lg); padding: 28px 24px; box-shadow: var(--rvl-shadow); transition: opacity .25s, transform .25s; }
.rvl-plan.is-popular { border: 2px solid var(--rvl-blue); box-shadow: 0 16px 40px rgba(27, 111, 168, .15); }
.rvl-plan[hidden] { display: none; }
.rvl-plan.is-dim { opacity: .45; }
.rvl-plan__badge { position: absolute; top: -13px; left: 50%; transform: translateX(-50%); background: var(--rvl-blue); color: #fff; font-size: 12px; font-weight: 600; padding: 4px 14px; border-radius: 999px; white-space: nowrap; }
.rvl-plan__title { font-size: 21px; margin-bottom: 4px; }
.rvl-plan__sub { font-size: 14px; color: var(--rvl-muted); min-height: 44px; }
.rvl-plan__price { margin-bottom: 18px; color: var(--rvl-muted); }
.rvl-plan__price strong { font-family: var(--rvl-serif); font-size: 36px; color: var(--rvl-ink); font-weight: 600; }
.rvl-plan__custom { font-size: 28px !important; }
.rvl-plan .rvl-checks { flex: 1; align-content: start; }

/* Price table */
.rvl-price-table__inner { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 36px; align-items: start; }
.rvl-price-table__head .rvl-heading { flex-direction: column; align-items: flex-start; margin-bottom: 20px; }
.rvl-table-scroll { overflow-x: auto; border: 1px solid var(--rvl-border); border-radius: var(--rvl-radius); background: #fff; box-shadow: var(--rvl-shadow); }
.rvl-table { width: 100%; border-collapse: collapse; font-size: 14px; min-width: 760px; }
.rvl-table th, .rvl-table td { padding: 14px 16px; border-bottom: 1px solid var(--rvl-border); text-align: center; }
.rvl-table thead th, .rvl-table thead td { background: var(--rvl-sky); }
.rvl-table thead a { display: inline-flex; align-items: center; gap: 10px; font-family: var(--rvl-serif); font-size: 15px; font-weight: 600; color: var(--rvl-ink); }
.rvl-table tbody th { text-align: left; color: var(--rvl-ink); font-weight: 600; }
.rvl-table tbody tr:last-child > * { border-bottom: 0; }
.rvl-table strong { color: var(--rvl-ink); }

/* Steps */
.rvl-steps__list { list-style: none; display: grid; grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr)); gap: 24px; }
.rvl-steps--icons .rvl-step { position: relative; text-align: center; }
.rvl-steps--icons .rvl-step .rvl-ic { margin-bottom: 14px; background: #fff; border: 1px solid var(--rvl-border); box-shadow: var(--rvl-shadow); }
.rvl-steps--icons .rvl-step:not(:last-child)::after { content: "→"; position: absolute; top: 18px; right: -18px; color: var(--rvl-ink); font-size: 20px; }
.rvl-step__title { font-size: 17px; margin-bottom: 4px; }
.rvl-step__text { font-size: 14px; color: var(--rvl-muted); margin: 0; }
.rvl-steps--photos .rvl-steps__list { gap: 40px; }
.rvl-steps--photos .rvl-step { position: relative; }
.rvl-steps--photos .rvl-step:not(:last-child)::after { content: "⇢"; position: absolute; top: 190px; right: -32px; color: var(--rvl-blue); font-size: 24px; }
.rvl-step__head { display: flex; gap: 16px; margin-bottom: 16px; min-height: 84px; }
.rvl-step__num { display: grid; place-items: center; flex-shrink: 0; width: 50px; height: 50px; border-radius: 50%; background: var(--rvl-blue-100); color: var(--rvl-blue); font-family: var(--rvl-serif); font-size: 22px; font-weight: 600; }
.rvl-step__head .rvl-step__title { font-size: 22px; }
.rvl-step__card { background: var(--rvl-sky); border-radius: var(--rvl-radius); overflow: hidden; }
.rvl-step__media { position: relative; aspect-ratio: 4 / 3; }
.rvl-step__badge { position: absolute; top: -14px; right: -6px; display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: #fff; color: var(--rvl-blue); box-shadow: var(--rvl-shadow); }
.rvl-step__card p { padding: 14px 18px 18px; margin: 0; font-size: 14px; text-align: center; }

/* Testimonials */
.rvl-testimonials__grid { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.rvl-testimonial { display: flex; gap: 16px; margin: 0; padding: 24px; background: #fff; border: 1px solid var(--rvl-border); border-radius: var(--rvl-radius); box-shadow: var(--rvl-shadow); height: 100%; }
.rvl-testimonial__avatar { width: 64px; height: 64px; flex-shrink: 0; border-radius: 50%; display: grid; place-items: center; color: #fff; font-family: var(--rvl-serif); font-size: 24px; object-fit: cover; }
.rvl-testimonial blockquote { margin: 8px 0 12px; }
.rvl-testimonial blockquote p { margin: 0; font-size: 15px; color: var(--rvl-ink); }
.rvl-testimonial figcaption strong { display: block; font-size: 14px; color: var(--rvl-ink); }
.rvl-testimonial figcaption span { font-size: 13px; color: var(--rvl-muted); }

/* App promo / phone mock */
.rvl-app__card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; align-items: center; background: linear-gradient(120deg, #eaf4fb, #f6fafd); border-radius: var(--rvl-radius-lg); padding: 44px 48px 0; overflow: hidden; }
.rvl-app__copy { padding-bottom: 44px; }
.rvl-stores { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.rvl-store { display: inline-flex; align-items: center; gap: 10px; padding: 9px 18px; border-radius: 10px; background: #0b0b0b; color: #fff; font-size: 18px; font-weight: 600; line-height: 1.05; }
.rvl-store small { display: block; font-size: 10px; font-weight: 500; opacity: .85; }
.rvl-store:hover { color: #fff; opacity: .9; }
.rvl-app__phones { position: relative; display: flex; gap: 18px; justify-content: center; align-items: flex-end; }
.rvl-app__phones .rvl-phone--orders { transform: translateY(26px) scale(.92); transform-origin: bottom; }
.rvl-app__note { position: absolute; right: -6px; top: 10px; font-size: 20px; }
.rvl-phone { width: 220px; padding: 9px; border-radius: 36px; background: #111; box-shadow: var(--rvl-shadow-lg); flex-shrink: 0; }
.rvl-phone__screen { position: relative; height: 420px; border-radius: 28px; background: #fff; padding: 34px 14px 14px; overflow: hidden; font-size: 11px; color: var(--rvl-ink); }
.rvl-phone__notch { position: absolute; top: 8px; left: 50%; transform: translateX(-50%); width: 76px; height: 18px; border-radius: 12px; background: #111; }
.rvl-phone__hello, .rvl-phone__title { font-family: var(--rvl-serif); font-size: 18px; font-weight: 600; margin: 4px 0 2px; }
.rvl-phone__sub { margin: 0 0 14px; color: var(--rvl-muted); }
.rvl-phone__progress { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.rvl-phone__progress span { height: 6px; border-radius: 4px; background: var(--rvl-border); }
.rvl-phone__progress .is-done { background: var(--rvl-blue); }
.rvl-phone__labels { display: grid; grid-template-columns: repeat(4, 1fr); margin: 6px 0 14px; color: var(--rvl-muted); font-size: 8.5px; }
.rvl-phone__eta, .rvl-phone__order { display: flex; gap: 10px; align-items: center; padding: 10px; border: 1px solid var(--rvl-border); border-radius: 12px; margin-bottom: 10px; }
.rvl-phone__eta .rvl-icon, .rvl-phone__order .rvl-icon { color: var(--rvl-blue); }
.rvl-phone__eta small, .rvl-phone__order small { display: block; color: var(--rvl-muted); }
.rvl-phone__order em { display: block; font-style: normal; color: var(--rvl-blue); font-size: 10px; }
.rvl-phone__map { position: relative; height: 150px; border-radius: 14px; background: repeating-linear-gradient(45deg, #eef4f8 0 10px, #e6eef4 10px 20px); }
.rvl-phone__van { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: grid; place-items: center; width: 54px; height: 40px; border-radius: 8px; background: var(--rvl-navy); color: #fff; }
.rvl-phone__seg { display: grid; grid-template-columns: 1fr 1fr; background: var(--rvl-sky); border-radius: 8px; padding: 3px; margin-bottom: 12px; text-align: center; }
.rvl-phone__seg span { padding: 5px; border-radius: 6px; }
.rvl-phone__seg .is-on { background: #fff; font-weight: 600; }

/* CTA banner */
.rvl-cta { position: relative; display: grid; grid-template-columns: minmax(0, 1.1fr) auto minmax(0, .9fr); gap: 32px; align-items: center; background: linear-gradient(120deg, #eaf4fb, #f5f9fd); border-radius: var(--rvl-radius-lg); padding: 40px 0 40px 48px; overflow: hidden; min-height: 240px; }
.rvl-cta__title { font-size: clamp(28px, 3vw, 38px); margin-bottom: 10px; }
.rvl-cta__text { margin-bottom: 0; max-width: 520px; }
.rvl-cta__checks { margin: 0; }
.rvl-cta__media { position: relative; align-self: stretch; margin: -40px 0; min-height: 260px; }
.rvl-cta__media .rvl-img { position: absolute; inset: 0; }
.rvl-cta__media::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, #eef6fc 0%, rgba(238, 246, 252, 0) 30%); }
.rvl-cta__note { position: absolute; z-index: 2; right: 24px; top: 30px; }
.rvl-cta--slim { grid-template-columns: minmax(0, 1.2fr) auto minmax(0, .8fr); padding-block: 28px; min-height: 0; }
.rvl-cta--slim .rvl-btn-row { margin-top: 0; }
.rvl-cta--slim .rvl-cta__media { margin: -28px 0; min-height: 160px; }
.rvl-cta__badges { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding-right: 32px; }
.rvl-cta__badges li { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; padding: 0 12px; border-left: 1px solid var(--rvl-border); font-size: 12px; color: var(--rvl-muted); }
.rvl-cta__badges .rvl-icon { color: var(--rvl-blue); }
.rvl-cta__badges strong { font-size: 14px; color: var(--rvl-ink); }

/* Accordion */
.rvl-accordion { display: grid; grid-template-columns: repeat(var(--cols, 1), minmax(0, 1fr)); gap: 12px; }
.rvl-accordion__item { background: #fff; border: 1px solid var(--rvl-border); border-radius: 12px; transition: background .2s; }
.rvl-accordion__item[open] { background: var(--rvl-blue-50); border-color: transparent; }
.rvl-accordion__item summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 20px; cursor: pointer; font-family: var(--rvl-serif); font-weight: 600; color: var(--rvl-ink); font-size: 16px; }
.rvl-accordion__item summary::-webkit-details-marker { display: none; }
.rvl-accordion__chev { transition: transform .25s; color: var(--rvl-ink); }
.rvl-accordion__item[open] .rvl-accordion__chev { transform: rotate(180deg); }
.rvl-accordion__body { padding: 0 20px 16px; font-size: 15px; }
.rvl-accordion__body p:last-child { margin-bottom: 0; }
.rvl-accordion--cards .rvl-accordion__item, .rvl-accordion--cards .rvl-accordion__item[open] { background: #fff; border: 1px solid var(--rvl-border); }
.rvl-accordion--cards .rvl-accordion__item summary { font-size: 15px; }
.rvl-accordion--cards .rvl-accordion__body { font-size: 14px; color: var(--rvl-muted); }

/* Timeline */
.rvl-timeline { list-style: none; position: relative; }
.rvl-timeline li { position: relative; display: flex; gap: 14px; padding-bottom: 16px; }
.rvl-timeline li:not(:last-child)::before { content: ""; position: absolute; left: 13px; top: 28px; bottom: 0; width: 2px; background: var(--rvl-border); }
.rvl-timeline li.is-done:not(:last-child)::before { background: var(--rvl-blue); }
.rvl-timeline__dot { display: grid; place-items: center; width: 28px; height: 28px; flex-shrink: 0; border-radius: 50%; background: var(--rvl-border); color: var(--rvl-muted); }
.rvl-timeline li.is-done .rvl-timeline__dot { background: var(--rvl-navy); color: #fff; }
.rvl-timeline li.is-current .rvl-timeline__dot { background: var(--rvl-blue); color: #fff; box-shadow: 0 0 0 6px rgba(27, 111, 168, .15); }
.rvl-timeline strong { display: block; font-size: 14px; color: var(--rvl-ink); }
.rvl-timeline small { color: var(--rvl-muted); font-size: 12px; }
.rvl-timeline--card { background: #fff; border-radius: var(--rvl-radius); padding: 20px; box-shadow: var(--rvl-shadow); min-width: 230px; }

/* 8. Page specific --------------------------------------------------------- */
/* Single service */
.rvl-feature-cards { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.rvl-feature-card { display: flex; flex-direction: column; gap: 12px; padding: 20px 18px; border: 1px solid var(--rvl-border); border-radius: var(--rvl-radius); background: #fff; }
.rvl-feature-card h3 { font-size: 16px; margin-bottom: 4px; }
.rvl-feature-card p { font-size: 13px; color: var(--rvl-muted); margin: 0; }
.rvl-turnaround { position: relative; display: flex; gap: 18px; padding: 28px; border-radius: var(--rvl-radius-lg); background: linear-gradient(120deg, #e8f2fa, #f4f9fd); overflow: hidden; }
.rvl-turnaround__note { position: absolute; right: 18px; top: 18px; font-size: 20px; max-width: 120px; }
.rvl-turnaround .rvl-heading__title { font-size: 26px; padding-right: 90px; }
.rvl-ideal { list-style: none; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.rvl-ideal li { border: 1px solid var(--rvl-border); border-radius: 12px; overflow: hidden; text-align: center; background: #fff; }
.rvl-ideal .rvl-img { aspect-ratio: 1 / 1; height: auto; min-height: 0; }
.rvl-ideal__label { display: block; padding: 10px 6px; font-family: var(--rvl-serif); font-size: 13px; font-weight: 600; color: var(--rvl-ink); }
.rvl-mini-prices { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
.rvl-mini-prices li { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 18px 14px; border: 1px solid var(--rvl-border); border-radius: 12px; background: #fff; }
.rvl-mini-prices li.is-popular { border: 2px solid var(--rvl-blue); }
.rvl-mini-prices .rvl-icon { color: var(--rvl-blue); }
.rvl-mini-prices h3 { font-size: 13px; margin: 0 0 2px; }
.rvl-mini-prices strong { display: block; font-family: var(--rvl-serif); font-size: 24px; color: var(--rvl-ink); }
.rvl-mini-prices small { font-size: 12px; color: var(--rvl-muted); }
.rvl-svc-detail--alt { background: linear-gradient(180deg, #fff, var(--rvl-sky)); padding-top: var(--rvl-section) !important; }
.rvl-svc-bottom__grid { display: grid; grid-template-columns: 1.3fr 1fr .9fr; gap: 32px; align-items: start; }
.rvl-svc-bottom__grid .rvl-steps { padding: 0; }
.rvl-svc-bottom__grid .rvl-steps .rvl-container { padding: 0; }
.rvl-svc-bottom__grid .rvl-steps__list { gap: 14px; }
.rvl-svc-bottom__grid .rvl-steps--icons .rvl-step:not(:last-child)::after { right: -12px; }
.rvl-mini-cta { padding: 28px; border-radius: var(--rvl-radius-lg); background: linear-gradient(120deg, #e8f2fa, #f4f9fd); }
.rvl-mini-cta .rvl-heading__title { font-size: 26px; }
.rvl-pill-note { display: inline-flex; gap: 8px; align-items: center; padding: 8px 14px; background: var(--rvl-blue-50); color: var(--rvl-ink); border-radius: 999px; font-size: 14px; }
.rvl-zips { font-size: 14px; }

/* Areas */
.rvl-hero--areas .rvl-hero__inner { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.rvl-areas-map { position: relative; border-radius: var(--rvl-radius-lg); overflow: hidden; min-height: 380px; box-shadow: var(--rvl-shadow); }
.rvl-areas-map .rvl-map { position: absolute; inset: 0; }
.rvl-areas-map .rvl-zip-card { position: absolute; right: 16px; top: 16px; width: 300px; padding: 22px; }
.rvl-map iframe { width: 100%; height: 100%; min-height: 260px; border: 0; display: block; }
.rvl-map--card { border-radius: var(--rvl-radius); overflow: hidden; height: 340px; }
.rvl-zip-card__title { font-size: 22px; margin-bottom: 6px; }
.rvl-zip-card p { font-size: 14px; color: var(--rvl-muted); }
.rvl-areas__head { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.4fr); gap: 32px; align-items: center; margin-bottom: 28px; }
.rvl-areas__head .rvl-heading { margin: 0; }
.rvl-areas__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) 1.15fr; gap: 16px; align-items: start; }
.rvl-area-card { padding: 16px; border: 1px solid var(--rvl-border); border-radius: var(--rvl-radius); background: #fff; box-shadow: var(--rvl-shadow); }
.rvl-area-card__head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.rvl-area-card__head h3 { font-size: 19px; margin: 0; }
.rvl-area-card__head a { color: var(--rvl-ink); }
.rvl-area-card__media { border-radius: 10px; overflow: hidden; aspect-ratio: 16 / 9; margin-bottom: 14px; }
.rvl-area-list { list-style: none; display: grid; gap: 10px; margin-bottom: 14px; }
.rvl-area-list li { display: flex; gap: 10px; font-size: 14px; }
.rvl-area-list .rvl-icon { color: var(--rvl-blue); margin-top: 2px; }
.rvl-area-list strong { display: block; color: var(--rvl-ink); font-weight: 600; }
.rvl-area-list small { color: var(--rvl-muted); font-size: 12.5px; }
.rvl-areas__side .rvl-card { padding: 22px; }

/* Contact */
.rvl-hero--contact { padding-block: 40px; }
.rvl-hero--contact .rvl-hero__note { display: none; }
.rvl-contact-info .rvl-hours { font-size: 13.5px; gap: 4px 12px; }
.rvl-split--contact { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
.rvl-split--contact .rvl-topic-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rvl-contact-hero { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr) minmax(0, .8fr); gap: 20px; align-items: start; }
.rvl-icon-trio { list-style: none; display: grid; grid-template-columns: repeat(3, auto); gap: 22px; margin-top: 30px; justify-content: start; }
.rvl-icon-trio li { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--rvl-muted); }
.rvl-icon-trio strong { color: var(--rvl-ink); font-family: var(--rvl-serif); font-size: 15px; margin-top: 8px; }
.rvl-contact-form, .rvl-contact-info { padding: 26px; }
.rvl-topic-cards { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.rvl-topic-card { padding: 20px; border: 1px solid var(--rvl-border); border-radius: var(--rvl-radius); background: #fff; display: flex; flex-direction: column; }
.rvl-topic-card h3 { font-size: 18px; margin: 14px 0 6px; }
.rvl-topic-card p { font-size: 14px; color: var(--rvl-muted); flex: 1; }
.rvl-location-card { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding: 24px; border-radius: var(--rvl-radius-lg); background: var(--rvl-sky); }
.rvl-location-card .rvl-map { border-radius: 12px; overflow: hidden; min-height: 300px; background: linear-gradient(135deg, #e8f1f8, #d3e3ef); }
.rvl-address-box { display: grid; grid-template-columns: auto 1fr; gap: 10px 12px; padding: 16px; background: #fff; border-radius: 12px; }
.rvl-address-box > .rvl-icon { color: var(--rvl-blue); }
.rvl-address-box address { font-family: var(--rvl-serif); font-weight: 600; color: var(--rvl-ink); }
.rvl-address-box .rvl-btn { grid-column: 1 / -1; }
.rvl-photo-cta { position: relative; display: grid; grid-template-columns: 1fr 1fr; border-radius: var(--rvl-radius-lg); overflow: hidden; background: var(--rvl-sky); }
.rvl-photo-cta__copy { padding: 28px; }
.rvl-photo-cta .rvl-img { min-height: 260px; }

/* Help band / contact chips */
.rvl-help-band { display: grid; grid-template-columns: minmax(0, 1.4fr) auto auto auto; gap: 16px; align-items: center; padding: 28px 32px; border-radius: var(--rvl-radius-lg); background: var(--rvl-sky); }
.rvl-help-band__copy p:last-child { margin: 0; }
.rvl-contact-chip { display: flex; align-items: center; gap: 12px; padding: 14px 18px; background: #fff; border: 1px solid var(--rvl-border); border-radius: 12px; color: var(--rvl-ink); }
.rvl-contact-chip strong { display: block; font-size: 14px; }
.rvl-contact-chip em { font-style: normal; color: var(--rvl-blue); font-size: 14px; }
.rvl-contact-row { display: grid; grid-template-columns: auto 1fr auto auto; gap: 12px; align-items: center; padding: 14px; margin-top: 10px; border-radius: 12px; background: #fff; color: var(--rvl-ink); font-size: 14px; }
.rvl-contact-row strong { display: block; }
.rvl-contact-row small { color: var(--rvl-muted); max-width: 150px; font-size: 12px; }

/* Legal */
.rvl-legal__grid { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 36px; align-items: start; }
.rvl-legal__grid--3 { grid-template-columns: 250px minmax(0, 1fr) 290px; }
.rvl-toc { position: sticky; top: 100px; padding: 22px; border: 1px solid var(--rvl-border); border-radius: var(--rvl-radius); background: #fff; }
.rvl-toc__title { font-size: 22px; margin-bottom: 14px; }
.rvl-toc ol { list-style: none; display: grid; gap: 4px; }
.rvl-toc a { display: flex; gap: 12px; align-items: center; padding: 9px 12px; border-radius: 10px; color: var(--rvl-text); font-size: 14.5px; }
.rvl-toc a span { display: grid; place-items: center; width: 28px; height: 28px; flex-shrink: 0; border-radius: 50%; background: var(--rvl-sky); font-size: 12px; font-weight: 600; color: var(--rvl-ink); }
.rvl-toc a:hover, .rvl-toc a.is-active { background: var(--rvl-blue-50); color: var(--rvl-blue); }
.rvl-takeaway { display: flex; gap: 16px; padding: 22px; margin-bottom: 26px; border-radius: var(--rvl-radius); background: var(--rvl-blue-50); }
.rvl-takeaway h2 { font-size: 20px; margin-bottom: 6px; }
.rvl-takeaway p { margin: 0; font-size: 15px; }
.rvl-security-card { position: sticky; top: 100px; padding: 26px; border-radius: var(--rvl-radius-lg); background: var(--rvl-blue-50); }
.rvl-security-card ul { list-style: none; display: grid; gap: 16px; margin-top: 16px; }
.rvl-security-card li { display: flex; gap: 14px; font-size: 13.5px; color: var(--rvl-muted); }
.rvl-security-card strong { display: block; font-family: var(--rvl-serif); color: var(--rvl-ink); font-size: 15px; }

/* FAQ center */
.rvl-faq-tabs { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin-bottom: 26px; }
.rvl-faq-tab { display: flex; gap: 12px; align-items: center; padding: 12px 16px; border: 1px solid var(--rvl-border); border-radius: 14px; background: var(--rvl-sky); text-align: left; color: var(--rvl-ink); transition: .2s; }
.rvl-faq-tab strong { display: block; font-size: 14px; }
.rvl-faq-tab small { color: var(--rvl-muted); font-size: 12px; }
.rvl-faq-tab.is-active { background: var(--rvl-navy); border-color: var(--rvl-navy); color: #fff; }
.rvl-faq-tab.is-active small { color: #b8cbe0; }
.rvl-faq-tab.is-active .rvl-ic { background: rgba(255, 255, 255, .12); color: #fff; }
.rvl-faq-panel { padding: 24px; border-radius: var(--rvl-radius-lg); background: var(--rvl-sky); }
.rvl-faq-panel__head { display: flex; gap: 16px; align-items: center; margin-bottom: 18px; }
.rvl-faq-panel__head h2 { font-size: 26px; margin: 0; }
.rvl-faq-panel__head p { margin: 0; color: var(--rvl-muted); font-size: 14px; }
.rvl-faq-panel .rvl-accordion { gap: 0; background: #fff; border-radius: 14px; padding: 6px; }
.rvl-faq-panel .rvl-accordion__item { border: 0; border-bottom: 1px solid var(--rvl-border); border-radius: 10px; }
.rvl-mini-cta--photo { margin-top: 20px; }

/* Confirmation "what's next" */
.rvl-next__card { padding: 28px; border-radius: var(--rvl-radius-lg); background: var(--rvl-sky); display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 28px; align-items: center; margin-bottom: 20px; }
.rvl-next__card .rvl-heading { margin: 0; }
.rvl-next__list { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.rvl-next__list li { position: relative; padding: 22px 20px; background: #fff; border-radius: var(--rvl-radius); }
.rvl-next__num { position: absolute; top: 18px; left: 16px; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--rvl-blue-100); color: var(--rvl-blue); font-size: 12px; font-weight: 600; }
.rvl-next__list .rvl-ic { margin-left: 30px; }
.rvl-next__list h3 { font-size: 17px; margin: 14px 0 6px; }
.rvl-next__list p { font-size: 13.5px; color: var(--rvl-muted); margin: 0; }

/* Tracking showcase */
.rvl-track-show { background: linear-gradient(180deg, var(--rvl-sky), #fff); padding-top: var(--rvl-section) !important; }
.rvl-track-show__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 36px; align-items: center; }
.rvl-mini-features { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-bottom: 24px; }
.rvl-mini-features li { display: flex; gap: 12px; font-size: 13px; color: var(--rvl-muted); }
.rvl-mini-features .rvl-icon { color: var(--rvl-blue); }
.rvl-mini-features strong { display: block; font-size: 14px; color: var(--rvl-ink); }
.rvl-track-show__visual { position: relative; display: flex; gap: 20px; align-items: center; justify-content: center; }
.rvl-track-show__note { position: absolute; right: 0; bottom: -30px; }

/* Good to know */
.rvl-good-to-know { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 32px; align-items: center; padding: 28px 32px; border-radius: var(--rvl-radius-lg); background: var(--rvl-sky); }
.rvl-good-to-know .rvl-heading { margin: 0; flex-direction: column; align-items: flex-start; }

/* Prose */
.rvl-prose { max-width: 860px; font-size: 16.5px; }
.rvl-container.rvl-prose { max-width: calc(860px + var(--rvl-gutter) * 2); }
.rvl-prose h2 { font-size: 30px; margin-top: 1.6em; }
.rvl-prose h3 { font-size: 22px; margin-top: 1.4em; }
.rvl-prose ul, .rvl-prose ol { padding-left: 1.3em; margin-bottom: 1em; }
.rvl-prose li { margin-bottom: .4em; }
.rvl-prose blockquote { margin: 1.5em 0; padding: 18px 24px; border-left: 4px solid var(--rvl-blue); background: var(--rvl-sky); border-radius: 0 12px 12px 0; }
.rvl-prose img { border-radius: var(--rvl-radius); }
.rvl-prose--legal h2 { font-size: 28px; padding-top: 24px; border-top: 1px solid var(--rvl-border); }
.rvl-prose--legal h2:first-child { border-top: 0; padding-top: 0; margin-top: 0; }
.rvl-page-content { background: #fff; }
.rvl-full-width > .alignfull { margin-inline: 0; }

/* 404 */
.rvl-404__inner { text-align: center; max-width: 720px; }
.rvl-404 .rvl-searchform, .rvl-404 .rvl-btn-row { margin-inline: auto; justify-content: center; }

/* 9. Footer ---------------------------------------------------------------- */
.rvl-footer { background: var(--rvl-navy-900); color: #b9c8d6; font-size: 14px; margin-top: 0; }
.rvl-footer a { color: #d5e1eb; }
.rvl-footer a:hover { color: #fff; }
.rvl-footer__grid { display: grid; grid-template-columns: 215px 1fr .9fr 1.25fr 1.6fr minmax(215px, 1.1fr); gap: 24px; padding-block: 36px 28px; }
.rvl-footer__about p { margin-bottom: 14px; font-size: 13px; line-height: 1.5; }
.rvl-footer__title { font-family: var(--rvl-sans); font-size: 14px; font-weight: 600; color: #fff; margin-bottom: 14px; }
.rvl-footer__links { list-style: none; display: grid; gap: 8px; }
.rvl-footer__links--2col { grid-template-columns: 1fr 1fr; column-gap: 14px; }
.rvl-footer__contact-list a { overflow-wrap: break-word; }
.rvl-footer__contact-list { list-style: none; display: grid; gap: 10px; }
.rvl-footer__contact-list li { display: flex; gap: 10px; align-items: flex-start; }
.rvl-footer__contact-list .rvl-icon, .rvl-footer__hours > .rvl-icon { margin-top: 3px; color: #fff; }
.rvl-footer__hours { display: flex; gap: 12px; }
.rvl-hours { display: grid; grid-template-columns: auto auto; gap: 4px 20px; margin: 0; }
.rvl-hours dd { margin: 0; white-space: nowrap; }
.rvl-hours dt { white-space: nowrap; }
.rvl-social { list-style: none; display: flex; gap: 14px; }
.rvl-social a { display: grid; place-items: center; width: 30px; height: 30px; color: #fff; }
.rvl-footer__bar { border-top: 1px solid rgba(255, 255, 255, .08); }
.rvl-footer__bar-inner { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-block: 14px; font-size: 12.5px; }
.rvl-footer__bar p { margin: 0; }
.rvl-footer__legal { list-style: none; display: flex; gap: 18px; }

/* 10. Blog ----------------------------------------------------------------- */
.rvl-blog--sidebar { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 40px; }
.rvl-post-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; }
.rvl-post-card { border: 1px solid var(--rvl-border); border-radius: var(--rvl-radius); overflow: hidden; background: #fff; box-shadow: var(--rvl-shadow); }
.rvl-post-card__media { display: block; aspect-ratio: 16 / 10; }
.rvl-post-card__body { padding: 20px; }
.rvl-post-card__title { font-size: 21px; }
.rvl-post-card__title a { color: var(--rvl-ink); }
.rvl-post-meta { font-size: 13px; color: var(--rvl-muted); margin-bottom: 8px; }
.rvl-article__media img { border-radius: var(--rvl-radius-lg); margin-top: 32px; width: 100%; }
.rvl-article__head .post-categories { list-style: none; display: flex; gap: 8px; margin-bottom: 12px; }
.rvl-widget { margin-bottom: 28px; padding: 22px; border-radius: var(--rvl-radius); background: var(--rvl-sky); }
.rvl-widget ul { list-style: none; display: grid; gap: 8px; }
.rvl-widget__title { font-size: 18px; }
.nav-links { display: flex; justify-content: center; gap: 8px; margin-top: 32px; flex-wrap: wrap; }
.nav-links .page-numbers { display: grid; place-items: center; min-width: 42px; height: 42px; padding: 0 12px; border: 1px solid var(--rvl-border); border-radius: 10px; color: var(--rvl-ink); }
.nav-links .page-numbers.current { background: var(--rvl-navy); color: #fff; border-color: var(--rvl-navy); }
.rvl-post-nav .nav-links { justify-content: space-between; }
.rvl-empty { text-align: center; padding: 40px; }

/* WP core alignment helpers */
.alignwide { margin-inline: calc(-1 * min(120px, 6vw)); max-width: none; }
.alignfull { margin-inline: calc(50% - 50vw); max-width: 100vw; width: 100vw; }
.wp-caption-text, figcaption { font-size: 13px; color: var(--rvl-muted); }
.sticky .rvl-post-card__title::before { content: "★ "; color: var(--rvl-star); }
.bypostauthor { outline: 0; }
.gallery-caption { font-size: 13px; }

/* 11. Responsive ----------------------------------------------------------- */
@media (max-width: 1200px) {
	.rvl-services--wide .rvl-services__grid { --cols: 2 !important; }
	.rvl-areas__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rvl-areas__side { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
	.rvl-areas__side .rvl-card + .rvl-card { margin-top: 0; }
	.rvl-contact-hero { grid-template-columns: 1fr 1fr; }
	.rvl-contact-hero .rvl-hero__content { grid-column: 1 / -1; max-width: 720px; }
	.rvl-footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.rvl-svc-bottom__grid { grid-template-columns: 1fr 1fr; }
	.rvl-svc-bottom__steps { grid-column: 1 / -1; }
	.rvl-legal__grid--3 { grid-template-columns: 250px minmax(0, 1fr); }
	.rvl-legal__grid--3 .rvl-security-card { grid-column: 2; position: static; }
	.rvl-ideal { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.rvl-plans__grid--all { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
	.rvl-header__inner { min-height: 68px; }
	.rvl-burger { display: inline-grid; }
	.rvl-location span { display: none; }
	.rvl-nav { position: fixed; inset: 68px 0 0; z-index: 99; display: block; padding: 20px var(--rvl-gutter) 40px; background: #fff; overflow-y: auto; transform: translateX(100%); transition: transform .3s; }
	.admin-bar .rvl-nav { top: 114px; }
	.rvl-nav.is-open { transform: none; }
	.rvl-menu { flex-direction: column; align-items: stretch; gap: 0; }
	.rvl-menu a { padding: 14px 0; border-bottom: 1px solid var(--rvl-border); font-size: 17px; }
	.rvl-menu > li > a::after { display: none; }
	.rvl-menu .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 0 16px; }
	.rvl-nav__mobile-cta { display: grid; gap: 14px; margin-top: 24px; }
	.rvl-nav__phone { display: flex; gap: 8px; align-items: center; justify-content: center; font-weight: 600; }
	body.rvl-nav-open { overflow: hidden; }
	body.rvl-nav-open .rvl-burger__open { display: none; }
	body.rvl-nav-open .rvl-burger__close { display: block; }
	.rvl-hero__inner, .rvl-hero--home .rvl-hero__inner, .rvl-hero--areas .rvl-hero__inner { grid-template-columns: 1fr; min-height: 0; }
	.rvl-hero__media, .rvl-hero--home .rvl-hero__media, .rvl-hero__media--center { position: relative; inset: auto; width: 100%; height: 300px; order: 2; }
	.rvl-nav { visibility: hidden; }
	.rvl-nav.is-open { visibility: visible; }
	.rvl-plans__head { flex-direction: column; align-items: flex-start; }
	.rvl-contact-hero .rvl-card { order: 1; }
	.rvl-hero--inner .rvl-hero__media, .rvl-hero--contact .rvl-hero__media { order: 2; height: 220px; }
	.rvl-hero { display: flex; flex-direction: column; }
	.rvl-hero__media::before { background: linear-gradient(180deg, #f3f8fc 0%, rgba(243, 248, 252, 0) 30%); }
	.rvl-hero__aside { justify-self: stretch; max-width: none; }
	.rvl-hero__aside--quote { display: none; }
	.rvl-strip { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; row-gap: 18px; }
	.rvl-strip__item + .rvl-strip__item { border-left: 0 !important; }
	.rvl-split, .rvl-plans--side .rvl-plans__inner, .rvl-price-table__inner, .rvl-good-to-know, .rvl-next__card, .rvl-areas__head, .rvl-track-show__inner, .rvl-app__card { grid-template-columns: 1fr; }
	.rvl-split__side--divider { border-left: 0; padding-left: 0; }
	.rvl-services__grid { --cols: 2 !important; }
	.rvl-plans__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rvl-testimonials__grid, .rvl-topic-cards, .rvl-feature-cards, .rvl-next__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rvl-steps__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rvl-step::after { display: none; }
	.rvl-cta, .rvl-cta--slim { grid-template-columns: 1fr; padding: 32px; }
	.rvl-cta__media { margin: 0 -32px -32px; min-height: 220px; }
	.rvl-cta__badges { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0; row-gap: 16px; }
	.rvl-help-band { grid-template-columns: 1fr; }
	.rvl-legal__grid, .rvl-legal__grid--3 { grid-template-columns: 1fr; }
	.rvl-toc, .rvl-security-card { position: static; }
	.rvl-legal__grid--3 .rvl-security-card { grid-column: auto; }
	.rvl-blog--sidebar { grid-template-columns: 1fr; }
	.rvl-accordion { --cols: 1 !important; }
	.rvl-app__phones { overflow: hidden; }
	.rvl-areas-map { min-height: 560px; }
	.rvl-areas-map .rvl-zip-card { left: 16px; right: 16px; top: auto; bottom: 16px; width: auto; }
}
@media (max-width: 782px) { .admin-bar .rvl-header { top: 46px; } .admin-bar .rvl-nav { top: 114px; } }
@media (max-width: 640px) {
	:root { --rvl-gutter: 16px; }
	.rvl-header__cta { display: none; }
	.rvl-heading { flex-direction: column; align-items: flex-start; }
	.rvl-services__grid, .rvl-plans__grid, .rvl-plans__grid--all, .rvl-testimonials__grid, .rvl-topic-cards, .rvl-feature-cards, .rvl-next__list, .rvl-steps__list, .rvl-mini-prices, .rvl-mini-features, .rvl-areas__grid, .rvl-areas__side, .rvl-strip { grid-template-columns: 1fr !important; }
	.rvl-services--wide .rvl-svc { grid-template-columns: 1fr; }
	.rvl-services--wide .rvl-svc__media { aspect-ratio: 16 / 10; }
	.rvl-form__grid, .rvl-location-card, .rvl-photo-cta, .rvl-contact-hero { grid-template-columns: 1fr; }
	.rvl-icon-trio { grid-template-columns: 1fr 1fr; }
	.rvl-ideal { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rvl-footer__grid { grid-template-columns: 1fr; }
	.rvl-note { display: none; }
	.rvl-footer__brand, .rvl-footer__about { grid-column: 1 / -1; }
	.rvl-footer__bar-inner { flex-direction: column; text-align: center; }
	.rvl-app__card { padding: 28px 20px 0; }
	.rvl-app__phones .rvl-phone--orders { display: none; }
	.rvl-track-show__visual { flex-direction: column; }
	.rvl-btn-row .rvl-btn { flex: 1 1 100%; }
	.rvl-hero__note { display: none; }
	.rvl-contact-row { grid-template-columns: auto 1fr auto; }
	.rvl-contact-row small { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
