﻿/* ==========================================================================
   RentHub website v2 — built from Figma "Revamp Website" (1440px desktop).
   Tablet / phone layouts are adapted; Figma has desktop frames only.
   ========================================================================== */

:root {
    --rh-green: #0d9263;
    --rh-green-dark: #0f3d2b;
    --rh-ink: #14181a;
    --rh-black: #171717;
    --rh-gray-700: #363636;
    --rh-gray-600: #616161;
    --rh-gray-500: #757575;
    --rh-gray-300: #c6c6c6;
    --rh-border: #e0e0e0;
    --rh-bg-soft: #f5f9f6;
    --rh-chip-green: #eaf6f0;
    --rh-chip-yellow: #f7f5de;
    --rh-yellow: #d4cd46;
    --rh-mint: #cfe8dc;
    --rh-mint-2: #bfdfce;
    --rh-body-eco: #3c443f;

    --rh-font: "Nunito Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --rh-card-shadow: 0 9px 15.2px rgba(21, 21, 21, 0.08);

    --rh-gutter: 24px;
    --rh-section-y: 70px;
    --rh-header-h: 90px;
}

/* ---------- Base ---------- */

.rh-site {
    margin: 0;
    font-family: var(--rh-font);
    color: var(--rh-black);
    background: #fff;
    overflow-x: clip;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

.rh-site *,
.rh-site *::before,
.rh-site *::after {
    box-sizing: border-box;
}

/* One class of specificity: beats Bootstrap's element rules, loses to any component class below. */
.rh-site :where(h1, h2, h3, h4, p, blockquote, figure) {
    margin: 0;
}

.rh-site :where(img) {
    display: block;
    max-width: 100%;
}

.rh-site :where(a) {
    color: inherit;
    text-decoration: none;
}

.rh-site :focus-visible {
    outline: 2px solid var(--rh-green);
    outline-offset: 3px;
}

.rh-container {
    width: 100%;
    max-width: calc(1200px + (var(--rh-gutter) * 2));
    margin-inline: auto;
    padding-inline: var(--rh-gutter);
}

.rh-section {
    position: relative;
    padding-block: var(--rh-section-y);
}

.rh-green { color: var(--rh-green); }

.rh-skip:focus {
    position: fixed !important;
    top: 8px; left: 8px;
    width: auto; height: auto;
    clip: auto;
    z-index: 2000;
    padding: 10px 16px;
    margin: 0;
    border-radius: 8px;
    background: var(--rh-green);
    color: #fff !important;
}

.rh-visually-hidden {
    position: absolute !important;
    width: 1px; height: 1px;
    overflow: hidden; clip: rect(0 0 0 0);
    white-space: nowrap; border: 0; padding: 0; margin: -1px;
}

/* Figma-style cropped image: wrapper keeps the frame, img is offset/scaled inside. */
.rh-crop {
    position: relative;
    overflow: hidden;
    width: 100%;
}

.rh-crop > img {
    position: absolute;
    max-width: none !important;
    pointer-events: none;
}

.rh-crop > img.rh-cover {
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ---------- Section headings ---------- */

.rh-heading {
    font-weight: 900;
    font-size: clamp(28px, 2.4vw + 6px, 38px);
    line-height: 1.3;
    color: #000;
}

.rh-heading--sm {
    font-size: clamp(26px, 1.9vw + 6px, 34px);
    line-height: 1.3;
    color: var(--rh-ink);
}

.rh-sub {
    font-size: 16px;
    font-weight: 600;
    line-height: 22px;
    color: var(--rh-gray-700);
}

.rh-eyebrow {
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 1.38px;
    text-transform: uppercase;
    color: var(--rh-green);
}

.rh-section-head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    text-align: center;
}

.rh-section-head .rh-sub { max-width: 893px; }

/* ---------- Button ---------- */

.rh-btn {
    display: inline-flex;
    align-items: center;
    padding: 4px;
    border: 1px solid var(--rh-green);
    border-radius: 50px;
    background: transparent;
    cursor: pointer;
    font: inherit;
    transition: transform .2s ease;
}

.rh-btn__inner {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 15px 8px 30px;
    border-radius: 50px;
    background: var(--rh-green);
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    line-height: 24px;
    white-space: nowrap;
    transition: background-color .2s ease;
}

.rh-btn__arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 44px;
    background: #fff;
    flex-shrink: 0;
    transition: transform .2s ease;
}

.rh-btn__arrow img { width: 18px; height: 18px; }

.rh-btn:hover .rh-btn__inner { background: #0b7f56; }
.rh-btn:hover .rh-btn__arrow { transform: translateX(3px); }

.rh-btn-row {
    display: flex;
    justify-content: center;
}

/* ---------- Feature card (shared by several sections) ---------- */

.rh-card {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 20px;
    background: #fff;
    border: 1px solid var(--rh-border);
    border-radius: 14px;
    box-shadow: var(--rh-card-shadow);
}

.rh-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 7px;
    border: 1px solid var(--rh-border);
    border-radius: 8px;
    flex-shrink: 0;
}

.rh-card__icon img { width: 24px; height: 24px; }
.rh-card__icon--green { background: var(--rh-chip-green); }
.rh-card__icon--yellow { background: var(--rh-chip-yellow); }

.rh-card__title {
    font-size: 16px;
    font-weight: 800;
    line-height: 1.35;
    color: var(--rh-black);
}

.rh-card__text {
    font-size: 14px;
    line-height: 19px;
    color: var(--rh-gray-700);
}

/* ==========================================================================
   Header
   ========================================================================== */

.rh-header {
    position: sticky;
    top: 0;
    z-index: 1030;
    background: #fff;
    border-bottom: 1px solid var(--rh-border);
}

.rh-header__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-height: var(--rh-header-h);
    padding-block: 12px;
}

.rh-brand {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    flex-shrink: 0;
}

.rh-brand img { width: 200px; height: auto; }

.rh-brand__tag {
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .28px;
    color: var(--rh-green);
    white-space: nowrap;
}

