/* Frontend WooCommerce notices only. Text, roles, live regions, links and dismissal stay native. */
body.zo-woo-notices .woocommerce-notices-wrapper {
    width: min(1320px, calc(100% - 64px)); max-width: 100%; margin: 22px auto;
}
body.zo-woo-notices .woocommerce-notices-wrapper:empty { margin-block: 0; }
body.zo-woo-notices :is(.zo-purchase-native, .zo-sp, form) .woocommerce-notices-wrapper { width: 100%; }
body.zo-woo-notices :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) {
    --zo-notice-accent: #854052;
    box-sizing: border-box; display: flow-root; position: relative;
    margin: 0 0 18px !important; padding: 20px 24px 20px 56px !important;
    min-height: 78px; border: 1px solid #e4d8d6 !important;
    border-left: 3px solid var(--zo-notice-accent) !important;
    border-radius: 18px !important; background: #fbf4f1 !important;
    color: #382f32 !important; box-shadow: none !important;
    font: 400 14px/1.7 Arial, Helvetica, sans-serif !important;
    list-style: none; overflow-wrap: anywhere;
}
body.zo-woo-notices .woocommerce-info { background: #f4f0e8 !important; }
body.zo-woo-notices .woocommerce-error { --zo-notice-accent: #a32e3b; background: #fff1f1 !important; }
body.zo-woo-notices :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before {
    color: var(--zo-notice-accent) !important; top: 24px !important; left: 22px !important;
}
body.zo-woo-notices :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) a:not(.button) {
    color: #854052 !important; text-decoration: underline; text-underline-offset: 3px;
}
body.zo-woo-notices :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) .button {
    box-sizing: border-box; display: inline-flex !important; align-items: center; justify-content: center;
    float: right; gap: 8px; min-height: 40px; margin: 0 0 0 20px !important;
    padding: 10px 20px !important; border: 1px solid #a83f52 !important;
    border-radius: 999px !important; background: #a83f52 !important; color: #fff !important;
    box-shadow: none !important; font: 700 13px/1.4 Arial, Helvetica, sans-serif !important;
    text-decoration: none !important; text-transform: none !important; letter-spacing: normal !important;
}
body.zo-woo-notices :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) .button:hover {
    background: #854052 !important; border-color: #854052 !important; color: #fff !important;
}
/* Block-based notifications: keep error/warning states distinct and retain native controls. */
body.zo-woo-notices .wc-block-components-notice-banner {
    border-radius: 16px !important; font-family: Arial, Helvetica, sans-serif !important;
    font-size: 14px !important; line-height: 1.65; box-shadow: none;
}
body.zo-woo-notices .wc-block-components-notice-banner:is(.is-success, .is-info) {
    border: 1px solid #e4d8d6 !important; border-left: 3px solid #854052 !important;
    background: #fbf4f1 !important; color: #382f32 !important;
}
body.zo-woo-notices .wc-block-components-notice-banner:is(.is-success, .is-info) > svg {
    background: #854052 !important; color: #fff !important; fill: #fff !important;
}
body.zo-woo-notices .wc-block-components-notice-banner a { color: #854052 !important; text-underline-offset: 3px; }
body.zo-woo-notices :is(.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner) :is(a, button):focus-visible {
    outline: 3px solid #854052 !important; outline-offset: 4px;
}
@media (max-width: 760px) {
    body.zo-woo-notices .woocommerce-notices-wrapper { width: calc(100% - 32px); margin-block: 16px; }
    body.zo-woo-notices :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) { padding: 18px 18px 18px 44px !important; border-radius: 16px !important; }
    body.zo-woo-notices :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before { top: 21px !important; left: 16px !important; }
    body.zo-woo-notices :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) .button {
        float: none !important; display: flex !important; width: fit-content; max-width: 100%; margin: 0 0 12px !important;
    }
}
