/* ==========================================================================
   ROULETTE PREDICTORS — ENTERPRISE DESIGN SYSTEM v1.2.4 — M1.4
   Unified production file: Design System v1.1 + Account UI v1.0
   + Membership UI, Page Title compatibility and duplicate heading removal
   Activation: Joomla Menu Item -> Page Display -> Page Class: rp-enterprise
   Scope: public website presentation only
   ========================================================================== */

.rp-enterprise{
    --rp-bg-950:#020914;
    --rp-bg-900:#03101d;
    --rp-bg-850:#061727;
    --rp-bg-800:#092039;
    --rp-panel:#0a2239;
    --rp-panel-soft:#0d2945;
    --rp-text:#ffffff;
    --rp-text-soft:#d8e8f8;
    --rp-text-muted:#9eb8d2;
    --rp-blue:#2f8cff;
    --rp-blue-2:#4a63ff;
    --rp-purple:#8457ff;
    --rp-magenta:#d31bdb;
    --rp-cyan:#20d7d7;
    --rp-green:#22d675;
    --rp-orange:#ff8c24;
    --rp-border:rgba(77,151,224,.28);
    --rp-border-strong:rgba(75,157,245,.48);
    --rp-shadow:0 18px 45px rgba(0,0,0,.28);
    --rp-shadow-soft:0 10px 28px rgba(0,0,0,.20);
    --rp-radius-xl:20px;
    --rp-radius-lg:16px;
    --rp-radius-md:12px;
    --rp-radius-sm:9px;
}

body.rp-enterprise #sp-main,
.rp-enterprise #sp-main{
    background:
        linear-gradient(rgba(2,8,20,.94),rgba(2,13,27,.97)),
        url('/media/com_rpplatform/images/rp-platform-hero-background.png')
        center top / cover fixed no-repeat;
}

body.rp-enterprise #sp-main-body,
.rp-enterprise #sp-main-body{
    background:transparent!important;
    color:var(--rp-text-soft);
}

body.rp-enterprise #sp-main-body > .container,
.rp-enterprise #sp-main-body > .container{
    max-width:1600px;
}

/* Helix Page Title is deliberately not styled here.
   Every menu item keeps control of Enable Page Title, Alternative Title,
   subtitle, heading level, background colour and all other Helix options. */

body.rp-enterprise #sp-main-body h1,
.rp-enterprise #sp-main-body h1{
    margin:0 0 30px;
    color:#fff!important;
    font-size:clamp(2rem,3.2vw,3.3rem);
    line-height:1.08;
    font-weight:900;
    letter-spacing:-.035em;
    text-shadow:0 8px 28px rgba(0,0,0,.32);
}

body.rp-enterprise #sp-main-body h1::after,
.rp-enterprise #sp-main-body h1::after{
    content:"";
    display:block;
    width:92px;
    height:4px;
    margin-top:16px;
    border-radius:999px;
    background:linear-gradient(90deg,var(--rp-blue),var(--rp-purple),var(--rp-magenta));
}

body.rp-enterprise #sp-main-body h2,
.rp-enterprise #sp-main-body h2,
body.rp-enterprise #sp-main-body h3,
.rp-enterprise #sp-main-body h3{
    color:#fff;
}

body.rp-enterprise #sp-main-body p,
.rp-enterprise #sp-main-body p,
body.rp-enterprise #sp-main-body li,
.rp-enterprise #sp-main-body li{
    line-height:1.65;
}

body.rp-enterprise #osm-plans-list-columns,
.rp-enterprise #osm-plans-list-columns{
    color:var(--rp-text-soft);
}

body.rp-enterprise .osm-description,
.rp-enterprise .osm-description{
    margin-bottom:30px;
}

body.rp-enterprise .osm-item-wrapper,
.rp-enterprise .osm-item-wrapper{
    margin-bottom:28px;
}

body.rp-enterprise .osm-item-heading-box,
.rp-enterprise .osm-item-heading-box{
    padding:20px 22px 16px!important;
    border:1px solid var(--rp-border)!important;
    border-bottom:0!important;
    border-radius:16px 16px 0 0!important;
    background:
        radial-gradient(circle at 90% 5%,rgba(132,87,255,.12),transparent 34%),
        linear-gradient(180deg,rgba(11,39,66,.98),rgba(8,30,51,.98))!important;
}

body.rp-enterprise .osm-item-description,
.rp-enterprise .osm-item-description{
    padding:18px 22px 22px!important;
    color:var(--rp-text-soft)!important;
    border:1px solid var(--rp-border)!important;
    border-top:1px solid rgba(94,157,219,.17)!important;
    border-radius:0 0 16px 16px!important;
    background:
        radial-gradient(circle at 80% 0%,rgba(47,140,255,.08),transparent 30%),
        linear-gradient(180deg,rgba(7,29,50,.98),rgba(4,20,36,.99))!important;
    box-shadow:var(--rp-shadow);
}

body.rp-enterprise .osm-item-title,
.rp-enterprise .osm-item-title{
    margin:0!important;
    font-size:clamp(1.35rem,1.7vw,1.85rem)!important;
    line-height:1.18!important;
    font-weight:850!important;
    letter-spacing:-.025em;
}

body.rp-enterprise .osm-item-title a,
.rp-enterprise .osm-item-title a{
    color:#fff!important;
    text-decoration:none!important;
    transition:color .2s ease,text-shadow .2s ease;
}

body.rp-enterprise .osm-item-title a:hover,
.rp-enterprise .osm-item-title a:hover{
    color:#8fc5ff!important;
    text-shadow:0 0 18px rgba(47,140,255,.28);
}

body.rp-enterprise .osm-item-description-text,
.rp-enterprise .osm-item-description-text{
    color:var(--rp-text-soft)!important;
    font-size:1rem;
}

body.rp-enterprise .osm-item-description-text h2,
.rp-enterprise .osm-item-description-text h2,
body.rp-enterprise .osm-item-description-text h3,
.rp-enterprise .osm-item-description-text h3,
body.rp-enterprise .osm-item-description-text h6,
.rp-enterprise .osm-item-description-text h6{
    color:#fff!important;
    font-weight:800;
    line-height:1.25;
}

body.rp-enterprise .osm-item-description-text strong,
.rp-enterprise .osm-item-description-text strong{
    color:#fff;
}

body.rp-enterprise .osm-item-description img,
.rp-enterprise .osm-item-description img{
    border:1px solid rgba(91,161,230,.38)!important;
    border-radius:12px!important;
    background:#04111f!important;
    box-shadow:0 12px 28px rgba(0,0,0,.28);
}

body.rp-enterprise .gps-badge,
.rp-enterprise .gps-badge{
    display:inline-flex;
    align-items:center;
    min-height:26px;
    margin-bottom:8px;
    padding:4px 9px;
    color:#9dcaff!important;
    border:1px solid rgba(64,145,230,.32);
    border-radius:999px;
    background:rgba(24,76,126,.28);
    font-size:.72rem;
    font-weight:850;
    letter-spacing:.08em;
    text-transform:uppercase;
}

body.rp-enterprise .osm-taskbar,
.rp-enterprise .osm-taskbar{
    margin-top:20px;
}

body.rp-enterprise .osm-taskbar ul,
.rp-enterprise .osm-taskbar ul{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    padding:0;
}

body.rp-enterprise .osm-taskbar li,
.rp-enterprise .osm-taskbar li{
    margin:0!important;
}

