/* ==========================================================
   ConjuresUp Notification System - Sprint 1
   Centralized premium notice styling for WordPress/WooCommerce
   ========================================================== */

:root{
    --csu-notice-bg: linear-gradient(135deg, rgba(39, 7, 58, .98) 0%, rgba(78, 22, 98, .96) 52%, rgba(24, 4, 38, .98) 100%);
    --csu-notice-border: rgba(214, 179, 91, .62);
    --csu-notice-gold: #f5d97b;
    --csu-notice-gold-strong: #d6b35b;
    --csu-notice-text: #fffaf0;
    --csu-notice-muted: rgba(255, 250, 240, .84);
    --csu-notice-shadow: 0 18px 42px rgba(10, 2, 18, .32), 0 0 22px rgba(214, 179, 91, .11);
}

/* Base frontend notice surfaces. */
body:not(.wp-admin) .woocommerce-notices-wrapper,
body:not(.wp-admin) .conjuresup-notices,
body:not(.wp-admin) .csu-notices{
    width: 100%;
    clear: both;
}

body:not(.wp-admin) .woocommerce-message,
body:not(.wp-admin) .woocommerce-info,
body:not(.wp-admin) .woocommerce-error,
body:not(.wp-admin) .woocommerce-notice,
body:not(.wp-admin) .woocommerce-NoticeGroup .woocommerce-error,
body:not(.wp-admin) .woocommerce-NoticeGroup .woocommerce-info,
body:not(.wp-admin) .woocommerce-NoticeGroup .woocommerce-message,
body:not(.wp-admin) .conjuresup-notice,
body:not(.wp-admin) .csu-notice,
body:not(.wp-admin) .csu-alert,
body:not(.wp-admin) .notice:not(.inline):not(.notice-alt),
body:not(.wp-admin) .notice-success,
body:not(.wp-admin) .notice-warning,
body:not(.wp-admin) .notice-error,
body:not(.wp-admin) .notice-info,
body:not(.wp-admin) .updated,
body:not(.wp-admin) .error{
    position: relative !important;
    display: block !important;
    box-sizing: border-box !important;
    margin: 18px 0 22px !important;
    padding: 16px 20px 16px 56px !important;
    min-height: 58px !important;
    background: var(--csu-notice-bg) !important;
    color: var(--csu-notice-text) !important;
    border: 1px solid var(--csu-notice-border) !important;
    border-left: 5px solid var(--csu-notice-gold-strong) !important;
    border-radius: 18px !important;
    box-shadow: var(--csu-notice-shadow) !important;
    font-size: 15px !important;
    line-height: 1.55 !important;
    letter-spacing: .01em !important;
    text-shadow: none !important;
    overflow: hidden !important;
}

body:not(.wp-admin) .woocommerce-message::before,
body:not(.wp-admin) .woocommerce-info::before,
body:not(.wp-admin) .woocommerce-error::before,
body:not(.wp-admin) .woocommerce-notice::before,
body:not(.wp-admin) .woocommerce-NoticeGroup .woocommerce-error::before,
body:not(.wp-admin) .woocommerce-NoticeGroup .woocommerce-info::before,
body:not(.wp-admin) .woocommerce-NoticeGroup .woocommerce-message::before,
body:not(.wp-admin) .conjuresup-notice::before,
body:not(.wp-admin) .csu-notice::before,
body:not(.wp-admin) .csu-alert::before,
body:not(.wp-admin) .notice:not(.inline):not(.notice-alt)::before,
body:not(.wp-admin) .notice-success::before,
body:not(.wp-admin) .notice-warning::before,
body:not(.wp-admin) .notice-error::before,
body:not(.wp-admin) .notice-info::before,
body:not(.wp-admin) .updated::before,
body:not(.wp-admin) .error::before{
    position: absolute !important;
    left: 20px !important;
    top: 17px !important;
    width: 22px !important;
    height: 22px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: var(--csu-notice-gold) !important;
    font-size: 18px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    text-shadow: 0 0 12px rgba(245,217,123,.35) !important;
    background: none !important;
    border: 0 !important;
}

