/* ==========================================================================
   GLOBAL — header, nav, footer, buttons, shared layout.
   These are the desktop-default rules PLUS the responsive header/footer bands.
   Colours and fonts come from tokens.css (loaded first).
   ========================================================================== */

/* ==========================================================================
   THEME GUARD — stop the parent theme / Elementor from bleeding link styles
   ========================================================================== */
.rv-header a, .rv-hero a, .rv-about a, .rv-cta a, .rv-faq a,
.rv-connect a, .rv-footer a {
  text-decoration: none !important;
  box-shadow: none !important;
  border-bottom: none !important;
}
.rv-dropdown a:hover, .rv-dropdown a:focus-visible {
  text-decoration: underline !important;
  text-underline-offset: 5px;
}
.rv-header, .rv-hero, .rv-bleed, .rv-footer { max-width: none !important; }

/* current page stays cyan */
.rv-navlink.is-current { color: var(--rv-accent); }
.rv-navlink.is-current:hover, .rv-navlink.is-current:focus-visible { color: var(--rv-accent); }
.rv-dropdown a.is-current { color: var(--rv-accent); }

/* THEME GUARD */
.rv-header a,
.rv-hero a,
.rv-about a,
.rv-cta a,
.rv-faq a,
.rv-connect a,
.rv-footer a {
  text-decoration: none !important;
  box-shadow: none !important;
  border-bottom: none !important;
}

.rv-dropdown a.is-current { color: var(--rv-accent); }

.rv-dropdown a:hover,
.rv-dropdown a:focus-visible,
.rv-footer nav a:hover {
  text-decoration: underline !important;
  text-underline-offset: 5px;
}

/* stop theme wrappers from constraining the full-bleed sections */
.rv-header, .rv-hero, .rv-bleed, .rv-footer { max-width: none !important; }

/* SHARED PIECES */

html { overflow-x: hidden; }

.rv-bleed {
  width: 100vw;
  margin-left:  calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: var(--rv-band-y) 0;
  position: relative;
  overflow: hidden;
  z-index: 10;
  font-family: var(--rv-font);
}

.rv-inner {
  max-width: var(--rv-inner-max);
  margin: 0 auto;
  padding: 0 var(--rv-gutter);
  position: relative;
  z-index: 2;
  box-sizing: border-box;
}

/* One button style, used everywhere. Hover is CSS, not inline JS. */
.rv-btn {
  display: inline-block;
  background: linear-gradient(230deg, var(--rv-accent) 0%, var(--rv-grey-text) 100%);
  color: var(--accent-foreground);
  padding: var(--rv-btn-pad);
  border-radius: 8px;
  text-decoration: none;
  font-family: var(--rv-font);
  font-weight: 600;
  font-size: var(--rv-btn-size);
  text-align: center;
  cursor: pointer;
  box-shadow: 0 4px 15px rgba(var(--rv-accent-rgb), 0.3);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* HEADER */

html, body { background-color: var(--rv-dark-bg); }

.rv-header {
  position: sticky;
  top: 0;
  z-index: 50;
  width: 100vw;
  margin-left:  calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  font-family: var(--rv-font);
}

.rv-nav-toggle {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}

.rv-header__bar {
  position: relative;
  height: var(--rv-hdr-h);
  padding: 0 24px;
  display: flex;
  align-items: center;
  gap: 16px;
  background: rgba(26, 26, 26, 0.4);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-sizing: border-box;
}

/* ---- logo ---- */
.rv-logo {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  text-decoration: none;
  flex-shrink: 0;
  transition: opacity 0.2s ease;
}

.rv-logo:hover { opacity: 0.8; }

.rv-logo__mark {
  width: var(--rv-hdr-logo);
  height: var(--rv-hdr-logo);
  display: block;
  object-fit: contain;
  flex-shrink: 0;
}

.rv-logo__word {
  height: var(--rv-hdr-brand);
  width: auto;
  display: block;
  object-fit: contain;
  flex-shrink: 0;
}

/* ---- desktop nav: no pill, evenly spread across the banner ---- */
.rv-nav {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: space-evenly;
  list-style: none;
  margin: 0;
  padding: 0;
}

.rv-navlink {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: 6px 2px;
  text-decoration: none;
  font-size: var(--rv-hdr-link);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--foreground);
  transition: color 0.2s ease;
}

.rv-navlink.is-current { color: var(--rv-accent); }