body.rp-enterprise .osm-taskbar .btn,
.rp-enterprise .osm-taskbar .btn{
    min-height:44px;
    padding:10px 18px;
    border-radius:10px!important;
    font-weight:800!important;
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}

body.rp-enterprise .osm-taskbar .btn:hover,
.rp-enterprise .osm-taskbar .btn:hover{
    transform:translateY(-2px);
}

body.rp-enterprise .osm-taskbar .btn-primary,
.rp-enterprise .osm-taskbar .btn-primary{
    border:1px solid rgba(105,101,255,.62)!important;
    background:linear-gradient(100deg,var(--rp-blue),var(--rp-purple),var(--rp-magenta))!important;
    color:#fff!important;
    box-shadow:0 10px 24px rgba(72,76,255,.20)!important;
}

body.rp-enterprise .osm-taskbar .btn-secondary,
.rp-enterprise .osm-taskbar .btn-secondary{
    border:1px solid rgba(85,157,226,.42)!important;
    background:rgba(8,36,61,.92)!important;
    color:#ddecff!important;
}

body.rp-enterprise .osm-taskbar .btn-secondary:hover,
.rp-enterprise .osm-taskbar .btn-secondary:hover{
    border-color:#4b9ef0!important;
    background:rgba(11,49,83,.98)!important;
    color:#fff!important;
}

body.rp-enterprise .osm-item-description ul,
.rp-enterprise .osm-item-description ul{
    padding-left:1.35rem;
}

body.rp-enterprise .osm-item-description li::marker,
.rp-enterprise .osm-item-description li::marker{
    color:var(--rp-blue);
}

@media(max-width:991px){
    body.rp-enterprise #sp-main-body,
    .rp-enterprise #sp-main-body{
        background-attachment:scroll;
    }
}

@media(max-width:767px){
    body.rp-enterprise #sp-main,
    .rp-enterprise #sp-main{
        background-position:68% top;
        background-size:auto 1100px;
        background-repeat:no-repeat;
        background-color:var(--rp-bg-950);
    }

    body.rp-enterprise #sp-main-body h1,
    .rp-enterprise #sp-main-body h1{
        font-size:clamp(1.75rem,8vw,2.45rem);
        margin-bottom:22px;
    }
}

@media(prefers-reduced-motion:reduce){
    .rp-enterprise *,
    .rp-enterprise *::before,
    .rp-enterprise *::after{
        transition:none!important;
        animation:none!important;
    }
}


/* ==========================================================================
   v1.1 — GLASS & INTERACTIVE UI
   Premium presentation layer on top of v1.0
   ========================================================================== */

/* --------------------------------------------------------------------------
   10. PREMIUM CARD DEPTH
   -------------------------------------------------------------------------- */
body.rp-enterprise .osm-item-wrapper,
.rp-enterprise .osm-item-wrapper{
    position:relative;
    isolation:isolate;
}

body.rp-enterprise .osm-item-wrapper::before,
.rp-enterprise .osm-item-wrapper::before{
    content:"";
    position:absolute;
    inset:8px 18px -4px;
    z-index:-1;
    border-radius:22px;
    background:
        radial-gradient(circle at 15% 10%,rgba(47,140,255,.15),transparent 34%),
        radial-gradient(circle at 88% 5%,rgba(211,27,219,.10),transparent 34%);
    filter:blur(18px);
    opacity:.7;
    pointer-events:none;
    transition:opacity .28s ease, transform .28s ease;
}

body.rp-enterprise .osm-item-wrapper:hover::before,
.rp-enterprise .osm-item-wrapper:hover::before{
    opacity:1;
    transform:translateY(-3px) scale(1.01);
}

/* Glass surface refinement */
body.rp-enterprise .osm-item-heading-box,
.rp-enterprise .osm-item-heading-box{
    position:relative;
    overflow:hidden;
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
}

body.rp-enterprise .osm-item-description,
.rp-enterprise .osm-item-description{
    position:relative;
    overflow:hidden;
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
}

/* Fine highlight line */
body.rp-enterprise .osm-item-heading-box::after,
.rp-enterprise .osm-item-heading-box::after{
    content:"";
    position:absolute;
    left:18px;
    right:18px;
    bottom:0;
    height:1px;
    background:linear-gradient(
        90deg,
        transparent,
        rgba(47,140,255,.55),
        rgba(132,87,255,.50),
        rgba(211,27,219,.35),
        transparent
    );
    opacity:.75;
}

/* Subtle card lift */
body.rp-enterprise .osm-item-heading-box,
body.rp-enterprise .osm-item-description,
.rp-enterprise .osm-item-heading-box,
.rp-enterprise .osm-item-description{
    transition:
        transform .24s ease,
        border-color .24s ease,
        box-shadow .24s ease,
        background .24s ease;
}

body.rp-enterprise .osm-item-wrapper:hover .osm-item-heading-box,
.rp-enterprise .osm-item-wrapper:hover .osm-item-heading-box{
    border-color:rgba(86,164,239,.48)!important;
}

body.rp-enterprise .osm-item-wrapper:hover .osm-item-description,
.rp-enterprise .osm-item-wrapper:hover .osm-item-description{
    border-color:rgba(86,164,239,.48)!important;
    box-shadow:
        0 22px 58px rgba(0,0,0,.36),
        0 0 0 1px rgba(77,151,224,.06),
        0 0 34px rgba(63,117,255,.08);
}

/* --------------------------------------------------------------------------
   11. PREMIUM PRODUCT TITLES
   -------------------------------------------------------------------------- */