body:not(.wp-admin) .woocommerce-message::before,
body:not(.wp-admin) .notice-success::before,
body:not(.wp-admin) .updated::before,
body:not(.wp-admin) .csu-notice-success::before{
    content: '✦' !important;
}

body:not(.wp-admin) .woocommerce-info::before,
body:not(.wp-admin) .notice-info::before,
body:not(.wp-admin) .csu-notice-info::before{
    content: '☾' !important;
}

body:not(.wp-admin) .woocommerce-error::before,
body:not(.wp-admin) .notice-error::before,
body:not(.wp-admin) .error::before,
body:not(.wp-admin) .csu-notice-error::before{
    content: '!' !important;
}

body:not(.wp-admin) .notice-warning::before,
body:not(.wp-admin) .csu-notice-warning::before{
    content: '⚠' !important;
}

body:not(.wp-admin) .woocommerce-error{
    list-style: none !important;
    padding-left: 56px !important;
}

body:not(.wp-admin) .woocommerce-error li{
    color: var(--csu-notice-text) !important;
    margin: 0 0 6px !important;
    padding: 0 !important;
}

body:not(.wp-admin) .woocommerce-error li:last-child{
    margin-bottom: 0 !important;
}

body:not(.wp-admin) .woocommerce-message a,
body:not(.wp-admin) .woocommerce-info a,
body:not(.wp-admin) .woocommerce-error a,
body:not(.wp-admin) .woocommerce-notice a,
body:not(.wp-admin) .conjuresup-notice a,
body:not(.wp-admin) .csu-notice a,
body:not(.wp-admin) .csu-alert a,
body:not(.wp-admin) .notice a,
body:not(.wp-admin) .updated a,
body:not(.wp-admin) .error a{
    color: var(--csu-notice-gold) !important;
    font-weight: 800 !important;
    text-decoration: none !important;
    border-bottom: 1px solid rgba(245,217,123,.45) !important;
}

body:not(.wp-admin) .woocommerce-message a:hover,
body:not(.wp-admin) .woocommerce-info a:hover,
body:not(.wp-admin) .woocommerce-error a:hover,
body:not(.wp-admin) .woocommerce-notice a:hover,
body:not(.wp-admin) .conjuresup-notice a:hover,
body:not(.wp-admin) .csu-notice a:hover,
body:not(.wp-admin) .csu-alert a:hover,
body:not(.wp-admin) .notice a:hover,
body:not(.wp-admin) .updated a:hover,
body:not(.wp-admin) .error a:hover{
    color: #fff2b8 !important;
    border-bottom-color: #fff2b8 !important;
}

body:not(.wp-admin) .woocommerce-message .button,
body:not(.wp-admin) .woocommerce-info .button,
body:not(.wp-admin) .woocommerce-error .button,
body:not(.wp-admin) .woocommerce-notice .button,
body:not(.wp-admin) .conjuresup-notice .button,
body:not(.wp-admin) .csu-notice .button,
body:not(.wp-admin) .csu-alert .button{
    float: right !important;
    margin: -4px 0 8px 16px !important;
    padding: 9px 16px !important;
    min-height: auto !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255,244,184,.88) !important;
    background: linear-gradient(135deg,#fff6bf 0%,#f7d66f 42%,#d5a943 100%) !important;
    color: #22091f !important;
    font-weight: 900 !important;
    box-shadow: 0 10px 22px rgba(0,0,0,.24) !important;
    text-decoration: none !important;
}

body:not(.wp-admin) .woocommerce-message .button:hover,
body:not(.wp-admin) .woocommerce-info .button:hover,
body:not(.wp-admin) .woocommerce-error .button:hover,
body:not(.wp-admin) .woocommerce-notice .button:hover,
body:not(.wp-admin) .conjuresup-notice .button:hover,
body:not(.wp-admin) .csu-notice .button:hover,
body:not(.wp-admin) .csu-alert .button:hover{
    transform: translateY(-1px) !important;
    box-shadow: 0 14px 28px rgba(0,0,0,.3), 0 0 16px rgba(245,217,123,.24) !important;
}

