/* Carrot Loader — no dependencies. */
.carrot-loader{display:inline-flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;color:#6b7280;font:600 12px/1.4 system-ui,sans-serif;letter-spacing:.12em}
.carrot-loader__art{width:var(--carrot-size,100px);height:auto;display:block;animation:carrot-bounce 1.2s ease-in-out infinite;transform-origin:50% 80%;will-change:transform}
.carrot-loader__label{margin:0;text-align:center}
@keyframes carrot-bounce{0%,100%{transform:translateY(0) rotate(-5deg) scale(1)}35%{transform:translateY(-15px) rotate(6deg) scale(1.03,.97)}65%{transform:translateY(0) rotate(-3deg) scale(1.08,.93)}}
.carrot-loader-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.95)}
.carrot-loader-overlay[hidden]{display:none!important}
@media(prefers-reduced-motion:reduce){.carrot-loader__art{animation:none}}

/* Existing loading states retain control of visibility and interaction. */
:root { --pr-loader-image: url('carrot.svg'); }
.nt_bg_lz.lazyload::before,
.nt_bg_lz.lazyloading::before,
.nt_load.lazyloaded::before,
.nt_fk_lz::before,
.lds_bginfinity::before,
.nt_mini_cart.loading .mini_cart_content,
.drift-zoom-pane-loader,
.nt_svg_loader,
.pr-image-loading {
    background-image: var(--pr-loader-image) !important;
    background-size: 38px 50px !important;
    background-repeat: no-repeat !important;
    /* Not !important: important declarations beat animations and would freeze the bounce. */
    background-position: center;
    animation: carrot-background-bounce 1.2s ease-in-out infinite !important;
}
/* Empty overlays can move as a whole, giving the same bounce/tilt/squash as the demo. */
.nt_bg_lz.lazyload::before,
.nt_bg_lz.lazyloading::before,
.nt_load.lazyloaded::before,
.nt_fk_lz::before,
.lds_bginfinity::before,
.nt_svg_loader {
    transform-origin: 50% 50%;
    animation: carrot-bounce 1.2s ease-in-out infinite !important;
}
@keyframes carrot-background-bounce {
    0%, 65%, 100% { background-position: 50% 50%; }
    35% { background-position: 50% calc(50% - 8px); }
}
/* Drift zoom draws a 66x20 two-dot loader centred with transform; size it for the carrot and centre with margins so the bounce transform is free. */
.drift-loading .drift-zoom-pane-loader {
    width: 38px;
    height: 50px;
    margin: -25px 0 0 -19px;
    transform: none;
    background-size: contain !important;
    transform-origin: 50% 80%;
    animation: carrot-bounce 1.2s ease-in-out infinite !important;
}
.drift-zoom-pane-loader::before,
.drift-zoom-pane-loader::after { display: none !important; }
/* Compact loaders for buttons and confirmation dialogs. */
.hover_button > a.loading::after,
.nt_add_w > a.loading::after,
.mail_agree.loading::after,
.js_frm_cart.loading::after,
.cart_ac_edit.loading::after,
.hotspot_ins.loading::after,
.js_add_group.loading::after,
.sticky_atc_js.loading::after,
.css_add_ld.loading::after,
.on_list_view_true .pr_list_item .product-info__btns > a.loading::after,
.swal2-loader,
.spinner-border,
.spinner-grow,
.pswp .pswp__preloader--active .pswp__preloader__icn {
    width: 24px !important;
    height: 32px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: var(--pr-loader-image) center / contain no-repeat !important;
    animation: carrot-bounce 1.2s ease-in-out infinite !important;
}
.hover_button > a.loading::after,
.nt_add_w > a.loading::after,
.mail_agree.loading::after,
.js_frm_cart.loading::after,
.cart_ac_edit.loading::after,
.hotspot_ins.loading::after,
.js_add_group.loading::after,
.sticky_atc_js.loading::after,
.css_add_ld.loading::after,
.on_list_view_true .pr_list_item .product-info__btns > a.loading::after {
    margin: -16px 0 0 -12px !important;
}
.pswp .pswp__preloader__cut { display: none !important; }
/* Processing text remains in the DOM for screen readers. */
.dataTables_wrapper .dataTables_processing,
.main_content .dataTables_wrapper .dataTables_processing {
    width: 64px;
    height: 72px;
    padding: 0;
    color: transparent;
    font-size: 0;
    line-height: 0;
}
.dataTables_wrapper .dataTables_processing::after,
.main_content .dataTables_wrapper .dataTables_processing::after {
    content: '';
    position: absolute;
    width: 30px;
    height: 40px;
    top: 16px;
    left: 17px;
    border: 0;
    border-radius: 0;
    background: var(--pr-loader-image) center / contain no-repeat;
    animation: carrot-bounce 1.2s ease-in-out infinite;
}
.dataTables_processing > div { display: none; }
.spanner .loader {
    width: 60px;
    height: 80px;
    margin: 60px auto 20px;
    background: var(--pr-loader-image) center / contain no-repeat;
    animation: carrot-bounce 1.2s ease-in-out infinite;
}
/* Magnific also uses this node for image errors, so preserve its readable text. */
.mfp-s-loading .mfp-preloader {
    min-height: 65px;
    padding-top: 65px;
    background: var(--pr-loader-image) top center / 38px 50px no-repeat;
    animation: carrot-background-bounce 1.2s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
    .carrot-loader__art,
    .nt_bg_lz.lazyload::before, .nt_bg_lz.lazyloading::before,
    .nt_load.lazyloaded::before, .nt_fk_lz::before, .lds_bginfinity::before,
    .nt_mini_cart.loading .mini_cart_content, .drift-zoom-pane-loader,
    .nt_svg_loader, .pr-image-loading,
    .hover_button > a.loading::after, .nt_add_w > a.loading::after,
    .mail_agree.loading::after, .js_frm_cart.loading::after,
    .cart_ac_edit.loading::after, .hotspot_ins.loading::after,
    .js_add_group.loading::after, .sticky_atc_js.loading::after,
    .css_add_ld.loading::after,
    .on_list_view_true .pr_list_item .product-info__btns > a.loading::after,
    .swal2-loader, .spinner-border, .spinner-grow,
    .pswp .pswp__preloader--active .pswp__preloader__icn,
    .dataTables_wrapper .dataTables_processing::after,
    .main_content .dataTables_wrapper .dataTables_processing::after,
    .spanner .loader, .mfp-s-loading .mfp-preloader { animation: none !important; }
}
