/* ============================================================
   RESET
============================================================ */

.snpa-auth,
.snpa-auth *,
.snpa-auth *::before,
.snpa-auth *::after{
    box-sizing:border-box;
}


.snpa-auth{

    --snpa-orange:var(--core-primary,#7B1E3A);
    --snpa-orange-dark:var(--core-primary-hover,#5E1529);
    --snpa-orange-soft:#FFF4EE;

    --snpa-heading:#121212;
    --snpa-text:#5F6670;
    --snpa-muted:#8A9099;

    --snpa-border:#E8E8E8;
    --snpa-field:#FAFAFA;

    width:100%;

    max-width:var(--core-content-width,1700px);

    margin:
        36px
        auto
        60px;

    padding:
        0
        20px;

    font-family:
        "Poppins",
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        sans-serif;

    color:
        var(--snpa-heading);
}


.snpa-auth button,
.snpa-auth input{
    font-family:inherit !important;
}


.snpa-auth a{
    text-decoration:none !important;
}



/* ============================================================
   NOTICES
============================================================ */

.snpa-notices{
    width:100%;

    max-width:760px;

    margin:
        0
        auto
        16px;
}


.snpa-notices:empty{
    display:none;
}


.snpa-auth
.woocommerce-error,
.snpa-auth
.woocommerce-message,
.snpa-auth
.woocommerce-info{

    margin:
        0
        0
        10px !important;

    padding:
        13px
        16px !important;

    border:
        1px solid
        var(--snpa-border) !important;

    border-top:
        1px solid
        var(--snpa-border) !important;

    border-radius:
        10px !important;

    background:#FFFFFF !important;

    color:#333333 !important;

    box-shadow:
        none !important;

    font-size:
        12px !important;

    line-height:
        1.5 !important;

    list-style:
        none !important;
}


.snpa-auth
.woocommerce-error{

    border-left:
        3px solid
        #D92D20 !important;
}


.snpa-auth
.woocommerce-message{

    border-left:
        3px solid
        #17A673 !important;
}


.snpa-auth
.woocommerce-error::before,
.snpa-auth
.woocommerce-message::before,
.snpa-auth
.woocommerce-info::before{

    display:none !important;
}



/* ============================================================
   SHELL
============================================================ */

.snpa-shell{

    width:100%;

    min-height:640px;

    display:grid;

    grid-template-columns:
        minmax(0, .92fr)
        minmax(500px, 1.08fr);

    overflow:hidden;

    border:
        1px solid
        var(--snpa-border);

    border-radius:
        20px;

    background:#FFFFFF;

    box-shadow:
        0
        20px
        60px
        rgba(
            18,
            18,
            18,
            .05
        );
}



/* ============================================================
   LEFT INTRO
============================================================ */

.snpa-intro{

    position:relative;

    min-width:0;

    padding:
        42px
        46px
        36px;

    display:flex;

    flex-direction:column;

    overflow:hidden;

    background:
        linear-gradient(
            145deg,
            #FFF8F4 0%,
            rgba(var(--core-primary-rgb,123,30,58),.07) 100%
        );
}


.snpa-intro::before{

    content:"";

    position:absolute;

    width:320px;

    height:320px;

    top:-150px;

    right:-160px;

    border-radius:50%;

    border:
        54px solid
        rgba(
            242,
            84,
            11,
            .045
        );
}


.snpa-intro::after{

    content:"";

    position:absolute;

    width:230px;

    height:230px;

    right:-125px;

    bottom:-120px;

    border-radius:50%;

    background:
        rgba(
            242,
            84,
            11,
            .045
        );
}


.snpa-intro-top,
.snpa-intro-copy,
.snpa-intro-bottom{

    position:relative;

    z-index:2;
}



/* ============================================================
   BRAND
============================================================ */

.snpa-brand{

    min-height:56px;

    display:inline-flex;

    align-items:center;

    width:max-content;

    max-width:210px;
}


.snpa-brand img{

    width:auto !important;

    max-width:210px !important;

    max-height:55px !important;

    margin:0 !important;

    display:block !important;

    object-fit:contain !important;
}


.snpa-brand-text{

    color:
        var(--snpa-heading);

    font-size:23px;

    font-weight:700;

    letter-spacing:
        -.03em;
}



/* ============================================================
   INTRO TEXT
============================================================ */

.snpa-intro-copy{

    margin:
        auto
        0;
}


.snpa-eyebrow{

    margin-bottom:15px;

    display:block;

    color:
        var(--snpa-orange);

    font-size:12px;

    line-height:1;

    font-weight:700;

    letter-spacing:
        .16em;
}


.snpa-intro h1{

    max-width:430px;

    margin:
        0
        0
        18px;

    color:
        var(--snpa-heading);

    font-size:
        clamp(
            36px,
            3.1vw,
            47px
        );

    line-height:
        1.11;

    font-weight:700;

    letter-spacing:
        -.04em;
}


.snpa-intro h1 span{

    color:
        var(--snpa-orange);
}


.snpa-intro-copy > p{

    max-width:415px;

    margin:
        0
        0
        30px;

    color:
        var(--snpa-text);

    font-size:13px;

    line-height:
        1.8;

    font-weight:400;
}



/* ============================================================
   BENEFITS
============================================================ */

.snpa-benefits{

    display:flex;

    flex-direction:column;

    gap:13px;
}


.snpa-benefit{

    display:flex;

    align-items:center;

    gap:10px;

    color:#31343A;

    font-size:12px;

    line-height:1.3;

    font-weight:500;
}


.snpa-benefit-icon{

    width:27px;

    height:27px;

    flex:
        0 0 27px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    background:
        rgba(
            242,
            84,
            11,
            .10
        );

    color:
        var(--snpa-orange);
}


.snpa-benefit-icon svg{

    width:14px;

    height:14px;
}



/* ============================================================
   INTRO FOOTER
============================================================ */

.snpa-intro-bottom{

    margin-top:auto;

    padding-top:28px;

    color:
        #8A776C;

    font-size:12px;

    line-height:1.5;

    letter-spacing:
        .02em;
}


.snpa-intro-bottom span{

    margin:
        0
        7px;

    color:
        var(--snpa-orange);
}



/* ============================================================
   AUTH STAGE
============================================================ */

.snpa-stage{

    min-width:0;

    padding:
        54px
        44px;

    display:flex;

    align-items:center;

    justify-content:center;

    background:#FFFFFF;
}



/* ============================================================
   CARD
============================================================ */

.snpa-card{

    width:100%;

    max-width:430px;

    margin:auto;
}


.snpa-mobile-brand{

    display:none;
}



/* ============================================================
   VIEWS
============================================================ */

.snpa-view{

    display:none;
}


.snpa-view.is-active{

    display:block;

    animation:
        snpaReveal
        .26s
        ease
        both;
}


@keyframes snpaReveal{

    from{
        opacity:0;

        transform:
            translateY(6px);
    }

    to{
        opacity:1;

        transform:
            translateY(0);
    }

}



/* ============================================================
   CARD HEAD
============================================================ */

.snpa-card-head{

    margin-bottom:27px;
}


.snpa-form-eyebrow{

    display:block;

    margin-bottom:9px;

    color:
        var(--snpa-orange);

    font-size:12px;

    line-height:1;

    font-weight:700;

    letter-spacing:
        .14em;
}


.snpa-card-head h2{

    margin:
        0
        0
        8px;

    color:
        var(--snpa-heading);

    font-size:31px;

    line-height:
        1.2;

    font-weight:700;

    letter-spacing:
        -.035em;
}


.snpa-card-head p{

    margin:0;

    color:
        var(--snpa-muted);

    font-size:12px;

    line-height:
        1.6;
}



/* ============================================================
   FORM
============================================================ */

.snpa-form{

    margin:0;
}


.snpa-field{

    margin:
        0
        0
        15px;

    display:block;
}


.snpa-field-label{

    display:block;

    margin-bottom:7px;

    color:#33373D;

    font-size:12px;

    line-height:1;

    font-weight:600;
}



/* ============================================================
   INPUT
============================================================ */

.snpa-input-wrap{

    position:relative;

    width:100%;

    height:51px;

    display:flex;

    align-items:center;

    border:
        1px solid
        var(--snpa-border);

    border-radius:9px;

    background:#FFFFFF;

    transition:
        border-color .18s ease,
        box-shadow .18s ease;
}


.snpa-input-wrap:focus-within{

    border-color:
        rgba(
            242,
            84,
            11,
            .68
        );

    box-shadow:
        0
        0
        0
        3px
        rgba(
            242,
            84,
            11,
            .07
        );
}


.snpa-input-icon{

    width:43px;

    min-width:43px;

    display:flex;

    align-items:center;

    justify-content:center;

    color:#7A818A;
}


.snpa-input-icon svg{

    width:18px;

    height:18px;
}


.snpa-auth
.snpa-input-wrap input{

    width:100% !important;

    height:49px !important;

    min-height:49px !important;

    margin:0 !important;

    padding:
        0
        42px
        0
        0 !important;

    border:0 !important;

    border-radius:0 !important;

    background:
        transparent !important;

    color:
        var(--snpa-heading) !important;

    font-size:12px !important;

    line-height:1 !important;

    font-weight:400 !important;

    outline:0 !important;

    box-shadow:none !important;

    appearance:none;
}


.snpa-auth
.snpa-input-wrap input::placeholder{

    color:#A0A4AB;

    opacity:1;
}



/* ============================================================
   PASSWORD
============================================================ */

.snpa-password-toggle,
.snpa-password-toggle:hover,
.snpa-password-toggle:focus{

    position:absolute !important;

    top:50% !important;

    right:11px !important;

    width:30px !important;

    height:30px !important;

    min-width:30px !important;

    margin:0 !important;

    padding:0 !important;

    display:flex !important;

    align-items:center !important;

    justify-content:center !important;

    transform:
        translateY(-50%) !important;

    border:0 !important;

    border-radius:50% !important;

    background:
        transparent !important;

    color:#8A9099 !important;

    box-shadow:none !important;

    outline:none !important;

    cursor:pointer !important;
}


.snpa-password-toggle:hover{

    color:
        var(--snpa-orange) !important;
}


.snpa-password-toggle svg{

    width:18px;

    height:18px;
}



/* ============================================================
   NAME GRID
============================================================ */

.snpa-name-grid{

    display:grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0,1fr)
        );

    gap:11px;
}