.rh-nav {
    display: flex;
    align-items: center;
    gap: 38px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.rh-nav__link {
    position: relative;
    display: inline-block;
    padding-block: 6px;
    font-size: 18px;
    font-weight: 500;
    letter-spacing: -.18px;
    color: var(--rh-black);
    white-space: nowrap;
    transition: color .15s ease;
}

.rh-nav__link:hover { color: var(--rh-green); }

.rh-nav__link.active {
    font-weight: 700;
    letter-spacing: 0;
    color: var(--rh-green);
    text-decoration: underline;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 5px;
}

.rh-header__actions {
    display: flex;
    align-items: center;
    gap: 16px;
}

.rh-burger {
    display: none;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid var(--rh-border);
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
}

.rh-burger span,
.rh-burger span::before,
.rh-burger span::after {
    display: block;
    width: 20px;
    height: 2px;
    border-radius: 2px;
    background: var(--rh-ink);
    position: relative;
}

.rh-burger span::before,
.rh-burger span::after {
    content: "";
    position: absolute;
    left: 0;
}

.rh-burger span::before { top: -6px; }
.rh-burger span::after { top: 6px; }

/* Mobile off-canvas menu */
.rh-offcanvas.offcanvas {
    --bs-offcanvas-width: min(340px, 86vw);
    font-family: var(--rh-font);
}

.rh-offcanvas .offcanvas-header {
    padding: 16px 20px;
    border-bottom: 1px solid var(--rh-border);
}

.rh-offcanvas .rh-brand img { width: 160px; }
.rh-offcanvas .rh-brand__tag { font-size: 12px; }

.rh-offcanvas__close {
    width: 44px;
    height: 44px;
    padding: 6px;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.rh-offcanvas__close img { width: 31px; height: 31px; }

.rh-offcanvas .offcanvas-body {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 20px;
}

.rh-offcanvas .rh-nav {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
}

.rh-offcanvas .rh-nav__link {
    display: flex;
    align-items: center;
    min-height: 52px;
    padding: 0 4px;
    border-bottom: 1px solid #eef0ee;
    font-size: 18px;
}

.rh-offcanvas .rh-btn { width: 100%; }
.rh-offcanvas .rh-btn__inner { width: 100%; justify-content: space-between; }

/* ==========================================================================
   Home — Hero
   ========================================================================== */

.rh-hero {
    position: relative;
    overflow: hidden;
    padding-block: 70px 71px;
    background: linear-gradient(180deg, #f0f7f3 0%, #fff 90%);
    border-bottom: 1px solid var(--rh-border);
}

.rh-hero__grid {
    position: relative;
    display: flex;
    align-items: center;
    gap: 24px;
}

.rh-hero__copy {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
}

.rh-hero__title {
    max-width: 542px;
    font-size: clamp(32px, 3.2vw + 2px, 48px);
    font-weight: 900;
    line-height: 1.12;
    letter-spacing: -.72px;
    color: var(--rh-ink);
}

.rh-hero__lead {
    max-width: 439px;
    font-size: 16px;
    line-height: 22px;
    color: var(--rh-gray-600);
}

.rh-hero__lead strong { font-weight: 600; }

.rh-hero__media {
    position: relative;
    flex: 0 1 685.824px;
    min-width: 0;
}

.rh-hero__shot { aspect-ratio: 685.824 / 437.915; }

.rh-hero__shot > img {
    width: 105.56%;
    height: 116.37%;
    left: .02%;
    top: -1.27%;
}

/* Positioned relative to the 685.8 x 437.9 screenshot frame. */
.rh-hero__zeta {
    position: absolute;
    left: 76.47%;
    top: -2.8%;
    width: 19.97%;
    aspect-ratio: 136.98 / 129.6;
}

.rh-hero__zeta > img {
    width: 119%;
    height: 125.77%;
    left: -9.5%;
    top: -12.31%;
}

/* ==========================================================================
   Home — Integrations band
   ========================================================================== */

.rh-integrations {
    background: var(--rh-green-dark);
    padding-block: 24px;
}

.rh-integrations__row {
    display: flex;
    align-items: center;
    gap: 32px;
}

.rh-integrations__label {
    flex: 1 1 0;
    min-width: 0;
    font-size: 20px;
    font-weight: 700;
    color: #eef9f2;
}

.rh-integrations__logos {
    display: flex;
    align-items: center;
    gap: 32px;
}

.rh-integrations__logos .item {
    display: flex;
    align-items: center;
    justify-content: center;
}

.rh-logo-aspen {
    position: relative;
    width: 143px;
    height: 33px;
}

.rh-logo-aspen__icon {
    position: absolute;
    inset: 13.33% 79.95% 13.33% 1.67%;
    -webkit-mask: url("images/v2/integrations/aspen-mask.svg") 0 0 / 100% 100% no-repeat;
    mask: url("images/v2/integrations/aspen-mask.svg") 0 0 / 100% 100% no-repeat;
}

.rh-logo-aspen__icon img,
.rh-logo-aspen__text img {
    width: 100%;
    height: 100%;
}

.rh-logo-aspen__text {
    position: absolute;
    inset: 17.96% 1.67% 18.15% 25.46%;
}

.rh-logo-dis { width: 77px; height: 39.24px; }
.rh-logo-kubota { width: 112px; height: 33px; object-fit: cover; }
.rh-logo-qb { width: 39px; height: 39px; }
.rh-logo-google { width: 103px; height: 33px; }
.rh-logo-rouse { width: 138px; height: 30px; }

/* ==========================================================================
   Home — Built For Dealers
   ========================================================================== */

.rh-dealers {
    background: var(--rh-bg-soft);
    border-bottom: 1px solid var(--rh-border);
    padding-block: 70px 71px;
}

.rh-dealers__inner {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.rh-dealers__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.rh-dealers__grid .rh-card { min-height: 222px; }

/* ==========================================================================
   Home — Workflow blocks (Fleet / Reservation Selection / Reservation)
   ========================================================================== */

.rh-workflow__inner {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.rh-workflow__blocks {
    display: flex;
    flex-direction: column;
    gap: 38px;
}

.rh-block {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.rh-block--panel {
    padding: 40px;
    background: var(--rh-bg-soft);
    border: 1px solid var(--rh-border);
    border-radius: 20px;
}

.rh-block__head {
    display: flex;
    align-items: center;
    gap: 12px;
}

.rh-block__num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 28px;
    background: var(--rh-green);
    color: #fff;
    font-size: 16px;
    font-weight: 900;
    flex-shrink: 0;
}

.rh-block__title {
    font-size: clamp(22px, 1.6vw + 7px, 30px);
    font-weight: 700;
    line-height: 1.2;
    color: var(--rh-black);
}

.rh-block__body {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
}

.rh-block__cards {
    flex: 0 1 588px;
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.rh-block__cards .rh-card { gap: 8px; }
.rh-block__cards .rh-card__icon { border-radius: 10px; }
.rh-block--fleet .rh-card { min-height: 216px; }
.rh-block--selection .rh-card { min-height: 197px; }
.rh-block--reservation .rh-card { min-height: 195px; }

.rh-block__media {
    flex: 0 1 auto;
    min-width: 0;
    display: flex;
    justify-content: center;
}

.rh-block__footer {
    display: flex;
    justify-content: center;
    padding-top: 8px;
}

/* Fleet composite: desktop screen + phone overlay */
.rh-fleet-shot {
    position: relative;
    width: 504.45px;
    max-width: 100%;
    aspect-ratio: 504.45 / 334.93;
}

.rh-fleet-shot__desktop {
    position: absolute;
    left: 0;
    top: 0;
    width: 96.21%;
    aspect-ratio: 485.32 / 325.03;
}

.rh-fleet-shot__desktop > img {
    width: 147.08%;
    height: 153.98%;
    left: -22.63%;
    top: -24.56%;
}

.rh-fleet-shot__phone {
    position: absolute;
    left: 77.02%;
    top: 36.93%;
    width: 22.98%;
    aspect-ratio: 115.9 / 211.25;
}

.rh-fleet-shot__phone > img {
    width: 248.5%;
    height: 133.87%;
    left: -73.31%;
    top: -16.87%;
}

.rh-selection-shot {
    width: 460.2px;
    max-width: 100%;
    aspect-ratio: 460.2 / 311.9;
    border: 1px solid #000;
    border-radius: 7px;
}

.rh-selection-shot > img {
    width: 189.63%;
    height: 186.54%;
    left: -45.09%;
    top: -41.05%;
}

.rh-reservation-shot {
    width: 562.5px;
    max-width: 100%;
    aspect-ratio: 562.5 / 345.3;
}

.rh-reservation-shot > img {
    inset: 0;
    width: 100%;
    height: 100%;
    object-position: bottom;
}

/* ==========================================================================
   Dark green sections (ZETA AI, Let's Talk, Vision)
   ========================================================================== */

.rh-dark {
    position: relative;
    overflow: hidden;
    color: #fff;
    background: var(--rh-green-dark) url("images/v2/bg-green.png") center / cover no-repeat;
}

/* ---------- ZETA AI ---------- */

.rh-zeta__grid {
    display: flex;
    align-items: center;
    gap: 145px;
}

.rh-zeta__copy {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.rh-zeta__title {
    font-size: clamp(28px, 2.4vw + 6px, 38px);
    font-weight: 900;
    line-height: 1.09;
    color: #fff;
}

.rh-zeta__lead {
    margin-top: 12px;
    font-size: 16px;
    line-height: 21px;
    color: var(--rh-mint);
}

.rh-zeta__cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.rh-glass {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-height: 118px;
    padding: 17px;
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 12px;
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
}

.rh-glass__title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.35;
    color: #fff;
}

.rh-glass__title img { width: 24px; height: 24px; flex-shrink: 0; }

.rh-glass__text {
    font-size: 14px;
    line-height: 18.6px;
    color: var(--rh-mint-2);
}

.rh-orbit {
    position: relative;
    flex: 0 0 505.13px;
    width: 505.13px;
    max-width: 100%;
    aspect-ratio: 1;
}

.rh-orbit__ring {
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .14);
}

.rh-orbit__ring--1 { inset: 0; }
.rh-orbit__ring--2 { left: 10.58%; top: 10.58%; width: 78.85%; height: 78.85%; }
.rh-orbit__ring--3 { left: 22.12%; top: 22.12%; width: 55.77%; height: 55.77%; border-color: rgba(255, 255, 255, .32); }
.rh-orbit__ring--4 { left: 33.65%; top: 33.65%; width: 32.69%; height: 32.69%; border-color: rgba(212, 205, 70, .5); }

.rh-orbit__core {
    position: absolute;
    left: 21.21%;
    top: 23.42%;
    width: 53.85%;
    height: 48.5%;
    border-radius: 8px;
    box-shadow: 0 30px 50px rgba(0, 0, 0, .35);
}

.rh-orbit__core > img {
    width: 113.69%;
    height: 126.07%;
    left: -6.85%;
    top: -13.18%;
}

.rh-orbit__chip {
    position: absolute;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 16px;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 14px 30px -14px rgba(0, 0, 0, .5);
    font-size: 13px;
    font-weight: 800;
    color: var(--rh-ink);
    white-space: nowrap;
    transform: translate(-50%, -50%);
    animation: rh-float 6s ease-in-out infinite;
}

.rh-orbit__chip::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--rh-green);
    flex-shrink: 0;
}

.rh-orbit__chip--1 { left: 24.01%; top: 13.53%; }
.rh-orbit__chip--2 { left: 93.06%; top: 22.57%; animation-delay: -1.5s; }
.rh-orbit__chip--3 { left: 22.15%; top: 84.54%; animation-delay: -3s; }
.rh-orbit__chip--4 { left: 89.38%; top: 73.51%; animation-delay: -4.5s; }

@keyframes rh-float {
    0%, 100% { transform: translate(-50%, -50%); }
    50% { transform: translate(-50%, calc(-50% - 6px)); }
}

/* ==========================================================================
   Home — Ecosystem cards
   ========================================================================== */

.rh-eco {
    background: var(--rh-bg-soft);
}

.rh-eco__inner {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.rh-eco__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.rh-eco-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 16px;
    min-height: 173px;
    padding: 24px 20px;
    background: #fff;
    border: 1px solid var(--rh-border);
    border-radius: 12px;
    box-shadow: var(--rh-card-shadow);
}

.rh-eco-card__logo {
    display: flex;
    align-items: center;
    min-height: 65px;
}

.rh-eco-card__title {
    font-size: 20px;
    font-weight: 800;
    color: var(--rh-black);
}

.rh-eco-card__text {
    margin-top: 2px;
    font-size: 16px;
    line-height: 19px;
    color: var(--rh-gray-700);
}

/* Product wordmarks */
.rh-mark-truckhub {
    position: relative;
    width: 169.9px;
    height: 50.53px;
}

.rh-mark-truckhub .t { position: absolute; left: 0; top: 21.36px; width: 135.5px; height: 24.87px; }
.rh-mark-truckhub .k { position: absolute; left: 117.45px; top: 0; width: 52.45px; height: 50.53px; }

.rh-mark-truckhub--lg { width: 218.55px; height: 65px; }
.rh-mark-truckhub--lg .t { top: 27.48px; width: 174.3px; height: 32px; }
.rh-mark-truckhub--lg .k { left: 151.08px; width: 67.47px; height: 65px; }

.rh-mark-ro {
    display: flex;
    align-items: center;
    gap: 7px;
    font-family: "Roboto", var(--rh-font);
    color: #000;
}

.rh-mark-ro img { width: 42.45px; height: 30.18px; }

.rh-mark-ro__word {
    display: flex;
    flex-direction: column;
    font-size: 28px;
    line-height: 26px;
}

.rh-mark-ro__word .a { font-weight: 400; }
.rh-mark-ro__word .b { font-weight: 300; font-style: italic; }

.rh-mark-ro--lg img { width: 46.45px; height: 33.02px; }
.rh-mark-ro--lg .rh-mark-ro__word { font-size: 32px; }

/* ==========================================================================
   Let's Talk Rentals (contact band)
   ========================================================================== */

.rh-talk__grid {
    display: flex;
    align-items: center;
    gap: 48px;
}

.rh-talk__copy {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
}

.rh-pill {
    display: inline-block;
    padding: 7px 13px;
    border: 1px solid var(--rh-yellow);
    border-radius: 999px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .5px;
    color: var(--rh-yellow);
    text-transform: uppercase;
}

.rh-talk__title {
    font-size: clamp(36px, 3.4vw + 2px, 50px);
    font-weight: 900;
    line-height: 1.05;
    letter-spacing: -1px;
    color: #fff;
}

.rh-talk__text {
    max-width: 440px;
    font-size: 16px;
    line-height: 23px;
    color: var(--rh-mint);
}

.rh-mail-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 14px 19px;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 12px;
    background: rgba(255, 255, 255, .1);
    font-size: 16px;
    font-weight: 600;
    color: #fff !important;
    transition: background-color .15s ease;
}

.rh-mail-chip:hover { background: rgba(255, 255, 255, .16); }
.rh-mail-chip img { width: 24px; height: 24px; }

.rh-form-card {
    flex: 0 1 583px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 36px 34px;
    border-radius: 20px;
    background: #fff;
    color: var(--rh-black);
    box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .55);
}

.rh-form-card__title {
    font-size: 24px;
    font-weight: 900;
    color: var(--rh-ink);
}

.rh-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rh-form__row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.rh-input,
.rh-textarea {
    width: 100%;
    min-height: 50px;
    padding: 13px 15px;
    border: 1px solid var(--rh-border);
    border-radius: 8px;
    background: var(--rh-bg-soft);
    font-family: var(--rh-font);
    font-size: 16px;
    font-weight: 500;
    color: var(--rh-black);
    transition: border-color .15s ease, box-shadow .15s ease;
}

.rh-input::placeholder,
.rh-textarea::placeholder {
    color: var(--rh-gray-500);
    opacity: 1;
}

.rh-input:focus,
.rh-textarea:focus {
    outline: none;
    border-color: var(--rh-green);
    box-shadow: 0 0 0 3px rgba(13, 146, 99, .15);
}

.rh-textarea {
    min-height: 98px;
    resize: vertical;
}

.rh-phone {
    display: flex;
    align-items: stretch;
    border: 1px solid var(--rh-border);
    border-radius: 8px;
    background: var(--rh-bg-soft);
    transition: border-color .15s ease, box-shadow .15s ease;
}

.rh-phone:focus-within {
    border-color: var(--rh-green);
    box-shadow: 0 0 0 3px rgba(13, 146, 99, .15);
}

.rh-phone__cc {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 12px 8px;
    border-right: 1px solid var(--rh-border);
    flex-shrink: 0;
}

.rh-phone__cc .flag { width: 24px; height: 24px; }
.rh-phone__cc .chev { width: 12px; height: 6.97px; transition: transform .25s ease; }

/* Country code picker (US / Canada) */
.rh-cc {
    position: relative;
    display: flex;
    flex-shrink: 0;
}

button.rh-phone__cc {
    margin: 0;
    border-top: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 8px 0 0 8px;
    background: none;
    font: inherit;
    cursor: pointer;
}

button.rh-phone__cc:hover { background: rgba(13, 146, 99, .06); }
button.rh-phone__cc:focus-visible { outline: 2px solid var(--rh-green); outline-offset: -2px; }
.rh-phone__cc[aria-expanded="true"] .chev { transform: rotate(180deg); }

.rh-cc__menu {
    position: absolute;
    top: calc(100% + 6px);
    left: -1px;
    z-index: 30;
    min-width: 220px;
    margin: 0;
    padding: 6px;
    list-style: none;
    background: #fff;
    border: 1px solid var(--rh-border);
    border-radius: 10px;
    box-shadow: 0 18px 40px -16px rgba(15, 61, 43, .35);
    animation: rhCcIn .18s cubic-bezier(.22, 1, .36, 1);
}

.rh-cc__menu:focus { outline: none; }

@keyframes rhCcIn {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: none; }
}