body.rp-enterprise .osm-item-title a,
.rp-enterprise .osm-item-title a{
    background:linear-gradient(90deg,#ffffff 0%,#eef7ff 55%,#b9d9ff 100%);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
    text-shadow:none!important;
}

body.rp-enterprise .osm-item-title a:hover,
.rp-enterprise .osm-item-title a:hover{
    background:linear-gradient(90deg,#ffffff 0%,#8fc5ff 52%,#b58bff 100%);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
}

/* --------------------------------------------------------------------------
   12. PRODUCT IMAGE FRAME
   -------------------------------------------------------------------------- */
body.rp-enterprise .osm-item-description img,
.rp-enterprise .osm-item-description img{
    padding:3px!important;
    outline:1px solid rgba(47,140,255,.14);
    outline-offset:2px;
    transition:
        transform .24s ease,
        box-shadow .24s ease,
        border-color .24s ease,
        filter .24s ease;
}

body.rp-enterprise .osm-item-wrapper:hover .osm-item-description img,
.rp-enterprise .osm-item-wrapper:hover .osm-item-description img{
    transform:translateY(-2px) scale(1.015);
    border-color:rgba(71,165,255,.62)!important;
    box-shadow:
        0 16px 34px rgba(0,0,0,.34),
        0 0 24px rgba(47,140,255,.12);
    filter:saturate(1.04) contrast(1.02);
}

/* --------------------------------------------------------------------------
   13. SMART CTA INTERACTION
   -------------------------------------------------------------------------- */
body.rp-enterprise .osm-taskbar .btn,
.rp-enterprise .osm-taskbar .btn{
    position:relative;
    overflow:hidden;
}

body.rp-enterprise .osm-taskbar .btn::after,
.rp-enterprise .osm-taskbar .btn::after{
    content:"";
    position:absolute;
    top:-120%;
    left:-35%;
    width:32%;
    height:340%;
    transform:rotate(22deg);
    background:linear-gradient(
        90deg,
        transparent,
        rgba(255,255,255,.24),
        transparent
    );
    transition:left .45s ease;
    pointer-events:none;
}

body.rp-enterprise .osm-taskbar .btn:hover::after,
.rp-enterprise .osm-taskbar .btn:hover::after{
    left:112%;
}

body.rp-enterprise .osm-taskbar .btn-primary:hover,
.rp-enterprise .osm-taskbar .btn-primary:hover{
    box-shadow:
        0 14px 30px rgba(80,73,255,.30),
        0 0 24px rgba(211,27,219,.12)!important;
}

body.rp-enterprise .osm-taskbar .btn-secondary:hover,
.rp-enterprise .osm-taskbar .btn-secondary:hover{
    box-shadow:
        0 12px 26px rgba(0,0,0,.22),
        0 0 20px rgba(47,140,255,.10)!important;
}

/* Keyboard accessibility */
body.rp-enterprise .osm-taskbar .btn:focus-visible,
.rp-enterprise .osm-taskbar .btn:focus-visible,
body.rp-enterprise .osm-item-title a:focus-visible,
.rp-enterprise .osm-item-title a:focus-visible{
    outline:3px solid rgba(72,166,255,.72)!important;
    outline-offset:3px!important;
}

/* --------------------------------------------------------------------------
   14. SECTION / PAGE TITLE POLISH
   -------------------------------------------------------------------------- */
body.rp-enterprise #sp-main-body h1,
.rp-enterprise #sp-main-body h1{
    background:linear-gradient(90deg,#ffffff 0%,#f4f9ff 58%,#c7dcff 100%);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent;
}

body.rp-enterprise #sp-main-body h1::after,
.rp-enterprise #sp-main-body h1::after{
    box-shadow:
        0 0 14px rgba(47,140,255,.38),
        0 0 18px rgba(132,87,255,.22);
}

/* --------------------------------------------------------------------------
   15. BODY COPY REFINEMENT
   -------------------------------------------------------------------------- */
body.rp-enterprise .osm-item-description-text,
.rp-enterprise .osm-item-description-text{
    text-shadow:0 1px 0 rgba(0,0,0,.12);
}

body.rp-enterprise .osm-item-description-text a,
.rp-enterprise .osm-item-description-text a{
    color:#8fc5ff;
    text-decoration-color:rgba(143,197,255,.36);
    text-underline-offset:3px;
}

body.rp-enterprise .osm-item-description-text a:hover,
.rp-enterprise .osm-item-description-text a:hover{
    color:#c9e2ff;
}

/* --------------------------------------------------------------------------
   16. LARGE-SCREEN PRESENTATION
   -------------------------------------------------------------------------- */
@media(min-width:1200px){
    body.rp-enterprise .osm-item-wrapper,
    .rp-enterprise .osm-item-wrapper{
        transition:transform .26s ease;
    }

    body.rp-enterprise .osm-item-wrapper:hover,
    .rp-enterprise .osm-item-wrapper:hover{
        transform:translateY(-5px);
    }
}

/* --------------------------------------------------------------------------
   17. MOBILE SAFETY
   -------------------------------------------------------------------------- */
@media(max-width:767px){
    body.rp-enterprise .osm-item-wrapper::before,
    .rp-enterprise .osm-item-wrapper::before{
        inset:8px 10px -2px;
        filter:blur(12px);
        opacity:.48;
    }

    body.rp-enterprise .osm-item-wrapper:hover,
    .rp-enterprise .osm-item-wrapper:hover{
        transform:none;
    }

    body.rp-enterprise .osm-item-wrapper:hover .osm-item-description img,
    .rp-enterprise .osm-item-wrapper:hover .osm-item-description img{
        transform:none;
    }
}

/* --------------------------------------------------------------------------
   18. REDUCED MOTION OVERRIDE
   -------------------------------------------------------------------------- */
@media(prefers-reduced-motion:reduce){
    body.rp-enterprise .osm-item-wrapper:hover,
    .rp-enterprise .osm-item-wrapper:hover,
    body.rp-enterprise .osm-item-wrapper:hover .osm-item-description img,
    .rp-enterprise .osm-item-wrapper:hover .osm-item-description img{
        transform:none!important;
    }

    body.rp-enterprise .osm-taskbar .btn::after,
    .rp-enterprise .osm-taskbar .btn::after{
        display:none!important;
    }
}
/* ========================================================================== 
   ROULETTE PREDICTORS — ENTERPRISE ACCOUNT UI v1.0
   Milestone: M1 — Enterprise Account UI Foundation

   Load this file AFTER:
   roulette-predictors-enterprise-design-system-v1.1.css

   Joomla Menu Item -> Page Display -> Page Class:
     Login / Logout / Recovery / Profile: rp-account-ui
     Membership purchase / registration: rp-account-ui rp-membership-checkout

   This layer is presentation-only. It does not change forms, routes, tokens,
   authentication, registration, subscriptions or payment behaviour.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. ACCOUNT DESIGN TOKENS
   -------------------------------------------------------------------------- */
body.rp-account-ui,
.rp-account-ui {
    --rpa-bg:#020914;
    --rpa-panel:rgba(7,27,48,.96);
    --rpa-panel-2:rgba(10,35,59,.94);
    --rpa-panel-soft:rgba(12,42,70,.72);
    --rpa-border:rgba(83,157,232,.30);
    --rpa-border-strong:rgba(91,169,247,.52);
    --rpa-text:#f5f9ff;
    --rpa-text-soft:#d6e5f5;
    --rpa-muted:#9fb7cf;
    --rpa-blue:#2f8cff;
    --rpa-purple:#8057ff;
    --rpa-magenta:#d31bdb;
    --rpa-green:#29d987;
    --rpa-danger:#ff6b7d;
    --rpa-warning:#ffc857;
    --rpa-radius-xl:20px;
    --rpa-radius-lg:15px;
    --rpa-radius-md:11px;
    --rpa-shadow:0 22px 60px rgba(0,0,0,.34);
    --rpa-focus:0 0 0 3px rgba(47,140,255,.24);
}

/* --------------------------------------------------------------------------
   2. PAGE CANVAS AND CONTROLLED WIDTH
   -------------------------------------------------------------------------- */
body.rp-account-ui #sp-main,
.rp-account-ui #sp-main {
    background:
        linear-gradient(100deg,rgba(1,8,18,.97),rgba(3,18,34,.92)),
        url('/media/com_rpplatform/images/rp-platform-hero-background.png')
        center top / cover fixed no-repeat;
}

body.rp-account-ui #sp-main-body,
.rp-account-ui #sp-main-body {
    padding-top:46px;
    padding-bottom:56px;
    background:transparent!important;
    color:var(--rpa-text-soft);
}

body.rp-account-ui #sp-main-body > .container,
.rp-account-ui #sp-main-body > .container {
    width:min(100% - 32px,1080px)!important;
    max-width:1080px!important;
    margin-inline:auto;
}

body.rp-account-ui #sp-component,
.rp-account-ui #sp-component {
    min-width:0;
}

/* Remove the oversized commercial-title treatment inside account pages. */
body.rp-account-ui #sp-main-body h1,
.rp-account-ui #sp-main-body h1 {
    max-width:780px;
    margin:0 0 10px!important;
    color:var(--rpa-text)!important;
    background:none!important;
    -webkit-text-fill-color:currentColor!important;
    font-size:clamp(1.85rem,3vw,2.35rem)!important;
    line-height:1.16!important;
    font-weight:760!important;
    letter-spacing:-.025em!important;
    text-shadow:none!important;
}