/* ============================================================
   CHECKBOX
============================================================ */

.snpa-form-options{

    margin:
        4px
        0
        19px;

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:15px;
}


.snpa-checkbox{

    position:relative;

    display:flex;

    align-items:flex-start;

    gap:8px;

    color:#3F4349;

    font-size:12px;

    line-height:1.55;

    cursor:pointer;

    user-select:none;
}


.snpa-checkbox input{

    position:absolute;

    opacity:0;

    pointer-events:none;
}


.snpa-checkbox-ui{

    width:17px;

    height:17px;

    flex:
        0 0 17px;

    margin-top:0;

    display:flex;

    align-items:center;

    justify-content:center;

    border:
        1px solid
        #CFD3D8;

    border-radius:4px;

    background:#FFFFFF;

    color:#FFFFFF;

    transition:
        border-color .16s ease,
        background .16s ease;
}


.snpa-checkbox-ui svg{

    width:11px;

    height:11px;

    opacity:0;

    transform:
        scale(.7);

    transition:
        opacity .15s ease,
        transform .15s ease;
}


.snpa-checkbox
input:checked
+
.snpa-checkbox-ui{

    border-color:
        var(--snpa-orange);

    background:
        var(--snpa-orange);
}


.snpa-checkbox
input:checked
+
.snpa-checkbox-ui
svg{

    opacity:1;

    transform:
        scale(1);
}