.rh-cc__opt {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 10px;
    border-radius: 7px;
    font-size: 15px;
    color: var(--rh-black);
    cursor: pointer;
}

.rh-cc__opt img { width: 22px; height: 22px; }
.rh-cc__name { flex: 1 1 auto; }
.rh-cc__dial { color: var(--rh-gray-700); font-size: 14px; }

.rh-cc__opt:hover,
.rh-cc__opt:focus { outline: none; background: rgba(13, 146, 99, .08); }
.rh-cc__opt[aria-selected="true"] .rh-cc__name { font-weight: 700; color: var(--rh-green); }

.rh-phone .rh-input {
    min-width: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.rh-form__submit {
    display: flex;
    padding-top: 4px;
}

.rh-form [disabled] { opacity: .7; cursor: progress; }

/* ==========================================================================
   Footer
   ========================================================================== */

.rh-footer {
    position: relative;
    background: var(--rh-ink);
    color: var(--rh-gray-300);
    padding-block: 40px;
}

.rh-footer__top {
    display: flex;
    align-items: flex-start;
    gap: 24px;
}

.rh-footer__brand {
    flex: 0 1 522px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
}

.rh-footer__brand .rh-brand img { width: 177px; }

.rh-footer__tagline {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .96px;
    color: var(--rh-yellow);
    text-transform: uppercase;
}

.rh-footer__desc {
    max-width: 340px;
    font-size: 14px;
    line-height: 19px;
    color: var(--rh-gray-300);
}

.rh-footer__col {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rh-footer__heading {
    font-size: 16px;
    font-weight: 800;
    color: var(--rh-green);
}

.rh-footer__links {
    display: flex;
    flex-direction: column;
    gap: 9px;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 14px;
}

.rh-footer__links a {
    color: var(--rh-gray-300);
    transition: color .15s ease;
}

.rh-footer__links a:hover { color: #fff; }

.rh-footer__bottom {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 16px;
    margin-top: 24px;
    padding-top: 16px;
    border-top: .5px solid var(--rh-yellow);
}

.rh-footer__social img { width: 28px; height: 28px; }

.rh-footer__copy {
    font-size: 14px;
    color: #fff;
    text-align: center;
}

.rh-footer__legal {
    display: flex;
    justify-content: flex-end;
    gap: 20px;
    font-size: 14px;
}

.rh-footer__legal a { color: #fff; }
.rh-footer__legal a:hover { color: var(--rh-yellow); }

.rh-to-top {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 1020;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity .2s ease, transform .2s ease, visibility .2s;
}

.rh-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: none;
}

.rh-to-top img {
    width: 38.275px;
    height: 38.275px;
    transform: rotate(-44.82deg);
}

/* ==========================================================================
   Book a Demo modal
   ========================================================================== */

.rh-modal .modal-dialog { max-width: 754px; }

.rh-modal .modal-content {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 36px;
    border: 1px solid var(--rh-border);
    border-radius: 20px;
    font-family: var(--rh-font);
}

.rh-modal__close {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 44px;
    height: 44px;
    padding: 6px;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.rh-modal__close img { width: 31px; height: 31px; }

.rh-modal__title {
    padding-right: 40px;
    font-size: clamp(26px, 2vw + 8px, 32px);
    font-weight: 900;
    color: var(--rh-ink);
}

.rh-modal__sub {
    margin-top: 4px;
    font-size: 18px;
    color: #59605c;
}

.rh-modal__sub a {
    font-weight: 800;
    color: var(--rh-green);
    text-decoration: underline;
}

.rh-modal .rh-form { gap: 24px; }
.rh-modal .rh-form__row { gap: 24px; }

.rh-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}

.rh-field__label {
    display: flex;
    align-items: flex-start;
    gap: 2px;
    font-size: 16px;
    font-weight: 600;
    color: var(--rh-black);
}

.rh-field__label .req { width: 9.56px; height: 9.56px; margin-top: 2px; }

.rh-field__label .opt {
    margin-left: 4px;
    font-size: 14px;
    font-weight: 400;
    color: var(--rh-gray-700);
}

.rh-modal .rh-input { padding: 13px; }
.rh-modal .rh-phone__cc .flag { width: 28px; height: 28px; }
.rh-modal .rh-form__submit { justify-content: center; }

/* ==========================================================================
   About — Story
   ========================================================================== */

.rh-story {
    position: relative;
    z-index: 2;
    padding-block: 70px 181px;
    background: linear-gradient(180deg, #f0f7f3 0%, #fff 90%);
    border-bottom: 1px solid var(--rh-border);
}

.rh-story__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 50px;
}

.rh-story__head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    text-align: center;
}

.rh-story__title {
    max-width: 674px;
    font-size: clamp(32px, 3vw + 3px, 46px);
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: -.69px;
    color: var(--rh-ink);
}

.rh-story__lead {
    max-width: 670px;
    font-size: 16px;
    line-height: 21px;
    color: var(--rh-gray-700);
}

.rh-story__body {
    display: flex;
    align-items: flex-start;
    gap: 80px;
    width: 100%;
}

/* Scroll-driven timeline: JS toggles .is-active / .is-done and drives --rh-progress. */
.rh-timeline {
    --rh-tl-pad: 64px;
    position: relative;
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    padding-left: var(--rh-tl-pad);
}

.rh-timeline__track {
    position: absolute;
    left: 19px;
    top: 20px;
    bottom: 20px;
    width: 2px;
    border-radius: 2px;
    background: rgba(13, 146, 99, .16);
    overflow: hidden;
}

.rh-timeline__fill {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, var(--rh-green) 0%, var(--rh-green) 70%, var(--rh-yellow) 100%);
    transform: scaleY(var(--rh-progress, 0));
    transform-origin: top;
    will-change: transform;
}

.rh-timeline__item {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 8px;
    transition: opacity .5s ease;
}

.rh-timeline { gap: 36px; }

/* Pinned mode (JS adds .is-pinned when the stage fits the viewport): the stage sticks under the
   header and the extra scroller height is the scroll distance that drives steps 02 and 03. */
.rh-story__scroller { width: 100%; }

.rh-story__scroller.is-pinned {
    --rh-pin-h: calc(100vh - var(--rh-pin-top, var(--rh-header-h)));
    height: calc(var(--rh-pin-h) + 2 * var(--rh-step-dist, 40vh));
}

.rh-story__scroller.is-pinned > .rh-story__body {
    position: sticky;
    top: var(--rh-pin-top, var(--rh-header-h));
    height: var(--rh-pin-h);
    align-items: center;
}

.rh-story__scroller.is-pinned .rh-story__media { align-self: center; }

/* Short viewports: inactive steps collapse to a faded preview so all three still fit while pinned. */
.rh-story__scroller.is-compact .rh-timeline { gap: 28px; }

.rh-story__scroller.is-compact .rh-timeline__text {
    max-height: 75px;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(180deg, #000 20%, transparent);
    mask-image: linear-gradient(180deg, #000 20%, transparent);
    transition: max-height .7s cubic-bezier(.22, 1, .36, 1);
}

.rh-story__scroller.is-compact .rh-timeline__item.is-active .rh-timeline__text {
    max-height: var(--rh-text-h, 400px);
    -webkit-mask-image: none;
    mask-image: none;
}
.rh-story__scroller.is-pinned .rh-story__sticky { position: static; }

.rh-timeline__dot {
    position: absolute;
    left: calc(-1 * var(--rh-tl-pad));
    top: -8px;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 2px solid var(--rh-green);
    border-radius: 50%;
    background: #fff;
    font-size: 14px;
    font-weight: 800;
    color: var(--rh-green);
    transition: background-color .4s ease, border-color .4s ease, color .4s ease, transform .5s cubic-bezier(.34, 1.56, .64, 1);
}

.rh-timeline__dot::after {
    content: "";
    position: absolute;
    inset: -2px;
    border-radius: 50%;
    border: 2px solid var(--rh-green);
    opacity: 0;
    pointer-events: none;
}

.rh-timeline__item.is-active .rh-timeline__dot {
    background: var(--rh-green);
    color: #fff;
    transform: scale(1.08);
    box-shadow: 0 8px 20px -6px rgba(13, 146, 99, .55);
}

.rh-story__body.is-ready .rh-timeline__item.is-active .rh-timeline__dot::after {
    animation: rhDotPulse 2.2s cubic-bezier(.22, 1, .36, 1) infinite;
}

@keyframes rhDotPulse {
    0% { transform: scale(1); opacity: .55; }
    70%, 100% { transform: scale(1.75); opacity: 0; }
}

.rh-timeline__label {
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 1px;
    color: var(--rh-green);
    text-transform: uppercase;
}

.rh-timeline__text {
    font-size: 16px;
    line-height: 25px;
    text-align: justify;
    color: var(--rh-gray-700);
}

.rh-timeline__text strong {
    font-weight: 700;
    color: var(--rh-black);
}

.rh-timeline__shot {
    display: none;
    margin-top: 10px;
    border: 1px solid var(--rh-border);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 18px 36px -24px rgba(15, 61, 43, .45);
}

.rh-timeline__shot img { display: block; width: 100%; height: auto; }

.rh-story__media {
    flex: 0 0 482px;
    min-width: 0;
    align-self: stretch;
}

.rh-story__sticky {
    position: sticky;
    top: calc(var(--rh-header-h) + max(24px, (100vh - var(--rh-header-h) - 560px) / 2));
    display: flex;
    flex-direction: column;
    gap: 17px;
}

/* Height is set by JS from the active image's ratio, so each step's artwork shows uncropped. */
.rh-story__frame {
    position: relative;
    border: 1px solid var(--rh-border);
    border-radius: 12px;
    overflow: hidden;
    isolation: isolate;
    background: #e6f1eb;
    box-shadow: 0 24px 48px -28px rgba(15, 61, 43, .5);
    transition: height .8s cubic-bezier(.22, 1, .36, 1);
}

.rh-story__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    z-index: 0;
    transition: opacity .45s ease .4s;
}

.rh-story__img.is-active {
    opacity: 1;
    z-index: 1;
    transition-delay: 0s;
}

.rh-story__body.is-ready .rh-story__img.is-active {
    animation: rhStoryIn 1s cubic-bezier(.22, 1, .36, 1) both;
}

.rh-story__body.is-ready.is-back .rh-story__img.is-active { animation-name: rhStoryInBack; }
.rh-story__frame--b .rh-story__img.is-active { animation-delay: .12s !important; }

@keyframes rhStoryIn {
    from { clip-path: inset(100% 0 0 0); transform: scale(1.12) translateY(4%); }
    to { clip-path: inset(0 0 0 0); transform: none; }
}

@keyframes rhStoryInBack {
    from { clip-path: inset(0 0 100% 0); transform: scale(1.12) translateY(-4%); }
    to { clip-path: inset(0 0 0 0); transform: none; }
}

.rh-story__chip {
    position: absolute;
    left: 14px;
    bottom: 14px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 5px 14px 5px 5px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .92);
    backdrop-filter: blur(6px);
    box-shadow: 0 8px 24px -10px rgba(15, 61, 43, .45);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 1px;
    color: var(--rh-green-dark);
    text-transform: uppercase;
}

.rh-story__chip b {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rh-green);
    color: #fff;
    font-weight: 800;
    letter-spacing: 0;
}