body.rp-account-ui #sp-main-body h1::after,
.rp-account-ui #sp-main-body h1::after {
    width:66px!important;
    height:3px!important;
    margin-top:14px!important;
}

body.rp-account-ui #sp-main-body h2,
.rp-account-ui #sp-main-body h2 {
    margin:0 0 18px;
    color:var(--rpa-text)!important;
    font-size:clamp(1.35rem,2.2vw,1.7rem)!important;
    line-height:1.25;
    font-weight:720;
    letter-spacing:-.015em;
}

body.rp-account-ui #sp-main-body h3,
.rp-account-ui #sp-main-body h3 {
    margin:0 0 14px;
    color:var(--rpa-text)!important;
    font-size:1.1rem!important;
    line-height:1.35;
    font-weight:700;
}

/* Account UI also leaves the Helix Page Title completely menu-controlled. */

/* --------------------------------------------------------------------------
   3. SHARED ACCOUNT SURFACE
   -------------------------------------------------------------------------- */
body.rp-account-ui #sp-component > .login,
body.rp-account-ui #sp-component > .logout,
body.rp-account-ui #sp-component > .reset,
body.rp-account-ui #sp-component > .remind,
body.rp-account-ui #sp-component > .registration,
body.rp-account-ui #sp-component > .profile,
body.rp-account-ui #sp-component > .profile-edit,
.rp-account-ui #sp-component > .login,
.rp-account-ui #sp-component > .logout,
.rp-account-ui #sp-component > .reset,
.rp-account-ui #sp-component > .remind,
.rp-account-ui #sp-component > .registration,
.rp-account-ui #sp-component > .profile,
.rp-account-ui #sp-component > .profile-edit {
    position:relative;
    overflow:hidden;
    margin-inline:auto;
    padding:clamp(24px,4vw,40px)!important;
    border:1px solid var(--rpa-border);
    border-radius:var(--rpa-radius-xl);
    background:
        radial-gradient(circle at 92% 0%,rgba(128,87,255,.12),transparent 32%),
        linear-gradient(145deg,var(--rpa-panel),rgba(4,20,36,.98));
    box-shadow:var(--rpa-shadow);
}

body.rp-account-ui #sp-component > .login,
body.rp-account-ui #sp-component > .logout,
body.rp-account-ui #sp-component > .reset,
body.rp-account-ui #sp-component > .remind,
.rp-account-ui #sp-component > .login,
.rp-account-ui #sp-component > .logout,
.rp-account-ui #sp-component > .reset,
.rp-account-ui #sp-component > .remind {
    max-width:590px;
}

body.rp-account-ui #sp-component > .registration,
body.rp-account-ui #sp-component > .profile,
body.rp-account-ui #sp-component > .profile-edit,
.rp-account-ui #sp-component > .registration,
.rp-account-ui #sp-component > .profile,
.rp-account-ui #sp-component > .profile-edit {
    max-width:1040px;
}

/* --------------------------------------------------------------------------
   4. FORMS AND INPUTS
   -------------------------------------------------------------------------- */
body.rp-account-ui #sp-component form,
.rp-account-ui #sp-component form {
    margin:0;
}

body.rp-account-ui #sp-component .control-group,
body.rp-account-ui #sp-component .mb-3,
.rp-account-ui #sp-component .control-group,
.rp-account-ui #sp-component .mb-3 {
    margin-bottom:18px!important;
}

body.rp-account-ui #sp-component label,
.rp-account-ui #sp-component label {
    display:inline-block;
    margin-bottom:7px;
    color:var(--rpa-text-soft)!important;
    font-size:.92rem;
    line-height:1.35;
    font-weight:650;
}

body.rp-account-ui #sp-component .form-control,
body.rp-account-ui #sp-component .form-select,
body.rp-account-ui #sp-component input[type="text"],
body.rp-account-ui #sp-component input[type="email"],
body.rp-account-ui #sp-component input[type="password"],
body.rp-account-ui #sp-component input[type="tel"],
body.rp-account-ui #sp-component input[type="number"],
body.rp-account-ui #sp-component select,
body.rp-account-ui #sp-component textarea,
.rp-account-ui #sp-component .form-control,
.rp-account-ui #sp-component .form-select,
.rp-account-ui #sp-component input[type="text"],
.rp-account-ui #sp-component input[type="email"],
.rp-account-ui #sp-component input[type="password"],
.rp-account-ui #sp-component input[type="tel"],
.rp-account-ui #sp-component input[type="number"],
.rp-account-ui #sp-component select,
.rp-account-ui #sp-component textarea {
    width:100%;
    min-height:48px;
    padding:11px 14px;
    color:#10243a!important;
    border:1px solid rgba(126,164,202,.58)!important;
    border-radius:var(--rpa-radius-md)!important;
    background:#f8fbff!important;
    font-size:1rem!important;
    line-height:1.4;
    box-shadow:inset 0 1px 2px rgba(0,0,0,.04)!important;
    transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}

body.rp-account-ui #sp-component textarea,
.rp-account-ui #sp-component textarea {
    min-height:120px;
    resize:vertical;
}

body.rp-account-ui #sp-component .form-control:focus,
body.rp-account-ui #sp-component .form-select:focus,
body.rp-account-ui #sp-component input:focus,
body.rp-account-ui #sp-component select:focus,
body.rp-account-ui #sp-component textarea:focus,
.rp-account-ui #sp-component .form-control:focus,
.rp-account-ui #sp-component .form-select:focus,
.rp-account-ui #sp-component input:focus,
.rp-account-ui #sp-component select:focus,
.rp-account-ui #sp-component textarea:focus {
    border-color:var(--rpa-blue)!important;
    background:#fff!important;
    box-shadow:var(--rpa-focus)!important;
    outline:0!important;
}

body.rp-account-ui #sp-component .input-group,
.rp-account-ui #sp-component .input-group {
    overflow:hidden;
    border-radius:var(--rpa-radius-md);
}

body.rp-account-ui #sp-component .input-group .form-control,
.rp-account-ui #sp-component .input-group .form-control {
    border-radius:0!important;
}

body.rp-account-ui #sp-component .input-group-text,
body.rp-account-ui #sp-component .input-password-toggle,
.rp-account-ui #sp-component .input-group-text,
.rp-account-ui #sp-component .input-password-toggle {
    min-width:48px;
    color:#dcecff!important;
    border-color:rgba(126,164,202,.58)!important;
    background:#17344f!important;
}

body.rp-account-ui #sp-component .form-text,
body.rp-account-ui #sp-component .text-muted,
.rp-account-ui #sp-component .form-text,
.rp-account-ui #sp-component .text-muted {
    color:var(--rpa-muted)!important;
    font-size:.84rem;
}

body.rp-account-ui #sp-component .invalid-feedback,
body.rp-account-ui #sp-component .form-error,
.rp-account-ui #sp-component .invalid-feedback,
.rp-account-ui #sp-component .form-error {
    margin-top:6px;
    color:#ff94a1!important;
    font-size:.84rem;
    font-weight:600;
}

/* --------------------------------------------------------------------------
   5. BUTTON SYSTEM
   -------------------------------------------------------------------------- */
body.rp-account-ui #sp-component .btn,
.rp-account-ui #sp-component .btn {
    min-height:46px;
    padding:10px 20px;
    border-radius:10px!important;
    font-size:.96rem!important;
    line-height:1.35;
    font-weight:750!important;
    text-decoration:none!important;
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}

