  /* ── LOADER-MODE page takeover — active ONLY when fold.js self-mounts (it adds
     .rhd-ldr to <html>). In the native Webflow build these rules never apply, so
     Designer styles are never overridden. ── */
  html.rhd-ldr .uui-section_heroheader01,
  html.rhd-ldr section:has(.uui-heroheader01_component) {
    background: linear-gradient(180deg, #FFFFFF 0%, rgba(244,240,233,0.55) 32%, rgba(244,240,233,0.42) 62%, #FFFFFF 88%);
  }
  html.rhd-ldr .uui-section_heroheader01 .uui-padding-vertical-xhuge-38 { padding-bottom: 56px !important; }
  html.rhd-ldr .uui-heroheader01_component {
    display: flex !important; flex-direction: column; align-items: center;
    text-align: center; gap: 0 !important;
  }
  html.rhd-ldr .uui-heroheader01_content {
    max-width: 100% !important; width: 100%;
    display: flex; flex-direction: column; align-items: center;
  }
  html.rhd-ldr .uui-heroheader01_content h1 {
    font-size: clamp(42px, 4.9vw, 68px) !important;
    line-height: 1.06 !important; letter-spacing: -0.03em !important;
    margin: 0 !important; text-align: center !important;
  }
  html.rhd-ldr .uui-heroheader01_content img[alt*="Shopify"] { height: clamp(34px, 3.9vw, 54px) !important; width: auto !important; margin: 0 !important; }
  html.rhd-ldr .uui-heroheader01_content .div-block-43 {
    display: flex !important; align-items: center !important; justify-content: center !important;
    gap: 12px; float: none !important;
  }
  html.rhd-ldr .uui-heroheader01_content .div-block-43 img { transform: translateY(clamp(5px, 0.625vw, 9px)); }
  html.rhd-ldr .uui-heroheader01_content .uui-max-width-medium,
  html.rhd-ldr .uui-heroheader01_content .w-embed:has(.rhd--steps),
  html.rhd-ldr .uui-heroheader01_image-wrapper,
  html.rhd-ldr .uui-heroheader01_fileupload-image-wrapper,
  html.rhd-ldr .uui-section_logos04 { display: none !important; }

  /* loader mode only: the CTA row still sits in the published DOM there. In the native
     build the row lives in the hidden hero2-vault div instead (tracking preserved). */
  html.rhd-ldr .uui-heroheader01_content .button-row-center { display: none !important; }

  /* ── Entrance animations — same values as the round-25 mock (rise + riseBig,
     staggered, load-triggered never scroll-gated). ── */
  @keyframes rhdRise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
  @keyframes rhdRiseBig { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: translateY(0); } }
  .uui-heroheader01_content > h1.hero2-h1 { animation: rhdRise .55s cubic-bezier(.2,.6,.2,1) both; }
  .uui-heroheader01_content .div-block-43 { animation: rhdRise .55s cubic-bezier(.2,.6,.2,1) .05s both; }
  .hero2-sub { animation: rhdRise .55s cubic-bezier(.2,.6,.2,1) .13s both; }
  .rhd--mod, .rhd--fold { animation: rhdRise .55s cubic-bezier(.2,.6,.2,1) .21s both; }
  .uui-heroheader01_content .w-embed:has(.ringly-logo-marquee) { animation: rhdRise .55s cubic-bezier(.2,.6,.2,1) .29s both; }
  .hero2-window { animation: rhdRiseBig .7s cubic-bezier(.2,.6,.2,1) .35s both; }

  /* ── Logo marquee: full-bleed, no fade (Ruben, round 30: logos run to the screen
     edges and just clip there). The width clamp still matters: unclamped it was
     max-content (the whole 7,800px track), so the -50% loop ran out of content in view.
     100vw stays far under half the track, so the loop is always seamless. ── */
  .uui-heroheader01_content .w-embed:has(.ringly-logo-marquee) { width: 100%; }
  .uui-heroheader01_content .ringly-logo-marquee {
    width: 100vw !important; max-width: none !important;
    margin: 32px calc(50% - 50vw) 0 !important;
    overflow: hidden;
    -webkit-mask-image: none !important; mask-image: none !important;
  }
  /* tighter handoff to the next section: more dashboard above the fold */
  .hero2-window { margin-top: 28px !important; }

  /* ── Soft handoff: the badges section fades in over the dashboard instead of a
     hard edge (section bg is #FAFAF9). ── */
  .hero2-overlapper { position: relative; }
  .hero2-overlapper::before {
    content: ""; position: absolute; top: -44px; left: 0; right: 0; height: 44px;
    background: linear-gradient(180deg, rgba(250,250,249,0) 0%, #FAFAF9 100%);
    pointer-events: none;
  }

  /* ── Fold layout (loader mode) + module root (both modes) ── */
  .rhd--fold, .rhd--mod { font-family: "Inter", ui-sans-serif, system-ui, sans-serif; }
  .rhd--fold, .rhd--fold *, .rhd--fold *::before, .rhd--fold *::after,
  .rhd--mod, .rhd--mod *, .rhd--mod *::before, .rhd--mod *::after { box-sizing: border-box; }
  /* [hidden] must beat the component display rules below (.rhd-call is display:flex, which
     otherwise wins over the UA's [hidden]{display:none}). EVERY mount mode needs to be in
     this list — .rhd--demo was missing on 2026-07-22 and the whole live-call panel rendered
     at rest on /demo, on top of the footer. */
  .rhd--fold [hidden], .rhd--mod [hidden], .rhd--demo [hidden] { display: none !important; }
  .rhd--fold { width: 100%; max-width: 100%; display: flex; flex-direction: column; align-items: center; text-align: center; }
  .rhd--mod { width: 100%; max-width: 100%; display: flex; flex-direction: column; align-items: center; text-align: center; }

  .rhd-sub {
    margin: 4px 0 0; font: 400 20px/1.5 "Inter", sans-serif; color: #57534E; max-width: 60ch;
  }
  .rhd-sub strong { color: #1C1917; font-weight: 500; }

  .rhd-modzone { position: relative; margin-top: 34px; width: min(620px, 100%); }
  .rhd-bar { display: flex; gap: 12px; margin: 0; }
  .rhd-field { position: relative; flex: 1 1 auto; min-width: 0; }
  .rhd-glyph {
    position: absolute; left: 18px; top: 50%; width: 17px; height: 17px;
    transform: translateY(-50%); color: #A8A29E; pointer-events: none;
  }
  .rhd-input {
    width: 100%; height: 58px; padding: 0 56px 0 48px; margin: 0;
    font: 500 16.5px/1 "Inter", sans-serif; color: #1C1917; text-align: left;
    background: #fff; border: 1px solid rgba(28,25,23,0.14); border-radius: 12px;
    box-shadow: 0 1px 2px rgba(28,25,23,0.04), 0 8px 24px -8px rgba(28,25,23,0.08);
    transition: border-color 140ms ease, box-shadow 140ms ease;
    -webkit-appearance: none; appearance: none;
  }
  .rhd-input::placeholder { color: #A8A29E; }
  .rhd-input:focus { outline: none; border-color: #78716C; box-shadow: 0 0 0 3px rgba(120,113,108,0.14), 0 8px 24px -8px rgba(28,25,23,0.08); }
  .rhd-input[aria-invalid="true"] { border-color: #DC2626; }

  /* quiet "?" — hover/click reveals the how-it-works popover; the expectation line
     under the bar does the explaining now, so this stays visually small */
  .rhd-how {
    position: absolute; right: 11px; top: 50%; transform: translateY(-50%);
    width: 34px; height: 34px; border-radius: 999px; border: 0; cursor: help;
    display: flex; align-items: center; justify-content: center; padding: 0;
    background: transparent; color: #A8A29E;
    transition: background 140ms ease, color 140ms ease;
  }
  .rhd-how:hover { background: rgba(28,25,23,0.06); color: #57534E; }
  .rhd-how:focus-visible { outline: 2px solid #78716C; outline-offset: 2px; }
  .rhd-how svg { width: 18px; height: 18px; flex: 0 0 auto; }

  .rhd-howpop {
    position: absolute; bottom: calc(100% + 12px); left: 50%;
    transform: translateX(-50%) translateY(4px);
    width: min(430px, 92vw);
    background: #fff; border: 1px solid rgba(28,25,23,0.14); border-radius: 14px;
    box-shadow: 0 2px 6px rgba(28,25,23,0.06), 0 20px 48px -12px rgba(28,25,23,0.22);
    padding: 16px 18px; text-align: left;
    opacity: 0; visibility: hidden; pointer-events: none;
    transition: opacity 160ms ease, transform 160ms ease, visibility 160ms;
    z-index: 30;
  }
  .rhd-howpop::after {
    content: ""; position: absolute; top: 100%; left: 50%; transform: translateX(-50%);
    border: 8px solid transparent; border-top-color: #fff;
  }
  .rhd-modzone.rhd-show-how .rhd-howpop { opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(-50%) translateY(0); }
  .rhd-hstep { display: flex; align-items: flex-start; gap: 12px; padding: 8px 0; }
  .rhd-hstep + .rhd-hstep { border-top: 1px solid rgba(28,25,23,0.08); }
  .rhd-hn {
    width: 26px; height: 26px; border-radius: 999px; flex: 0 0 auto;
    display: flex; align-items: center; justify-content: center;
    background: rgba(22,163,74,0.1); color: #16A34A;
    font: 600 13px/1 "Inter", sans-serif;
  }
  .rhd-ht { font: 400 14.5px/1.45 "Inter", sans-serif; color: #1C1917; padding-top: 3px; }
  .rhd-ht span { color: #78716C; }

  .rhd-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px; flex: 0 0 auto;
    height: 58px; padding: 0 26px; border: 1px solid #15803D; border-radius: 12px; cursor: pointer;
    font: 600 16.5px/1 "Inter", sans-serif; color: #fff; background: #16A34A;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.18), 0 1px 2px rgba(21,128,61,0.3), 0 8px 24px -8px rgba(22,163,74,0.35);
    transition: transform 140ms cubic-bezier(.16,1,.3,1), background 140ms ease;
    white-space: nowrap;
  }
  .rhd-btn:not([disabled]) { animation: rhdRing 2.8s ease-out 1.2s infinite; }
  @keyframes rhdRing {
    0% { box-shadow: inset 0 1px 0 rgba(255,255,255,0.18), 0 1px 2px rgba(21,128,61,0.3), 0 0 0 0 rgba(22,163,74,0.35); }
    70% { box-shadow: inset 0 1px 0 rgba(255,255,255,0.18), 0 1px 2px rgba(21,128,61,0.3), 0 0 0 14px rgba(22,163,74,0); }
    100% { box-shadow: inset 0 1px 0 rgba(255,255,255,0.18), 0 1px 2px rgba(21,128,61,0.3), 0 0 0 0 rgba(22,163,74,0); }
  }
  .rhd-btn:hover { transform: translateY(-1px); background: #15913F; animation-play-state: paused; }
  .rhd-btn:active { transform: translateY(0) scale(.98); background: #128038; }
  .rhd-btn:focus-visible { outline: 2px solid #16A34A; outline-offset: 3px; }
  .rhd-btn[disabled] { cursor: default; opacity: .55; transform: none; animation: none; }
  .rhd-btn-phone { width: 17px; height: 17px; }

  /* under the bar: sets the "you'll talk to it live, instantly" expectation and offers
     the no-mic path. Both stay one quiet line so the green button keeps the attention. */
  .rhd-under {
    margin-top: 13px; text-align: center;
    font: 400 13.5px/1.45 "Inter", sans-serif; color: #78716C;
  }


  /* ── The call stage: a phone call, not a form row. Centered identity (orb → store →
     state), captions as subtitles, starters, then the two exits. ── */
  .rhd-call {
    display: flex; flex-direction: column; align-items: center; gap: 4px;
    margin-top: 14px; padding: 28px 26px 24px; width: min(620px, 100%);
    background: #fff; border: 1px solid rgba(28,25,23,0.1); border-radius: 20px;
    box-shadow: 0 1px 3px 0 rgba(16,24,40,0.06), 0 24px 56px -16px rgba(28,25,23,0.18);
  }
  .rhd-orb {
    width: 62px; height: 62px; border-radius: 999px; margin-bottom: 12px;
    display: flex; align-items: center; justify-content: center; color: #fff;
    background: radial-gradient(circle at 32% 28%, #22B85A 0%, #16A34A 52%, #12833C 100%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.25), 0 0 0 0 rgba(22,163,74,0.35);
    animation: rhdOrb 2.2s ease-out infinite;
  }
  .rhd-orb svg { width: 24px; height: 24px; }
  @keyframes rhdOrb {
    0% { box-shadow: inset 0 1px 0 rgba(255,255,255,0.25), 0 0 0 0 rgba(22,163,74,0.30); }
    70% { box-shadow: inset 0 1px 0 rgba(255,255,255,0.25), 0 0 0 18px rgba(22,163,74,0); }
    100% { box-shadow: inset 0 1px 0 rgba(255,255,255,0.25), 0 0 0 0 rgba(22,163,74,0); }
  }
  .rhd-orb.rhd-speaking { animation: rhdOrb 1s ease-out infinite, rhdOrbTalk 1s ease-in-out infinite; }
  @keyframes rhdOrbTalk {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.07); }
  }
  /* prep phase: same card, quiet stone orb, no actions yet — it turns green when it rings */
  .rhd-prep .rhd-orb {
    background: radial-gradient(circle at 32% 28%, #BDB7B1 0%, #918B85 55%, #736D67 100%);
    animation: rhdOrbPrep 2.4s ease-out infinite;
  }
  @keyframes rhdOrbPrep {
    0% { box-shadow: inset 0 1px 0 rgba(255,255,255,0.25), 0 0 0 0 rgba(120,113,108,0.22); }
    70% { box-shadow: inset 0 1px 0 rgba(255,255,255,0.25), 0 0 0 14px rgba(120,113,108,0); }
    100% { box-shadow: inset 0 1px 0 rgba(255,255,255,0.25), 0 0 0 0 rgba(120,113,108,0); }
  }
  .rhd-prep .rhd-call-actions { display: none; }
  .rhd-call-brand { font: 600 17px/22px "Inter", sans-serif; color: #1C1917; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .rhd-call-state { font: 500 13px/18px "Inter", sans-serif; color: #78716C; }
  .rhd-spoke .rhd-call-state { color: #16A34A; }

  /* the transcript, in its own quiet box (Ruben: keep it visually separate) */
  .rhd-cap {
    margin: 12px 0 0; width: min(480px, 100%); min-height: 66px;
    background: #FAFAF9; border: 1px solid rgba(28,25,23,0.08); border-radius: 12px;
    padding: 11px 16px; display: flex; align-items: center; justify-content: center;
  }
  .rhd-cap-txt {
    font: 400 14.5px/1.5 "Inter", sans-serif; color: #44403C; text-align: center;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  }

  /* conversation starters — people freeze on a live AI call without a script */
  .rhd-try { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
  .rhd-try-label { font: 500 12px/1 "Inter", sans-serif; color: #A8A29E; margin-right: 2px; }
  .rhd-chip {
    padding: 5px 10px; border: 1px solid rgba(28,25,23,0.11); border-radius: 999px;
    background: #FAFAF9; font: 450 12.5px/1 "Inter", sans-serif; color: #57534E; white-space: nowrap;
  }

  .rhd-call-actions { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
  .rhd-listen2 {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    height: 42px; padding: 0 18px; cursor: pointer;
    border: 1px solid rgba(28,25,23,0.16); border-radius: 999px;
    background: #fff; color: #44403C; font: 600 13.5px/1 "Inter", sans-serif;
    box-shadow: 0 1px 2px rgba(28,25,23,0.05);
    transition: transform 140ms cubic-bezier(.16,1,.3,1), background 140ms ease;
  }
  .rhd-listen2:hover { background: #FAFAF9; transform: translateY(-1px); }
  .rhd-listen2:active { transform: translateY(0) scale(.98); }
  .rhd-listen2:focus-visible { outline: 2px solid #78716C; outline-offset: 2px; }
  .rhd-listen2 svg { width: 15px; height: 15px; color: #78716C; }

  /* exit beat: once the call is over and we're heading to onboarding, only the
     status line matters — the actions disappear */
  .rhd-bye .rhd-try, .rhd-bye .rhd-call-actions { display: none !important; }

  /* white fade into the onboarding page — the handoff reads as one motion */
  .rhd-fade {
    position: fixed; inset: 0; z-index: 9999; pointer-events: none;
    background: #fff; opacity: 0; transition: opacity .55s ease;
  }
  .rhd-fade.rhd-fade-in { opacity: 1; }

  /* focus mode while on the call: the rest of the fold steps back, marquee pauses */
  .uui-heroheader01_content .ringly-logo-marquee, .hero2-window, .hero2-sub { transition: opacity .45s ease; }
  html.rhd-oncall .uui-heroheader01_content .ringly-logo-marquee,
  html.rhd-oncall .hero2-window,
  html.rhd-oncall .hero2-sub { opacity: .3; }
  html.rhd-oncall .rlm-track { animation-play-state: paused !important; }
  .rhd-end {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px; flex: 0 0 auto;
    height: 42px; padding: 0 20px; border: 0; border-radius: 999px; cursor: pointer;
    font: 600 13.5px/1 "Inter", sans-serif; color: #fff; background: #DC2626;
    box-shadow: 0 1px 2px 0 rgba(0,0,0,0.08), inset 0 0 0 1px rgba(0,0,0,0.14), inset 0 1px 0 0 rgba(255,255,255,0.16);
    transition: transform 140ms cubic-bezier(.16,1,.3,1), background 140ms ease;
  }
  .rhd-end:hover { transform: translateY(-1px); background: #B91C1C; }
  .rhd-end:active { transform: translateY(0) scale(.98); }
  .rhd-end:focus-visible { outline: 2px solid #DC2626; outline-offset: 3px; }
  .rhd-end svg { width: 15px; height: 15px; }

  .rhd-error { margin: 12px 0 0; font: 500 14px/21px "Inter", sans-serif; color: #1C1917; max-width: 620px; }
  .rhd-error a { color: #1C1917; text-decoration: underline; text-underline-offset: 2px; }

  .rhd-logos {
    margin-top: 44px; width: min(880px, 100%); 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%);
  }
  .rhd-logos-track {
    display: flex; align-items: center; gap: 56px; width: max-content;
    animation: rhdMarquee 34s linear infinite;
  }
  .rhd-logos:hover .rhd-logos-track { animation-play-state: paused; }
  @keyframes rhdMarquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
  .rhd-logos-track img {
    height: 30px; width: auto; flex: 0 0 auto;
    filter: grayscale(1) invert(1) opacity(0.6);
  }

  .rhd-window {
    margin-top: 44px; width: min(1060px, 100%);
    background: #fff; border-radius: 16px; overflow: hidden;
    box-shadow:
      0 0 0 1px rgba(28,25,23,0.06),
      0 4px 8px rgba(28,25,23,0.06),
      0 24px 48px -8px rgba(28,25,23,0.14),
      0 72px 140px -24px rgba(28,25,23,0.30);
  }
  .rhd-dash { display: block; width: 100%; height: auto; }

  @media (max-width: 620px) {
    .rhd-sub { font-size: 17px; }
    .rhd-sub br { display: none; }
    .rhd-modzone { margin-top: 26px; }
    .rhd-bar { flex-direction: column; }
    .rhd-btn { justify-content: center; }
    .rhd-under { font-size: 13px; }
    .uui-heroheader01_content .ringly-logo-marquee { margin-top: 24px !important; }
    .hero2-window { margin-top: 22px !important; }
    .rhd-logos { margin-top: 32px; }
    .rhd-logos-track img { height: 24px; }
    .rhd-window { margin-top: 32px; }
  }
  /* ── Second call section (above pricing): a contained warm card, not a floating
     headline — same wash family as the hero so the two call surfaces rhyme. ── */
  .hero2-cta2 {
    max-width: 1100px; margin: 16px auto 48px;
    padding: 64px 32px 72px;
    background: linear-gradient(180deg, #FBF9F6 0%, #F4F0E9 100%);
    border: 1px solid rgba(28,25,23,0.08); border-radius: 24px;
  }
  .rhd-cta2-sub {
    font: 400 18px/1.55 "Inter", sans-serif; color: #57534E;
    max-width: 52ch; margin: 12px auto 0; text-align: center;
  }
  @media (max-width: 767px) {
    .hero2-cta2 { margin-left: 16px; margin-right: 16px; padding: 48px 20px 56px; }
    .rhd-cta2-sub { font-size: 16px; }
  }

  /* ── Mobile polish (Ruben's PDF, 2026-07-23): the tiny breakpoint inherited desktop
     proportions — headline wrapped "for" onto its own line, the bag drifted left, the
     sub ran 4 long lines, and the dashboard was a shrunken desktop screenshot. ── */
  @media (max-width: 479px) {
    .uui-heroheader01_content h1.hero2-h1 {
      font-size: 29px !important; line-height: 1.18 !important; letter-spacing: -0.02em !important;
    }
    .uui-heroheader01_content .div-block-43 {
      display: flex !important; justify-content: center !important; align-items: center !important;
      gap: 8px !important; float: none !important;
    }
    .uui-heroheader01_content .div-block-43 img {
      height: 30px !important; width: auto !important; margin: 0 !important;
      transform: translateY(3px) !important;
    }
    .hero2-sub {
      font-size: 16px !important; line-height: 1.55 !important;
      max-width: 36ch; margin-left: auto !important; margin-right: auto !important;
    }
    /* dashboard: full-bleed and zoomed into the KPI area so the numbers are readable,
       instead of the whole desktop app at postage-stamp size */
    .hero2-window {
      width: 100vw !important; max-width: none !important;
      margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important;
      border-radius: 0 !important; aspect-ratio: auto !important;
      overflow: hidden !important;
    }
    .hero2-window img.hero2-dash, .hero2-window img {
      width: 132% !important; max-width: none !important; margin-left: -31.5% !important;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .rhd-btn, .rhd-end, .rhd-input, .rhd-howpop, .rhd-fade { transition: none; }
    .rhd-orb, .rhd-btn:not([disabled]), .rhd-logos-track,
    .uui-heroheader01_content > h1.hero2-h1, .uui-heroheader01_content .div-block-43,
    .hero2-sub, .rhd--mod, .rhd--fold,
    .uui-heroheader01_content .w-embed:has(.ringly-logo-marquee), .hero2-window { animation: none; }
  }