.rh-story__chip.is-swap { animation: rhChipIn .7s cubic-bezier(.22, 1, .36, 1) .15s both; }

@keyframes rhChipIn {
    from { opacity: 0; transform: translateY(10px) scale(.96); }
    to { opacity: 1; transform: none; }
}

.rh-story__progress {
    display: flex;
    gap: 8px;
}

.rh-story__progress button {
    flex: 1 1 0;
    padding: 8px 0;
    border: 0;
    background: none;
    cursor: pointer;
}

.rh-story__progress button span {
    position: relative;
    display: block;
    height: 4px;
    border-radius: 4px;
    background: rgba(13, 146, 99, .16);
    overflow: hidden;
}

.rh-story__progress button span::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: var(--rh-green);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .35s ease;
}

.rh-story__progress button.is-done span::after { transform: scaleX(1); }
.rh-story__progress button.is-active span::after { transform: scaleX(1); transition: transform .9s cubic-bezier(.22, 1, .36, 1) .1s; }

.rh-quote {
    position: absolute;
    left: 50%;
    bottom: 0;
    z-index: 3;
    width: min(740px, calc(100% - (var(--rh-gutter) * 2)));
    padding: 16px 18px;
    border-radius: 14px;
    background: linear-gradient(144deg, #0f3d2b 0%, #0e7a53 100%);
    box-shadow: 0 18px 38px -16px rgba(20, 24, 26, .5);
    transform: translate(-50%, 50%);
    text-align: center;
}

.rh-quote__text {
    font-size: 18px;
    font-weight: 900;
    line-height: 26px;
    color: #fff;
}

.rh-quote__by {
    margin-top: 6px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rh-yellow);
}

/* ==========================================================================
   About — Stats + chart
   ========================================================================== */

.rh-stats {
    padding-block: 180px 71px;
    background: var(--rh-bg-soft);
    border-bottom: 1px solid var(--rh-border);
}

.rh-stats__inner {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.rh-headrow {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
}

.rh-headrow__copy {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.rh-headrow .rh-sub {
    max-width: 686px;
    margin-top: 6px;
    font-weight: 400;
    line-height: 22px;
}

.rh-stats__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.rh-stat {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-height: 176px;
    padding: 21px;
    background: #fff;
    border: 1px solid var(--rh-border);
    border-radius: 16px;
    box-shadow: var(--rh-card-shadow);
}

.rh-stat__num {
    font-size: 32px;
    font-weight: 900;
    letter-spacing: -.64px;
    line-height: 1.2;
    color: var(--rh-green);
}

.rh-stat__title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rh-ink);
}

.rh-stat__text {
    font-size: 14px;
    font-weight: 600;
    line-height: 18.6px;
    color: var(--rh-gray-600);
}

.rh-stat--dark {
    background: var(--rh-ink);
    border-color: var(--rh-ink);
}