body.rp-account-ui #sp-component .btn:hover,
.rp-account-ui #sp-component .btn:hover {
    transform:translateY(-1px);
}

body.rp-account-ui #sp-component .btn-primary,
body.rp-account-ui #sp-component button[type="submit"],
.rp-account-ui #sp-component .btn-primary,
.rp-account-ui #sp-component button[type="submit"] {
    color:#fff!important;
    border:1px solid rgba(115,110,255,.65)!important;
    background:linear-gradient(100deg,var(--rpa-blue),var(--rpa-purple),var(--rpa-magenta))!important;
    box-shadow:0 11px 26px rgba(75,80,255,.22)!important;
}

body.rp-account-ui #sp-component .btn-primary:hover,
body.rp-account-ui #sp-component button[type="submit"]:hover,
.rp-account-ui #sp-component .btn-primary:hover,
.rp-account-ui #sp-component button[type="submit"]:hover {
    box-shadow:0 14px 31px rgba(80,75,255,.32)!important;
}

body.rp-account-ui #sp-component .btn-secondary,
body.rp-account-ui #sp-component .btn-dark,
.rp-account-ui #sp-component .btn-secondary,
.rp-account-ui #sp-component .btn-dark {
    color:var(--rpa-text-soft)!important;
    border:1px solid var(--rpa-border)!important;
    background:rgba(10,39,66,.92)!important;
}

body.rp-account-ui #sp-component .btn:focus-visible,
body.rp-account-ui #sp-component a:focus-visible,
.rp-account-ui #sp-component .btn:focus-visible,
.rp-account-ui #sp-component a:focus-visible {
    outline:3px solid rgba(74,166,255,.72)!important;
    outline-offset:3px!important;
}

/* --------------------------------------------------------------------------
   6. LOGIN AND RECOVERY LINKS
   -------------------------------------------------------------------------- */
body.rp-account-ui #com-users-login__form,
.rp-account-ui #com-users-login__form {
    width:100%;
}

body.rp-account-ui #com-users-login__form .btn-primary,
.rp-account-ui #com-users-login__form .btn-primary {
    width:100%;
    margin-top:4px;
}

body.rp-account-ui #com-users-login__form .btn-secondary,
body.rp-account-ui #com-users-login__form .btn-dark,
.rp-account-ui #com-users-login__form .btn-secondary,
.rp-account-ui #com-users-login__form .btn-dark {
    width:100%;
}

body.rp-account-ui #sp-component .login + div .list-group,
body.rp-account-ui #sp-component .login .list-group,
.rp-account-ui #sp-component .login + div .list-group,
.rp-account-ui #sp-component .login .list-group {
    display:grid;
    gap:8px;
    margin-top:18px;
    border:0;
    background:transparent;
}

body.rp-account-ui #sp-component .login .list-group-item,
.rp-account-ui #sp-component .login .list-group-item {
    padding:11px 14px;
    color:#b9d9f8!important;
    border:1px solid rgba(83,157,232,.20)!important;
    border-radius:9px!important;
    background:rgba(8,35,59,.60)!important;
    font-size:.92rem;
    text-decoration:none!important;
}

body.rp-account-ui #sp-component .login .list-group-item:hover,
.rp-account-ui #sp-component .login .list-group-item:hover {
    color:#fff!important;
    border-color:var(--rpa-border-strong)!important;
    background:rgba(13,49,82,.92)!important;
}

/* --------------------------------------------------------------------------
   7. LOGOUT
   -------------------------------------------------------------------------- */
body.rp-account-ui #sp-component > .logout,
.rp-account-ui #sp-component > .logout {
    text-align:center;
}

body.rp-account-ui #sp-component > .logout form,
.rp-account-ui #sp-component > .logout form {
    display:flex;
    justify-content:center;
    margin-top:22px;
}

body.rp-account-ui #sp-component > .logout .btn,
.rp-account-ui #sp-component > .logout .btn {
    min-width:160px;
}

/* --------------------------------------------------------------------------
   8. PROFILE — CARDS INSTEAD OF EDGE-TO-EDGE TABLES
   -------------------------------------------------------------------------- */
body.rp-account-ui #sp-component .profile .btn-toolbar,
.rp-account-ui #sp-component .profile .btn-toolbar {
    display:flex;
    justify-content:flex-end;
    margin:0 0 18px;
}

body.rp-account-ui #sp-component .profile fieldset,
body.rp-account-ui #sp-component .profile .dl-horizontal,
body.rp-account-ui #sp-component .profile .list-group,
.rp-account-ui #sp-component .profile fieldset,
.rp-account-ui #sp-component .profile .dl-horizontal,
.rp-account-ui #sp-component .profile .list-group {
    margin:0 0 20px;
    padding:20px;
    border:1px solid var(--rpa-border)!important;
    border-radius:var(--rpa-radius-lg)!important;
    background:linear-gradient(145deg,var(--rpa-panel-2),rgba(6,25,43,.94))!important;
}

body.rp-account-ui #sp-component .profile legend,
.rp-account-ui #sp-component .profile legend {
    float:none;
    width:auto;
    margin:0 0 15px;
    padding:0;
    color:var(--rpa-text)!important;
    border:0;
    font-size:1.08rem!important;
    font-weight:750;
}

body.rp-account-ui #sp-component .profile dl,
.rp-account-ui #sp-component .profile dl {
    display:grid;
    grid-template-columns:minmax(150px,220px) minmax(0,1fr);
    margin:0;
}

body.rp-account-ui #sp-component .profile dt,
body.rp-account-ui #sp-component .profile dd,
.rp-account-ui #sp-component .profile dt,
.rp-account-ui #sp-component .profile dd {
    margin:0;
    padding:11px 12px;
    border-bottom:1px solid rgba(109,155,200,.16);
}

body.rp-account-ui #sp-component .profile dt,
.rp-account-ui #sp-component .profile dt {
    color:#eaf4ff;
    font-weight:700;
}

body.rp-account-ui #sp-component .profile dd,
.rp-account-ui #sp-component .profile dd {
    color:var(--rpa-text-soft);
}

body.rp-account-ui #sp-component .profile dt:last-of-type,
body.rp-account-ui #sp-component .profile dd:last-of-type,
.rp-account-ui #sp-component .profile dt:last-of-type,
.rp-account-ui #sp-component .profile dd:last-of-type {
    border-bottom:0;
}

body.rp-account-ui #sp-component .profile .list-group-item,
.rp-account-ui #sp-component .profile .list-group-item {
    padding:11px 12px;
    color:var(--rpa-text-soft)!important;
    border-color:rgba(109,155,200,.16)!important;
    background:transparent!important;
}

/* Prevent legacy profile tables from stretching visually across the viewport. */
body.rp-account-ui #sp-component .profile table,
.rp-account-ui #sp-component .profile table {
    width:100%;
    margin:0 0 20px;
    overflow:hidden;
    color:var(--rpa-text-soft);
    border:1px solid var(--rpa-border);
    border-collapse:separate;
    border-spacing:0;
    border-radius:var(--rpa-radius-lg);
    background:var(--rpa-panel-2);
}

body.rp-account-ui #sp-component .profile th,
body.rp-account-ui #sp-component .profile td,
.rp-account-ui #sp-component .profile th,
.rp-account-ui #sp-component .profile td {
    padding:12px 15px!important;
    color:inherit!important;
    border-color:rgba(109,155,200,.16)!important;
    background:transparent!important;
    text-align:left;
}