body:not(.wp-admin) .woocommerce-message strong,
body:not(.wp-admin) .woocommerce-info strong,
body:not(.wp-admin) .woocommerce-error strong,
body:not(.wp-admin) .woocommerce-notice strong,
body:not(.wp-admin) .conjuresup-notice strong,
body:not(.wp-admin) .csu-notice strong,
body:not(.wp-admin) .csu-alert strong,
body:not(.wp-admin) .notice strong,
body:not(.wp-admin) .updated strong,
body:not(.wp-admin) .error strong{
    color: var(--csu-notice-gold) !important;
    font-weight: 900 !important;
}

/* WooCommerce account/dashboard wrappers often nest notices in pale containers. */
body.woocommerce-account .woocommerce-MyAccount-content > .woocommerce-message,
body.woocommerce-account .woocommerce-MyAccount-content > .woocommerce-error,
body.woocommerce-account .woocommerce-MyAccount-content > .woocommerce-info,
body.woocommerce-account .conjuresup-portal .woocommerce-message,
body.woocommerce-account .conjuresup-portal .woocommerce-error,
body.woocommerce-account .conjuresup-portal .woocommerce-info,
body.conjuresup-account-tools .woocommerce-message,
body.conjuresup-account-tools .woocommerce-error,
body.conjuresup-account-tools .woocommerce-info{
    width: 100% !important;
    max-width: 100% !important;
}

/* Blocks checkout notices. */
body:not(.wp-admin) .wc-block-components-notice-banner,
body:not(.wp-admin) .wc-block-components-notice-banner.is-success,
body:not(.wp-admin) .wc-block-components-notice-banner.is-info,
body:not(.wp-admin) .wc-block-components-notice-banner.is-error,
body:not(.wp-admin) .wc-block-components-notice-banner.is-warning{
    background: var(--csu-notice-bg) !important;
    color: var(--csu-notice-text) !important;
    border: 1px solid var(--csu-notice-border) !important;
    border-left: 5px solid var(--csu-notice-gold-strong) !important;
    border-radius: 18px !important;
    box-shadow: var(--csu-notice-shadow) !important;
    padding: 14px 18px !important;
}

body:not(.wp-admin) .wc-block-components-notice-banner svg,
body:not(.wp-admin) .wc-block-components-notice-banner__content svg{
    fill: var(--csu-notice-gold) !important;
    color: var(--csu-notice-gold) !important;
}

body:not(.wp-admin) .wc-block-components-notice-banner__content,
body:not(.wp-admin) .wc-block-components-notice-banner__content *{
    color: var(--csu-notice-text) !important;
}

body:not(.wp-admin) .wc-block-components-notice-banner__content a{
    color: var(--csu-notice-gold) !important;
}

/* Mobile behavior. */
@media (max-width: 640px){
    body:not(.wp-admin) .woocommerce-message,
    body:not(.wp-admin) .woocommerce-info,
    body:not(.wp-admin) .woocommerce-error,
    body:not(.wp-admin) .woocommerce-notice,
    body:not(.wp-admin) .conjuresup-notice,
    body:not(.wp-admin) .csu-notice,
    body:not(.wp-admin) .csu-alert,
    body:not(.wp-admin) .notice:not(.inline):not(.notice-alt),
    body:not(.wp-admin) .updated,
    body:not(.wp-admin) .error{
        margin: 14px 0 18px !important;
        padding: 15px 16px 15px 48px !important;
        border-radius: 16px !important;
        font-size: 14px !important;
    }

    body:not(.wp-admin) .woocommerce-message::before,
    body:not(.wp-admin) .woocommerce-info::before,
    body:not(.wp-admin) .woocommerce-error::before,
    body:not(.wp-admin) .woocommerce-notice::before,
    body:not(.wp-admin) .conjuresup-notice::before,
    body:not(.wp-admin) .csu-notice::before,
    body:not(.wp-admin) .csu-alert::before,
    body:not(.wp-admin) .notice:not(.inline):not(.notice-alt)::before,
    body:not(.wp-admin) .updated::before,
    body:not(.wp-admin) .error::before{
        left: 17px !important;
        top: 16px !important;
    }

    body:not(.wp-admin) .woocommerce-message .button,
    body:not(.wp-admin) .woocommerce-info .button,
    body:not(.wp-admin) .woocommerce-error .button,
    body:not(.wp-admin) .woocommerce-notice .button,
    body:not(.wp-admin) .conjuresup-notice .button,
    body:not(.wp-admin) .csu-notice .button,
    body:not(.wp-admin) .csu-alert .button{
        float: none !important;
        display: inline-flex !important;
        margin: 10px 0 0 !important;
        width: auto !important;
    }
}