.rh-stat--dark .rh-stat__num { color: var(--rh-yellow); }
.rh-stat--dark .rh-stat__title { color: #fff; }
.rh-stat--dark .rh-stat__text { color: var(--rh-gray-300); }

.rh-chart-card {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 41px;
    background: #fff;
    border: 1px solid var(--rh-border);
    border-radius: 20px;
    box-shadow: var(--rh-card-shadow);
}

.rh-chart {
    position: relative;
    height: 229.58px;
}

.rh-chart__layer {
    position: absolute;
    max-width: none !important;
}

.rh-chart__grid { top: 0; bottom: 0; left: 0; right: 1.79%; }
.rh-chart__grid span {
    position: absolute;
    left: 0;
    right: 0;
    height: 1px;
    background: url("images/v2/about/chart-grid.svg") 0 0 / 100% 100% no-repeat;
}

.rh-chart__area { top: 5.22%; bottom: 0; left: 0; width: 98.21%; height: 94.78%; }
.rh-chart__line { top: 4.5%; left: -.13%; width: 98.48%; height: 88.4%; }

.rh-chart__dot {
    position: absolute;
    z-index: 1;
    width: 17px;
    height: 17px;
    transform: translate(-50%, -50%);
}

/* Larger invisible hover target around each dot. */
.rh-chart__dot::before {
    content: "";
    position: absolute;
    inset: -14px;
    border-radius: 50%;
}

.rh-chart__dot::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 2px solid var(--rh-yellow);
    opacity: 0;
    pointer-events: none;
}

.rh-chart__dot img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    transition: transform .45s cubic-bezier(.34, 1.56, .64, 1), opacity .3s ease;
}

.rh-chart__dot .rh-chart__dot-hot { opacity: 0; transform: scale(.5); }

.rh-chart__dot.is-hot img { transform: scale(1.12); }
.rh-chart__dot.is-hot .rh-chart__dot-hot { opacity: 1; }
.rh-chart__dot.is-hot::after { animation: rhDotRipple .8s cubic-bezier(.22, 1, .36, 1); }

@keyframes rhDotRipple {
    0% { transform: scale(1); opacity: .9; }
    100% { transform: scale(2.4); opacity: 0; }
}

/* Draw-in on first view (JS adds .is-armed, then .is-drawn). --d = when the line reaches that column. */
.rh-chart__dot--1, .rh-chapter:nth-child(1) { --d: .16s; }
.rh-chart__dot--2, .rh-chapter:nth-child(2) { --d: .48s; }
.rh-chart__dot--3, .rh-chapter:nth-child(3) { --d: .8s; }
.rh-chart__dot--4, .rh-chapter:nth-child(4) { --d: 1.12s; }
.rh-chart__dot--5, .rh-chapter:nth-child(5) { --d: 1.44s; }

.rh-chart-card.is-armed .rh-chart__line,
.rh-chart-card.is-armed .rh-chart__area { clip-path: inset(0 100% 0 0); }
.rh-chart-card.is-armed .rh-chart__dot { opacity: 0; scale: 0; }
.rh-chart-card.is-armed .rh-chapter { opacity: 0; translate: 0 14px; }

.rh-chart-card.is-drawn .rh-chart__line { animation: rhChartDraw 1.6s linear forwards; }
.rh-chart-card.is-drawn .rh-chart__area { animation: rhChartDraw 1.6s linear .15s forwards; }
.rh-chart-card.is-drawn .rh-chart__dot { animation: rhChartPop .6s cubic-bezier(.34, 1.56, .64, 1) var(--d) forwards; }
.rh-chart-card.is-drawn .rh-chapter { animation: rhChartRise .7s cubic-bezier(.22, 1, .36, 1) var(--d) forwards; }
.rh-chart-card.is-drawn .rh-chart__dot--5::after { animation: rhDotRipple 1s cubic-bezier(.22, 1, .36, 1) 1.9s 2; }

@keyframes rhChartDraw { to { clip-path: inset(0 0 0 0); } }
@keyframes rhChartPop { to { opacity: 1; scale: 1; } }
@keyframes rhChartRise { to { opacity: 1; translate: 0 0; } }

.rh-chart__dot--1 { left: 10%; top: 90%; }
.rh-chart__dot--2 { left: 30%; top: 74.79%; }
.rh-chart__dot--3 { left: 50%; top: 54.79%; }
.rh-chart__dot--4 { left: 70%; top: 30.87%; }
.rh-chart__dot--5 { left: 90%; top: 12.18%; width: 19px; height: 19px; }