body.rp-account-ui #sp-component .profile th,
.rp-account-ui #sp-component .profile th {
    width:32%;
    color:#eef6ff!important;
    font-weight:700;
}

/* --------------------------------------------------------------------------
   9. MEMBERSHIP PRO REGISTRATION / PURCHASE
   -------------------------------------------------------------------------- */
body.rp-membership-checkout #sp-main-body > .container,
.rp-membership-checkout #sp-main-body > .container {
    width:min(100% - 32px,1120px)!important;
    max-width:1120px!important;
}

body.rp-membership-checkout #osm-form,
body.rp-membership-checkout .osm-form,
body.rp-membership-checkout #osm-registration-form,
.rp-membership-checkout #osm-form,
.rp-membership-checkout .osm-form,
.rp-membership-checkout #osm-registration-form {
    max-width:1040px;
    margin-inline:auto;
    padding:clamp(24px,4vw,40px)!important;
    border:1px solid var(--rpa-border)!important;
    border-radius:var(--rpa-radius-xl)!important;
    background:
        radial-gradient(circle at 92% 0%,rgba(128,87,255,.12),transparent 32%),
        linear-gradient(145deg,var(--rpa-panel),rgba(4,20,36,.98))!important;
    box-shadow:var(--rpa-shadow);
}

body.rp-membership-checkout #sp-component .osm-form .row,
body.rp-membership-checkout #sp-component #osm-registration-form .row,
.rp-membership-checkout #sp-component .osm-form .row,
.rp-membership-checkout #sp-component #osm-registration-form .row {
    --bs-gutter-x:24px;
}

body.rp-membership-checkout #sp-component .osm-form h1,
body.rp-membership-checkout #sp-component .osm-form h2,
body.rp-membership-checkout #sp-component #osm-registration-form h1,
body.rp-membership-checkout #sp-component #osm-registration-form h2,
.rp-membership-checkout #sp-component .osm-form h1,
.rp-membership-checkout #sp-component .osm-form h2,
.rp-membership-checkout #sp-component #osm-registration-form h1,
.rp-membership-checkout #sp-component #osm-registration-form h2 {
    font-size:clamp(1.35rem,2.2vw,1.8rem)!important;
    line-height:1.25!important;
}

body.rp-membership-checkout #sp-component .osm-form .form-horizontal,
body.rp-membership-checkout #sp-component #osm-registration-form .form-horizontal,
.rp-membership-checkout #sp-component .osm-form .form-horizontal,
.rp-membership-checkout #sp-component #osm-registration-form .form-horizontal {
    max-width:900px;
}

body.rp-membership-checkout #sp-component .osm-form .control-label,
body.rp-membership-checkout #sp-component #osm-registration-form .control-label,
.rp-membership-checkout #sp-component .osm-form .control-label,
.rp-membership-checkout #sp-component #osm-registration-form .control-label {
    width:auto!important;
    padding-top:0!important;
    text-align:left!important;
}

body.rp-membership-checkout #sp-component .osm-form .controls,
body.rp-membership-checkout #sp-component #osm-registration-form .controls,
.rp-membership-checkout #sp-component .osm-form .controls,
.rp-membership-checkout #sp-component #osm-registration-form .controls {
    margin-left:0!important;
}

body.rp-membership-checkout #sp-component .osm-price,
body.rp-membership-checkout #sp-component .payment-information,
body.rp-membership-checkout #sp-component .osm-payment-information,
.rp-membership-checkout #sp-component .osm-price,
.rp-membership-checkout #sp-component .payment-information,
.rp-membership-checkout #sp-component .osm-payment-information {
    max-width:420px;
    margin:22px 0;
    padding:18px 20px;
    border:1px solid var(--rpa-border);
    border-radius:var(--rpa-radius-lg);
    background:var(--rpa-panel-soft);
}

/* --------------------------------------------------------------------------
   10. JOOMLA MESSAGES
   -------------------------------------------------------------------------- */
body.rp-account-ui #system-message-container,
.rp-account-ui #system-message-container {
    max-width:1040px;
    margin:0 auto 20px;
}

body.rp-account-ui #system-message-container .alert,
.rp-account-ui #system-message-container .alert {
    padding:14px 16px;
    border-radius:var(--rpa-radius-md);
    font-size:.92rem;
    box-shadow:0 10px 24px rgba(0,0,0,.18);
}

body.rp-account-ui #system-message-container .alert-success,
.rp-account-ui #system-message-container .alert-success {
    color:#caffdf;
    border-color:rgba(41,217,135,.48);
    background:rgba(4,67,43,.90);
}

body.rp-account-ui #system-message-container .alert-danger,
body.rp-account-ui #system-message-container .alert-error,
.rp-account-ui #system-message-container .alert-danger,
.rp-account-ui #system-message-container .alert-error {
    color:#ffd3d8;
    border-color:rgba(255,107,125,.50);
    background:rgba(80,16,30,.92);
}

/* --------------------------------------------------------------------------
   11. RESPONSIVE SAFETY
   -------------------------------------------------------------------------- */
@media (max-width:767px) {
    body.rp-account-ui #sp-main,
    .rp-account-ui #sp-main {
        background-attachment:scroll;
        background-position:65% top;
    }

    body.rp-account-ui #sp-main-body,
    .rp-account-ui #sp-main-body {
        padding-top:24px;
        padding-bottom:34px;
    }

    body.rp-account-ui #sp-main-body > .container,
    body.rp-membership-checkout #sp-main-body > .container,
    .rp-account-ui #sp-main-body > .container,
    .rp-membership-checkout #sp-main-body > .container {
        width:min(100% - 20px,1080px)!important;
    }

    body.rp-account-ui #sp-component > .login,
    body.rp-account-ui #sp-component > .logout,
    body.rp-account-ui #sp-component > .reset,
    body.rp-account-ui #sp-component > .remind,
    body.rp-account-ui #sp-component > .registration,
    body.rp-account-ui #sp-component > .profile,
    body.rp-account-ui #sp-component > .profile-edit,
    .rp-account-ui #sp-component > .login,
    .rp-account-ui #sp-component > .logout,
    .rp-account-ui #sp-component > .reset,
    .rp-account-ui #sp-component > .remind,
    .rp-account-ui #sp-component > .registration,
    .rp-account-ui #sp-component > .profile,
    .rp-account-ui #sp-component > .profile-edit {
        padding:22px 17px!important;
        border-radius:15px;
    }

    body.rp-account-ui #sp-main-body h1,
    .rp-account-ui #sp-main-body h1 {
        font-size:1.75rem!important;
    }

    body.rp-account-ui #sp-component .profile dl,
    .rp-account-ui #sp-component .profile dl {
        display:block;
    }

    body.rp-account-ui #sp-component .profile dt,
    .rp-account-ui #sp-component .profile dt {
        padding-bottom:3px;
        border-bottom:0;
    }

    body.rp-account-ui #sp-component .profile dd,
    .rp-account-ui #sp-component .profile dd {
        padding-top:3px;
    }

    body.rp-account-ui #sp-component .profile th,
    body.rp-account-ui #sp-component .profile td,
    .rp-account-ui #sp-component .profile th,
    .rp-account-ui #sp-component .profile td {
        display:block;
        width:100%!important;
    }

    body.rp-account-ui #sp-component .profile th,
    .rp-account-ui #sp-component .profile th {
        padding-bottom:3px!important;
        border-bottom:0!important;
    }

    body.rp-account-ui #sp-component .profile td,
    .rp-account-ui #sp-component .profile td {
        padding-top:3px!important;
    }

    body.rp-membership-checkout #osm-form,
    body.rp-membership-checkout .osm-form,
    body.rp-membership-checkout #osm-registration-form,
    .rp-membership-checkout #osm-form,
    .rp-membership-checkout .osm-form,
    .rp-membership-checkout #osm-registration-form {
        padding:22px 17px!important;
        border-radius:15px!important;
    }
}