/* underline wipes in from the left, exactly as wide as the word */
.rv-navlink::after {
  content: "";
  position: absolute;
  left: 2px;
  right: 2px;
  bottom: 0;
  height: 1.5px;
  background: var(--rv-accent);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.rv-navlink:hover::after,
.rv-navlink:focus-visible::after { transform: scaleX(1); }

.rv-navlink:hover,
.rv-navlink:focus-visible { color: var(--foreground); }

.rv-navlink.is-current:hover,
.rv-navlink.is-current:focus-visible { color: var(--rv-accent); }

.rv-navlink:focus-visible {
  outline: 2px solid var(--rv-accent);
  outline-offset: 4px;
  border-radius: 4px;
}

/* ---- animated hamburger (hidden on desktop) ---- */
.rv-burger {
  display: none;
  flex-direction: column;
  gap: 8px;
  width: 32px;
  margin-left: auto;
  cursor: pointer;
  flex-shrink: 0;
}

.rv-burger span {
  height: 3px;
  border-radius: 16px;
  background: var(--foreground);
  transition: transform 500ms ease, background-color 200ms ease;
  display: block;
}

.rv-burger span:nth-child(1) { width: 50%; transform-origin: right; }

.rv-burger span:nth-child(2) { width: 100%; }

.rv-burger span:nth-child(3) { width: 50%; align-self: flex-end; transform-origin: left; }

.rv-burger:hover span { background: var(--rv-accent); }

.rv-nav-toggle:checked ~ .rv-header__bar .rv-burger span:nth-child(1) {
  transform: translate(-12px, -1px) rotate(225deg);
}

.rv-nav-toggle:checked ~ .rv-header__bar .rv-burger span:nth-child(2) {
  transform: rotate(-45deg);
}

.rv-nav-toggle:checked ~ .rv-header__bar .rv-burger span:nth-child(3) {
  transform: translate(12px, 1px) rotate(225deg);
}

/* ---- mobile dropdown ---- */
.rv-dropdown {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  z-index: 55;
  width: 160px;
  max-width: calc(100vw - 32px);
  margin-top: 8px;

  display: grid;
  grid-template-rows: 0fr;
  overflow: hidden;

  background: rgba(26, 26, 26, 0.4);
  background-clip: padding-box;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 16px;

  visibility: hidden;
  pointer-events: none;


  transition: grid-template-rows 0.5s cubic-bezier(0.5, 0, 0.75, 0),
              visibility 0s linear 0.5s;
}

.rv-nav-toggle:checked ~ .rv-dropdown {
  grid-template-rows: 1fr;
  visibility: visible;
  pointer-events: auto;

  /* OPENING — becomes visible immediately, then rolls down. */
  transition: grid-template-rows 0.6s cubic-bezier(0.16, 1, 0.3, 1),
              visibility 0s linear 0s;
}

.rv-dropdown__inner {
  overflow: hidden;
  min-height: 0;
}

.rv-dropdown ul {
  list-style: none;
  margin: 0;
  padding: 10px 0;
}

.rv-dropdown a {
  display: block;
  padding: 12px 14px;
  text-align: center;
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--foreground);
  transition: color 0.2s ease;
}

.rv-dropdown a:hover,
.rv-dropdown a:focus-visible {
  color: var(--rv-accent);
  text-decoration: underline;
  text-underline-offset: 5px;
}

/* HERO */
.rv-hero {
  position: relative;
  width: 100vw;
  margin-left:  calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: var(--rv-dark-bg);
  margin-top: calc(var(--rv-hdr-h) * -1);   /* header floats over the video */
}

/* optional darkening for legibility — raise --rv-hero-scrim to taste */
.rv-hero__scrim {
  position: absolute;
  inset: 0;
  background: rgba(18, 18, 18, 1);
  opacity: var(--rv-hero-scrim);
  pointer-events: none;
}

/* ---- headline ---- */
.rv-hero__title {
  font-family: var(--rv-hero-display);
  font-weight: 400;
  font-size: var(--rv-hero-h1);
  letter-spacing: var(--rv-hero-h1-track);
  line-height: var(--rv-hero-h1-lh);
  max-width: 15ch;
  margin: 0;
  background: linear-gradient(180deg,
              rgba(126, 138, 142, 0.92) 0%,
              rgba(196, 205, 208, 0.95) 48%,
              rgba(248, 250, 250, 0.98) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}

/* ---- lead paragraph ---- */
.rv-hero__lead {
  font-family: var(--rv-hero-body);
  font-weight: 500;
  font-size: var(--rv-hero-lead);
  line-height: 1.55;
  color: #D9EFEC;
  max-width: 40ch;
  margin: 0;
}

/* ---- three service columns ---- */
.rv-hero__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--rv-hero-cgap);
  width: 100%;
  max-width: 1400px;
  align-items: start;
}