.rh-chapters {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 24px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.rh-chapter {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding-top: 18px;
    border-top: 2px solid var(--rh-border);
    transition: border-color .35s ease;
}

.rh-chapter:last-child,
.rh-chapter.is-hot { border-top-color: var(--rh-yellow); }

.rh-chapter__label {
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 1.05px;
    color: var(--rh-green);
}

.rh-chapter__title {
    font-size: 16px;
    font-weight: 900;
    letter-spacing: .1px;
    color: var(--rh-ink);
}

.rh-chapter__text {
    font-size: 14px;
    line-height: 18.6px;
    color: var(--rh-gray-700);
}

/* ==========================================================================
   About — Team carousel
   ========================================================================== */

.rh-team {
    background: #fff;
    border-bottom: 1px solid #e9ede9;
}

.rh-team__inner {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.rh-carousel-nav {
    display: flex;
    gap: 10px;
    flex-shrink: 0;
}

.rh-carousel-nav button {
    position: relative;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
}

.rh-carousel-nav img {
    position: absolute;
    inset: 0;
    width: 44px;
    height: 44px;
}

/* Only two arrow assets exist (grey-left, green-right); mirror them for the other states. */
.rh-carousel-nav .on { display: block; }
.rh-carousel-nav .off { display: none; }
.rh-carousel-nav button.disabled { cursor: default; }
.rh-carousel-nav button.disabled .on { display: none; }
.rh-carousel-nav button.disabled .off { display: block; }
.rh-carousel-nav .prev .on,
.rh-carousel-nav .next .off { transform: scaleX(-1); }

.rh-member {
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--rh-border);
    border-radius: 16px;
    box-shadow: var(--rh-card-shadow);
}

.rh-member__photo {
    aspect-ratio: 1;
    border-bottom: 1px solid var(--rh-border);
    background: var(--rh-bg-soft);
}

.rh-member__photo--micheal > img { width: 100% !important; height: 101.9%; left: 0; top: -.95%; }
.rh-member__photo--matt > img { width: 100.75% !important; height: 102.38%; left: -.75%; top: -1.19%; }

.rh-member__info {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 16px 18px;
}

.rh-member__name {
    font-size: 16px;
    font-weight: 800;
    color: var(--rh-ink);
}

.rh-member__role {
    font-size: 14px;
    color: var(--rh-gray-600);
}

.rh-team .owl-stage-outer { padding-block: 4px 18px; margin-block: -4px -18px; }

.rh-site .owl-carousel .owl-dots {
    display: flex;
    justify-content: center;
    gap: 7px;
    margin-top: 24px;
}

.rh-site .owl-carousel .owl-dots.disabled { display: none; }

.rh-site .owl-carousel button.owl-dot {
    width: 7px;
    height: 7px;
    padding: 0;
    border: 0;
    border-radius: 7px;
    background: var(--rh-border);
    transition: width .2s ease, background-color .2s ease;
}

.rh-site .owl-carousel button.owl-dot.active {
    width: 22px;
    background: var(--rh-green);
}

.rh-site .owl-carousel button.owl-dot span { display: none; }

/* ==========================================================================
   About — Vision & Mission
   ========================================================================== */

.rh-vision__inner {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.rh-vision__title {
    font-size: clamp(26px, 1.9vw + 6px, 34px);
    font-weight: 900;
    text-align: center;
    color: #fff;
}

.rh-vision__cols {
    position: relative;
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.rh-vision__cols::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 6.36%;
    bottom: 6.36%;
    width: 1px;
    background: rgba(255, 255, 255, .36);
}

.rh-vision__col {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 10px 64px 0 0;
}

.rh-vision__col + .rh-vision__col { padding: 10px 0 0 64px; }

.rh-vision__col::before {
    content: "\201C";
    position: absolute;
    top: 31px;
    left: 0;
    font-size: 110px;
    font-weight: 900;
    line-height: 1;
    color: rgba(255, 255, 255, .09);
    transform: translateY(-50%);
    pointer-events: none;
}

.rh-vision__col + .rh-vision__col::before { left: 54px; }

.rh-vision__label {
    font-size: 16px;
    font-weight: 800;
    letter-spacing: 1.68px;
    color: var(--rh-yellow);
    text-transform: uppercase;
}

.rh-vision__text {
    font-size: 18px;
    font-weight: 600;
    line-height: 27px;
    text-align: justify;
    color: #fff;
}

/* ==========================================================================
   About — Trusted-by logo marquee
   ========================================================================== */

.rh-trusted {
    padding-block: 44px;
    background: #fefefe;
    border-block: 1px solid var(--rh-border);
}

.rh-trusted__row {
    display: flex;
    align-items: center;
    gap: 40px;
}

.rh-trusted__label {
    flex: 0 0 333px;
    font-size: 18px;
    font-weight: 700;
    line-height: 25px;
    color: var(--rh-black);
}

.rh-marquee {
    position: relative;
    flex: 1 1 0;
    min-width: 0;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 12%, #000 88%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 12%, #000 88%, transparent 100%);
}

.rh-marquee__track {
    display: flex;
    width: max-content;
    animation: rh-marquee 32s linear infinite;
}

.rh-marquee:hover .rh-marquee__track { animation-play-state: paused; }

.rh-marquee__set {
    display: flex;
    align-items: center;
    gap: 32px;
    padding-right: 32px;
}

.rh-marquee__set .rh-crop { height: 47px; flex-shrink: 0; }

@keyframes rh-marquee {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

.rh-dlogo--beaumont { width: 146px !important; }
.rh-dlogo--border { width: 120px !important; }
.rh-dlogo--liftparts { width: 154px !important; }
.rh-dlogo--legacy { width: 133px !important; }
.rh-dlogo--legacy > img { width: 100%; height: 145.29%; left: 0; top: -22.64%; }
.rh-dlogo--sievers { width: 140px !important; }
.rh-dlogo--linder { width: 137.9px !important; }
.rh-dlogo--tcs { width: 108px !important; }
.rh-dlogo--cg { width: 99px !important; }

/* ==========================================================================
   About — Testimonials (masonry, not a carousel)
   ========================================================================== */

.rh-testimonials {
    position: relative;
    overflow: hidden;
    padding-block: 100px 101px;
    background: var(--rh-bg-soft);
}

.rh-testimonials__inner {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.rh-blob {
    position: absolute;
    width: 520px;
    height: 360px;
    border-radius: 50%;
    background: linear-gradient(120deg, rgba(205, 198, 81, .2), rgba(111, 173, 90, .237), rgba(13, 146, 99, .222));
    filter: blur(61px);
    pointer-events: none;
}

.rh-testimonials .rh-blob--1 { left: -120px; top: 180px; transform: rotate(-18deg); }
.rh-testimonials .rh-blob--2 { right: -140px; bottom: -40px; transform: rotate(24deg); }

.rh-tgrid {
    position: relative;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    align-items: start;
}

.rh-tgrid__col {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rh-tcard {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 30px 32px;
    background: #fff;
    border: 1px solid var(--rh-border);
    border-radius: 18px;
    box-shadow: var(--rh-card-shadow);
}

.rh-tcard__quote {
    font-size: 18px;
    font-weight: 700;
    line-height: 28px;
    color: #000;
}

.rh-tcard__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.rh-tcard__name {
    font-size: 16px;
    font-weight: 800;
    color: var(--rh-green);
}

.rh-tcard__role {
    font-size: 14px;
    color: var(--rh-gray-600);
}

.rh-tcard__logo { flex-shrink: 0; }

.rh-tcard--dark {
    background: var(--rh-green-dark);
    border-color: var(--rh-green-dark);
}

.rh-tcard--dark .rh-tcard__quote {
    font-size: 20px;
    line-height: 33px;
    color: #fff;
}

.rh-tcard--dark .rh-tcard__name { font-size: 18px; font-weight: 900; color: #fff; }
.rh-tcard--dark .rh-tcard__role { font-size: 16px; font-weight: 700; color: var(--rh-gray-300); }

.rh-tlogo--liftparts { width: 156.47px !important; aspect-ratio: 156.47 / 47.9; border-radius: 6px; }
.rh-tlogo--border { width: 122.97px !important; aspect-ratio: 122.97 / 48.2; }
.rh-tlogo--cg { width: 141.19px !important; aspect-ratio: 141.19 / 40.6; }
.rh-tlogo--linder { width: 151.74px !important; aspect-ratio: 151.74 / 43.96; }
.rh-tlogo--linder > img { width: 101.69%; height: 119.62%; left: -1.69%; top: -9.81%; }
.rh-tlogo--tcs { width: 118.07px !important; aspect-ratio: 118.07 / 49.35; }
.rh-tlogo--tcs > img { width: 122.29%; height: 170.2%; left: -11.15%; top: -70.2%; }
.rh-tlogo--deviney { width: 138.8px !important; aspect-ratio: 138.8 / 39.67; }
.rh-tlogo--deviney > img { width: 219.9%; height: 192.38%; left: -4.47%; top: -15.35%; }
.rh-tlogo--legacy { width: 137.19px !important; aspect-ratio: 137.19 / 48.48; }
.rh-tlogo--legacy > img { width: 100%; height: 145.29%; left: 0; top: -22.64%; }

/* ==========================================================================
   About — Ecosystem rows
   ========================================================================== */

.rh-ecosys {
    background: #fff;
    border-bottom: 1px solid var(--rh-border);
    scroll-margin-top: var(--rh-header-h);
}

.rh-ecosys__inner {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.rh-ecosys__rows {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.rh-eco-row {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    gap: 44px;
    padding: 45px 49px;
    border: 1px solid var(--rh-border);
    border-radius: 18px;
    background: #fff;
}

.rh-eco-row--soft { background: var(--rh-bg-soft); }

.rh-eco-row::before,
.rh-eco-row::after {
    content: "";
    position: absolute;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(13, 146, 99, .12) 0, rgba(13, 146, 99, 0) 70%);
    pointer-events: none;
}

.rh-eco-row::before { right: -90px; top: -90px; }
.rh-eco-row::after { left: -70px; bottom: -120px; }

.rh-eco-row--yellow::before,
.rh-eco-row--yellow::after {
    background: radial-gradient(circle, rgba(212, 205, 70, .14) 0, rgba(212, 205, 70, 0) 70%);
}

.rh-eco-row__logo {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    padding: 21px 23px;
    background: #fff;
    border: 1px solid var(--rh-border);
    border-radius: 14px;
    box-shadow: var(--rh-card-shadow);
}

.rh-eco-row__copy {
    position: relative;
    z-index: 1;
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rh-eco-row__eyebrow {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 1.2px;
    color: var(--rh-green);
    text-transform: uppercase;
}

.rh-eco-row__title {
    font-size: clamp(20px, 1vw + 10px, 24px);
    font-weight: 900;
    line-height: 1.25;
    color: var(--rh-ink);
}

.rh-eco-row__text {
    font-size: 16px;
    line-height: 24.65px;
    color: var(--rh-body-eco);
}

/* ==========================================================================
   Contact — hero + form
   ========================================================================== */

.rh-contact {
    padding-block: 70px 71px;
    border-bottom: 1px solid var(--rh-border);
    background: linear-gradient(180deg, #f0f7f3 0%, #fff 90%);
}

.rh-contact__head {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-bottom: 40px;
}

.rh-contact__title {
    margin: 0;
    font-size: clamp(34px, 2.6vw + 9px, 46px);
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: -.69px;
    color: var(--rh-ink);
}

.rh-contact__title span { color: var(--rh-green); }

.rh-contact__sub {
    margin: 12px 0 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 22px;
    color: var(--rh-gray-700);
}

.rh-contact__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin-top: 24px;
}

.rh-mail-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 16px 20px;
    border-radius: 999px;
    background: var(--rh-ink);
    font-size: 16px;
    font-weight: 700;
    color: #fff !important;
    transition: background-color .15s ease;
}

.rh-mail-pill:hover { background: #2a3033; }

.rh-contact__card {
    display: flex;
    overflow: hidden;
    border: 1px solid var(--rh-border);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 9px 7.6px rgba(21, 21, 21, .08);
}

.rh-contact__panel {
    flex: 0 0 250px;
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 34px 28px;
    background: var(--rh-ink);
    color: #fff;
}

.rh-contact__kicker {
    display: block;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 1.3px;
    text-transform: uppercase;
    color: var(--rh-yellow);
}

.rh-contact__lead {
    margin: 4px 0 0;
    font-size: 18px;
    font-weight: 800;
    line-height: 23px;
}

.rh-contact__steps {
    display: flex;
    flex-direction: column;
    gap: 18px;
    margin: 0;
    padding: 24px 0 0;
    border-top: 1px solid #818181;
    list-style: none;
}

.rh-contact__steps li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: 12px;
    line-height: 16px;
    color: #cfd6d1;
}

.rh-contact__steps strong {
    display: block;
    margin-bottom: 2px;
    font-size: 14px;
    font-weight: 700;
    line-height: 18px;
    color: #fff;
}

.rh-contact__step-num {
    flex: 0 0 24px;
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rh-green);
    font-size: 12px;
    font-weight: 800;
    color: #fff;
}

.rh-contact__mail {
    margin-top: auto;
    padding-top: 16px;
    border-top: 1px solid #818181;
}

.rh-contact__mail a {
    display: inline-block;
    margin-top: 6px;
    font-size: 16px;
    font-weight: 700;
    color: #fff;
    word-break: break-word;
}

.rh-contact__mail a:hover { color: var(--rh-yellow); }

.rh-contact__form {
    flex: 1 1 auto;
    min-width: 0;
    gap: 24px;
    padding: 36px;
}

.rh-contact__form .rh-form__row { gap: 24px; }
.rh-contact__form .rh-form__row--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rh-contact__form .rh-input,
.rh-contact__form .rh-textarea { min-height: 46px; padding: 12px 13px; font-size: 14px; }
.rh-contact__form .rh-textarea { min-height: 98px; }

.rh-select {
    appearance: none;
    padding-right: 40px !important;
    background: var(--rh-bg-soft) url("images/v2/icons/chevron-down.svg") right 14px center / 12px auto no-repeat;
    cursor: pointer;
}

.rh-select:invalid,
.rh-select:has(option[value=""]:checked) { color: var(--rh-gray-500); }
.rh-select option { color: var(--rh-black); }

.rh-checks {
    margin: 0;
    padding: 0;
    border: 0;
}

.rh-checks legend { float: none; width: auto; margin: 0 0 12px; padding: 0; }

.rh-checks__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.rh-check {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 46px;
    padding: 8px 12px;
    border: 1px solid var(--rh-border);
    border-radius: 8px;
    background: var(--rh-bg-soft);
    font-size: 14px;
    font-weight: 500;
    color: var(--rh-black);
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease;
}

.rh-check:hover { border-color: var(--rh-mint-2); }

.rh-check input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
}

.rh-check__box {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    border: 1.5px solid #818181;
    border-radius: 2px;
    background: #fff center / 20px 20px no-repeat;
    transition: background-color .15s ease, border-color .15s ease;
}

.rh-check input:checked + .rh-check__box {
    border-color: var(--rh-green);
    background-color: var(--rh-green);
    background-image: url("images/v2/icons/check-box.svg");
}

.rh-check:has(input:checked) { border-color: var(--rh-green); background: var(--rh-chip-green); }

.rh-check input:focus-visible + .rh-check__box {
    outline: 2px solid var(--rh-green);
    outline-offset: 2px;
}

.rh-contact__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding-top: 24px;
    border-top: 1px solid var(--rh-border);
}

.rh-contact__foot p {
    max-width: 340px;
    margin: 0;
    font-size: 14px;
    line-height: 20px;
    color: var(--rh-gray-500);
}

.rh-contact__foot a {
    font-weight: 700;
    color: var(--rh-green);
    text-decoration: underline;
}

/* ---------- Contact — Need Help ---------- */

.rh-help {
    color: #fff;
    background: var(--rh-green-dark) url("images/v2/contact/help-bg.jpg") center / cover no-repeat;
}

.rh-help__head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    margin-bottom: 48px;
    text-align: center;
}

.rh-help__title {
    margin: 0;
    font-size: clamp(34px, 3.4vw + 2px, 50px);
    font-weight: 900;
    line-height: 1.05;
    letter-spacing: -1px;
}

.rh-help__sub {
    max-width: 806px;
    margin: 0;
    font-size: 16px;
    line-height: 23px;
    color: var(--rh-mint);
}

.rh-help__grid {
    display: flex;
    align-items: center;
    gap: 20px;
}

.rh-help-zeta {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    align-items: stretch;
    overflow: hidden;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .55);
}

.rh-help-zeta__copy {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 12px;
    padding: 24px 20px;
}

.rh-help-zeta__chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 5px 10px;
    border-radius: 999px;
    background: #e6f4ec;
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: 1.05px;
    text-transform: uppercase;
    color: #0a7a52;
}

.rh-help-zeta__chip::before,
.rh-legal-hero__badge::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--rh-green);
}

