/* RxHealing values wheel: sits to the right of the hero text on the home page.
   Uses the site's theme tokens (--glass, --cyan, --heading...), so it follows light/dark. */
  .hero.hero--split{
    max-width:1360px;
    margin:0 auto;
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
    gap:clamp(32px, 4vw, 72px);
    align-items:center;
  }
  @media (max-width:980px){
    .hero.hero--split{ grid-template-columns:minmax(0,1fr); }
    .rxv-card{ justify-self:center; }
  }

  .rxv-card{
    position:relative;
    width:100%;
    max-width:540px;
    justify-self:end;
    background:
      radial-gradient(60% 55% at 50% 50%, rgba(var(--cyan-rgb),0.10), transparent 70%),
      var(--glass);
    border:1px solid var(--glass-border);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    border-radius:20px;
    padding:clamp(18px, 3vw, 30px);
  }
  .rxv-head{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    gap:12px;
  }
  .rxv-eyebrow{
    font-family:'Poppins',sans-serif;
    font-weight:700;
    font-size:0.78rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--cyan-bright);
  }
  .rxv-readings{ font-size:0.8rem; color:var(--text-dim); white-space:nowrap; }
  .rxv-readings b{ color:var(--text); font-weight:600; }

  .rxv-wheel{ position:relative; width:100%; aspect-ratio:1; max-width:100%; }
  .rxv-ring{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
  .rxv-track{ fill:none; stroke:var(--glass-border); stroke-width:1.2; }
  .rxv-dash{ fill:none; stroke:var(--line); stroke-width:1; stroke-dasharray:2 6; }
  .rxv-progress{
    fill:none;
    stroke:var(--cyan);
    stroke-width:2.4;
    stroke-linecap:round;
    transition:stroke-dashoffset 0.9s cubic-bezier(.6,.05,.2,1);
  }
  .rxv-orb{ fill:var(--cyan-bright); filter:drop-shadow(0 0 6px rgba(var(--cyan-rgb),.9)); transition:cx .9s cubic-bezier(.6,.05,.2,1), cy .9s cubic-bezier(.6,.05,.2,1); }

  .rxv-node{
    position:absolute;
    transform:translate(-50%,-50%);
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:6px;
    background:none;
    border:0;
    padding:0;
    cursor:pointer;
    color:var(--text-dim);
    font:inherit;
    z-index:2;
  }
  .rxv-node.rxv-low{ flex-direction:column-reverse; }
  .rxv-dot{
    width:clamp(40px, 10vw, 54px);
    height:clamp(40px, 10vw, 54px);
    border-radius:50%;
    display:grid;
    place-items:center;
    background:var(--bg);
    border:1px solid var(--glass-border);
    transition:border-color .35s, box-shadow .35s, transform .35s, color .35s;
  }
  .rxv-dot svg{ width:44%; height:44%; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
  .rxv-name{
    font-family:'Poppins',sans-serif;
    font-weight:600;
    font-size:clamp(0.6rem, 1.8vw, 0.74rem);
    letter-spacing:0.1em;
    text-transform:uppercase;
    white-space:nowrap;
    transition:color .35s;
  }
  .rxv-node:hover .rxv-dot{ border-color:var(--cyan); }
  .rxv-node:focus-visible{ outline:none; }
  .rxv-node:focus-visible .rxv-dot{ outline:3px solid var(--cyan-bright); outline-offset:3px; }
  .rxv-node.is-active{ color:var(--cyan-bright); }
  .rxv-node.is-active .rxv-dot{
    border-color:var(--cyan);
    box-shadow:inset 0 0 0 60px rgba(var(--cyan-rgb),0.12), 0 0 0 6px rgba(var(--cyan-rgb),.08), 0 0 28px rgba(var(--cyan-rgb),.4);
    transform:scale(1.08);
  }
  .rxv-node.is-active .rxv-name{ color:var(--heading); }

  .rxv-center{
    position:absolute;
    left:50%; top:50%;
    transform:translate(-50%,-50%);
    width:54%;
    text-align:center;
    z-index:1;
  }
  .rxv-swap{ transition:opacity .35s ease, transform .35s ease; }
  .rxv-center.is-leaving .rxv-swap{ opacity:0; transform:translateY(6px); }
  .rxv-value{
    font-family:'Poppins',sans-serif;
    font-weight:700;
    font-size:clamp(0.66rem, 1.9vw, 0.8rem);
    letter-spacing:0.16em;
    text-transform:uppercase;
    color:var(--cyan-bright);
    margin-bottom:4px;
  }
  .rxv-stat{
    font-family:'Poppins',sans-serif;
    font-weight:800;
    font-size:clamp(2.3rem, 9vw, 3.8rem);
    line-height:1;
    letter-spacing:-0.02em;
    font-variant-numeric:tabular-nums;
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:var(--heading);
  }
  .rxv-stat.down{ color:var(--cyan-bright); }
  .rxv-stat.up{ color:var(--positive); }
  .rxv-arrow{ font-size:0.42em; font-weight:600; }
  .rxv-label{
    color:var(--text);
    font-size:clamp(0.78rem, 2.3vw, 0.96rem);
    font-weight:500;
    line-height:1.35;
    margin:10px 0 6px;
    text-wrap:balance;
  }
  .rxv-line{
    color:var(--text-dim);
    font-size:clamp(0.7rem, 2vw, 0.84rem);
    line-height:1.4;
    text-wrap:balance;
  }
  .rxv-note{
    margin-top:6px;
    padding-top:14px;
    border-top:1px dashed var(--line);
    color:var(--text-note);
    font-size:0.74rem;
    line-height:1.45;
  }
  /* ---- Scroll-driven mode (wider screens): the hero pins while the wheel
     steps through the five values, then the page carries on. ---- */
  /* body's overflow-x:hidden makes it a scroll container, which stops
     position:sticky from pinning. clip hides sideways overflow the same way
     without that side effect. "html body" so it wins over the page's own
     html,body rule, which loads after this file. */
  html body{ overflow-x:clip; }
  .rxv-hint{
    display:none;
    align-items:center;
    justify-content:center;
    gap:8px;
    margin-top:14px;
    font-family:'Poppins',sans-serif;
    font-weight:600;
    font-size:0.72rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--text-dim);
    transition:opacity .4s ease;
  }
  .rxv-hint svg{ animation:rxvNudge 1.6s ease-in-out infinite; }
  @keyframes rxvNudge{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(4px); } }
  .rxv-step{ font-variant-numeric:tabular-nums; color:var(--cyan-bright); }
  @media (min-width:981px){
    .rxv-scroll{ position:relative; height:calc(100vh + 5 * 55vh); }
    .rxv-scroll > .hero.hero--split{
      position:sticky;
      top:var(--rxv-top, 92px);
      min-height:calc(100vh - var(--rxv-top, 92px));
      padding-block:3vh;
    }
    .rxv-scroll.is-scroll-mode .rxv-hint{ display:flex; }
    .rxv-scroll.is-scroll-mode .rxv-progress,
    .rxv-scroll.is-scroll-mode .rxv-orb{ transition:none; }
  }
  @media (min-width:981px) and (max-height:820px){
    .rxv-card{ max-width:min(540px, calc(100vh - var(--rxv-top, 92px) - 120px)); }
    .rxv-note{ display:none; }
  }

  @media (max-width:520px){
    .rxv-wheel{ width:84%; margin:8px auto 0; }
    .rxv-name{ font-size:0.6rem; letter-spacing:0.06em; }
    .rxv-center{ width:60%; }
    .rxv-line{ display:none; }
  }
  @media (prefers-reduced-motion: reduce){
    .rxv-progress, .rxv-swap, .rxv-dot, .rxv-orb{ transition:none; }
  }