/* ========================================================================== 
   M1.5 — MEMBERSHIP DETAILS & CHECKOUT UI
   Scope: rp-enterprise rp-account-ui rp-membership-checkout only
   Presentation only — no Membership Pro behaviour is modified.
   ========================================================================== */

/* Controlled checkout canvas. */
body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-main-body > .container,
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-main-body > .container {
    width:min(100% - 32px,1180px)!important;
    max-width:1180px!important;
    margin-inline:auto!important;
}

body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component,
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component {
    width:100%!important;
    max-width:1180px!important;
    margin-inline:auto!important;
}

/* Product detail data tables, including Membership Pro variants without
   the usual osm-plan-details wrapper. */
body.rp-enterprise.rp-membership-checkout #sp-component table,
.rp-enterprise.rp-membership-checkout #sp-component table {
    width:100%!important;
    color:#111827!important;
    border:1px solid #c5ced8!important;
    border-collapse:separate!important;
    border-spacing:0!important;
    border-radius:10px!important;
    background:#fff!important;
    box-shadow:0 8px 22px rgba(0,0,0,.10)!important;
    font-size:12px!important;
    line-height:1.35!important;
    font-weight:700!important;
    overflow:hidden!important;
}

body.rp-enterprise.rp-membership-checkout #sp-component table th,
body.rp-enterprise.rp-membership-checkout #sp-component table td,
.rp-enterprise.rp-membership-checkout #sp-component table th,
.rp-enterprise.rp-membership-checkout #sp-component table td {
    padding:10px 12px!important;
    color:#111827!important;
    border-color:#c5ced8!important;
    background:#fff!important;
    font-size:12px!important;
    line-height:1.35!important;
    font-weight:700!important;
    text-align:left!important;
    text-shadow:none!important;
    vertical-align:middle!important;
}

body.rp-enterprise.rp-membership-checkout #sp-component table th,
body.rp-enterprise.rp-membership-checkout #sp-component table td:first-child,
.rp-enterprise.rp-membership-checkout #sp-component table th,
.rp-enterprise.rp-membership-checkout #sp-component table td:first-child {
    color:#0f172a!important;
    background:#eef2f6!important;
    font-weight:800!important;
}

/* Compact professional Membership Pro form surface. Broad form matching is
   safe here because the page class is dedicated to purchase/registration. */
body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form,
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form {
    width:100%!important;
    max-width:920px!important;
    margin:0 auto 24px!important;
    padding:clamp(20px,3vw,30px)!important;
    border:1px solid rgba(91,169,247,.36)!important;
    border-radius:16px!important;
    background:linear-gradient(145deg,rgba(8,31,54,.97),rgba(4,20,36,.98))!important;
    box-shadow:0 18px 48px rgba(0,0,0,.28)!important;
}

body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form h1,
body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form h2,
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form h1,
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form h2 {
    margin:0 0 18px!important;
    font-size:clamp(1.35rem,2.2vw,1.75rem)!important;
    line-height:1.2!important;
}

body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form .control-group,
body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form .form-group,
body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form .mb-3,
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form .control-group,
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form .form-group,
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form .mb-3 {
    width:100%!important;
    max-width:720px!important;
    margin:0 0 14px!important;
}

body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form label,
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form label {
    margin:0 0 6px!important;
    color:#e9f3ff!important;
    font-size:13px!important;
    line-height:1.3!important;
    font-weight:750!important;
}

body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form input[type="text"],
body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form input[type="email"],
body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form input[type="password"],
body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form input[type="tel"],
body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form input[type="number"],
body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form select,
body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form .form-control,
body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form .form-select,
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form input[type="text"],
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form input[type="email"],
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form input[type="password"],
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form input[type="tel"],
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form input[type="number"],
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form select,
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form .form-control,
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form .form-select {
    width:100%!important;
    max-width:560px!important;
    min-height:44px!important;
    height:44px!important;
    padding:9px 13px!important;
    color:#111827!important;
    border:1px solid #aebdcd!important;
    border-radius:9px!important;
    background:#fff!important;
    font-size:14px!important;
    line-height:1.35!important;
    font-weight:600!important;
    box-shadow:none!important;
}

body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form textarea,
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form textarea {
    width:100%!important;
    max-width:720px!important;
    min-height:112px!important;
    height:112px!important;
    padding:11px 13px!important;
    color:#111827!important;
    border:1px solid #aebdcd!important;
    border-radius:9px!important;
    background:#fff!important;
    font-size:14px!important;
    line-height:1.45!important;
    font-weight:500!important;
    resize:vertical!important;
    box-shadow:none!important;
}

body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form .input-group,
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form .input-group {
    width:100%!important;
    max-width:560px!important;
}

body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form .btn-secondary,
body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form .btn-dark,
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form .btn-secondary,
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form .btn-dark {
    width:100%!important;
    max-width:560px!important;
}

body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form .btn,
body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form button,
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form .btn,
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form button {
    min-height:42px!important;
    padding:9px 18px!important;
    border-radius:9px!important;
    font-size:14px!important;
    line-height:1.3!important;
    font-weight:800!important;
}

body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component .payment-information,
body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component .osm-payment-information,
body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component .osm-price,
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component .payment-information,
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component .osm-payment-information,
.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component .osm-price {
    width:100%!important;
    max-width:560px!important;
    margin:18px 0!important;
    padding:18px!important;
    border:1px solid rgba(91,169,247,.30)!important;
    border-radius:12px!important;
    background:rgba(10,35,59,.82)!important;
}

@media (max-width:767px) {
    body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-main-body > .container,
    .rp-enterprise.rp-account-ui.rp-membership-checkout #sp-main-body > .container {
        width:min(100% - 20px,1180px)!important;
    }

    body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form,
    .rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form {
        padding:18px 14px!important;
        border-radius:13px!important;
    }

    body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form input[type="text"],
    body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form input[type="email"],
    body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form input[type="password"],
    body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form select,
    body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form textarea,
    body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form .form-control,
    body.rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form .form-select,
    .rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form input[type="text"],
    .rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form input[type="email"],
    .rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form input[type="password"],
    .rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form select,
    .rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form textarea,
    .rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form .form-control,
    .rp-enterprise.rp-account-ui.rp-membership-checkout #sp-component form .form-select {
        max-width:none!important;
    }
}

@media (prefers-reduced-motion:reduce) {
    body.rp-account-ui *,
    body.rp-account-ui *::before,
    body.rp-account-ui *::after,
    .rp-account-ui *,
    .rp-account-ui *::before,
    .rp-account-ui *::after {
        scroll-behavior:auto!important;
        transition:none!important;
        animation:none!important;
    }
}

/* ========================================================================== 
   M1.1 — MEMBERSHIP UI AND VERTICAL-SPACING CORRECTIONS
   Scope: pages using the rp-enterprise Page Class.
   Product listing/detail pages keep ONLY: rp-enterprise
   ========================================================================== */