/* ============================================================
   LINKS
============================================================ */

.snpa-text-link{

    color:
        var(--snpa-orange) !important;

    font-size:12px;

    line-height:1.4;

    font-weight:500;

    white-space:nowrap;
}


.snpa-text-link:hover{

    color:
        var(--snpa-orange-dark) !important;
}



/* ============================================================
   TERMS
============================================================ */

.snpa-terms{

    margin:
        3px
        0
        19px;
}


.snpa-terms-text{

    color:#5B6067;
}


.snpa-terms-text a{

    color:
        var(--snpa-orange) !important;

    font-weight:500;
}



/* ============================================================
   PRIMARY BUTTON
============================================================ */

.snpa-primary-btn,
.snpa-primary-btn:hover,
.snpa-primary-btn:focus{

    width:100% !important;

    min-height:51px !important;

    margin:0 !important;

    padding:
        12px
        17px !important;

    display:flex !important;

    align-items:center !important;

    justify-content:center !important;

    gap:8px !important;

    border:0 !important;

    border-radius:9px !important;

    background:
        var(--snpa-orange) !important;

    color:#FFFFFF !important;

    font-size:12px !important;

    line-height:1 !important;

    font-weight:600 !important;

    box-shadow:
        0
        8px
        20px
        rgba(
            242,
            84,
            11,
            .14
        ) !important;

    outline:none !important;

    cursor:pointer !important;

    transition:
        background .18s ease,
        transform .18s ease,
        box-shadow .18s ease;
}


