/* Shared interaction tokens for storefront and admin; component behavior stays with its existing library. */
:root {
    --pr-font-family: alumatica, sans-serif;
    --pr-primary: #d81b60;
    --pr-primary-hover: #b91852;
    --pr-soft: #fff2f7;
    --pr-border: #eddce4;
    --pr-text: #352831;
    --pr-muted: #74656e;
    --pr-danger: #ad3047;
    --pr-radius: 999px;
    --pr-focus: #de8caf;
}
/* Editor formatting and legacy headings must use the storefront typeface. */
body:not(.crm_body_bg) .product-description,
body:not(.crm_body_bg) .product-description :where(p, span, div, h1, h2, h3, h4, h5, h6, ul, ol, li, table, thead, tbody, tr, th, td, a, strong, b, em, u, blockquote) {
    font-family: var(--pr-font-family) !important;
}
body.crm_body_bg {
    --pr-primary: var(--admin-primary, #ac346a);
    --pr-primary-hover: var(--admin-primary-hover, #8d2855);
    --pr-soft: #fcf4f8;
    --pr-danger: var(--admin-danger, #ae3347);
    --pr-radius: 10px;
}
/* Shared product media corners, including hover images and dynamically loaded cards. */
.product-stock-badge {
    position: absolute;
    bottom: 12px;
    left: 12px;
    z-index: 3;
    padding: 6px 10px;
    border-radius: 999px;
    background: #51434eee;
    color: #fff;
    font: 600 12px/1.4 var(--pr-font-family);
    pointer-events: none;
}
body:not(.crm_body_bg) :is(.product-image, .sp-pr-gallery__img, .p-nav .n-item, .product-images-slider .q-item, .mini_cart_img) {
    border-radius: 16px;
    overflow: hidden;
}
body:not(.crm_body_bg) :is(.product-image .pr_lazy_img, .product-card-image, .product-gallery-image, .mini_cart_img img, .page_cart_info > a img) {
    border-radius: 16px;
}
body:not(.crm_body_bg) :is(.product-image, .sp-pr-gallery__img, .p-nav .n-item, .product-images-slider .q-item, .mini_cart_img, .product-card-image, .page_cart_info > a img) {
    box-shadow: 0 0 0 1px #35283112, 0 4px 12px #3528310d;
}
@media (min-width: 1024px) {
    body:not(.crm_body_bg) :is(.products.nt_products_holder > .product, .related-products-grid > .related-product-card) {
        flex: 0 0 20%;
        max-width: 20%;
    }
}
@media (min-width: 1920px) {
    body:not(.crm_body_bg) :is(.products.nt_products_holder > .product, .related-products-grid > .related-product-card) {
        flex-basis: 16.666667%;
        max-width: 16.666667%;
    }
}
/* Text actions use a common shape. Quantity, carousel, close and wishlist controls retain their geometry. */
body:not(.crm_body_bg) :is(.btn, .button, .button_primary, .button_default, .single_add_to_cart_button, .r--button, :where(button)[type="submit"], :where(input)[type="submit"], [data-analytics-consent]):where(:not(.close):not(.mfp-close):not(.wishlistadd):not(.plus):not(.minus):not(.qtyminus)) {
    min-height: 44px;
    padding: 11px 22px;
    border: 1px solid var(--pr-primary);
    border-radius: var(--pr-radius);
    background: var(--pr-primary);
    color: #fff;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.45;
    text-align: center;
    text-transform: none;
    text-decoration: none;
    box-shadow: none;
    cursor: pointer;
    transition: background-color .15s, border-color .15s, box-shadow .15s;
}
body:not(.crm_body_bg) :is(.btn, .button, .single_add_to_cart_button, .r--button, :where(button)[type="submit"], :where(input)[type="submit"]):where(:not(.close):not(.mfp-close):not(.wishlistadd):not(.plus):not(.minus):not(.qtyminus):not(:disabled):not(.disabled):not([aria-disabled="true"])):hover {
    background: var(--pr-primary-hover);
    border-color: var(--pr-primary-hover);
    color: #fff;
}
body:not(.crm_body_bg) :is(.button_default, .btn-secondary, .btn-light, .btn-outline-secondary, .btn-outline-primary, .btn_back, .btn_filter) {
    background: #fff;
    border-color: var(--pr-border);
    color: var(--pr-primary);
}
body:not(.crm_body_bg) :is(.button_default, .btn-secondary, .btn-light, .btn-outline-secondary, .btn-outline-primary, .btn_back, .btn_filter):where(:not(:disabled):not(.disabled):not([aria-disabled="true"])):hover {
    background: var(--pr-soft);
    border-color: var(--pr-primary);
    color: var(--pr-primary-hover);
}
body:not(.crm_body_bg) .btn-danger { background: var(--pr-danger); border-color: var(--pr-danger); color: #fff; }
body:not(.crm_body_bg) .btn-danger:where(:not(:disabled):not(.disabled):not([aria-disabled="true"])):hover { background: #8c2339; border-color: #8c2339; }
body:not(.crm_body_bg) .btn-success { background: #24734b; border-color: #24734b; color: #fff; }
body:not(.crm_body_bg) .btn-success:where(:not(:disabled):not(.disabled):not([aria-disabled="true"])):hover { background: #195b39; border-color: #195b39; }
body:not(.crm_body_bg) .btn-warning { background: #fff1db; border-color: #e3c08c; color: #765012; }
body:not(.crm_body_bg) .btn-warning:where(:not(:disabled):not(.disabled):not([aria-disabled="true"])):hover { background: #f9e2bd; border-color: #cea363; color: #65420d; }
body:not(.crm_body_bg) .btn-link:hover,
body:not(.crm_body_bg) .btn-link { background: transparent; border-color: transparent; color: var(--pr-primary); }
body:not(.crm_body_bg) .btn-sm { min-height: 36px; padding: 7px 14px; font-size: 13px; }
body:not(.crm_body_bg) .btn-lg { min-height: 48px; padding: 13px 26px; font-size: 16px; }
body:not(.crm_body_bg) :is(.btn-block, .w__100) { max-width: 100%; }
body:not(.crm_body_bg) :is(.btn, .button, .single_add_to_cart_button, .r--button, :where(button)[type="submit"], :where(input)[type="submit"]):is(:disabled, .disabled, [aria-disabled="true"]) {
    background: #f1edf0;
    border-color: #e1d8dd;
    color: #8b7c85;
    opacity: 1;
    box-shadow: none;
    cursor: not-allowed;
}
body :is(button, :where(input)[type="submit"], input[type="button"], a.btn, a.button, a.r--button, a.btn_filter):focus-visible {
    outline: 3px solid var(--pr-focus);
    outline-offset: 3px;
}
body:not(.crm_body_bg) .wishlistadd:where(:not(:disabled):not(.disabled):not([aria-disabled="true"])):hover { background: var(--pr-soft); color: var(--pr-primary); }
body #analytics-consent { border-color: var(--pr-border); border-radius: 18px; box-shadow: 0 12px 36px #53203b1a; }
body #analytics-consent button[data-analytics-consent="granted"] { background: var(--pr-primary); color: #fff; border-color: var(--pr-primary); border-radius: var(--pr-radius); }
body #analytics-consent button[data-analytics-consent="denied"] { background: #fff; color: var(--pr-muted); border-color: var(--pr-border); border-radius: var(--pr-radius); }
body #analytics-consent button:hover { box-shadow: inset 0 0 0 1px var(--pr-primary); }
/* SweetAlert includes login, validation, checkout and destructive-action dialogs. Toasts keep their compact layout. */
body .swal2-popup:not(.swal2-toast):not(.pinkrabbit-cart-dialog) {
    width: min(460px, calc(100vw - 32px));
    padding: 26px 24px 24px;
    border: 1px solid var(--pr-border);
    border-radius: 22px;
    background: #fff;
    color: var(--pr-text);
    box-shadow: 0 24px 80px #53203b2b;
    font-family: inherit;
}
body .swal2-popup:not(.swal2-toast) .swal2-title { color: var(--pr-text); font-size: 24px; font-weight: 600; line-height: 1.4; }
body .swal2-popup:not(.swal2-toast) .swal2-html-container { color: var(--pr-muted); font-size: 15px; line-height: 1.65; overflow-wrap: anywhere; }
body .swal2-popup .swal2-actions { gap: 10px; max-width: 100%; }
body .swal2-popup .swal2-styled {
    min-height: 44px;
    margin: 0;
    padding: 11px 22px;
    border: 1px solid transparent;
    border-radius: var(--pr-radius);
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.45;
    box-shadow: none;
}
/* SweetAlert sets inline button colors; these three declarations apply the shared semantic palette. */
body .swal2-popup .swal2-styled.swal2-confirm { background: var(--pr-primary) !important; color: #fff; }
body .swal2-popup .swal2-styled.swal2-deny { background: var(--pr-danger) !important; color: #fff; }
body .swal2-popup .swal2-styled.swal2-cancel { background: #fff !important; border-color: var(--pr-border); color: var(--pr-muted); }
body .swal2-popup .swal2-styled.swal2-confirm:hover { background: var(--pr-primary-hover) !important; }
body .swal2-popup .swal2-styled.swal2-deny:hover { background: #8c2339 !important; }
body .swal2-popup .swal2-styled.swal2-cancel:hover { background: var(--pr-soft) !important; }
body .swal2-popup .swal2-styled:focus-visible { outline: 3px solid var(--pr-focus); outline-offset: 3px; box-shadow: none; }
body .swal2-popup .swal2-styled:disabled { opacity: .55; cursor: not-allowed; }
body .swal2-popup :is(.swal2-input, .swal2-textarea, .swal2-select) { max-width: calc(100% - 32px); border-color: var(--pr-border); border-radius: 10px; font: inherit; }
body .swal2-popup :is(.swal2-input, .swal2-textarea, .swal2-select):focus { border-color: var(--pr-primary); box-shadow: 0 0 0 3px var(--pr-soft); }
body .swal2-popup .swal2-validation-message { background: var(--pr-soft); color: var(--pr-danger); font-size: 14px; }
/* Bootstrap form dialogs and Magnific review dialogs use the same surface without touching galleries or payment widgets. */
body .modal-content { border: 1px solid var(--pr-border); border-radius: 20px; background: #fff; box-shadow: 0 24px 70px #53203b26; color: var(--pr-text); }
body .modal-header { padding: 20px 24px; border-bottom-color: var(--pr-border); border-radius: 20px 20px 0 0; }
body .modal-title { font-size: 21px; font-weight: 600; line-height: 1.4; color: var(--pr-text); }
body .modal-body { padding: 24px; }
body .modal-footer { gap: 10px; padding: 16px 24px; border-top-color: var(--pr-border); }
body .modal-footer > * { margin: 0; }
body :is(.modal .close, .swal2-close) { border-radius: 50%; color: var(--pr-muted); }
body :is(.modal .close, .swal2-close):hover { background: var(--pr-soft); color: var(--pr-primary); }
body .mfp-content .review-popup__content { max-width: min(680px, calc(100vw - 24px)); border: 1px solid var(--pr-border); border-radius: 20px; background: #fff; box-shadow: 0 24px 70px #53203b26; overflow: hidden; }
body .mfp-content .review-popup__content .r--title-form { color: var(--pr-text); }
body .mfp-content .review-popup__content .border-modal { border-color: var(--pr-border); }
@media (max-width: 480px) {
    body .swal2-popup:not(.swal2-toast):not(.pinkrabbit-cart-dialog) { padding: 22px 18px 20px; }
    body .swal2-popup:not(.swal2-toast) .swal2-title { font-size: 22px; }
    body .swal2-popup .swal2-actions { flex-wrap: wrap; }
    body .swal2-popup .swal2-styled { padding: 10px 17px; }
    body :is(.modal-header, .modal-body) { padding: 18px; }
    body .modal-footer { padding: 14px 18px; flex-wrap: wrap; }
    body .modal-footer :is(.btn, .button) { flex: 1 1 auto; }
}
@media (prefers-reduced-motion: reduce) {
    body :is(.btn, .button, .single_add_to_cart_button, .r--button, .swal2-styled) { transition: none; }
}