/* ==========================================================
   ConjuresUp Notification System - Sprint 2 Global Rollout
   Expands the premium notice component across WooCommerce,
   My Account, checkout blocks, tool/dashboard shortcodes, and
   frontend plugin notices while preserving admin defaults.
   ========================================================== */

body:not(.wp-admin) .woocommerce-notices-wrapper:not(:empty),
body:not(.wp-admin) .woocommerce-NoticeGroup:not(:empty),
body:not(.wp-admin) .wc-block-components-notices:not(:empty),
body:not(.wp-admin) .wc-block-store-notices:not(:empty){
    margin: 0 0 18px !important;
}

body:not(.wp-admin) .woocommerce-message,
body:not(.wp-admin) .woocommerce-info,
body:not(.wp-admin) .woocommerce-error,
body:not(.wp-admin) .woocommerce-notice,
body:not(.wp-admin) .wc-block-components-notice-banner,
body:not(.wp-admin) .conjuresup-notice,
body:not(.wp-admin) .csu-notice,
body:not(.wp-admin) .csu-alert,
body:not(.wp-admin) .csd-auth-notices .woocommerce-message,
body:not(.wp-admin) .csd-auth-notices .woocommerce-info,
body:not(.wp-admin) .csd-auth-notices .woocommerce-error,
body:not(.wp-admin) .conj-dashboard .woocommerce-message,
body:not(.wp-admin) .conj-dashboard .woocommerce-info,
body:not(.wp-admin) .conj-dashboard .woocommerce-error,
body:not(.wp-admin) .conjuresup-portal .woocommerce-message,
body:not(.wp-admin) .conjuresup-portal .woocommerce-info,
body:not(.wp-admin) .conjuresup-portal .woocommerce-error{
    background: var(--csu-notice-bg) !important;
    border: 1px solid var(--csu-notice-border) !important;
    border-left: 5px solid var(--csu-notice-gold-strong) !important;
    border-radius: 18px !important;
    box-shadow: var(--csu-notice-shadow) !important;
    color: var(--csu-notice-text) !important;
    -webkit-text-fill-color: var(--csu-notice-text) !important;
}

body:not(.wp-admin) .woocommerce-message,
body:not(.wp-admin) .woocommerce-info,
body:not(.wp-admin) .woocommerce-error,
body:not(.wp-admin) .woocommerce-notice,
body:not(.wp-admin) .conjuresup-notice,
body:not(.wp-admin) .csu-notice,
body:not(.wp-admin) .csu-alert{
    padding-top: 18px !important;
    padding-bottom: 18px !important;
    font-weight: 600 !important;
}

body:not(.wp-admin) .woocommerce-message::before,
body:not(.wp-admin) .woocommerce-info::before,
body:not(.wp-admin) .woocommerce-error::before,
body:not(.wp-admin) .woocommerce-notice::before,
body:not(.wp-admin) .conjuresup-notice::before,
body:not(.wp-admin) .csu-notice::before,
body:not(.wp-admin) .csu-alert::before{
    top: 50% !important;
    transform: translateY(-50%) !important;
}

body:not(.wp-admin) .woocommerce-message p,
body:not(.wp-admin) .woocommerce-info p,
body:not(.wp-admin) .woocommerce-error p,
body:not(.wp-admin) .woocommerce-notice p,
body:not(.wp-admin) .conjuresup-notice p,
body:not(.wp-admin) .csu-notice p,
body:not(.wp-admin) .csu-alert p,
body:not(.wp-admin) .notice p,
body:not(.wp-admin) .updated p,
body:not(.wp-admin) .error p{
    margin: 0 !important;
    color: var(--csu-notice-text) !important;
    -webkit-text-fill-color: var(--csu-notice-text) !important;
}