.snpa-primary-btn:hover{

    background:
        var(--snpa-orange-dark) !important;

    transform:
        translateY(-1px);

    box-shadow:
        0
        10px
        23px
        rgba(
            242,
            84,
            11,
            .18
        ) !important;
}


.snpa-primary-btn svg{

    width:16px;

    height:16px;
}



/* ============================================================
   DIVIDER
============================================================ */

.snpa-social-section{

    margin-top:22px;
}


.snpa-divider{

    position:relative;

    margin:
        0
        0
        15px;

    text-align:center;
}


.snpa-divider::before{

    content:"";

    position:absolute;

    top:50%;

    left:0;

    right:0;

    height:1px;

    background:#EEEEEE;
}


.snpa-divider span{

    position:relative;

    z-index:2;

    padding:
        0
        11px;

    background:#FFFFFF;

    color:#9A9FA6;

    font-size:12px;

    line-height:1;
}



/* ============================================================
   GOOGLE
============================================================ */

.snpa-google-btn{

    width:100%;

    min-height:49px;

    padding:
        11px
        16px;

    display:flex;

    align-items:center;

    justify-content:center;

    gap:10px;

    border:
        1px solid
        var(--snpa-border);

    border-radius:9px;

    background:#FFFFFF;

    color:
        #2D3137 !important;

    font-size:13px;

    line-height:1;

    font-weight:500;

    transition:
        border-color .18s ease,
        background .18s ease,
        transform .18s ease;
}


.snpa-google-btn:hover{

    border-color:#D9D9D9;

    background:#FAFAFA;

    color:
        #111111 !important;

    transform:
        translateY(-1px);
}


.snpa-google-icon{

    width:19px;

    height:19px;

    display:flex;

    align-items:center;

    justify-content:center;
}


.snpa-google-icon svg{

    width:19px;

    height:19px;
}



/* ============================================================
   SWITCH LOGIN / REGISTER
============================================================ */

.snpa-switch-line{

    margin-top:22px;

    display:flex;

    align-items:center;

    justify-content:center;

    gap:5px;

    color:#858A91;

    font-size:12px;

    line-height:1.5;

    text-align:center;
}


.snpa-switch,
.snpa-switch:hover,
.snpa-switch:focus{

    width:auto !important;

    min-width:0 !important;

    height:auto !important;

    min-height:0 !important;

    margin:0 !important;

    padding:0 !important;

    border:0 !important;

    border-radius:0 !important;

    background:
        transparent !important;

    color:
        var(--snpa-orange) !important;

    font-size:12px !important;

    line-height:1.5 !important;

    font-weight:600 !important;

    box-shadow:none !important;

    outline:none !important;

    cursor:pointer !important;
}


.snpa-switch:hover{

    color:
        var(--snpa-orange-dark) !important;

    text-decoration:
        underline !important;
}



/* ============================================================
   TABLET
============================================================ */

@media(max-width:980px){

    .snpa-auth{

        margin-top:24px;

        padding:
            0
            16px;
    }


    .snpa-shell{

        grid-template-columns:
            minmax(0,.78fr)
            minmax(440px,1.22fr);
    }


    .snpa-intro{

        padding:
            35px
            30px;
    }


    .snpa-intro h1{

        font-size:36px;
    }


    .snpa-stage{

        padding:
            44px
            30px;
    }

}



/* ============================================================
   MOBILE
============================================================ */