/* Remove the legacy Helix main-body top gap under the menu/page-title area.
   Account pages intentionally restore their own controlled spacing later in
   the cascade through the more specific rp-account-ui rules. */
body.rp-enterprise #sp-main-body,
.rp-enterprise #sp-main-body {
    padding-top:0!important;
}

body.rp-enterprise.rp-account-ui #sp-main-body,
.rp-enterprise.rp-account-ui #sp-main-body {
    padding-top:46px!important;
}

/* Hide only Membership Pro's duplicate component heading above the cards.
   Never hide the Helix .sp-page-title-heading: it contains the menu item's
   Alternative Title and must remain controlled by Page Title settings. */
body.rp-enterprise #osm-plans-list-columns > h1,
body.rp-enterprise #osm-plans-list-columns > .page-header,
body.rp-enterprise #osm-plans-list-columns > .osm-page-header,
.rp-enterprise #osm-plans-list-columns > h1,
.rp-enterprise #osm-plans-list-columns > .page-header,
.rp-enterprise #osm-plans-list-columns > .osm-page-header,
body.rp-enterprise.com-osmembership #sp-component > h1,
body.rp-enterprise.com_osmembership #sp-component > h1,
body.rp-enterprise[class*="com-osmembership"] #sp-component > h1,
body.rp-enterprise[class*="com_osmembership"] #sp-component > h1,
body.rp-enterprise #sp-component > .osm-container > h1,
body.rp-enterprise #sp-component > .eb-container > h1,
body.rp-enterprise #sp-component > .page-header:has(+ #osm-plans-list-columns),
body.rp-enterprise #sp-component > h1:has(+ #osm-plans-list-columns),
.rp-enterprise #sp-component > .osm-container > h1,
.rp-enterprise #sp-component > .eb-container > h1,
.rp-enterprise #sp-component > .page-header:has(+ #osm-plans-list-columns),
.rp-enterprise #sp-component > h1:has(+ #osm-plans-list-columns) {
    display:none!important;
}

/* Membership Pro may wrap the list heading one or two levels above the
   product grid. Detect the plans-list page itself and remove only its
   introductory component heading. Helix .sp-page-title stays untouched. */
body.rp-enterprise #sp-component:has(#osm-plans-list-columns) > h1,
body.rp-enterprise #sp-component:has(#osm-plans-list-columns) > .page-header,
body.rp-enterprise #sp-component:has(#osm-plans-list-columns) > div > h1:first-child,
body.rp-enterprise #sp-component:has(#osm-plans-list-columns) > div > .page-header:first-child,
body.rp-enterprise #sp-component:has(#osm-plans-list-columns) > div > div > h1:first-child,
body.rp-enterprise #sp-component:has(#osm-plans-list-columns) > div > div > .page-header:first-child,
.rp-enterprise #sp-component:has(#osm-plans-list-columns) > h1,
.rp-enterprise #sp-component:has(#osm-plans-list-columns) > .page-header,
.rp-enterprise #sp-component:has(#osm-plans-list-columns) > div > h1:first-child,
.rp-enterprise #sp-component:has(#osm-plans-list-columns) > div > .page-header:first-child,
.rp-enterprise #sp-component:has(#osm-plans-list-columns) > div > div > h1:first-child,
.rp-enterprise #sp-component:has(#osm-plans-list-columns) > div > div > .page-header:first-child {
    display:none!important;
    margin:0!important;
    padding:0!important;
}

/* Reduce any remaining empty introductory block before the three product
   cards without changing the card grid width. */
body.rp-enterprise #osm-plans-list-columns > .osm-description:empty,
body.rp-enterprise #osm-plans-list-columns > .osm-description p:empty,
.rp-enterprise #osm-plans-list-columns > .osm-description:empty,
.rp-enterprise #osm-plans-list-columns > .osm-description p:empty {
    display:none!important;
    margin:0!important;
    padding:0!important;
}

body.rp-enterprise #osm-plans-list-columns,
.rp-enterprise #osm-plans-list-columns {
    padding-top:0!important;
}

/* Product detail property tables: high-contrast white surface, compact
   12px bold black text. The selectors intentionally stay inside common
   Membership Pro detail wrappers and never affect account/profile tables. */
body.rp-enterprise #osm-plan-details table,
body.rp-enterprise .osm-plan-details table,
body.rp-enterprise .osm-plan-details-table,
body.rp-enterprise .osm-plan-properties,
body.rp-enterprise .osm-plan-property-table,
.rp-enterprise #osm-plan-details table,
.rp-enterprise .osm-plan-details table,
.rp-enterprise .osm-plan-details-table,
.rp-enterprise .osm-plan-properties,
.rp-enterprise .osm-plan-property-table {
    width:100%;
    color:#111827!important;
    border:1px solid #aeb8c4!important;
    border-collapse:collapse!important;
    border-spacing:0!important;
    border-radius:0!important;
    background:#fff!important;
    box-shadow:none!important;
    font-size:12px!important;
    font-weight:700!important;
}

body.rp-enterprise #osm-plan-details table th,
body.rp-enterprise #osm-plan-details table td,
body.rp-enterprise .osm-plan-details table th,
body.rp-enterprise .osm-plan-details table td,
body.rp-enterprise .osm-plan-details-table th,
body.rp-enterprise .osm-plan-details-table td,
body.rp-enterprise .osm-plan-properties th,
body.rp-enterprise .osm-plan-properties td,
body.rp-enterprise .osm-plan-property-table th,
body.rp-enterprise .osm-plan-property-table td,
.rp-enterprise #osm-plan-details table th,
.rp-enterprise #osm-plan-details table td,
.rp-enterprise .osm-plan-details table th,
.rp-enterprise .osm-plan-details table td,
.rp-enterprise .osm-plan-details-table th,
.rp-enterprise .osm-plan-details-table td,
.rp-enterprise .osm-plan-properties th,
.rp-enterprise .osm-plan-properties td,
.rp-enterprise .osm-plan-property-table th,
.rp-enterprise .osm-plan-property-table td {
    padding:11px 12px!important;
    color:#111827!important;
    border:1px solid #aeb8c4!important;
    background:#fff!important;
    font-size:12px!important;
    line-height:1.35!important;
    font-weight:700!important;
    text-align:left;
    text-shadow:none!important;
}

body.rp-enterprise #osm-plan-details table th,
body.rp-enterprise .osm-plan-details table th,
body.rp-enterprise .osm-plan-details-table th,
body.rp-enterprise .osm-plan-properties th,
body.rp-enterprise .osm-plan-property-table th,
.rp-enterprise #osm-plan-details table th,
.rp-enterprise .osm-plan-details table th,
.rp-enterprise .osm-plan-details-table th,
.rp-enterprise .osm-plan-properties th,
.rp-enterprise .osm-plan-property-table th {
    background:#f0f3f7!important;
    font-weight:800!important;
}

@media (max-width:767px) {
    body.rp-enterprise.rp-account-ui #sp-main-body,
    .rp-enterprise.rp-account-ui #sp-main-body {
        padding-top:24px!important;
    }

    body.rp-enterprise #osm-plan-details table th,
    body.rp-enterprise #osm-plan-details table td,
    body.rp-enterprise .osm-plan-details table th,
    body.rp-enterprise .osm-plan-details table td,
    .rp-enterprise #osm-plan-details table th,
    .rp-enterprise #osm-plan-details table td,
    .rp-enterprise .osm-plan-details table th,
    .rp-enterprise .osm-plan-details table td {
        padding:9px 10px!important;
    }
}