/* ---- hero button ---- */
.rv-hero__btn {
  display: inline-block;
  background: linear-gradient(230deg, var(--rv-accent) 0%, var(--rv-grey-text) 100%);
  color: var(--accent-foreground);
  font-family: var(--rv-hero-body);
  font-weight: 700;
  font-size: var(--rv-hero-btn);
  padding: var(--rv-hero-btn-pad);
  border-radius: 8px;
  text-decoration: none;
  box-shadow: 0 4px 15px rgba(var(--rv-accent-rgb), 0.3);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* SECTION */
.rv-about {
  background: linear-gradient(135deg, var(--rv-card-bg) 0%, var(--rv-dark-bg) 100%);
  margin-top: -2px;
  text-align: center;
}

.rv-about__body {
  font-size: var(--rv-about-p);
  color: var(--muted-foreground);
  max-width: 900px;
  margin: 0 auto;
  line-height: 1.7;
  overflow-wrap: break-word;
}

/* --- ambient circles --- */
.rv-circle {
  position: absolute;
  border-radius: 50%;
  z-index: 1;
  opacity: var(--rv-circle-op);
  pointer-events: none;
}

/* SECTION */
.rv-cta {
  background: linear-gradient(135deg, var(--rv-dark-bg) 0%, var(--rv-card-bg) 100%);
  text-align: center;
}

.rv-cta__body {
  font-size: var(--rv-cta-p);
  color: var(--muted-foreground);
  max-width: 800px;
  margin: 0 auto 40px;
  line-height: 1.6;
}

/* SECTION */
.rv-faq {
  background: linear-gradient(135deg, var(--rv-card-bg) 0%, var(--rv-dark-bg) 100%);
}

/* SECTION */
.rv-final {
  background: linear-gradient(135deg, var(--rv-card-bg) 50%, #080808 65%);
  border: 1px solid var(--border);
  border-radius: 2rem;
  margin-top: 6rem;
  padding: 4rem var(--rv-gutter);
  text-align: center;
}

.rv-final__body {
  font-size: var(--rv-final-p);
  line-height: 1.6;
  color: rgba(170, 170, 170, 0.8);
  max-width: 36rem;
  margin: 0 auto 2rem;
}

/* SECTION */
.rv-connect { background: var(--rv-dark-bg); }

/* ---- live map ---- */
.rv-map {
  width: 100%;
  height: var(--rv-map-h);
  border: 0;
  border-radius: 4px;
  display: block;
  background: var(--rv-grey-accent);
}

/* ---- contact cards ---- */
.rv-cards {
  display: grid;
  grid-template-columns: var(--rv-cards-cols);
  gap: var(--rv-cards-gap);
}

/* ---- social row ---- */
.rv-social {
  display: flex;
  gap: 18px;
  margin-top: 18px;
  align-items: center;
}

/* FOOTER */
.rv-footer {
  width: 100vw;
  margin-left:  calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 1rem 1.5rem;
  background-color: var(--rv-dark-bg);
  border-top: 1px solid var(--border);
  font-family: var(--rv-font);
  box-sizing: border-box;
}

.rv-footer .container {
  max-width: 100rem;
  margin: 0 auto;
}

.rv-footer nav {
  display: flex;
  justify-content: center;
  gap: 2rem;
  flex-wrap: wrap;
  margin-bottom: 2rem;
}

.rv-footer nav a {
  position: relative;
  color: var(--muted-foreground);
  text-decoration: none;
  font-size: var(--rv-footer-link);
  transition: color 0.2s;
}

.rv-footer nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -3px;
  height: 1.5px;
  background: var(--rv-accent);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.rv-footer nav a:hover::after,
.rv-footer nav a:focus-visible::after { transform: scaleX(1); }

.rv-footer nav a:hover,
.rv-footer nav a:focus-visible {
  color: var(--rv-accent);
}

.rv-footer p {
  text-align: center;
  color: var(--muted-foreground);
  font-size: 0.675rem;
}

/* RESPONSIVE */

/* ---- BAND 1 · WIDESCREEN  >= 1600px ---- */
@media (min-width: 1600px) {
  :root {
    --rv-band-y: 130px;  --rv-gutter: 24px;  --rv-inner-max: 1440px;
    --rv-about-h2: 60px; --rv-about-p: 21px;
    --rv-cta-h2: 54px;   --rv-cta-p: 23px;
    --rv-faq-title: 54px; --rv-faq-sub: 25px; --rv-faq-q: 18px; --rv-faq-a: 17px;
    --rv-faq-pad: 26px 36px;
    --rv-final-h2: 54px; --rv-final-p: 19px;
    --rv-btn-pad: 20px 40px; --rv-btn-size: 19px;
    --rv-footer-link: 1.05rem;
    --rv-connect-h2: 54px; --rv-connect-sub: 21px; --rv-connect-gap: 70px;
    --rv-connect-cols: 1fr 1fr; --rv-map-h: 580px;
    --rv-cards-cols: 1fr 1fr; --rv-cards-gap: 64px 56px;
    --rv-card-icon: 32px; --rv-card-title: 28px; --rv-card-desc: 20px;
    --rv-card-value: 26px; --rv-social-icon: 24px;
    --rv-hdr-h: 104px; --rv-hdr-logo: 55px; --rv-hdr-brand: 20px;
    --rv-hero-h1: 150px; --rv-hero-h1-track: 0.02em; --rv-hero-lead-shift: 7vh; --rv-hero-lead: 34px;
    --rv-hero-ctitle: 46px; --rv-hero-cbody: 25px; --rv-hero-cicon: 60px;
    --rv-hero-cgap: 80px; --rv-hero-btn: 26px; --rv-hero-btn-pad: 22px 48px;
    --rv-hdr-pill-h: 60px; --rv-hdr-pill-x: 32px; --rv-hdr-link: 14px;
    --rv-hdr-icon: 20px; --rv-hdr-gap: 26px;
    --rv-circle-op: 1;
    --c1: 200px; --c3: 250px; --c4: 100px; --c5: 180px; --c6: 320px; --c8: 115px;
  }
}

/* ---- BAND 2 · DESKTOP / LAPTOP  1024-1599px ---- */
@media (min-width: 1024px) and (max-width: 1599px) {
  :root {
    --rv-band-y: 100px;  --rv-gutter: 20px;  --rv-inner-max: 1280px;
    --rv-about-h2: 52px; --rv-about-p: 20px;
    --rv-cta-h2: 48px;   --rv-cta-p: 22px;
    --rv-faq-title: 48px; --rv-faq-sub: 24px; --rv-faq-q: 17px; --rv-faq-a: 16px;
    --rv-faq-pad: 24px 32px;
    --rv-final-h2: 48px; --rv-final-p: 18px;
    --rv-btn-pad: 18px 36px; --rv-btn-size: 18px;
    --rv-footer-link: 1rem;
    --rv-connect-h2: 48px; --rv-connect-sub: 20px; --rv-connect-gap: 60px;
    --rv-connect-cols: 1fr 1fr; --rv-map-h: 520px;
    --rv-cards-cols: 1fr 1fr; --rv-cards-gap: 56px 48px;
    --rv-card-icon: 30px; --rv-card-title: 26px; --rv-card-desc: 19px;
    --rv-card-value: 24px; --rv-social-icon: 22px;
    --rv-hdr-h: 96px; --rv-hdr-logo: 50px; --rv-hdr-brand: 18px;
    --rv-hero-h1: 130px; --rv-hero-h1-track: 0.02em; --rv-hero-lead-shift: 6.5vh; --rv-hero-lead: 31px;
    --rv-hero-ctitle: 40px; --rv-hero-cbody: 23px; --rv-hero-cicon: 54px;
    --rv-hero-cgap: 64px; --rv-hero-btn: 24px; --rv-hero-btn-pad: 20px 42px;
    --rv-hdr-pill-h: 56px; --rv-hdr-pill-x: 28px; --rv-hdr-link: 13px;
    --rv-hdr-icon: 19px; --rv-hdr-gap: 22px;
    --rv-circle-op: 1;
    --c1: 180px; --c3: 220px; --c4: 90px; --c5: 160px; --c6: 280px; --c8: 100px;
  }
}

/* ---- BAND 3 · TABLET LANDSCAPE  900-1023px ---- */
@media (min-width: 900px) and (max-width: 1023px) {
  :root {
    --rv-band-y: 84px;   --rv-gutter: 24px;  --rv-inner-max: 100%;
    --rv-about-h2: 42px; --rv-about-p: 19px;
    --rv-cta-h2: 40px;   --rv-cta-p: 20px;
    --rv-faq-title: 40px; --rv-faq-sub: 21px; --rv-faq-q: 16px; --rv-faq-a: 16px;
    --rv-faq-pad: 22px 26px;
    --rv-final-h2: 40px; --rv-final-p: 17px;
    --rv-btn-pad: 17px 34px; --rv-btn-size: 17px;
    --rv-footer-link: 0.95rem;
    --rv-connect-h2: 40px; --rv-connect-sub: 18px; --rv-connect-gap: 44px;
    --rv-connect-cols: 1fr; --rv-map-h: 420px;
    --rv-cards-cols: 1fr 1fr; --rv-cards-gap: 44px 40px;
    --rv-card-icon: 28px; --rv-card-title: 23px; --rv-card-desc: 17px;
    --rv-card-value: 22px; --rv-social-icon: 22px;
    --rv-hdr-h: 88px; --rv-hdr-logo: 47px; --rv-hdr-brand: 16px;
    --rv-hero-h1: 84px; --rv-hero-h1-track: 0.015em; --rv-hero-lead-shift: 1vh; --rv-hero-lead: 25px;
    --rv-hero-ctitle: 32px; --rv-hero-cbody: 19px; --rv-hero-cicon: 46px;
    --rv-hero-cgap: 44px; --rv-hero-btn: 21px; --rv-hero-btn-pad: 18px 38px;
    --rv-hdr-pill-h: 52px; --rv-hdr-pill-x: 18px; --rv-hdr-link: 13px;
    --rv-hdr-icon: 20px; --rv-hdr-gap: 18px;
    --rv-circle-op: 0.95;
    --c1: 160px; --c3: 200px; --c4: 80px; --c5: 140px; --c6: 250px; --c8: 95px;
  }
  .rv-nav { display: none; }
  .rv-burger {
    display: flex;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    margin-left: 0;
  }
  .rv-final { margin-top: 4.5rem; padding: 3rem var(--rv-gutter); }
  .rv-faq__header { margin-bottom: 3rem; }
}

/* ---- BAND 4 · TABLET PORTRAIT  768-899px ---- */
@media (min-width: 768px) and (max-width: 899px) {
  :root {
    --rv-band-y: 76px;   --rv-gutter: 24px;  --rv-inner-max: 100%;
    --rv-about-h2: 38px; --rv-about-p: 18px;
    --rv-cta-h2: 36px;   --rv-cta-p: 19px;
    --rv-faq-title: 36px; --rv-faq-sub: 20px; --rv-faq-q: 16px; --rv-faq-a: 15px;
    --rv-faq-pad: 20px 24px;
    --rv-final-h2: 36px; --rv-final-p: 17px;
    --rv-btn-pad: 16px 32px; --rv-btn-size: 17px;
    --rv-footer-link: 0.9rem;
    --rv-connect-h2: 36px; --rv-connect-sub: 18px; --rv-connect-gap: 40px;
    --rv-connect-cols: 1fr; --rv-map-h: 400px;
    --rv-cards-cols: 1fr 1fr; --rv-cards-gap: 40px 36px;
    --rv-card-icon: 26px; --rv-card-title: 22px; --rv-card-desc: 16px;
    --rv-card-value: 21px; --rv-social-icon: 21px;
    --rv-hdr-h: 84px; --rv-hdr-logo: 43px; --rv-hdr-brand: 15px;
    --rv-hero-h1: 70px; --rv-hero-h1-track: 0.015em; --rv-hero-lead-shift: -1.2vh; --rv-hero-lead: 23px;
    --rv-hero-ctitle: 30px; --rv-hero-cbody: 18px; --rv-hero-cicon: 44px;
    --rv-hero-cgap: 40px; --rv-hero-btn: 20px; --rv-hero-btn-pad: 17px 36px;
    --rv-hdr-pill-h: 50px; --rv-hdr-pill-x: 18px; --rv-hdr-link: 13px;
    --rv-hdr-icon: 20px; --rv-hdr-gap: 18px;
    --rv-circle-op: 0.9;
    --c1: 140px; --c3: 180px; --c4: 70px; --c5: 130px; --c6: 220px; --c8: 85px;
  }
  .rv-nav { display: none; }
  .rv-burger {
    display: flex;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    margin-left: 0;
  }
  .rv-hero__cards { grid-template-columns: repeat(3, 1fr); gap: 28px; }
  .rv-final { margin-top: 4rem; padding: 3rem var(--rv-gutter); }
  .rv-faq__header { margin-bottom: 2.5rem; }
  .rv-faq__a { padding: 0 24px 20px 24px; }
}

/* ---- BAND 5 · MOBILE LANDSCAPE  481-767px ---- */
@media (min-width: 481px) and (max-width: 767px) {
  :root {
    --rv-band-y: 64px;   --rv-gutter: 20px;  --rv-inner-max: 100%;
    --rv-about-h2: 32px; --rv-about-p: 17px;
    --rv-cta-h2: 30px;   --rv-cta-p: 18px;
    --rv-faq-title: 30px; --rv-faq-sub: 18px; --rv-faq-q: 15px; --rv-faq-a: 15px;
    --rv-faq-pad: 18px 20px;
    --rv-final-h2: 30px; --rv-final-p: 16px;
    --rv-btn-pad: 15px 30px; --rv-btn-size: 16px;
    --rv-footer-link: 0.675rem;
    --rv-connect-h2: 30px; --rv-connect-sub: 17px; --rv-connect-gap: 34px;
    --rv-connect-cols: 1fr; --rv-map-h: 340px;
    --rv-cards-cols: 1fr 1fr; --rv-cards-gap: 34px 28px;
    --rv-card-icon: 24px; --rv-card-title: 20px; --rv-card-desc: 15px;
    --rv-card-value: 19px; --rv-social-icon: 20px;
    --rv-hdr-h: 76px; --rv-hdr-logo: 50px; --rv-hdr-brand: 17px;
    --rv-hero-h1: 58px; --rv-hero-h1-track: 0.01em; --rv-hero-h1-lh: 2.1; --rv-hero-lead-shift: -8.8vh; --rv-hero-lead: 20px;
    --rv-hero-ctitle: 26px; --rv-hero-cbody: 17px; --rv-hero-cicon: 40px;
    --rv-hero-cgap: 34px; --rv-hero-btn: 18px; --rv-hero-btn-pad: 16px 32px;
    --rv-hdr-pill-h: 46px; --rv-hdr-pill-x: 14px; --rv-hdr-link: 12px;
    --rv-hdr-icon: 19px; --rv-hdr-gap: 14px;
    --rv-circle-op: 0.8;
    --c1: 120px; --c3: 140px; --c4: 60px; --c5: 100px; --c6: 180px; --c8: 70px;
  }
  .rv-nav { display: none; }
  .rv-burger {
    display: flex;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    margin-left: 0;
  }
  .rv-hero__cards { grid-template-columns: 1fr; gap: 40px; max-width: 520px; }
  .rv-hero__panel { padding: 80px var(--rv-gutter); }
  .rv-final { margin-top: 3.5rem; padding: 2.5rem var(--rv-gutter); }
  .rv-faq__header { margin-bottom: 2rem; }
  .rv-faq__a { padding: 0 20px 18px 20px; }
  .rv-footer nav {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    max-width: 100%;
  }
  .rv-footer nav a { text-align: center; }
}

/* ---- BAND 6 · MOBILE PORTRAIT  <= 480px ---- */
@media (max-width: 480px) {
  :root {
    --rv-band-y: 52px;   --rv-gutter: 18px;  --rv-inner-max: 100%;
    --rv-about-h2: 28px; --rv-about-p: 16px;
    --rv-cta-h2: 26px;   --rv-cta-p: 17px;
    --rv-faq-title: 26px; --rv-faq-sub: 16px; --rv-faq-q: 15px; --rv-faq-a: 14px;
    --rv-faq-pad: 16px 18px;
    --rv-final-h2: 26px; --rv-final-p: 15px;
    --rv-btn-pad: 14px 28px; --rv-btn-size: 16px;
    --rv-footer-link: 0.675rem;
    --rv-connect-h2: 26px; --rv-connect-sub: 16px; --rv-connect-gap: 30px;
    --rv-connect-cols: 1fr; --rv-map-h: 300px;
    --rv-cards-cols: 1fr; --rv-cards-gap: 34px;
    --rv-card-icon: 24px; --rv-card-title: 20px; --rv-card-desc: 15px;
    --rv-card-value: 19px; --rv-social-icon: 20px;
    --rv-hdr-h: 68px; --rv-hdr-logo: 42px; --rv-hdr-brand: 14px;
    --rv-hero-h1: 44px; --rv-hero-h1-track: 0.01em; --rv-hero-h1-lh: 2.2; --rv-hero-lead-shift: -12vh; --rv-hero-lead: 18px;
    --rv-hero-ctitle: 24px; --rv-hero-cbody: 16px; --rv-hero-cicon: 36px;
    --rv-hero-cgap: 30px; --rv-hero-btn: 17px; --rv-hero-btn-pad: 15px 30px;
    --rv-hdr-pill-h: 42px; --rv-hdr-pill-x: 8px; --rv-hdr-link: 12px;
    --rv-hdr-icon: 17px; --rv-hdr-gap: 8px;
    --rv-circle-op: 0.7;
    --c1: 100px; --c3: 120px; --c4: 50px; --c5: 80px; --c6: 150px; --c8: 60px;
  }
  .rv-nav { display: none; }
  .rv-burger {
    display: flex;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    margin-left: 0;
  }
  .rv-header__bar { padding: 0 14px; }
  .rv-hero__cards { grid-template-columns: 1fr; gap: 36px; max-width: 460px; }
  .rv-hero__panel { padding: 70px var(--rv-gutter); }
  .rv-final { margin-top: 3rem; padding: 2rem var(--rv-gutter); border-radius: 1.25rem; }
  .rv-faq__header { margin-bottom: 2rem; }
  .rv-faq__a { padding: 0 18px 16px 18px; }
  .rv-btn { width: 100%; box-sizing: border-box; }
  .rv-footer nav {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    max-width: 100%;
  }
  .rv-footer nav a { text-align: center; }
}

/* ACCESSIBILITY */
@media (prefers-reduced-motion: reduce) {
  .rv-circle { animation: none; }
  .rv-btn, .rv-faq__item, .rv-faq__chevron { transition: none; }
}

@media (min-width: 900px) and (max-width: 1023px) {
  :root {
    --rv-band-y: 84px;   --rv-gutter: 24px;  --rv-inner-max: 100%;
    --rv-about-h2: 42px; --rv-about-p: 19px;
    --rv-cta-h2: 40px;   --rv-cta-p: 20px;
    --rv-faq-title: 40px; --rv-faq-sub: 21px; --rv-faq-q: 16px; --rv-faq-a: 16px;
    --rv-faq-pad: 22px 26px;
    --rv-final-h2: 40px; --rv-final-p: 17px;
    --rv-btn-pad: 17px 34px; --rv-btn-size: 17px;
    --rv-footer-link: 0.95rem;
    --rv-connect-h2: 40px; --rv-connect-sub: 18px; --rv-connect-gap: 44px;
    --rv-connect-cols: 1fr; --rv-map-h: 420px;
    --rv-cards-cols: 1fr 1fr; --rv-cards-gap: 44px 40px;
    --rv-card-icon: 28px; --rv-card-title: 23px; --rv-card-desc: 17px;
    --rv-card-value: 22px; --rv-social-icon: 22px;
    --rv-hdr-h: 88px; --rv-hdr-logo: 47px; --rv-hdr-brand: 16px;
    --rv-hero-h1: 84px; --rv-hero-h1-track: 0.015em; --rv-hero-lead-shift: 1vh; --rv-hero-lead: 25px;
    --rv-hero-ctitle: 32px; --rv-hero-cbody: 19px; --rv-hero-cicon: 46px;
    --rv-hero-cgap: 44px; --rv-hero-btn: 21px; --rv-hero-btn-pad: 18px 38px;
    --rv-hdr-pill-h: 52px; --rv-hdr-pill-x: 18px; --rv-hdr-link: 13px;
    --rv-hdr-icon: 20px; --rv-hdr-gap: 18px;
    --rv-circle-op: 0.95;
    --c1: 160px; --c3: 200px; --c4: 80px; --c5: 140px; --c6: 250px; --c8: 95px;
  }
  .rv-nav { display: none; }
  .rv-burger {
    display: flex;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    margin-left: 0;
  }
  .rv-final { margin-top: 4.5rem; padding: 3rem var(--rv-gutter); }
  .rv-faq__header { margin-bottom: 3rem; }
}

@media (min-width: 768px) and (max-width: 899px) {
  :root {
    --rv-band-y: 76px;   --rv-gutter: 24px;  --rv-inner-max: 100%;
    --rv-about-h2: 38px; --rv-about-p: 18px;
    --rv-cta-h2: 36px;   --rv-cta-p: 19px;
    --rv-faq-title: 36px; --rv-faq-sub: 20px; --rv-faq-q: 16px; --rv-faq-a: 15px;
    --rv-faq-pad: 20px 24px;
    --rv-final-h2: 36px; --rv-final-p: 17px;
    --rv-btn-pad: 16px 32px; --rv-btn-size: 17px;
    --rv-footer-link: 0.9rem;
    --rv-connect-h2: 36px; --rv-connect-sub: 18px; --rv-connect-gap: 40px;
    --rv-connect-cols: 1fr; --rv-map-h: 400px;
    --rv-cards-cols: 1fr 1fr; --rv-cards-gap: 40px 36px;
    --rv-card-icon: 26px; --rv-card-title: 22px; --rv-card-desc: 16px;
    --rv-card-value: 21px; --rv-social-icon: 21px;
    --rv-hdr-h: 84px; --rv-hdr-logo: 43px; --rv-hdr-brand: 15px;
    --rv-hero-h1: 70px; --rv-hero-h1-track: 0.015em; --rv-hero-lead-shift: -1.2vh; --rv-hero-lead: 23px;
    --rv-hero-ctitle: 30px; --rv-hero-cbody: 18px; --rv-hero-cicon: 44px;
    --rv-hero-cgap: 40px; --rv-hero-btn: 20px; --rv-hero-btn-pad: 17px 36px;
    --rv-hdr-pill-h: 50px; --rv-hdr-pill-x: 18px; --rv-hdr-link: 13px;
    --rv-hdr-icon: 20px; --rv-hdr-gap: 18px;
    --rv-circle-op: 0.9;
    --c1: 140px; --c3: 180px; --c4: 70px; --c5: 130px; --c6: 220px; --c8: 85px;
  }
  .rv-nav { display: none; }
  .rv-burger {
    display: flex;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    margin-left: 0;
  }
  .rv-hero__cards { grid-template-columns: repeat(3, 1fr); gap: 28px; }
  .rv-final { margin-top: 4rem; padding: 3rem var(--rv-gutter); }
  .rv-faq__header { margin-bottom: 2.5rem; }
  .rv-faq__a { padding: 0 24px 20px 24px; }
}

@media (min-width: 481px) and (max-width: 767px) {
  :root {
    --rv-band-y: 64px;   --rv-gutter: 20px;  --rv-inner-max: 100%;
    --rv-about-h2: 32px; --rv-about-p: 17px;
    --rv-cta-h2: 30px;   --rv-cta-p: 18px;
    --rv-faq-title: 30px; --rv-faq-sub: 18px; --rv-faq-q: 15px; --rv-faq-a: 15px;
    --rv-faq-pad: 18px 20px;
    --rv-final-h2: 30px; --rv-final-p: 16px;
    --rv-btn-pad: 15px 30px; --rv-btn-size: 16px;
    --rv-footer-link: 0.675rem;
    --rv-connect-h2: 30px; --rv-connect-sub: 17px; --rv-connect-gap: 34px;
    --rv-connect-cols: 1fr; --rv-map-h: 340px;
    --rv-cards-cols: 1fr 1fr; --rv-cards-gap: 34px 28px;
    --rv-card-icon: 24px; --rv-card-title: 20px; --rv-card-desc: 15px;
    --rv-card-value: 19px; --rv-social-icon: 20px;
    --rv-hdr-h: 76px; --rv-hdr-logo: 50px; --rv-hdr-brand: 17px;
    --rv-hero-h1: 58px; --rv-hero-h1-track: 0.01em; --rv-hero-h1-lh: 2.1; --rv-hero-lead-shift: -8.8vh; --rv-hero-lead: 20px;
    --rv-hero-ctitle: 26px; --rv-hero-cbody: 17px; --rv-hero-cicon: 40px;
    --rv-hero-cgap: 34px; --rv-hero-btn: 18px; --rv-hero-btn-pad: 16px 32px;
    --rv-hdr-pill-h: 46px; --rv-hdr-pill-x: 14px; --rv-hdr-link: 12px;
    --rv-hdr-icon: 19px; --rv-hdr-gap: 14px;
    --rv-circle-op: 0.8;
    --c1: 120px; --c3: 140px; --c4: 60px; --c5: 100px; --c6: 180px; --c8: 70px;
  }
  .rv-nav { display: none; }
  .rv-burger {
    display: flex;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    margin-left: 0;
  }
  .rv-hero__cards { grid-template-columns: 1fr; gap: 40px; max-width: 520px; }
  .rv-hero__panel { padding: 80px var(--rv-gutter); }
  .rv-final { margin-top: 3.5rem; padding: 2.5rem var(--rv-gutter); }
  .rv-faq__header { margin-bottom: 2rem; }
  .rv-faq__a { padding: 0 20px 18px 20px; }
  .rv-footer nav {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    max-width: 100%;
  }
  .rv-footer nav a { text-align: center; }
}

@media (max-width: 480px) {
  :root {
    --rv-band-y: 52px;   --rv-gutter: 18px;  --rv-inner-max: 100%;
    --rv-about-h2: 28px; --rv-about-p: 16px;
    --rv-cta-h2: 26px;   --rv-cta-p: 17px;
    --rv-faq-title: 26px; --rv-faq-sub: 16px; --rv-faq-q: 15px; --rv-faq-a: 14px;
    --rv-faq-pad: 16px 18px;
    --rv-final-h2: 26px; --rv-final-p: 15px;
    --rv-btn-pad: 14px 28px; --rv-btn-size: 16px;
    --rv-footer-link: 0.675rem;
    --rv-connect-h2: 26px; --rv-connect-sub: 16px; --rv-connect-gap: 30px;
    --rv-connect-cols: 1fr; --rv-map-h: 300px;
    --rv-cards-cols: 1fr; --rv-cards-gap: 34px;
    --rv-card-icon: 24px; --rv-card-title: 20px; --rv-card-desc: 15px;
    --rv-card-value: 19px; --rv-social-icon: 20px;
    --rv-hdr-h: 68px; --rv-hdr-logo: 42px; --rv-hdr-brand: 14px;
    --rv-hero-h1: 44px; --rv-hero-h1-track: 0.01em; --rv-hero-h1-lh: 2.2; --rv-hero-lead-shift: -12vh; --rv-hero-lead: 18px;
    --rv-hero-ctitle: 24px; --rv-hero-cbody: 16px; --rv-hero-cicon: 36px;
    --rv-hero-cgap: 30px; --rv-hero-btn: 17px; --rv-hero-btn-pad: 15px 30px;
    --rv-hdr-pill-h: 42px; --rv-hdr-pill-x: 8px; --rv-hdr-link: 12px;
    --rv-hdr-icon: 17px; --rv-hdr-gap: 8px;
    --rv-circle-op: 0.7;
    --c1: 100px; --c3: 120px; --c4: 50px; --c5: 80px; --c6: 150px; --c8: 60px;
  }
  .rv-nav { display: none; }
  .rv-burger {
    display: flex;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    margin-left: 0;
  }
  .rv-header__bar { padding: 0 14px; }
  .rv-hero__cards { grid-template-columns: 1fr; gap: 36px; max-width: 460px; }
  .rv-hero__panel { padding: 70px var(--rv-gutter); }
  .rv-final { margin-top: 3rem; padding: 2rem var(--rv-gutter); border-radius: 1.25rem; }
  .rv-faq__header { margin-bottom: 2rem; }
  .rv-faq__a { padding: 0 18px 16px 18px; }
  .rv-btn { width: 100%; box-sizing: border-box; }
  .rv-footer nav {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    max-width: 100%;
  }
  .rv-footer nav a { text-align: center; }
}
