/* Shared control only. The two page themes remain separate stylesheets. */
rv-theme-switch { display: block; flex: 0 0 64px; width: 64px; height: 44px; }
.rv-navinner {
  --rv-s-cc3bb24550-gap: 16px;
  --rv-s-cc3bb24550-max-width: 1440px;
  --rv-s-cc3bb24550-padding: 0 clamp(20px, 3vw, 48px);
}
.rv-navinner a { white-space: nowrap; }
.rv-navinner > a:first-child { flex-shrink: 0; }
.rv-theme-toggle {
  position: relative; display: block; width: 64px; height: 44px; padding: 0;
  border: 0; background: transparent; cursor: pointer; color: var(--rv-bone);
  -webkit-tap-highlight-color: transparent;
}
.rv-theme-track {
  position: absolute; inset: 5px 0; border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--rv-bone) 30%, transparent);
  background: var(--rv-ink);
}
.rv-theme-thumb {
  position: absolute; left: 4px; top: 9px; width: 26px; height: 26px;
  border-radius: 50%; background: var(--rv-bone);
  transition: transform 180ms ease;
}
.rv-theme-toggle svg {
  position: absolute; top: 14px; width: 16px; height: 16px; pointer-events: none;
  stroke: currentColor; stroke-width: 1.7; fill: none; stroke-linecap: round; stroke-linejoin: round;
}
.rv-theme-moon { left: 9px; color: var(--rv-ink); }
.rv-theme-sun { right: 9px; color: var(--rv-bone); }
.rv-theme-toggle[aria-checked="true"] .rv-theme-thumb { transform: translateX(30px); }
.rv-theme-toggle[aria-checked="true"] .rv-theme-moon { color: var(--rv-bone); }
.rv-theme-toggle[aria-checked="true"] .rv-theme-sun { color: var(--rv-ink); }
.rv-theme-toggle:hover .rv-theme-track { border-color: var(--rv-bone); }
.rv-theme-toggle:focus-visible { outline: 2px solid var(--rv-accent); outline-offset: 3px; border-radius: 999px; }
.rv-theme-toggle:disabled { cursor: wait; opacity: .65; }
.rv-theme-status { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.rv-theme-floating { position: fixed; top: 12px; right: 20px; z-index: 2147483647; }
.rv-theme-assistance { margin-left: auto; }
/* Make room for the switch without wrapping navigation labels. The existing
   menu supplies all links and the phone number in the compact header. */
@media (min-width: 701px) and (max-width: 1180px) {
  .rv-navlinks, .rv-navphone { display: none !important; }
  .rv-mobilemenu { display: block !important; position: static !important; z-index: auto !important; }
  .rv-mobilemenu > summary { position: relative !important; z-index: 2 !important; list-style: none !important; }
  .rv-mobilemenu > summary::-webkit-details-marker { display: none !important; }
  .rv-menu-close-icon { display: none !important; }
  .rv-mobilemenu[open] .rv-menu-open-icon { display: none !important; }
  .rv-mobilemenu[open] .rv-menu-close-icon { display: block !important; }
  .rv-mobilemenu-panel { z-index: 1 !important; overflow-y: auto !important; }
  nav:has(.rv-mobilemenu[open]) {
    position: fixed !important; inset: 0 !important; width: 100% !important;
    height: 100dvh !important; z-index: 2147483647 !important;
    background: var(--rv-ink) !important; backdrop-filter: none !important; border: 0 !important;
  }
  nav:has(.rv-mobilemenu[open]) .rv-navinner { height: 66px !important; position: relative !important; }
  nav:has(.rv-mobilemenu[open]) .rv-navinner > :not(.rv-mobilemenu) { position: relative; z-index: 2; }
}
@media (max-width: 700px) {
  .rv-navinner > .rv-mobilemenu { margin-left: 0; }
  .rv-navinner > rv-theme-switch { position: relative; z-index: 2; }
}
@media (prefers-reduced-motion: reduce) {
  .rv-theme-thumb { transition: none; }
}