body:not(.wp-admin) .woocommerce-message ul,
body:not(.wp-admin) .woocommerce-info ul,
body:not(.wp-admin) .woocommerce-error ul,
body:not(.wp-admin) .woocommerce-notice ul,
body:not(.wp-admin) .conjuresup-notice ul,
body:not(.wp-admin) .csu-notice ul,
body:not(.wp-admin) .csu-alert ul{
    margin: 0 !important;
    padding-left: 18px !important;
}

body:not(.wp-admin) .woocommerce-message li,
body:not(.wp-admin) .woocommerce-info li,
body:not(.wp-admin) .woocommerce-error li,
body:not(.wp-admin) .woocommerce-notice li,
body:not(.wp-admin) .conjuresup-notice li,
body:not(.wp-admin) .csu-notice li,
body:not(.wp-admin) .csu-alert li{
    color: var(--csu-notice-text) !important;
    -webkit-text-fill-color: var(--csu-notice-text) !important;
}

/* Checkout and cart forms sometimes wrap notices inside default white panels. */
body:not(.wp-admin) form.checkout .woocommerce-NoticeGroup,
body:not(.wp-admin) form.woocommerce-checkout .woocommerce-NoticeGroup,
body:not(.wp-admin) .cart-collaterals .woocommerce-notices-wrapper,
body:not(.wp-admin) .woocommerce-cart-form .woocommerce-notices-wrapper{
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}

/* Keep notices from inheriting overly broad white-card text rules. */
body:not(.wp-admin) .woocommerce-message *,
body:not(.wp-admin) .woocommerce-info *,
body:not(.wp-admin) .woocommerce-error *,
body:not(.wp-admin) .woocommerce-notice *,
body:not(.wp-admin) .wc-block-components-notice-banner *,
body:not(.wp-admin) .conjuresup-notice *,
body:not(.wp-admin) .csu-notice *,
body:not(.wp-admin) .csu-alert *{
    text-shadow: none !important;
}

body:not(.wp-admin) .wc-block-components-notice-banner__content,
body:not(.wp-admin) .wc-block-components-notice-banner__content p,
body:not(.wp-admin) .wc-block-components-notice-banner__content div,
body:not(.wp-admin) .wc-block-components-notice-banner__content span{
    color: var(--csu-notice-text) !important;
    -webkit-text-fill-color: var(--csu-notice-text) !important;
    font-weight: 600 !important;
}

body:not(.wp-admin) .wc-block-components-notice-banner .wc-block-components-button,
body:not(.wp-admin) .wc-block-components-notice-banner button,
body:not(.wp-admin) .wc-block-components-notice-banner .button{
    border-radius: 999px !important;
    border: 1px solid rgba(255,244,184,.88) !important;
    background: linear-gradient(135deg,#fff6bf 0%,#f7d66f 42%,#d5a943 100%) !important;
    color: #22091f !important;
    -webkit-text-fill-color: #22091f !important;
    font-weight: 900 !important;
}

/* Shortcode/tool notices commonly generated by plugins. */
body:not(.wp-admin) [class*="notice"][class*="success"],
body:not(.wp-admin) [class*="notice"][class*="error"],
body:not(.wp-admin) [class*="notice"][class*="warning"],
body:not(.wp-admin) [class*="notice"][class*="info"],
body:not(.wp-admin) [class*="alert"][class*="success"],
body:not(.wp-admin) [class*="alert"][class*="error"],
body:not(.wp-admin) [class*="alert"][class*="warning"],
body:not(.wp-admin) [class*="alert"][class*="info"]{
    color: var(--csu-notice-text) !important;
    -webkit-text-fill-color: var(--csu-notice-text) !important;
}

@media (max-width: 640px){
    body:not(.wp-admin) .woocommerce-message,
    body:not(.wp-admin) .woocommerce-info,
    body:not(.wp-admin) .woocommerce-error,
    body:not(.wp-admin) .woocommerce-notice,
    body:not(.wp-admin) .conjuresup-notice,
    body:not(.wp-admin) .csu-notice,
    body:not(.wp-admin) .csu-alert{
        padding-top: 16px !important;
        padding-bottom: 16px !important;
    }
}
