/* Rumi Dental 4.2.31 — Public / portal visual parity.
   Brand reference: the platform administrator's vivid cyan-blue, warm yellow,
   white, and deep navy design. Presentation-only: no auth/booking/clinical changes.
   Loaded last on public routes; all overrides are scoped away from the private portal. */

.rp-public {
    --rp-blue: #008ed4;
    --rp-sky: #00a3e8;
    --rp-sky-deep: #0388cb;
    --rp-yellow: #ffe13b;
    --rp-ink: #163e57;
    --rp-muted: #5c798d;
    --rp-line: #d6e9f3;
    --rp-soft: #eff9fd;
    --rp-navy: #113e5c;
    --rp-radius: 22px;
    background: #fff;
    color: var(--rp-ink);
}
.rp-public h1,.rp-public h2,.rp-public h3,.rp-public h4 { color:var(--rp-ink);letter-spacing:-.043em }
.rp-public em { color:#039fe4 }
.rp-public p { color:var(--rp-muted) }
.rp-public :focus-visible { outline:3px solid #f6c900;outline-offset:4px }
.rp-public .rp-eyebrow { color:#028cc5;font-weight:800;letter-spacing:.19em }
.rp-public .rp-overline { color:#008cd1;font-weight:800 }
.rp-public .rp-status-dot { background:var(--rp-yellow);box-shadow:0 0 0 5px rgba(255,225,59,.17) }
.rp-public .rp-button:not(.rp-button-white):not(.rp-button-quiet):not(.rp-button-secondary):not(.rp-button-light) {
    color:#fff!important; background:var(--rp-sky);border-color:var(--rp-sky);
    box-shadow:0 9px 24px rgba(0,145,212,.19);font-weight:750;
}
.rp-public .rp-button:not(.rp-button-white):not(.rp-button-quiet):not(.rp-button-secondary):not(.rp-button-light):hover {
    background:#0086c3;border-color:#0086c3;box-shadow:0 11px 28px rgba(0,145,212,.27);
}
.rp-public .rp-button-secondary { background:#eaf8ff;border-color:#b7e4f6;color:#057bac!important }
.rp-public .rp-button-secondary:hover { background:#d9f2ff }
.rp-public .rp-text-link { color:#0289c8!important;font-weight:800 }
.rp-public .rp-icon-button { color:#147bb0 }
.rp-public .rp-tile-icon { color:#028fd2;background:#e5f7ff;border:1px solid #cfebf8 }
.rp-public .rp-tile-teal { background:#e5f8f5;color:#219a9f;border-color:#c8f0e9 }
.rp-public .rp-capabilities { border-color:#d6eaf3 }

/* The public platform navigation now shares the same signature bar as the admin UI. */
.rp-public:not(.rp-clinic) .rp-header {
    background:#04a0e3;
    border-bottom:3px solid rgba(255,224,54,.90);
    box-shadow:0 8px 23px rgba(0,102,164,.13);
    backdrop-filter:none;
}
.rp-public:not(.rp-clinic) .rp-header-inner { min-height:87px }
.rp-public:not(.rp-clinic) .rp-header .rp-brand { color:#fff;letter-spacing:-.052em;font-size:24px;font-weight:850 }
.rp-public:not(.rp-clinic) .rp-header .rp-brand-light { color:#fff;font-weight:600 }
.rp-public:not(.rp-clinic) .rp-header .rp-brand small { color:#dcf7ff;font-size:7px;letter-spacing:.24em;margin-top:6px }
.rp-public:not(.rp-clinic) .rp-header .rp-brand-mark {
    width:54px;height:54px;border-radius:50%;background:#fff;color:#029ee2;
    border:1px solid rgba(255,255,255,.95);box-shadow:0 7px 20px rgba(0,68,137,.12)
}
.rp-public:not(.rp-clinic) .rp-header .rp-navigation>a,
.rp-public:not(.rp-clinic) .rp-header .rp-login { color:#fff;font-size:12px;font-weight:700 }
.rp-public:not(.rp-clinic) .rp-header .rp-navigation>a:hover,
.rp-public:not(.rp-clinic) .rp-header .rp-navigation>a[aria-current],
.rp-public:not(.rp-clinic) .rp-header .rp-login:hover { color:#fff6b9 }
.rp-public:not(.rp-clinic) .rp-header .rp-navigation>a[aria-current]::after {
    background:var(--rp-yellow);height:4px;bottom:-2px;border-radius:3px 3px 0 0
}
.rp-public:not(.rp-clinic) .rp-header .rp-nav-actions { gap:13px }
.rp-public:not(.rp-clinic) .rp-header .rp-button-small {
    color:#077eb8!important;background:#fff!important;border-color:#fff!important;
    box-shadow:0 7px 20px rgba(0,75,136,.14);border-radius:11px;font-size:11px;padding-inline:17px
}
.rp-public:not(.rp-clinic) .rp-header .rp-button-small:hover { background:#f3fcff!important }
.rp-public:not(.rp-clinic) .rp-header .rd-public-language { background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.40) }
.rp-public:not(.rp-clinic) .rp-header .rd-public-language a { color:#fff!important }
.rp-public:not(.rp-clinic) .rp-header .rd-public-language a:hover { background:rgba(255,255,255,.20) }
.rp-public:not(.rp-clinic) .rp-header .rd-public-language a.is-current { color:#006dac!important;background:#fff }
.rp-public:not(.rp-clinic) .rp-header .rp-menu-toggle { background:rgba(255,255,255,.11);color:#fff;border-color:rgba(255,255,255,.65) }
.rp-public:not(.rp-clinic) .rp-header .rp-menu-toggle:hover { background:rgba(255,255,255,.20) }

/* Hero: bright, confident and instantly recognizable as the live admin network. */
.rp-public:not(.rp-clinic) .rp-hero {
    padding-top:88px;padding-bottom:100px;isolation:isolate;z-index:0;
    gap:clamp(25px,4vw,75px);grid-template-columns:minmax(0,1.04fr) minmax(0,1fr)
}
.rp-public:not(.rp-clinic) .rp-hero::before {
    content:"";position:absolute;z-index:-2;left:50%;top:0;bottom:0;width:100vw;
    transform:translateX(-50%);
    background:radial-gradient(circle at 105% 11%,rgba(255,255,255,.18),transparent 22%),
      radial-gradient(circle at 68% 58%,rgba(29,185,249,.68),transparent 40%),
      linear-gradient(115deg,#04a6eb 0%,#079dde 58%,#08a8e7 100%);
    border-bottom:2px solid #b7ecfd
}
.rp-public:not(.rp-clinic) .rp-hero::after {
    content:"";position:absolute;z-index:-1;left:50%;bottom:0;width:100vw;height:42%;
    transform:translateX(-50%);pointer-events:none;
    background:linear-gradient(177deg,transparent 0 76%,rgba(200,239,252,.40) 76.2% 80%,rgba(230,250,255,.70) 80.2% 82%,rgba(255,255,255,.92) 82.2% 84%,transparent 84.2%);
    opacity:.75
}
.rp-public:not(.rp-clinic) .rp-hero-copy { position:relative;z-index:1 }
.rp-public:not(.rp-clinic) .rp-hero-copy::before {
    content:"";position:absolute;width:370px;height:370px;border:1px solid rgba(255,255,255,.14);
    border-radius:50%;left:-280px;top:0;pointer-events:none
}
.rp-public:not(.rp-clinic) .rp-hero-copy .rp-eyebrow { color:#e9faff;font-size:11px;letter-spacing:.21em;margin-bottom:20px }
.rp-public:not(.rp-clinic) .rp-hero-copy h1 {
    color:#fff;font-size:clamp(43px,4.95vw,76px);line-height:1.07;
    font-weight:850;letter-spacing:-.065em;text-wrap:balance
}
.rp-public:not(.rp-clinic) .rp-hero-copy h1 em { color:var(--rp-yellow);font-weight:850 }
.rp-public:not(.rp-clinic) .rp-hero-copy>p {
    max-width:530px;color:#eefbff;font-size:16px;line-height:1.8;margin-top:23px
}
.rp-public:not(.rp-clinic) .rp-hero .rp-actions { margin-top:29px;gap:12px }
.rp-public:not(.rp-clinic) .rp-hero .rp-actions .rp-button {
    font-size:13px;min-height:53px;border-radius:10px;padding:13px 20px
}
.rp-public:not(.rp-clinic) .rp-hero .rp-actions .rp-button:first-child {
    background:#fff!important;color:#006ea9!important;border-color:#fff!important;
    box-shadow:0 11px 30px rgba(0,83,133,.15)
}
.rp-public:not(.rp-clinic) .rp-hero .rp-actions .rp-button:first-child:hover { background:#eafaff!important }
.rp-public:not(.rp-clinic) .rp-hero .rp-actions .rp-button-quiet {
    background:transparent;color:#fff!important;border:1px solid rgba(255,255,255,.87);
    padding-inline:17px;box-shadow:none
}
.rp-public:not(.rp-clinic) .rp-hero .rp-actions .rp-button-quiet:hover { background:rgba(255,255,255,.16) }
.rp-public:not(.rp-clinic) .rp-hero .rp-play { color:#fff;border-color:rgba(255,255,255,.65) }
.rp-public:not(.rp-clinic) .rp-hero-proof { color:#e6f8ff;font-size:12px;margin-top:28px;gap:19px }
.rp-public:not(.rp-clinic) .rp-hero-proof svg { color:#ffe23d }
.rp-public:not(.rp-clinic) .rp-hero-art { z-index:1;padding-bottom:12px }
.rp-public:not(.rp-clinic) .rp-hero-art::before {
    background:radial-gradient(ellipse at 50% 50%,rgba(255,255,255,.27),transparent 66%);
    inset:-30px -40px
}

/* Light clinical workstation that still runs the unchanged real local 3D renderer. */
.rp-public .rp-anatomy {
    background:radial-gradient(ellipse at 48% 53%,#def7ff 0%,#f4fdff 68%,#e7f5fd 100%);
    border:1px solid rgba(216,240,251,.95);color:var(--rp-ink);
    box-shadow:0 29px 65px rgba(13,94,143,.21);border-radius:21px
}
.rp-public .rp-demo-bar {
    background:#fff;border-bottom:1px solid #cfe9f6;color:#1676a5;
    font-size:10px;font-weight:800;letter-spacing:.15em;padding:14px 22px
}
.rp-public .rp-dot { background:var(--rp-yellow);box-shadow:0 0 0 4px rgba(255,224,58,.25) }
.rp-public .rp-demo-tag { color:#357c9c;background:#e9f7fd;border-color:#d0e9f5;border-radius:7px;font-weight:750 }
.rp-public .rp-anatomy-title { padding:24px 23px 5px }
.rp-public .rp-anatomy-title small { color:#2588b4;font-weight:800;font-size:10px }
.rp-public .rp-anatomy-title strong { color:#164d6d;font-size:22px;font-weight:800 }
.rp-public .rp-live-3d { color:#077eaf;background:#e2f7ff;border-color:#c6e8f6;font-size:11px;font-weight:800 }
.rp-public .rp-model-wrap { background:radial-gradient(ellipse at 47% 51%,rgba(198,238,251,.75),transparent 62%) }
.rp-public .rp-anatomy .od3d-label { background:rgba(255,255,255,.94)!important;color:#235979!important;border-color:rgba(83,156,190,.55)!important;box-shadow:0 4px 13px rgba(22,91,126,.12)!important }
.rp-public .rp-anatomy .od3d-label.is-selected { background:#048fce!important;color:#fff!important;border-color:#65d6ff!important;box-shadow:0 0 0 2px rgba(255,209,28,.4),0 4px 22px rgba(0,143,208,.38)!important }
.rp-public .rp-anatomy .od3d-midline { color:#2682ac }
.rp-public .rp-anatomy .od3d-midline>span { color:#1684ae }
.rp-public .rp-anatomy-controls { padding:4px 20px 15px }
.rp-public .rp-demo-views { background:#f1faff;border-color:#d2e9f6;border-radius:10px }
.rp-public .rp-demo-views button,.rp-public .rp-demo-roots { color:#426d84;font-weight:700;font-size:11px }
.rp-public .rp-demo-views button[aria-pressed=true],.rp-public .rp-demo-roots[aria-pressed=true] { background:#069ce0;color:#fff }
.rp-public .rp-demo-views button:hover,.rp-public .rp-demo-roots:hover { background:#d9f2ff }
.rp-public .rp-demo-views button[aria-pressed=true]:hover,.rp-public .rp-demo-roots[aria-pressed=true]:hover { background:#0087c2 }
.rp-public .rp-demo-roots { border-color:#c6e4f2 }
.rp-public .rp-demo-readout { color:#558298;background:#fff;border-top:1px solid #d7edf7;padding:13px 21px;font-size:10px }
.rp-public .rp-demo-readout b { color:#067cae;font-size:13px }
.rp-public .rp-demo-hint { color:#7795a5;font-size:10px;max-width:150px }
.rp-public .rp-model-fallback>span { color:#517f99 }
.rp-public .rp-float-note { background:#fff;border-color:#d4eaf3;box-shadow:0 17px 32px rgba(0,77,130,.17);border-radius:14px }
.rp-public .rp-float-icon { background:#dff5fe;color:#0295d9 }
.rp-public .rp-note-check { background:#fff4c6;color:#997400 }

/* Bright section system + a familiar admin-style yellow section bar. */
.rp-public .rp-section { padding-block:86px }
.rp-public .rp-section-heading .rp-eyebrow::before,
.rp-public .rp-library-header .rp-eyebrow::before {
    content:"";display:inline-block;vertical-align:middle;width:27px;height:6px;
    background:#ffdf35;margin-inline-end:12px;border-radius:1px
}
.rp-public .rp-section-heading h2 { font-weight:820;line-height:1.16 }
.rp-public .rp-soft-band { background:linear-gradient(180deg,#f0f9fd,#eaf6fb 56%,#f6fcff);border-block:1px solid #e2f1f8 }
.rp-public .rp-capabilities { position:relative;gap:20px;background:#fff;padding-block:32px }
.rp-public .rp-capabilities>span { color:#1484ae;font-weight:800;font-size:10px }
.rp-public .rp-capabilities>div { color:#1d5774;font-weight:700 }
.rp-public .rp-capabilities svg { color:#0295d4 }
.rp-public .rp-feature-tile,.rp-public .rp-library-card,.rp-public .rp-role-grid article,.rp-public .rp-clinic-service-grid article {
    border:1px solid #d9e9f3;border-top:3px solid #02a4e9;border-radius:16px;
    box-shadow:0 11px 33px rgba(24,98,148,.055);background:#fff
}
.rp-public .rp-feature-tile:hover,.rp-public .rp-library-card:hover {
    border-top-color:var(--rp-yellow);box-shadow:0 18px 45px rgba(18,121,177,.13)
}
.rp-public .rp-feature-tile h3,.rp-public .rp-library-card h3 { color:#143e59;font-weight:800 }
.rp-public .rp-workspace-tabs { background:#e8f5fb;border-color:#cce8f4;border-radius:12px }
.rp-public .rp-workspace-tabs button { color:#42738e;font-weight:750 }
.rp-public .rp-workspace-tabs button[aria-selected=true] { color:#0786c1;border-color:#bde1f3;box-shadow:0 3px 11px rgba(0,126,187,.10) }
.rp-public .rp-screen { border-color:#cfe4f0;box-shadow:0 23px 62px rgba(0,111,167,.09) }
.rp-public .rp-screen-top { background:#05a0e3;color:#fff;border-bottom-color:#0190d5;font-weight:700 }
.rp-public .rp-window-dots i { background:#d7f2ff }
.rp-public .rp-window-dots i:first-child { background:var(--rp-yellow) }
.rp-public .rp-screen-sidebar>span.rp-screen-logo { background:#079edf }
.rp-public .rp-chip { color:#087cb0;background:#e3f6ff;border-color:#c8e8f5 }
.rp-public .rp-mini-teeth .selected { background:#e0f7ff;outline:2px solid #03a8ea }
.rp-public .rp-steps article { border-bottom-color:#d6e7f1 }
.rp-public .rp-step-number { color:#0285bc;border-color:#b3e3f5;background:#effaff;font-weight:800 }
.rp-public .rp-faq details { border-color:#d8e9f3 }
.rp-public .rp-faq details[open] { background:#f5fbff }
.rp-public .rp-role-grid article svg,.rp-public .rp-studio-features svg { color:#0298d9 }

/* Secondary marketing heroes: same energized palette, not dark blocks. */
.rp-public:not(.rp-clinic) .rp-page-hero {
    position:relative;isolation:isolate;z-index:0;padding:80px 20px 83px;
    text-align:center;margin-bottom:45px
}
.rp-public:not(.rp-clinic) .rp-page-hero::before {
    content:"";position:absolute;z-index:-2;inset:0 calc(50% - 50vw);
    background:radial-gradient(circle at 82% 65%,rgba(255,255,255,.14),transparent 26%),
               linear-gradient(113deg,#07a5e8 0%,#009cde 60%,#0fb5ec 100%);
    border-bottom:4px solid #c2effd
}
.rp-public:not(.rp-clinic) .rp-page-hero::after {
    content:"";position:absolute;pointer-events:none;z-index:-1;inset:-5px -15px auto auto;width:290px;height:290px;
    border:1px solid rgba(255,255,255,.16);border-radius:50%;box-shadow:0 0 0 55px rgba(255,255,255,.05),0 0 0 115px rgba(255,255,255,.028)
}
.rp-public:not(.rp-clinic) .rp-page-hero .rp-eyebrow { color:#e8faff;font-size:11px }
.rp-public:not(.rp-clinic) .rp-page-hero h1 { color:#fff;font-weight:840;font-size:clamp(42px,5.25vw,72px);line-height:1.1 }
.rp-public:not(.rp-clinic) .rp-page-hero h1 em { color:#ffe13b }
.rp-public:not(.rp-clinic) .rp-page-hero>p { color:#ecfaff;max-width:660px;margin:19px auto 0;line-height:1.8 }
.rp-public:not(.rp-clinic) .rp-page-hero .rp-actions { justify-content:center }
.rp-public:not(.rp-clinic) .rp-page-hero .rp-actions .rp-button:first-child {
    color:#0878b1!important;background:#fff!important;border-color:#fff!important
}
.rp-public:not(.rp-clinic) .rp-page-hero .rp-actions .rp-button-quiet { color:#fff!important }
.rp-public .rp-search { border-color:#cfe7f3;background:#fff }
.rp-public .rp-search:focus-within { border-color:#06a0df;box-shadow:0 0 0 3px #08a9ef15 }
.rp-public .rp-filter-list button[aria-pressed=true] { color:#fff;background:#069bda;border-color:#069bda }
.rp-public .rp-filter-list button:hover { border-color:#08a9e8 }
.rp-public .rp-library-card { border-top-width:4px }
.rp-public .rp-library-card ul li svg { color:#05a2db }
.rp-public .rp-studio-demo-section { padding-top:10px }
.rp-public .rp-studio-guide { background:#f1faff;border:1px solid #cfe9f6;border-radius:22px;padding:34px }
.rp-public .rp-studio-guide ol li>span { background:#e1f5ff;color:#0386bd;border-color:#c3e6f7;font-weight:850 }
.rp-public .rp-information { border-color:#cceaf7;background:#eef9ff }

/* Public clinic discovery: airy filters, white provider cards and bright booking accents. */
.rp-public:not(.rp-clinic) .rp-directory-hero {
    position:relative;isolation:isolate;z-index:0;margin-bottom:44px;padding:72px 0 76px;
}
.rp-public:not(.rp-clinic) .rp-directory-hero::before {
    content:"";position:absolute;z-index:-1;inset:0 calc(50% - 50vw);
    background:linear-gradient(117deg,#039fe4,#05afea);border-bottom:3px solid #bde9fd
}
.rp-public:not(.rp-clinic) .rp-directory-hero h1 { color:#fff;font-weight:850 }
.rp-public:not(.rp-clinic) .rp-directory-hero h1 em { color:#ffe23e }
.rp-public:not(.rp-clinic) .rp-directory-hero p { color:#e9faff }
.rp-public:not(.rp-clinic) .rp-directory-hero .rp-eyebrow { color:#e6fbff }
.rp-public:not(.rp-clinic) .rp-directory-notes { color:#f4fcff }
.rp-public:not(.rp-clinic) .rp-directory-notes>span { color:#fff;border-color:rgba(255,255,255,.33);background:rgba(255,255,255,.12) }
.rp-public:not(.rp-clinic) .rp-directory-art { background:radial-gradient(ellipse at 50% 55%,rgba(255,255,255,.27),transparent 65%) }
.rp-public:not(.rp-clinic) .rp-directory-art-tag { box-shadow:0 13px 30px rgba(0,100,160,.19) }
.rp-public .rp-directory-filter { border:1px solid #cde6f3;border-top:4px solid #ffdd38;box-shadow:0 15px 38px rgba(16,100,153,.10) }
.rp-public .rp-clinic-card { border:1px solid #d6eaf4;border-top:4px solid #04a4e6;box-shadow:0 12px 40px rgba(27,103,151,.07) }
.rp-public .rp-clinic-card:hover { border-top-color:#ffe138 }
.rp-public .rp-directory-join { background:#eaf8fd;border-color:#cceaf7 }

/* CTA and footer replace the old navy slab with signature bright platform blue. */
.rp-public:not(.rp-clinic) .rp-cta {
    background:radial-gradient(circle at 75% 36%,rgba(255,255,255,.15),transparent 30%),
      linear-gradient(115deg,#029fe4 0%,#08b2eb 100%);
    border:1px solid #46bfee;box-shadow:0 20px 50px rgba(1,128,190,.15);border-radius:22px
}
.rp-public:not(.rp-clinic) .rp-cta::before {
    content:"";position:absolute;pointer-events:none;width:480px;height:480px;right:5%;top:-200px;
    border-radius:50%;border:1px solid rgba(255,255,255,.23);
    box-shadow:0 0 0 56px rgba(255,255,255,.06),0 0 0 115px rgba(255,255,255,.04)
}
.rp-public:not(.rp-clinic) .rp-cta h2 { color:#fff;font-weight:830 }
.rp-public:not(.rp-clinic) .rp-cta .rp-eyebrow { color:#fff3ab }
.rp-public:not(.rp-clinic) .rp-cta p { color:#e6f9ff }
.rp-public:not(.rp-clinic) .rp-cta .rp-button-white { color:#0476ad!important;background:#fff;border-color:#fff }
.rp-public:not(.rp-clinic) .rp-cta .rp-cta-link { color:#fff }
.rp-public:not(.rp-clinic) .rp-cta-actions small { color:#d8f7ff }
.rp-public .rp-footer { background:#eff8fd;border-top:4px solid #d5f0fa }
.rp-public .rp-footer-grid nav>strong { color:#146082;font-weight:850 }
.rp-public .rp-footer-grid nav a:hover { color:#027daf }
.rp-public .rp-footer .rp-brand-mark { background:#029fe3;color:#fff;border-radius:50% }
.rp-public .rp-footer .rp-brand { color:#125575;font-weight:820 }
.rp-public .rp-footer .rp-brand-light { color:#1989bc;font-weight:650 }
.rp-public .rp-footer .rp-brand small { color:#6e9ab1 }
.rp-public .rp-footer-note { border-color:#cbe4f2;background:#fff }
.rp-public .rp-footer-note svg { color:#078bc5 }
.rp-public .rp-footer-edition { color:#0287bd }

/* Registration/sign-in: eliminate the old dark split panel. */
.rp-public.rp-guest { --rd-primary:#029fe3;--rd-primary-rgb:2,159,227;background:#f0f9fd }
.rp-public.rp-guest .rp-guest-main { padding-top:38px;padding-bottom:65px }
.rp-public.rp-guest .rp-auth-layout { border-color:#c9e6f3;box-shadow:0 25px 55px rgba(14,102,154,.11) }
.rp-public.rp-guest .rp-auth-story {
    color:#fff;
    background:radial-gradient(circle at 78% 54%,rgba(255,255,255,.17),transparent 34%),
               linear-gradient(140deg,#039ee2,#00aeea);
}
.rp-public.rp-guest .rp-auth-story h1,
.rp-public.rp-guest .rp-auth-story h2,
.rp-public.rp-guest .rp-auth-story h3 { color:#fff }
.rp-public.rp-guest .rp-auth-story .rp-eyebrow { color:#fff3b0 }
.rp-public.rp-guest .rp-auth-story p { color:#effaff }
.rp-public.rp-guest .rp-auth-visual-label { background:rgba(255,255,255,.19);border-color:rgba(255,255,255,.48);color:#fff }
.rp-public.rp-guest .rp-auth-symbol { color:#0286c4;background:#fff;border-color:rgba(255,255,255,.8) }
.rp-public.rp-guest .rp-guest .guest-card { box-shadow:0 16px 44px rgba(11,116,164,.1) }
.rp-public.rp-guest .btn-rd { background:#009fe3;border-color:#009fe3;box-shadow:0 7px 20px rgba(0,159,227,.15) }
.rp-public.rp-guest .btn-rd:hover { background:#0083bd }
.rp-public.rp-guest .form-control:focus,.rp-public.rp-guest .form-select:focus { border-color:#03a2de;box-shadow:0 0 0 3px rgba(4,168,228,.15) }
.rp-public.rp-guest .rp-form-card-header { background:#eaf8ff }
.rp-public.rp-guest .rp-onboarding-steps .active b { color:#00588e;background:#ffe141;border-color:#ffe141 }
.rp-public.rp-guest .rp-register-submit { background:#f0f9fe }
.rp-public.rp-guest .rp-guest-main .rp-eyebrow { font-weight:850 }
.rp-public.rp-guest .dx-verification-banner { background:#069ddd;color:#fff }
.rp-public.rp-guest .rp-plan-card:has(input:checked) { border-color:#00a5e9;box-shadow:0 0 0 2px rgba(0,159,227,.15) }
.rp-public.rp-guest .rp-plan-card:has(input:checked)::before { content:"";width:35px;height:4px;background:#ffe139;position:absolute;top:0;left:20px }

/* Clinics remain clinic-branded when customized, but their shared framing stays light. */
.rp-public.rp-clinic .rp-header { background:#fff;box-shadow:0 5px 18px rgba(13,98,149,.09);border-bottom:3px solid #f7d93c }
.rp-public.rp-clinic .rp-header .rp-brand { color:#144f70;font-weight:800 }
.rp-public.rp-clinic .rp-clinic-sculpture { background:linear-gradient(155deg,#e8f9ff,#bde9fb);border-color:#acdced;color:#20749c }
.rp-public.rp-clinic .rp-clinic-sculpture span { color:#1b749e }
.rp-public.rp-clinic .rp-clinic-shortcuts { background:#effaff;border-color:#cfe9f6 }
.rp-public.rp-clinic .rp-clinic-shortcuts>a:hover { background:#dff4fd }
.rp-public.rp-clinic .rp-clinic-hours { background:#e8f8ff }
.rp-public.rp-clinic .rp-booking-next { background:linear-gradient(135deg,#029fe3,#09ade7);color:#fff;border-color:#06afe7 }
.rp-public.rp-clinic .rp-booking-next h2,.rp-public.rp-clinic .rp-booking-next h3 { color:#fff }
.rp-public.rp-clinic .rp-booking-next p { color:#effaff }
.rp-public.rp-clinic .rp-cta { background:linear-gradient(120deg,#029ee2,#10b4e9);color:#fff }
.rp-public.rp-clinic .rp-cta h2 { color:#fff }
.rp-public.rp-clinic .rp-cta p { color:#f0fbff }
.rp-public.rp-clinic .rp-cta .rp-eyebrow { color:#fff2b0 }
.rp-public.rp-clinic .rp-cta .rp-button-light { background:#fff;color:#0284bd!important }

/* Motion is subtle and respects reduced-motion support provided by the UI. */
@keyframes rp-brand-glow { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-5px) } }
@media (prefers-reduced-motion:no-preference) {
    .rp-public:not(.rp-clinic) .rp-hero .rp-anatomy { animation:rp-brand-glow 7s ease-in-out infinite }
    .rp-public .rp-feature-tile,.rp-public .rp-library-card { transition:box-shadow .22s,border-color .22s,transform .22s }
    .rp-public .rp-feature-tile:hover,.rp-public .rp-library-card:hover { transform:translateY(-3px) }
}
@media (prefers-reduced-motion:reduce) {
    .rp-public:not(.rp-clinic) .rp-hero .rp-anatomy,
    .rp-public .rp-float-note { animation:none!important }
}

/* Compact navigation and hero layouts are as deliberate as the desktop presentation. */
@media (max-width:1150px) {
    .rp-public:not(.rp-clinic) .rp-header .rp-navigation { gap:15px }
    .rp-public:not(.rp-clinic) .rp-header .rp-nav-actions { gap:9px }
    .rp-public:not(.rp-clinic) .rp-header .rp-brand { font-size:21px }
    .rp-public:not(.rp-clinic) .rp-hero { gap:24px;padding-block:68px 78px }
    .rp-public:not(.rp-clinic) .rp-hero-copy h1 { font-size:clamp(43px,5.2vw,61px) }
}
@media (max-width:1000px) {
    .rp-public:not(.rp-clinic) .rp-header .rp-navigation.is-open {
        background:#fff;border:1px solid #bde6f6;border-top:4px solid var(--rp-yellow);
        box-shadow:0 24px 50px rgba(10,107,160,.17)
    }
    .rp-public:not(.rp-clinic) .rp-header .rp-navigation.is-open>a,
    .rp-public:not(.rp-clinic) .rp-header .rp-navigation.is-open .rp-login { color:#16445f }
    .rp-public:not(.rp-clinic) .rp-header .rp-navigation.is-open>a:hover,
    .rp-public:not(.rp-clinic) .rp-header .rp-navigation.is-open>a[aria-current] { color:#0289c4 }
    .rp-public:not(.rp-clinic) .rp-header .rp-navigation.is-open .rd-public-language { background:#e8f7fe;border-color:#cfebf7 }
    .rp-public:not(.rp-clinic) .rp-header .rp-navigation.is-open .rd-public-language a { color:#177ca7!important }
    .rp-public:not(.rp-clinic) .rp-header .rp-navigation.is-open .rd-public-language a.is-current { background:#08a2e8;color:#fff!important }
    .rp-public:not(.rp-clinic) .rp-header .rp-navigation.is-open .rp-button-small { background:#039fe3!important;color:#fff!important;border-color:#039fe3!important }
}
@media (max-width:767px) {
    .rp-public .rp-section { padding-block:58px }
    .rp-public:not(.rp-clinic) .rp-header-inner { min-height:76px }
    .rp-public:not(.rp-clinic) .rp-header .rp-brand-mark { height:43px;width:43px }
    .rp-public:not(.rp-clinic) .rp-header .rp-brand { font-size:20px }
    .rp-public:not(.rp-clinic) .rp-hero { grid-template-columns:1fr;padding-block:52px 74px;gap:40px }
    .rp-public:not(.rp-clinic) .rp-hero-copy h1 { font-size:clamp(40px,9vw,58px) }
    .rp-public:not(.rp-clinic) .rp-hero-copy>p { font-size:14px;max-width:530px;margin-top:19px }
    .rp-public:not(.rp-clinic) .rp-hero .rp-actions { gap:9px }
    .rp-public:not(.rp-clinic) .rp-hero .rp-actions .rp-button { min-height:46px;font-size:11px;padding:11px 14px }
    .rp-public:not(.rp-clinic) .rp-hero .rp-actions .rp-button-quiet { padding-inline:12px }
    .rp-public:not(.rp-clinic) .rp-hero-proof { font-size:10px;margin-top:19px }
    .rp-public:not(.rp-clinic) .rp-hero-art::before { inset:-12px }
    .rp-public .rp-anatomy-title strong { font-size:18px }
    .rp-public .rp-anatomy-title { padding:18px 17px 3px }
    .rp-public:not(.rp-clinic) .rp-page-hero { padding:58px 16px 69px;margin-bottom:24px }
    .rp-public:not(.rp-clinic) .rp-page-hero h1 { font-size:clamp(38px,8vw,54px) }
    .rp-public:not(.rp-clinic) .rp-directory-hero { padding-block:54px 69px }
    .rp-public .rp-studio-guide { padding:23px }
    .rp-public .rp-section-heading .rp-eyebrow::before { width:21px;height:5px }
    .rp-public:not(.rp-clinic) .rp-cta { padding:34px 25px }
    .rp-public:not(.rp-clinic) .rp-cta h2 { font-size:31px }
    .rp-public .rp-footer { padding-top:40px }
}
@media (max-width:450px) {
    .rp-public:not(.rp-clinic) .rp-hero { padding-bottom:53px }
    .rp-public:not(.rp-clinic) .rp-hero-copy h1 { font-size:39px }
    .rp-public .rp-demo-views button,.rp-public .rp-demo-roots { padding:8px 6px;font-size:9px }
    .rp-public .rp-demo-readout { padding-inline:13px }
    .rp-public .rp-demo-hint { font-size:8px }
    .rp-public .rp-demo-bar { padding:12px 15px }
    .rp-public .rp-float-note { inset-inline-start:0 }
    .rp-public:not(.rp-clinic) .rp-page-hero { padding-inline:10px }
    .rp-public .rp-section-heading h2 { font-size:32px }
}
@media print {
    .rp-public:not(.rp-clinic) .rp-hero::before,.rp-public:not(.rp-clinic) .rp-page-hero::before { background:#fff }
    .rp-public:not(.rp-clinic) .rp-hero-copy :is(h1,p),.rp-public:not(.rp-clinic) .rp-page-hero :is(h1,p) { color:#163e57 }
}
/* Higher specificity than the shared filled-button rule: readable white nav CTA. */
body.rp-public:not(.rp-clinic) .rp-header .rp-nav-actions a.rp-button.rp-button-small {
    color:#057cac!important;
    background:#fff!important;
    border-color:#fff!important;
    text-shadow:none;
}
body.rp-public:not(.rp-clinic) .rp-header .rp-nav-actions a.rp-button.rp-button-small:hover {
    color:#005c88!important;background:#effaff!important;
}
@media(max-width:1000px) {
    body.rp-public:not(.rp-clinic) .rp-header .rp-navigation.is-open .rp-nav-actions a.rp-button.rp-button-small {
        background:#029fe3!important;color:#fff!important;border-color:#029fe3!important;
    }
}
/* Full-bleed cyan surfaces must never introduce a horizontal page scrollbar. */
body.rp-public { overflow-x:clip }
/* The account welcome highlight uses the same sunshine yellow as the admin hero. */
body.rp-public.rp-guest .rp-auth-story h1 em { color:#ffe13b }
/* Clamp sub-pixel full-bleed pseudo-elements on narrow portrait screens. */
html { overflow-x:clip }