.rh-help-zeta__title {
    margin: 8px 0 0;
    font-size: 28px;
    font-weight: 900;
    line-height: 33px;
    color: var(--rh-ink);
}

.rh-help-zeta__text {
    max-width: 290px;
    margin: 0;
    font-size: 14px;
    line-height: 23.93px;
    color: #59605c;
}

.rh-help-zeta__media {
    flex: 0 0 270px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 0 20px;
    background: #eef4f0 radial-gradient(rgba(13, 146, 99, .12) 1.2px, transparent 1.6px) 0 0 / 14px 14px;
}

.rh-help-zeta__media img {
    display: block;
    width: 230px;
    height: auto;
    border-radius: 12px 12px 0 0;
    box-shadow: 0 20px 40px -20px rgba(18, 59, 43, .5);
}

.rh-help__stack {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rh-help-card {
    display: flex;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .7);
    border-radius: 20px;
    background: rgba(255, 255, 255, .08);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .55);
}

.rh-help-card__copy {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    padding: 26px 20px 26px 26px;
}

.rh-help-card__kicker {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 1.05px;
    text-transform: uppercase;
    color: var(--rh-yellow);
}

.rh-help-card__title {
    margin: 4px 0 0;
    max-width: 280px;
    font-size: 20px;
    font-weight: 900;
    line-height: 25px;
    color: #fff;
}

.rh-help-card__text {
    max-width: 290px;
    margin: 0;
    font-size: 13.5px;
    line-height: 20px;
    color: #fff;
}

.rh-help-card__media {
    position: relative;
    flex: 0 0 226px;
    align-self: stretch;
    overflow: hidden;
}

.rh-help-card__media img {
    position: absolute;
    left: 0;
    max-width: none;
    height: auto;
    border: 1px solid #000;
    border-radius: 8px;
}

.rh-help-card__media--kb img { width: 475px; bottom: -55px; }
.rh-help-card__media--ticket img { width: 280px; bottom: -8px; }

/* ==========================================================================
   Privacy Policy & Terms
   ========================================================================== */

.rh-legal-hero {
    padding-block: 70px 71px;
    border-bottom: 1px solid var(--rh-border);
    background: linear-gradient(180deg, #f0f7f3 0%, #fff 90%);
}

.rh-legal-hero__title {
    margin: 0 0 4px;
    font-size: clamp(32px, 2.8vw + 8px, 48px);
    font-weight: 900;
    line-height: 1.12;
    letter-spacing: -.72px;
    color: var(--rh-ink);
}

.rh-legal-hero__title span { color: var(--rh-green); }

.rh-legal-hero__sub {
    margin: 0 0 12px;
    font-size: 16px;
    font-weight: 500;
    line-height: 22px;
    color: var(--rh-gray-700);
}

.rh-legal-hero__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 8px 12px;
    border: 1px solid var(--rh-border);
    border-radius: 20px;
    background: #e6f4ec;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .5px;
    color: #0a7a52;
}

.rh-legal__grid {
    display: flex;
    align-items: flex-start;
    gap: 48px;
}

.rh-legal__toc {
    position: sticky;
    top: calc(var(--rh-header-h) + 24px);
    flex: 0 0 250px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    max-height: calc(100vh - var(--rh-header-h) - 48px);
    overflow-y: auto;
    padding-left: 22px;
    border-left: 2px solid var(--rh-border);
    scrollbar-width: thin;
}

.rh-legal__toc-label {
    margin: 0 0 12px;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: 1.26px;
    text-transform: uppercase;
    color: var(--rh-green);
}

.rh-legal__toc ul {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.rh-legal__toc a {
    font-size: 13px;
    font-weight: 600;
    line-height: 18px;
    color: #59605c;
    transition: color .15s ease;
}

.rh-legal__toc a:hover,
.rh-legal__toc a.is-active { color: var(--rh-green); }

.rh-legal__body {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 902px;
}

.rh-legal__doc {
    display: flex;
    flex-direction: column;
    gap: 16px;
    scroll-margin-top: calc(var(--rh-header-h) + 24px);
}

.rh-legal__item { scroll-margin-top: calc(var(--rh-header-h) + 24px); }

.rh-legal__title {
    margin: 0;
    font-size: clamp(26px, 1.6vw + 10px, 32px);
    font-weight: 900;
    letter-spacing: -.336px;
    color: var(--rh-ink);
}

.rh-legal__intro p {
    margin: 0;
    font-size: 14px;
    font-weight: 500;
    line-height: 23.8px;
    color: var(--rh-gray-700);
}

.rh-legal__intro a,
.rh-legal__item a {
    font-weight: 700;
    color: inherit;
    text-decoration: underline;
}

.rh-legal__item {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-bottom: 17px;
    border-bottom: 1px solid var(--rh-border);
}

.rh-legal__heading {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rh-ink);
}

.rh-legal__num {
    flex: 0 0 24px;
    font-size: 20px;
    color: var(--rh-green);
}

.rh-legal__item p {
    margin: 0;
    font-size: 14px;
    line-height: 24px;
    color: var(--rh-gray-700);
}

.rh-legal__item p strong { font-weight: 700; }

.rh-legal__item ul {
    margin: 0;
    padding-left: 41px;
    font-size: 14px;
    line-height: 24.65px;
    color: var(--rh-body-eco);
}

.rh-legal__divider {
    margin: 40px 0;
    border: 0;
    border-top: 1px solid var(--rh-border);
    opacity: 1;
}

.rh-legal__contact {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-top: 40px;
    padding: 24px;
    border-radius: 18px;
    background: var(--rh-green-dark);
    color: #fff;
}

.rh-legal__contact h3 {
    margin: 0 0 4px;
    font-size: 19px;
    font-weight: 900;
}

.rh-legal__contact p {
    margin: 0;
    font-size: 13px;
    color: #cfe6da;
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 1199.98px) {
    :root { --rh-gutter: 32px; }

    .rh-nav { gap: 28px; }
    .rh-brand img { width: 170px; }
    .rh-brand__tag { font-size: 12px; }

    .rh-integrations__row { flex-direction: column; align-items: flex-start; gap: 20px; }
    .rh-integrations__logos { flex-wrap: wrap; gap: 24px 32px; }

    .rh-dealers__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .rh-dealers__grid .rh-card { min-height: 0; }

    .rh-block .rh-card { min-height: 0 !important; }

    .rh-zeta__grid { gap: 48px; }
    .rh-orbit { flex-basis: 420px; width: 420px; }

    .rh-story__body { gap: 48px; }
    .rh-story__media { flex-basis: 400px; }

    .rh-chapters { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 28px; }

    .rh-help__grid { flex-direction: column; align-items: stretch; }
    .rh-help-zeta,
    .rh-help__stack { flex: none; }
    .rh-contact__form { padding: 32px 28px; }
}