@media(max-width:767px){

    .snpa-auth{

        margin:
            18px
            auto
            38px;

        padding:
            0
            14px;
    }


    .snpa-notices{

        margin-bottom:12px;
    }


    .snpa-shell{

        min-height:0;

        display:block;

        overflow:visible;

        border-radius:16px;

        box-shadow:
            0
            10px
            35px
            rgba(
                18,
                18,
                18,
                .045
            );
    }


    /*
     * No decorative side panel on mobile.
     */

    .snpa-intro{

        display:none;
    }


    .snpa-stage{

        padding:
            28px
            22px
            25px;
    }


    .snpa-card{

        max-width:100%;
    }


    .snpa-mobile-brand{

        min-height:47px;

        margin:
            0
            0
            27px;

        display:flex;

        align-items:center;

        justify-content:center;

        color:
            var(--snpa-heading) !important;

        text-align:center;
    }


    .snpa-mobile-brand img{

        width:auto !important;

        max-width:170px !important;

        max-height:46px !important;

        margin:0 !important;

        display:block !important;

        object-fit:contain !important;
    }


    .snpa-mobile-brand strong{

        color:
            var(--snpa-heading);

        font-size:20px;

        font-weight:700;
    }


    .snpa-card-head{

        margin-bottom:23px;
    }


    .snpa-form-eyebrow{

        font-size:12px;

        letter-spacing:
            .13em;
    }


    .snpa-card-head h2{

        font-size:27px;
    }


    .snpa-card-head p{

        font-size:13px;
    }


    .snpa-field{

        margin-bottom:13px;
    }


    .snpa-field-label{

        margin-bottom:6px;

        font-size:12px;
    }


    .snpa-input-wrap{

        height:49px;

        border-radius:9px;
    }


    .snpa-auth
    .snpa-input-wrap
    input{

        height:47px !important;

        min-height:47px !important;

        font-size:13px !important;
    }


    .snpa-input-icon{

        width:40px;

        min-width:40px;
    }


    .snpa-input-icon svg{

        width:17px;

        height:17px;
    }


    .snpa-primary-btn{

        min-height:49px !important;

        font-size:13px !important;
    }


    .snpa-google-btn{

        min-height:47px;

        font-size:12px;
    }


    .snpa-form-options{

        margin-bottom:17px;
    }


    .snpa-checkbox,
    .snpa-text-link,
    .snpa-switch-line,
    .snpa-switch{

        font-size:12px !important;
    }


    /*
     * Keep First/Last name
     * side by side like reference.
     */

    .snpa-name-grid{

        gap:8px;
    }


    .snpa-name-grid
    .snpa-input-icon{

        width:34px;

        min-width:34px;
    }


    .snpa-name-grid
    .snpa-auth
    input{

        font-size:12px !important;
    }

}



/* ============================================================
   SMALL MOBILE
============================================================ */

@media(max-width:390px){

    .snpa-auth{

        padding:
            0
            9px;
    }


    .snpa-stage{

        padding:
            24px
            16px
            22px;
    }


    .snpa-mobile-brand{

        margin-bottom:23px;
    }


    .snpa-card-head h2{

        font-size:25px;
    }


    .snpa-form-options{

        align-items:flex-start;
    }


    .snpa-name-grid{

        grid-template-columns:
            repeat(
                2,
                minmax(0,1fr)
            );

        gap:7px;
    }


    .snpa-name-grid
    .snpa-input-wrap{

        height:47px;
    }


    .snpa-name-grid
    .snpa-input-icon{

        display:none;
    }


    .snpa-name-grid
    .snpa-input-wrap
    input{

        height:45px !important;

        min-height:45px !important;

        padding:
            0
            9px !important;

        font-size:12px !important;
    }


    .snpa-switch-line{

        flex-wrap:wrap;
    }

}
.snpa{--snpa-orange:var(--core-primary,#6B0A26)!important;--snpa-orange-dark:var(--core-primary-hover,#4E071C)!important;--snpa-orange-soft:rgba(var(--core-primary-rgb,107,10,38),.07)!important;--snpa-heading:var(--core-dark,#121212)!important;--snpa-text:var(--core-gray-800,#292828)!important;--snpa-muted:var(--core-gray-100,#686868)!important;--snpa-border:var(--core-border,#E3D8D2)!important}


/* RM-FIX 2026-10: extra registration fields */
.snpa-auth .snpa-textarea-wrap{height:auto;min-height:51px;align-items:flex-start}
.snpa-auth .snpa-textarea-wrap .snpa-input-icon{padding-top:15px}
.snpa-auth .snpa-textarea-wrap textarea{width:100%!important;min-height:64px!important;margin:0!important;padding:14px 14px 10px 0!important;border:0!important;border-radius:0!important;background:transparent!important;color:var(--snpa-heading)!important;font-family:inherit!important;font-size:12px!important;line-height:1.5!important;outline:0!important;box-shadow:none!important;resize:vertical}
.snpa-auth .snpa-field-label small{font-weight:400;color:var(--snpa-muted)}
.snpa-auth .rm-avatar-pick{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px dashed var(--snpa-border);border-radius:9px;background:#fff;cursor:pointer;transition:border-color .18s ease}
.snpa-auth .rm-avatar-pick:hover{border-color:var(--snpa-orange)}
.snpa-auth .rm-avatar-preview{width:46px;height:46px;min-width:46px;border-radius:50%;background:#F6F1F3;color:var(--snpa-orange);display:flex;align-items:center;justify-content:center;overflow:hidden}
.snpa-auth .rm-avatar-preview img{width:100%;height:100%;object-fit:cover}
.snpa-auth .rm-avatar-text{font-size:12px;font-weight:600;color:#33373D;word-break:break-all}