@media (max-width: 991.98px) {
    :root {
        --rh-header-h: 64px;
        --rh-section-y: 56px;
    }

    .rh-header__bar { padding-block: 10px; }
    .rh-header__bar > nav,
    .rh-header__actions > .rh-btn,
    .rh-header__actions > .rh-login { display: none; }
    .rh-burger { display: inline-flex; }
    .rh-brand img { width: 150px; }
    .rh-brand__tag { font-size: 11px; letter-spacing: .2px; }

    .rh-hero { padding-block: 48px; }
    .rh-hero__grid { flex-direction: column; align-items: stretch; gap: 40px; }
    .rh-hero__copy { align-items: flex-start; }
    .rh-hero__title, .rh-hero__lead { max-width: 620px; }
    .rh-hero__media { flex-basis: auto; width: 100%; }

    .rh-block__body { flex-direction: column; align-items: stretch; gap: 28px; }
    .rh-block__media { order: -1; }
    .rh-block__cards { flex-basis: auto; }
    .rh-block--panel { padding: 28px; }

    .rh-zeta__grid { flex-direction: column; align-items: stretch; }
    .rh-orbit { flex-basis: auto; width: min(460px, 100%); margin-inline: auto; }

    .rh-eco__grid { grid-template-columns: 1fr; }
    .rh-eco-card { min-height: 0; }

    .rh-talk__grid { flex-direction: column; align-items: stretch; gap: 36px; }
    .rh-form-card { flex-basis: auto; }

    .rh-footer__top { flex-wrap: wrap; row-gap: 32px; }
    .rh-footer__brand { flex-basis: 100%; }

    .rh-story { padding-bottom: 56px; }
    .rh-story__body { flex-direction: column; align-items: stretch; }
    .rh-story__media { display: none; }
    .rh-timeline { gap: 40px; }
    .rh-story__body .rh-timeline__item,
    .rh-story__body.is-ready .rh-timeline__item { min-height: 0; padding-bottom: 0; opacity: 1; }
    .rh-timeline__shot { display: block; }
    .rh-quote {
        position: relative;
        left: auto;
        bottom: auto;
        width: 100%;
        max-width: 740px;
        margin: 8px auto 0;
        transform: none;
    }
    .rh-stats { padding-top: 56px; }

    .rh-stats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .rh-stat { min-height: 0; }
    .rh-chart-card { padding: 28px; }

    .rh-headrow { flex-direction: column; align-items: flex-start; }

    .rh-vision__cols { grid-template-columns: 1fr; row-gap: 36px; }
    .rh-vision__cols::before { display: none; }
    .rh-vision__col,
    .rh-vision__col + .rh-vision__col { padding: 10px 0 0 0; }
    .rh-vision__col + .rh-vision__col { padding-top: 36px; border-top: 1px solid rgba(255, 255, 255, .36); }
    .rh-vision__col + .rh-vision__col::before { left: 0; top: 67px; }

    .rh-trusted__row { flex-direction: column; align-items: stretch; gap: 24px; }
    .rh-trusted__label { flex-basis: auto; text-align: center; }
    .rh-marquee { flex: none; }

    .rh-testimonials { padding-block: 64px; }
    .rh-tgrid { display: block; columns: 2; column-gap: 20px; }
    .rh-tgrid__col { display: contents; }
    .rh-tcard { break-inside: avoid; margin-bottom: 20px; }

    .rh-eco-row { flex-direction: column; align-items: flex-start; gap: 24px; padding: 32px; }
    .rh-eco-row--reverse .rh-eco-row__logo { order: -1; }

    .rh-contact { padding-block: 48px; }
    .rh-contact__card { flex-direction: column; }
    .rh-contact__panel { flex-basis: auto; padding: 28px; }
    .rh-contact__steps { flex-direction: row; gap: 20px; }
    .rh-contact__steps li { flex: 1 1 0; }
    .rh-contact__mail { margin-top: 0; }

    .rh-legal__grid { flex-direction: column; align-items: stretch; gap: 0; }
    .rh-legal__toc { display: none; }
    .rh-legal-hero { padding-block: 48px; }
}

@media (max-width: 767.98px) {
    :root {
        --rh-gutter: 20px;
        --rh-section-y: 48px;
    }

    /* Mobile-only carousels (JS turns these into Owl sliders below 768px) */
    .rh-integrations__logos.owl-carousel,
    .rh-dealers__grid.owl-carousel,
    .rh-block__cards.owl-carousel { display: block; }

    .rh-integrations__logos.owl-carousel .item { height: 44px; }
    .rh-integrations__logos.owl-carousel .owl-dots { margin-top: 16px; }
    .rh-integrations__logos.owl-carousel button.owl-dot { background: rgba(255, 255, 255, .28); }
    .rh-integrations__logos.owl-carousel button.owl-dot.active { background: var(--rh-yellow); }

    .rh-site .owl-carousel .owl-stage { display: flex; }
    .rh-site .owl-carousel .owl-item { display: flex; }
    .rh-site .owl-carousel .owl-item > .rh-card { width: 100%; }
    .rh-dealers__grid.owl-carousel .owl-stage-outer,
    .rh-block__cards.owl-carousel .owl-stage-outer { padding: 2px 2px 18px; margin: -2px -2px -18px; }

    .rh-block--panel { padding: 20px; border-radius: 16px; }
    .rh-block__head { gap: 10px; }
    .rh-block__num { width: 40px; height: 40px; }

    .rh-btn-row .rh-btn,
    .rh-block__footer .rh-btn { width: 100%; }
    .rh-btn-row .rh-btn__inner,
    .rh-block__footer .rh-btn__inner { width: 100%; justify-content: space-between; }

    .rh-zeta__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .rh-orbit__chip { font-size: 11px; padding: 7px 12px; }

    .rh-form-card { padding: 28px 20px; }
    .rh-form__row { grid-template-columns: 1fr; }
    .rh-form__submit .rh-btn { width: 100%; }
    .rh-form__submit .rh-btn__inner { width: 100%; justify-content: space-between; }

    .rh-footer__bottom { grid-template-columns: 1fr; justify-items: center; text-align: center; }
    .rh-footer__legal { justify-content: center; }
    .rh-to-top { right: 14px; bottom: 14px; }

    .rh-modal .modal-dialog { margin: 0; max-width: none; min-height: 100%; }
    .rh-modal .modal-content { min-height: 100vh; border-radius: 0; border: 0; padding: 28px 20px; }
    .rh-modal__close { top: 12px; right: 8px; }
    .rh-modal .rh-form,
    .rh-modal .rh-form__row { gap: 16px; }
    .rh-modal .rh-form__submit .rh-btn { width: 100%; }
    .rh-modal__sub { font-size: 16px; }

    .rh-timeline { --rh-tl-pad: 54px; }

    .rh-quote__text { font-size: 16px; line-height: 24px; }

    .rh-chart { height: 160px; }
    .rh-chart__dot { width: 13px; height: 13px; }
    .rh-chart__dot--5 { width: 15px; height: 15px; }
    .rh-chapters { grid-template-columns: 1fr; gap: 0; }
    .rh-chapter { padding-block: 14px; }
    .rh-chart-card { padding: 20px; }

    .rh-vision__text { font-size: 16px; line-height: 25px; text-align: left; }

    .rh-tgrid { columns: 1; }
    .rh-tcard { padding: 24px; }
    .rh-tcard__quote { font-size: 16px; line-height: 25px; }
    .rh-tcard--dark .rh-tcard__quote { font-size: 18px; line-height: 29px; }
    .rh-tcard__foot { flex-wrap: wrap; }

    .rh-eco-row { padding: 24px 20px; }
    .rh-timeline__text { text-align: left; }

    .rh-contact__actions { flex-direction: column; align-items: stretch; width: 100%; max-width: 360px; gap: 12px; }
    .rh-contact__actions > * { justify-content: center; }
    .rh-contact__actions .rh-btn__inner { width: 100%; justify-content: space-between; }
    .rh-contact__steps { flex-direction: column; gap: 16px; }
    .rh-contact__form { padding: 24px 20px; gap: 20px; }
    .rh-contact__form .rh-form__row,
    .rh-contact__form .rh-form__row--3 { grid-template-columns: 1fr; gap: 20px; }
    .rh-checks__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .rh-contact__foot { flex-direction: column; align-items: stretch; }
    .rh-contact__foot p { max-width: none; }

    .rh-help-zeta { flex-direction: column; }
    .rh-help-zeta__copy { padding: 24px 20px 20px; }
    .rh-help-zeta__media { flex-basis: auto; padding-top: 24px; }
    .rh-help-card { flex-direction: column; }
    .rh-help-card__copy { padding: 24px 20px 16px; }
    .rh-help-card__media { flex-basis: auto; height: 150px; margin-left: 20px; }
    .rh-help-card__media--kb img { width: 420px; bottom: auto; top: 0; }
    .rh-help-card__media--ticket img { bottom: auto; top: 0; }

    .rh-legal__contact { flex-direction: column; align-items: flex-start; }
    .rh-legal__contact .rh-mail-chip { width: 100%; justify-content: center; }
    .rh-legal__item ul { padding-left: 22px; }
}

@media (max-width: 575.98px) {
    .rh-stats__grid { grid-template-columns: 1fr 1fr; gap: 10px; }
    .rh-stat { padding: 16px; }
    .rh-stat__num { font-size: 26px; }

    .rh-zeta__cards { grid-template-columns: 1fr; }
    .rh-orbit__chip { display: none; }

    .rh-mark-truckhub--lg { transform: scale(.85); transform-origin: left center; }
}

@media (max-width: 399.98px) {
    .rh-stats__grid { grid-template-columns: 1fr; }
    .rh-brand img { width: 136px; }
}

@media (prefers-reduced-motion: reduce) {
    .rh-site *,
    .rh-site *::before,
    .rh-site *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
        scroll-behavior: auto !important;
    }

    .rh-marquee { overflow-x: auto; }
    .rh-marquee__track { animation: none !important; }
}
