/*
 * Loyalty Club — arkusz frontu
 *
 * Plik powstal z blokow <style>, ktore wczesniej siedzialy w szablonach.
 * Wczytywany w naglowku strony, wiec wyglad jest gotowy od pierwszej
 * klatki — inline w tresci strony trafialby do stopki i dawal mignięcie.
 * Kolejnosc regul zachowana wzgledem zrodel.
 */

/* ── includes/class-zoopet-account.php : 2717 ── */
/* Ukryj WSZYSTKIE standardowe komunikaty WooCommerce */
            .woocommerce-MyAccount-content .woocommerce-message,
            .woocommerce-MyAccount-content .woocommerce-info,
            .woocommerce-MyAccount-content > p:not(.zoopet-desc),
            .woocommerce-MyAccount-content .woocommerce-Message,
            .woocommerce-MyAccount-content .woocommerce-Message--info,
            .woocommerce-account .woocommerce-info { 
                display: none !important; 
            }

/* ── includes/class-zoopet-category-promo.php : 242 ── */
/* Badge promocji na karcie */
        .zcp-product-badge {
            position: absolute;
            top: 8px;
            left: 8px;
            z-index: 10;
            background: linear-gradient(135deg, #6366f1, #4f46e5);
            color: #fff;
            padding: 6px 12px;
            border-radius: 8px;
            font-size: 11px;
            font-weight: 700;
            letter-spacing: 0.3px;
            box-shadow: 0 4px 12px rgba(99, 102, 241, 0.4);
            animation: zcp-badge-pulse 2s ease-in-out infinite;
            max-width: calc(100% - 16px);
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .zcp-product-badge.bundle-free {
            background: linear-gradient(135deg, #10b981, #059669);
            box-shadow: 0 4px 12px rgba(16, 185, 129, 0.4);
        }
        .zcp-product-badge.bundle-discount {
            background: linear-gradient(135deg, #f59e0b, #d97706);
            box-shadow: 0 4px 12px rgba(245, 158, 11, 0.4);
        }
        .zcp-product-badge.sale {
            background: linear-gradient(135deg, #ef4444, #dc2626);
            box-shadow: 0 4px 12px rgba(239, 68, 68, 0.4);
        }
        .zcp-product-badge.bestseller {
            background: linear-gradient(135deg, #ec4899, #db2777);
            box-shadow: 0 4px 12px rgba(236, 72, 153, 0.4);
        }
        @keyframes zcp-badge-pulse {
            0%, 100% { transform: scale(1); }
            50% { transform: scale(1.02); }
        }
        .woocommerce ul.products li.product {
            position: relative;
        }
        
        /* Cena promocyjna na karcie produktu */
        .zcp-promo-price {
            display: flex;
            flex-direction: column;
            gap: 4px;
        }
        .zcp-promo-price .zcp-original-price {
            color: #9ca3af;
            font-size: 13px;
            font-weight: 400;
            text-decoration: line-through;
        }
        .zcp-promo-price .zcp-new-price {
            color: #10b981;
            font-size: 18px;
            font-weight: 700;
            text-decoration: none;
            display: inline-flex;
            align-items: baseline;
            gap: 2px;
        }
        .zcp-promo-price .zcp-price-suffix {
            font-size: 12px;
            font-weight: 400;
            color: #6b7280;
        }
        .zcp-promo-price .zcp-promo-label {
            display: inline-block;
            background: linear-gradient(135deg, #10b981, #059669);
            color: #fff;
            padding: 3px 8px;
            border-radius: 4px;
            font-size: 10px;
            font-weight: 700;
            letter-spacing: 0.3px;
            width: fit-content;
        }
        
        /* Box promocji na stronie produktu */
        .zcp-single-promo-box {
            display: flex;
            gap: 16px;
            background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
            border: 2px solid #10b981;
            border-radius: 12px;
            padding: 16px 20px;
            margin: 16px 0;
        }
        .zcp-single-promo-box.bundle-discount {
            background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
            border-color: #f59e0b;
        }
        .zcp-single-promo-icon {
            font-size: 32px;
            line-height: 1;
        }
        .zcp-single-promo-content {
            flex: 1;
        }
        .zcp-single-promo-title {
            font-size: 16px;
            font-weight: 700;
            color: #065f46;
            margin-bottom: 6px;
        }
        .zcp-single-promo-box.bundle-discount .zcp-single-promo-title {
            color: #92400e;
        }
        .zcp-single-promo-desc {
            font-size: 14px;
            color: #047857;
            line-height: 1.5;
            margin-bottom: 8px;
        }
        .zcp-single-promo-box.bundle-discount .zcp-single-promo-desc {
            color: #b45309;
        }
        .zcp-single-promo-savings {
            display: inline-block;
            background: #10b981;
            color: #fff;
            padding: 6px 12px;
            border-radius: 6px;
            font-size: 13px;
            font-weight: 600;
        }
        .zcp-single-promo-box.bundle-discount .zcp-single-promo-savings {
            background: #f59e0b;
        }
        
        @media (max-width: 480px) {
            .zcp-single-promo-box {
                flex-direction: column;
                gap: 12px;
                text-align: center;
            }
        }

/* ── includes/class-zoopet-charity-campaigns.php : 575 ── */
.zp-charity-badge {
            position: absolute;
            top: 10px;
            left: 10px;
            background: #dc2626;
            color: #fff;
            font-size: 11px;
            font-weight: 700;
            padding: 5px 10px;
            border-radius: 4px;
            z-index: 10;
            animation: zp-badge-pulse 2s infinite;
        }
        @keyframes zp-badge-pulse {
            0%, 100% { box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.5); }
            50% { box-shadow: 0 0 0 8px rgba(220, 38, 38, 0); }
        }

/* ── includes/class-zoopet-charity-campaigns.php : 619 ── */
.zp-charity-product-notice {
            display: flex;
            gap: 15px;
            align-items: flex-start;
            background: linear-gradient(135deg, #fef2f2, #fee2e2);
            border: 2px solid #fca5a5;
            border-radius: 12px;
            padding: 15px 20px;
            margin: 15px 0;
        }
        .zp-cpn-icon {
            font-size: 32px;
            animation: zp-pulse 1.5s infinite;
        }
        .zp-cpn-content strong {
            display: block;
            color: #dc2626;
            font-size: 14px;
            margin-bottom: 5px;
        }
        .zp-cpn-content p {
            margin: 0;
            font-size: 13px;
            color: #7f1d1d;
        }

/* ── includes/class-zoopet-charity-campaigns.php : 674 ── */
.zp-charity-shipping-notice {
            display: flex;
            align-items: center;
            gap: 10px;
            background: #fffbeb;
            border: 1px solid #fcd34d;
            border-radius: 8px;
            padding: 12px 15px;
            margin-top: 15px;
            font-size: 13px;
            color: #92400e;
        }
        .zp-csn-icon { font-size: 20px; }

/* ── includes/class-zoopet-charity-campaigns.php : 958 ── */
.zp-charity-page { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
        
        /* Hero */
        .zp-charity-hero {
            position: relative;
            background: var(--zp-ch-bg);
            color: var(--zp-ch-text);
            border-radius: 20px;
            padding: 50px;
            margin-bottom: 30px;
            display: flex;
            align-items: center;
            gap: 40px;
            overflow: hidden;
        }
        .zp-ch-overlay {
            position: absolute;
            inset: 0;
            background: linear-gradient(135deg, rgba(0,0,0,0.1), rgba(0,0,0,0));
        }
        .zp-ch-content {
            flex: 1;
            position: relative;
            z-index: 1;
        }
        .zp-ch-badge {
            display: inline-block;
            background: rgba(255,255,255,0.2);
            padding: 8px 16px;
            border-radius: 50px;
            font-size: 13px;
            font-weight: 700;
            letter-spacing: 0.5px;
            margin-bottom: 15px;
        }
        .zp-ch-title {
            font-size: 42px;
            font-weight: 800;
            margin: 0 0 15px;
            line-height: 1.2;
        }
        .zp-ch-desc {
            font-size: 18px;
            opacity: 0.9;
            margin: 0 0 20px;
            max-width: 600px;
        }
        .zp-ch-countdown {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            background: rgba(0,0,0,0.2);
            padding: 12px 20px;
            border-radius: 10px;
            font-size: 15px;
        }
        .zp-ch-image {
            flex: 0 0 300px;
            position: relative;
            z-index: 1;
        }
        .zp-ch-image img {
            width: 100%;
            border-radius: 16px;
            box-shadow: 0 20px 50px rgba(0,0,0,0.3);
        }
        
        /* Cel akcji */
        .zp-charity-goal {
            display: flex;
            gap: 20px;
            align-items: flex-start;
            background: linear-gradient(135deg, #fef2f2, #fee2e2);
            border: 2px solid #fca5a5;
            border-radius: 16px;
            padding: 25px 30px;
            margin-bottom: 30px;
        }
        .zp-cg-icon { font-size: 48px; }
        .zp-cg-content h3 { 
            margin: 0 0 8px; 
            color: #dc2626;
            font-size: 20px;
        }
        .zp-cg-content p { margin: 0; color: #7f1d1d; }
        
        /* Info o dostawie */
        .zp-charity-shipping-info {
            display: flex;
            gap: 15px;
            align-items: flex-start;
            background: #fffbeb;
            border: 2px solid #fcd34d;
            border-radius: 12px;
            padding: 20px;
            margin-bottom: 30px;
        }
        .zp-csi-icon { font-size: 32px; }
        .zp-csi-content strong { display: block; color: #92400e; margin-bottom: 5px; }
        .zp-csi-content p { margin: 0; color: #78350f; font-size: 14px; }
        
        /* Produkty */
        .zp-charity-products h2 {
            font-size: 28px;
            font-weight: 700;
            margin: 0 0 25px;
            text-align: center;
        }
        .zp-charity-products .products li.product {
            position: relative;
        }
        .zp-charity-products .zp-charity-badge {
            position: absolute;
            top: 10px;
            left: 10px;
            z-index: 10;
        }
        .zp-charity-products .price del {
            color: #999;
            font-size: 14px;
        }
        .zp-charity-products .price ins {
            background: none;
            color: #dc2626;
            font-weight: 700;
            font-size: 18px;
        }
        
        /* No campaign */
        .zp-charity-no-campaign {
            text-align: center;
            padding: 80px 20px;
        }
        .zp-charity-no-campaign h1 { font-size: 32px; margin: 0 0 15px; }
        .zp-charity-no-campaign p { color: #666; margin: 0 0 25px; }
        
        @media (max-width: 768px) {
            .zp-charity-hero { flex-direction: column; padding: 30px; text-align: center; }
            .zp-ch-title { font-size: 28px; }
            .zp-ch-image { flex: 0 0 auto; width: 200px; }
            .zp-charity-goal { flex-direction: column; text-align: center; }
        }

/* ── includes/class-zoopet-checkout-promo.php : 425 ── */
/* ============================================
           PRODUCT PROMO - Banner na stronie produktu
           ============================================ */
        .zpc-product-promo {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 16px;
            background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
            border: 2px solid #fbbf24;
            border-radius: 12px;
            padding: 14px 18px;
            margin: 16px 0;
            animation: zpc-pp-slide 0.4s ease-out;
        }
        @keyframes zpc-pp-slide {
            from { opacity: 0; transform: translateY(-10px); }
            to { opacity: 1; transform: translateY(0); }
        }
        .zpc-pp-content {
            display: flex;
            align-items: center;
            gap: 12px;
            flex: 1;
        }
        .zpc-pp-icon {
            font-size: 28px;
            flex-shrink: 0;
        }
        .zpc-pp-text {
            display: flex;
            flex-direction: column;
        }
        .zpc-pp-text strong {
            font-size: 15px;
            color: #92400e;
            font-weight: 700;
        }
        .zpc-pp-text span {
            font-size: 13px;
            color: #a16207;
        }
        .zpc-pp-action {
            display: flex;
            align-items: center;
            gap: 10px;
            flex-shrink: 0;
        }
        .zpc-pp-btn {
            background: var(--accent-color, #6366f1);
            color: #fff !important;
            padding: 10px 18px;
            border-radius: 8px;
            font-size: 13px;
            font-weight: 600;
            text-decoration: none !important;
            white-space: nowrap;
            transition: transform 0.2s, box-shadow 0.2s;
        }
        .zpc-pp-btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 4px 12px rgba(99, 102, 241, 0.4);
            color: #fff !important;
        }
        .zpc-pp-close {
            background: none;
            border: none;
            font-size: 22px;
            color: #92400e;
            cursor: pointer;
            padding: 0;
            opacity: 0.5;
            transition: opacity 0.2s;
        }
        .zpc-pp-close:hover {
            opacity: 1;
        }
        
        @media (max-width: 600px) {
            .zpc-product-promo {
                flex-direction: column;
                text-align: center;
            }
            .zpc-pp-content {
                flex-direction: column;
            }
            .zpc-pp-action {
                width: 100%;
                justify-content: center;
            }
        }
        
        /* ============================================
           CHECKOUT GATE - Perswazyjny styl z listą
           ============================================ */
        .zpc-checkout-gate {
            background: #fff;
            border: 1px solid #e5e7eb;
            border-radius: 12px;
            padding: 24px;
            margin-bottom: 28px;
        }
        .zpc-cg-new {
            margin-bottom: 20px;
            padding-bottom: 20px;
            border-bottom: 1px solid #f3f4f6;
        }
        .zpc-cg-badge {
            display: inline-block;
            background: var(--accent-color, #6366f1);
            color: #fff;
            font-size: 12px;
            font-weight: 600;
            padding: 4px 12px;
            border-radius: 4px;
            margin-bottom: 12px;
        }
        .zpc-cg-badge--alt {
            background: #f3f4f6;
            color: #374151;
        }
        .zpc-cg-new h3 {
            font-size: 16px;
            font-weight: 600;
            color: #111827;
            margin: 0 0 14px;
        }
        .zpc-cg-list {
            margin: 0;
            padding: 0;
            list-style: none;
        }
        .zpc-cg-list li {
            position: relative;
            padding: 6px 0 6px 20px;
            font-size: 14px;
            color: #374151;
            line-height: 1.5;
        }
        .zpc-cg-list li::before {
            content: "✓";
            position: absolute;
            left: 0;
            color: var(--accent-color, #6366f1);
            font-weight: 700;
        }
        .zpc-cg-list li strong {
            color: #111827;
        }
        .zpc-cg-existing p {
            margin: 8px 0 0;
            font-size: 14px;
            color: #6b7280;
        }
        
        @media (max-width: 600px) {
            .zpc-checkout-gate {
                padding: 20px 16px;
            }
            .zpc-cg-list li {
                font-size: 13px;
            }
        }

/* ── includes/class-zoopet-order-pages.php : 199 ── */
.zoopet-toggle-review { cursor: pointer; border: none; }
        .zoopet-inline-review-form {
            width: 100%;
            margin-top: 16px;
            animation: zoopetSlideDown 0.3s ease;
        }
        @keyframes zoopetSlideDown {
            from { opacity: 0; transform: translateY(-10px); }
            to { opacity: 1; transform: translateY(0); }
        }
        .zoopet-review-form-inner {
            background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
            border-radius: 12px;
            padding: 20px;
            border: 1px solid #fcd34d;
        }
        .zoopet-rating-row, .zoopet-textarea-row { margin-bottom: 16px; }
        .zoopet-rating-row label, .zoopet-textarea-row label {
            display: block;
            font-weight: 600;
            color: #92400e;
            margin-bottom: 8px;
            font-size: 14px;
        }
        .zoopet-stars-select { display: flex; gap: 4px; }
        .zoopet-star-btn {
            font-size: 28px;
            color: #d1d5db;
            cursor: pointer;
            transition: all 0.2s;
        }
        .zoopet-star-btn:hover, .zoopet-star-btn.active { color: #f59e0b; transform: scale(1.1); }
        .zoopet-review-text {
            width: 100%;
            padding: 14px;
            border: 2px solid #fcd34d;
            border-radius: 10px;
            font-size: 14px;
            resize: vertical;
            min-height: 100px;
            font-family: inherit;
            box-sizing: border-box;
        }
        .zoopet-review-text:focus { outline: none; border-color: #f59e0b; }
        .zoopet-chars { display: block; text-align: right; font-size: 12px; color: #9ca3af; margin-top: 6px; }
        .zoopet-chars.valid { color: #059669; }
        .zoopet-form-actions { display: flex; gap: 12px; justify-content: flex-end; }
        .zoopet-btn-cancel {
            background: #fff;
            border: 2px solid #e5e7eb;
            color: #6b7280;
            padding: 10px 20px;
            border-radius: 8px;
            font-weight: 600;
            cursor: pointer;
        }
        .zoopet-btn-cancel:hover { background: #f3f4f6; }
        .zoopet-btn-submit {
            background: linear-gradient(135deg, #f59e0b, #d97706);
            border: none;
            color: #fff;
            padding: 10px 24px;
            border-radius: 8px;
            font-weight: 600;
            cursor: pointer;
        }
        .zoopet-btn-submit:disabled { opacity: 0.5; cursor: not-allowed; }
        .zoopet-btn-submit:not(:disabled):hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(245, 158, 11, 0.4); }
        .zoopet-review-success {
            text-align: center;
            padding: 24px;
            background: linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%);
            border-radius: 12px;
            border: 1px solid #34d399;
        }
        .zoopet-review-success-icon { font-size: 48px; margin-bottom: 12px; }
        .zoopet-review-success h4 { color: #047857; margin: 0 0 8px; font-size: 18px; }
        .zoopet-review-success p { color: #059669; margin: 0; font-size: 14px; }
        .zoopet-review-product-card { flex-wrap: wrap; }

/* ── includes/class-zoopet-order-pages.php : 543 ── */
.zoopet-order-toggle-review { cursor: pointer; border: none; }
        .zoopet-order-product-card { flex-wrap: wrap; }
        .zoopet-order-inline-form {
            width: 100%;
            margin-top: 16px;
            animation: zoopetOrderSlide 0.3s ease;
        }
        @keyframes zoopetOrderSlide {
            from { opacity: 0; transform: translateY(-10px); }
            to { opacity: 1; transform: translateY(0); }
        }
        .zoopet-order-form-inner {
            background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
            border-radius: 12px;
            padding: 20px;
            border: 1px solid #fcd34d;
        }
        .zoopet-order-rating-row, .zoopet-order-text-row { margin-bottom: 16px; }
        .zoopet-order-rating-row label, .zoopet-order-text-row label {
            display: block; font-weight: 600; color: #92400e; margin-bottom: 8px; font-size: 14px;
        }
        .zoopet-order-stars { display: flex; gap: 4px; }
        .zoopet-order-star {
            font-size: 28px; color: #d1d5db; cursor: pointer; transition: all 0.2s;
        }
        .zoopet-order-star:hover, .zoopet-order-star.active { color: #f59e0b; transform: scale(1.1); }
        .zoopet-order-review-text {
            width: 100%; padding: 14px; border: 2px solid #fcd34d; border-radius: 10px;
            font-size: 14px; resize: vertical; min-height: 100px; font-family: inherit; box-sizing: border-box;
        }
        .zoopet-order-review-text:focus { outline: none; border-color: #f59e0b; }
        .zoopet-order-chars { display: block; text-align: right; font-size: 12px; color: #9ca3af; margin-top: 6px; }
        .zoopet-order-chars.valid { color: #059669; }
        .zoopet-order-form-btns { display: flex; gap: 12px; justify-content: flex-end; }
        .zoopet-order-cancel {
            background: #fff; border: 2px solid #e5e7eb; color: #6b7280;
            padding: 10px 20px; border-radius: 8px; font-weight: 600; cursor: pointer;
        }
        .zoopet-order-cancel:hover { background: #f3f4f6; }
        .zoopet-order-submit {
            background: linear-gradient(135deg, #f59e0b, #d97706); border: none; color: #fff;
            padding: 10px 24px; border-radius: 8px; font-weight: 600; cursor: pointer;
        }
        .zoopet-order-submit:disabled { opacity: 0.5; cursor: not-allowed; }
        .zoopet-order-submit:not(:disabled):hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(245, 158, 11, 0.4); }
        .zoopet-order-success {
            text-align: center; padding: 24px;
            background: linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%);
            border-radius: 12px; border: 1px solid #34d399; width: 100%; margin-top: 16px;
        }
        .zoopet-order-success-icon { font-size: 48px; margin-bottom: 12px; }
        .zoopet-order-success h4 { color: #047857; margin: 0 0 8px; font-size: 18px; }
        .zoopet-order-success p { color: #059669; margin: 0; font-size: 14px; }

/* ── includes/class-zoopet-quantity-pricing.php : 108 ── */
table.variations, .variations_form > table, .variations_form .variations,
            form.variations_form table.variations, .single-product table.variations,
            .single-product .variations, table.variations tr, table.variations th,
            table.variations td, table.variations label, .variations .label, .variations .value,
            .woocommerce-variation-add-to-cart .woocommerce-variation-price, .reset_variations,
            .woocommerce div.product form.cart .variations {
                display: none !important; visibility: hidden !important; height: 0 !important;
                width: 0 !important; overflow: hidden !important; opacity: 0 !important;
                position: absolute !important; left: -9999px !important; pointer-events: none !important;
            }

/* ── includes/class-zoopet-quantity-pricing.php : 1236 ── */
.zqp-tabs-metabox { display: flex; flex-direction: column; gap: 20px; }
            .zqp-tab-field { background: #f9f9f9; padding: 15px; border: 1px solid #e0e0e0; border-radius: 4px; }
            .zqp-tab-field label { display: block; font-weight: 600; margin-bottom: 8px; font-size: 14px; }
            .zqp-tab-field .description { color: #666; font-size: 12px; margin-top: 5px; }
            .zqp-tab-field textarea { width: 100%; min-height: 120px; }

/* ── includes/class-zoopet-review-widgets.php : 390 ── */
.zrw-stars{color:#f0a500;letter-spacing:1px}
        .zrw-stars .zrw-off{color:#dfe5e2}
        .zrw-badge{display:inline-flex;align-items:center;gap:12px;padding:11px 15px;background:#fff;
            border:1px solid #e6ecea;border-radius:14px;box-shadow:0 10px 26px -14px rgba(10,50,32,.4)}
        .zrw-badge b{font-size:24px;font-weight:800;letter-spacing:-.03em;line-height:1}
        .zrw-badge .zrw-accent{color:var(--zoopet-accent,#0ea968)}
        .zrw-badge small{display:block;font-size:11px;color:#7f8f88}
        /* Pasek zaufania: elegancki, jasny — biale tlo i czarna ramka
           1 px zamiast czarnej plachty. Sygnatura idzie do osobnego
           wiersza i zostaje w naturalnych kolorach. */
        .zrw-trust{display:flex;align-items:center;justify-content:center;gap:34px;flex-wrap:wrap;
            padding:22px 26px;background:#fff;color:#111827;border:1px solid #111;border-radius:16px}
        .zrw-trust b{font-size:25px;font-weight:800;letter-spacing:-.02em;display:block;line-height:1.15}
        .zrw-trust small{font-size:13px;color:#6b7280}
        .zrw-sep{width:1px;height:34px;background:#e5e7eb;display:inline-block}
        .zrw-trust .zrw-sign{flex-basis:100%;justify-content:center;margin-top:2px;
            padding-top:12px;border-top:1px solid #eef1ef}
        /* Sygnatura widzetu — znak i nazwa w jednej linii. */
        .zrw-sign{display:inline-flex;align-items:center;gap:6px;opacity:.9}
        .zrw-sign .zpm-nazwa{font-size:12px;font-weight:800;letter-spacing:-.01em;white-space:nowrap}
        .zrw-sign .zpm-a{color:#123a8f}
        .zrw-sign .zpm-b{color:#1f8ef1}
        .zrw-car{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
        .zrw-card{background:#fff;border:1px solid #e6ecea;border-radius:14px;padding:15px}
        .zrw-card p{margin:7px 0 8px;font-size:14px;line-height:1.5}
        .zrw-card small{color:#9aa5a0;font-size:12px}
        .zrw-sum{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:center;
            padding:18px 20px;background:#fff;border:1px solid #e6ecea;border-radius:16px;margin:18px 0}
        .zrw-sum-big b{font-size:38px;font-weight:800;letter-spacing:-.04em;display:block;line-height:1}
        .zrw-sum-big small{display:block;font-size:12px;color:#7f8f88;margin-top:3px}
        .zrw-sum-rows{display:flex;flex-direction:column;gap:4px}
        .zrw-row{display:flex;align-items:center;gap:9px;font-size:12px;color:#7f8f88}
        .zrw-row i{flex:1;height:7px;border-radius:99px;background:#eef3f1;overflow:hidden}
        .zrw-row i b{display:block;height:100%;background:#f0a500}
        /* ── Pasek boczny z opiniami: układy a / b / c (.zrp) ──
           Kolor sklepu w --zrp-a; lista przewija się w środku,
           przycisk Zobacz wszystkie stoi na dole panelu. */
        .zrp{--zrp-ink:#1b1a18;--zrp-ink2:#55524c;--zrp-ink3:#8a867e;--zrp-line:#e8e5df;--zrp-sunk:#f6f5f2;--zrp-al:color-mix(in srgb,var(--zrp-a) 13%,#fff);--zrp-ad:color-mix(in srgb,var(--zrp-a) 72%,#000);
            font-family:inherit;color:var(--zrp-ink);line-height:1.45;font-size:14px}
        .zrp *{box-sizing:border-box}
        .zrp button{font:inherit;cursor:pointer;border:0;background:none;color:inherit;margin:0}
        .zrp :focus-visible{outline:2px solid var(--zrp-a);outline-offset:2px}
        .zrp [hidden]{display:none!important}
        .zrp-gw{color:var(--zrp-a);letter-spacing:1px;font-size:13px;white-space:nowrap}.zrp-gw i{color:#dcd7ce;font-style:normal}
        .zrp-zw{color:#2f7a45;font-weight:650;font-size:11.5px;white-space:nowrap}
        .zrp-av{width:28px;height:28px;border-radius:50%;display:inline-grid;place-items:center;font-weight:750;font-size:12px;flex:none;background:var(--zrp-al);color:var(--zrp-ad)}
        .zrp-kto{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.zrp-kto b{font-size:14px}
        .zrp-op{padding:14px 18px;border-bottom:1px solid #f1eee8}
        .zrp-op p,.zrp-slajd p{margin:6px 0 4px;font-size:13.5px;line-height:1.5;color:var(--zrp-ink2)}
        .zrp-op small,.zrp-slajd small{font-size:11.5px;color:var(--zrp-ink3)}
        .zrp .zrp-panel{position:fixed!important;z-index:99998!important;background:#fff;display:flex;flex-direction:column;visibility:hidden;transition:transform .3s cubic-bezier(.22,.61,.36,1),visibility 0s linear .3s}
        .zrp.otw .zrp-panel{visibility:visible;transition:transform .3s cubic-bezier(.22,.61,.36,1),visibility 0s}
        .zrp-lista{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}
        .zrp-dol{flex:none;padding:12px 18px;border-top:1px solid var(--zrp-line);background:#fff;box-shadow:0 -12px 20px -16px rgba(0,0,0,.28);text-align:center}
        .zrp-cta{display:flex!important;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;border-radius:10px;background:var(--zrp-a);color:#fff!important;font-weight:700;font-size:14px;text-decoration:none!important}
        .zrp-cta:hover{background:var(--zrp-ad)}
        .zrp-skad{display:inline-block;margin-top:8px;font-size:12px;color:var(--zrp-ink3)!important;text-decoration:underline;text-underline-offset:3px}
        .zrp-sygn{display:flex;justify-content:center;margin-top:6px}
        .zrp-zamk{width:30px;height:30px;border-radius:50%!important;background:var(--zrp-sunk)!important;font-size:18px!important;line-height:1;flex:none}
        .zrp-liczba{font-size:40px;font-weight:800;letter-spacing:-.04em;line-height:1}
        .zrp small{display:block}
        .zrp-dowody{flex:none;display:flex;gap:6px;flex-wrap:wrap;padding:0 18px 12px}
        .zrp-dowody span{font-size:11.5px;font-weight:650;background:var(--zrp-sunk);border-radius:99px;padding:5px 10px;color:var(--zrp-ink2)}
        .zrp-dowody b{color:var(--zrp-ink)}

        /* a — zakładka przy krawędzi + panel */
        .zrp .zrp-a-tab{position:fixed!important;right:0!important;top:22vh!important;z-index:99997!important;writing-mode:vertical-rl;display:flex!important;align-items:center;gap:10px;background:#fff!important;border:1px solid var(--zrp-line)!important;border-right:0!important;border-radius:12px 0 0 12px!important;padding:16px 10px!important;font-size:12.5px!important;font-weight:750!important;letter-spacing:.08em;box-shadow:-8px 8px 22px -14px rgba(0,0,0,.4);transition:opacity .2s}
        .zrp .zrp-a-tab b{writing-mode:horizontal-tb;font-size:18px;color:var(--zrp-a)}
        .zrp.zrp-a.otw .zrp-a-tab{opacity:0;pointer-events:none}
        .zrp.zrp-a .zrp-panel{right:0!important;top:12vh!important;max-height:78vh;width:380px;border:1px solid var(--zrp-line);border-right:0;border-radius:16px 0 0 16px;box-shadow:-18px 12px 44px -22px rgba(0,0,0,.5);transform:translateX(105%)}
        .zrp.zrp-a.otw .zrp-panel{transform:none}
        .zrp-a-glowa{flex:none;padding:14px 18px;border-bottom:1px solid var(--zrp-line);display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}
        .zrp-a-glowa small{font-size:12px;color:var(--zrp-ink2)}
        .zrp-rozkl{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,1fr);gap:4px}
        .zrp-rozkl span{display:flex;flex-direction:column;gap:3px;font-size:10px;color:var(--zrp-ink3);text-align:center}
        .zrp-rozkl i{display:block;height:5px;border-radius:9px;background:#efece6;overflow:hidden}.zrp-rozkl em{display:block;height:100%;background:var(--zrp-a)}

        /* b — plakietka w rogu + szuflada */
        .zrp .zrp-b-plak{position:fixed!important;right:18px!important;bottom:18px!important;z-index:99997!important;display:flex!important;align-items:center;gap:10px;background:#fff!important;border:1px solid var(--zrp-line)!important;border-radius:99px!important;padding:7px 16px 7px 7px!important;box-shadow:0 14px 30px -16px rgba(0,0,0,.45);text-align:left;transition:opacity .2s,transform .2s}
        .zrp .zrp-b-plak small{font-size:11.5px;color:var(--zrp-ink2)}
        .zrp-krag{width:40px;height:40px;border-radius:50%;background:var(--zrp-a);color:#fff;display:grid;place-items:center;font-weight:800;font-size:15px}
        .zrp.zrp-b.otw .zrp-b-plak{opacity:0;transform:scale(.9);pointer-events:none}
        .zrp .zrp-tlo{position:fixed!important;inset:0;z-index:99997!important;background:rgba(20,18,15,.38);opacity:0;pointer-events:none;transition:opacity .25s}
        .zrp.zrp-b.otw .zrp-tlo{opacity:1;pointer-events:auto}
        .zrp.zrp-b .zrp-panel{top:0!important;right:0!important;bottom:0!important;width:420px;max-width:100vw;transform:translateX(102%);box-shadow:-20px 0 50px -30px rgba(0,0,0,.5)}
        .zrp.zrp-b.otw .zrp-panel{transform:none}
        .zrp-b-glowa{flex:none;padding:20px 18px 12px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
        .zrp-b-glowa h3{margin:0;font-size:17px;font-weight:750}
        .zrp-b-wynik{display:flex;align-items:center;gap:12px;margin-top:8px}
        .zrp-b-wynik b{font-size:44px;font-weight:800;letter-spacing:-.05em;line-height:.9}
        .zrp-b-wynik small{font-size:12.5px;color:var(--zrp-ink2)}
        .zrp-zakl{flex:none;display:flex;gap:6px;padding:0 18px 12px;border-bottom:1px solid var(--zrp-line)}
        .zrp-zakl button{padding:6px 12px!important;border-radius:99px!important;font-size:13px!important;font-weight:650;color:var(--zrp-ink2)!important;border:1px solid var(--zrp-line)!important}
        .zrp-zakl button[aria-pressed=true]{background:var(--zrp-ink)!important;color:#fff!important;border-color:var(--zrp-ink)!important}

        /* c — wąska zakładka + jedna opinia na raz */
        .zrp .zrp-c-tab{position:fixed!important;right:0!important;top:50%!important;transform:translateY(-50%);z-index:99997!important;display:flex!important;flex-direction:column;align-items:center;gap:3px;background:var(--zrp-a)!important;color:#fff!important;border-radius:12px 0 0 12px!important;padding:12px 9px!important;box-shadow:-8px 8px 22px -12px rgba(0,0,0,.45);transition:opacity .2s}
        .zrp .zrp-c-tab b{font-size:17px;font-weight:800;line-height:1}
        .zrp .zrp-c-tab span{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
        .zrp .zrp-c-tab em{font-style:normal;font-size:12px}
        .zrp.zrp-c.otw .zrp-c-tab{opacity:0;pointer-events:none}
        .zrp.zrp-c .zrp-panel{right:16px!important;top:50%!important;width:360px;max-height:92vh;border:1px solid var(--zrp-line);border-radius:18px;box-shadow:0 30px 60px -28px rgba(0,0,0,.5);transform:translate(calc(100% + 24px),-50%);overflow:hidden}
        .zrp.zrp-c.otw .zrp-panel{transform:translate(0,-50%)}
        .zrp-c-pas{flex:none;background:var(--zrp-ink);color:#fff;padding:14px 16px;display:flex;align-items:center;gap:12px;margin-bottom:12px}
        .zrp-c-pas .zrp-liczba{font-size:34px}
        .zrp-c-pas small{font-size:11.5px;color:#cfc9bf}
        .zrp-c-pas .zrp-zamk{margin-left:auto;align-self:flex-start;background:rgba(255,255,255,.12)!important;color:#fff}
        .zrp-slajdy{flex:1 1 auto;min-height:150px;overflow-y:auto;padding:4px 18px 4px}
        .zrp-slajd p{font-size:15.5px;line-height:1.45;color:var(--zrp-ink)}
        .zrp-nav{flex:none;display:flex;align-items:center;justify-content:space-between;padding:6px 18px 12px}
        .zrp-nav button{width:32px;height:32px;border-radius:50%!important;border:1px solid var(--zrp-line)!important;font-size:15px}
        .zrp-kropki{display:flex;gap:5px}.zrp-kropki i{width:6px;height:6px;border-radius:50%;background:#ddd8cf;display:block}.zrp-kropki i.on{background:var(--zrp-a);width:16px;border-radius:9px}

        @media (max-width:640px){
            .zrp .zrp-a-tab{top:auto!important;bottom:22vh!important;padding:12px 8px!important;font-size:11px!important}
            .zrp.zrp-a .zrp-panel,.zrp.zrp-b .zrp-panel{top:auto!important;right:0!important;left:0!important;bottom:0!important;width:100%;max-height:82vh;height:82vh;border-radius:18px 18px 0 0;border-right:1px solid var(--zrp-line);transform:translateY(105%)}
            .zrp.zrp-a.otw .zrp-panel,.zrp.zrp-b.otw .zrp-panel{transform:none}
            .zrp .zrp-b-plak{right:12px!important;bottom:12px!important;padding:6px 12px 6px 6px!important}
            .zrp .zrp-b-plak small{display:none}
            .zrp .zrp-c-tab{top:auto!important;bottom:22vh!important;transform:none}
            .zrp.zrp-c .zrp-panel{left:10px!important;right:10px!important;width:auto;top:auto!important;bottom:10px!important;transform:translateY(calc(100% + 20px))}
            .zrp.zrp-c.otw .zrp-panel{transform:none}
        }

        /* Warianty kolorystyczne zakładki — tylko barwy ustawione w sklepie.
           Biała zakładka ginie na jasnym motywie, więc sklep wybiera. */
        .zrp.zrp-k-marka .zrp-a-tab,.zrp.zrp-k-marka .zrp-b-plak{background:var(--zrp-a)!important;color:#fff!important;border-color:transparent!important}
        .zrp.zrp-k-akcent .zrp-a-tab,.zrp.zrp-k-akcent .zrp-b-plak{background:var(--zrp-b)!important;color:#fff!important;border-color:transparent!important}
        .zrp.zrp-k-ciemny .zrp-a-tab,.zrp.zrp-k-ciemny .zrp-b-plak{background:var(--zrp-ink)!important;color:#fff!important;border-color:transparent!important}
        .zrp.zrp-k-marka .zrp-a-tab b,.zrp.zrp-k-akcent .zrp-a-tab b,.zrp.zrp-k-ciemny .zrp-a-tab b{color:#fff}
        .zrp.zrp-k-marka .zrp-b-plak small,.zrp.zrp-k-akcent .zrp-b-plak small,.zrp.zrp-k-ciemny .zrp-b-plak small{color:rgba(255,255,255,.85)}
        .zrp.zrp-k-marka .zrp-krag,.zrp.zrp-k-akcent .zrp-krag,.zrp.zrp-k-ciemny .zrp-krag{background:#fff;color:var(--zrp-ink)}
        .zrp.zrp-k-akcent .zrp-c-tab{background:var(--zrp-b)!important}
        .zrp.zrp-k-ciemny .zrp-c-tab{background:var(--zrp-ink)!important}
        .zrp.zrp-k-jasny .zrp-c-tab{background:#fff!important;color:var(--zrp-ink)!important;border:1px solid var(--zrp-line)!important;border-right:0!important}
        .zrp.zrp-k-jasny .zrp-c-tab b{color:var(--zrp-a)}

        /* Pasek przy lewej krawędzi — lustro tego, co po prawej. */
        .zrp.zrp-lewo .zrp-a-tab,.zrp.zrp-lewo .zrp-c-tab{right:auto!important;left:0!important;border-radius:0 12px 12px 0!important;box-shadow:8px 8px 22px -14px rgba(0,0,0,.4)}
        .zrp.zrp-lewo .zrp-a-tab{border-left:0!important;border-right:1px solid var(--zrp-line)!important}
        .zrp.zrp-lewo .zrp-b-plak{right:auto!important;left:18px!important}
        .zrp.zrp-lewo.zrp-a .zrp-panel{right:auto!important;left:0!important;border-radius:0 16px 16px 0;border-right:1px solid var(--zrp-line);border-left:0;transform:translateX(-105%)}
        .zrp.zrp-lewo.zrp-b .zrp-panel{right:auto!important;left:0!important;transform:translateX(-102%)}
        .zrp.zrp-lewo.zrp-c .zrp-panel{right:auto!important;left:16px!important;transform:translate(calc(-100% - 24px),-50%)}
        .zrp.zrp-lewo.zrp-a.otw .zrp-panel,.zrp.zrp-lewo.zrp-b.otw .zrp-panel{transform:none}
        .zrp.zrp-lewo.zrp-c.otw .zrp-panel{transform:translate(0,-50%)}
        @media (max-width:640px){
            .zrp.zrp-lewo.zrp-a .zrp-panel,.zrp.zrp-lewo.zrp-b .zrp-panel{left:0!important;right:0!important;transform:translateY(105%)}
            .zrp.zrp-lewo.zrp-a.otw .zrp-panel,.zrp.zrp-lewo.zrp-b.otw .zrp-panel{transform:none}
            .zrp.zrp-lewo.zrp-c .zrp-panel{left:10px!important;right:10px!important;transform:translateY(calc(100% + 20px))}
            .zrp.zrp-lewo.zrp-c.otw .zrp-panel{transform:none}
            .zrp.zrp-lewo .zrp-b-plak{left:12px!important}
        }
        @media (prefers-reduced-motion:reduce){.zrp *,.zrp .zrp-panel{transition:none!important}}
        .zrw-cart{display:flex;align-items:center;gap:9px;padding:12px 15px;background:#eafaf3;
            border:1px solid #bfe6d3;border-radius:12px;font-size:14px;color:#0b5c3c}
        .zrw-auto{max-width:1100px;margin:26px auto;padding:0 16px}
        .zrw-auto-h{margin:0 0 12px;font-size:18px;font-weight:700;letter-spacing:-.02em}
        .zrw-auto-trust{margin-bottom:0;padding-bottom:26px}
        @media (max-width:640px){
            .zrw-sum{grid-template-columns:1fr}
        }

        /* Informacja o weryfikacji opinii — wymóg, więc ma być widoczna,
           ale nie ma przykrywać samych opinii. */
        .zsr-weryfikacja{margin:12px 0;padding:11px 14px;border:1px solid var(--zpp-line,#e6ecea);
            border-radius:12px;background:var(--zpp-sunk,#f7faf9);font-size:12.5px;line-height:1.55;color:#5b6a63}
        .zsr-weryfikacja b{color:var(--zpp-ink,#1e293b)}
        .zsr-weryfikacja summary{cursor:pointer;font-weight:700;color:var(--zpp-ink,#1e293b);list-style:revert}
        .zsr-weryfikacja p{margin:8px 0 0}

        /* Strona z opiniami o sklepie — [zoopet_shop_reviews] */
        .zsr-lista{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
        .zsr-lista .zrw-card p{white-space:pre-line}
        .zsr-ok{color:#0b7a4d;font-weight:650}
        .zsr-odpowiedz{margin-top:10px;padding:9px 12px;background:#f4f6ff;
            border-left:3px solid #6366f1;border-radius:0 10px 10px 0}
        .zsr-odpowiedz b{font-size:12px;color:#4f46e5}
        .zsr-odpowiedz p{margin:4px 0 0;font-size:13.5px;color:#374151}
        .zsr-info{margin:14px 0;padding:12px 15px;border-radius:12px;background:#eafaf3;
            border:1px solid #bfe6d3;color:#0b5c3c;font-size:14px}
        .zsr-form{margin:22px 0 0;padding:18px 20px;background:#fff;
            border:1px solid #e6ecea;border-radius:16px}
        .zsr-form h3{margin:0 0 4px;font-size:17px;font-weight:700;letter-spacing:-.02em}
        .zsr-podpis{margin:0 0 12px;font-size:13px;color:#7f8f88;line-height:1.5}
        .zsr-oceny{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
        .zsr-oceny label{display:inline-flex;margin:0}
        .zsr-oceny input{position:absolute;width:1px;height:1px;margin:-1px;padding:0;
            border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
        .zsr-oceny input:focus-visible+span{outline:2px solid var(--zoopet-accent,#0ea968);outline-offset:2px}
        .zsr-oceny span{display:inline-block;padding:7px 13px;border-radius:99px;cursor:pointer;
            border:1px solid #dde3e0;background:#f7faf9;color:#f0a500;font-size:14px;letter-spacing:1px}
        .zsr-oceny input:checked+span{border-color:#0ea968;background:#eafaf3}
        .zsr-form textarea{width:100%;padding:11px 13px;border:1px solid #dde3e0;border-radius:12px;
            font:inherit;font-size:14px;resize:vertical}
        .zsr-btn{margin-top:10px;padding:11px 20px;border:0;border-radius:11px;cursor:pointer;
            font:inherit;font-size:14px;font-weight:660;color:#fff;
            background:var(--zoopet-accent,#0ea968)}

/* ── includes/class-zoopet-special-promotions.php : 377 ── */
/* =====================
           ZOOPET PROMO - RESET
           ===================== */
        .zp-promo, .zp-promo * {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
        }
        .zp-promo {
            position: fixed;
            z-index: 999999;
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
            font-size: 14px;
            line-height: 1.4;
        }
        .zp-promo a { text-decoration: none; color: inherit; }
        .zp-promo button:not(.zp-promo__tab) { 
            font-family: inherit; 
            cursor: pointer; 
            border: none;
            background: none;
            outline: none;
        }
        .zp-promo__tab {
            font-family: inherit;
            cursor: pointer;
            outline: none;
        }
        .zp-promo__close svg {
            display: block;
        }
        .zp-promo img { display: block; width: 60px; height: 60px; object-fit: cover; border-radius: 8px; background: #f0f0f0; flex-shrink: 0; }
        
        /* Wrapper dla obrazka z badge */
        .zp-promo__img-wrap {
            position: relative;
            flex-shrink: 0;
        }
        
        /* Wspólne elementy */
        .zp-promo__badge {
            position: absolute;
            top: -6px;
            left: -6px;
            padding: 3px 8px;
            font-size: 11px;
            font-weight: 700;
            color: #fff;
            border-radius: 10px;
            z-index: 5;
            white-space: nowrap;
        }
        .zp-promo__name {
            display: block;
            font-weight: 600;
            font-size: 13px;
            color: #333;
            overflow: hidden;
            max-width: 150px;
            position: relative;
        }
        .zp-promo__name-text {
            display: inline-block;
            white-space: nowrap;
            padding-right: 40px;
        }
        /* Animacja marquee - automatyczna dla długich nazw */
        .zp-promo__name.is-marquee .zp-promo__name-text {
            animation: zp-marquee 8s ease-in-out infinite;
            animation-delay: 0.5s;
        }
        @keyframes zp-marquee {
            0%, 15% { transform: translateX(0); }
            85%, 100% { transform: translateX(-50%); }
        }
        /* Duplikacja tekstu dla płynnej pętli - dodawane przez JS */
        .zp-promo__name.is-marquee .zp-promo__name-text::after {
            content: attr(data-text);
            position: absolute;
            left: 100%;
            padding-left: 40px;
            white-space: nowrap;
        }
        .zp-promo__price {
            display: block;
            font-weight: 700;
            font-size: 14px;
            color: var(--zp-color);
        }
        .zp-promo__price del { color: #999; font-weight: 400; font-size: 12px; }
        .zp-promo__price ins { text-decoration: none; }
        .zp-promo__dots {
            display: flex;
            justify-content: center;
            gap: 6px;
            margin-top: 12px;
        }
        .zp-promo__dot {
            width: 8px;
            height: 8px;
            background: #ddd;
            border-radius: 50%;
            cursor: pointer;
            transition: 0.2s;
        }
        .zp-promo__dot.is-active {
            background: var(--zp-color);
            width: 20px;
            border-radius: 4px;
        }
        
        /* ====================
           COMPACT & PANEL
           ==================== */
        .zp-promo--compact,
        .zp-promo--panel {
            bottom: 100px;
            display: flex;
            align-items: flex-start;
            transition: transform 0.4s ease, opacity 0.4s ease;
        }
        
        /* LEWA strona */
        .zp-promo--left { left: 0; flex-direction: row; }
        .zp-promo--left .zp-promo__tab {
            order: 2;
            border-radius: 0 10px 10px 0;
        }
        .zp-promo--left .zp-promo__box {
            order: 1;
            border-radius: 0 16px 16px 0;
        }
        
        /* PRAWA strona */
        .zp-promo--right { right: 0; flex-direction: row-reverse; }
        .zp-promo--right .zp-promo__tab {
            order: 2;
            border-radius: 10px 0 0 10px;
        }
        .zp-promo--right .zp-promo__box {
            order: 1;
            border-radius: 16px 0 0 16px;
        }
        
        /* UKRYTE - przed pierwszym pokazaniem */
        .zp-promo--compact.is-hidden,
        .zp-promo--panel.is-hidden {
            opacity: 0;
            pointer-events: none;
        }
        
        /* ZWINIĘTE - panel zamknięty, tab widoczny */
        .zp-promo--left.is-collapsed { transform: translateX(-100%); }
        .zp-promo--left.is-collapsed .zp-promo__tab { transform: translateX(100%); }
        .zp-promo--right.is-collapsed { transform: translateX(100%); }
        .zp-promo--right.is-collapsed .zp-promo__tab { transform: translateX(-100%); }
        
        /* Tab (przycisk boczny) */
        .zp-promo__tab {
            background: var(--zp-color) !important;
            color: var(--zp-text) !important;
            padding: 14px 8px;
            writing-mode: vertical-rl;
            font-size: 13px;
            font-weight: 600;
            box-shadow: 0 4px 15px rgba(0,0,0,0.2);
            flex-shrink: 0;
            transition: transform 0.4s ease;
            border: none !important;
        }
        .zp-promo--right .zp-promo__tab span { transform: rotate(180deg); }
        .zp-promo__tab:hover { filter: brightness(1.1); }
        
        /* COMPACT - Box */
        .zp-promo--compact .zp-promo__box {
            position: relative;
            background: #fff;
            padding: 20px 16px 16px;
            min-width: 270px;
            box-shadow: 0 4px 25px rgba(0,0,0,0.15);
            cursor: pointer;
            overflow: visible;
        }
        .zp-promo--compact .zp-promo__close {
            position: absolute;
            top: 8px;
            right: 8px;
            width: 26px;
            height: 26px;
            min-width: 26px;
            min-height: 26px;
            background: #f0f0f0;
            border-radius: 50%;
            font-size: 18px;
            line-height: 1;
            color: #666;
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 10;
            cursor: pointer;
        }
        .zp-promo--compact .zp-promo__close:hover { background: #e0e0e0; }
        .zp-promo--compact .zp-promo__item {
            display: flex;
            gap: 12px;
            padding: 12px;
            background: #f8f9fa;
            border-radius: 12px;
            position: relative;
            align-items: center;
        }
        .zp-promo--compact .zp-promo__item:not(.is-active) { display: none; }
        .zp-promo--compact .zp-promo__info { display: flex; flex-direction: column; gap: 4px; }
        
        /* PANEL - Box */
        .zp-promo--panel .zp-promo__box {
            background: #fff;
            width: 300px;
            max-height: 70vh;
            box-shadow: 0 4px 25px rgba(0,0,0,0.15);
            overflow: hidden;
        }
        .zp-promo--panel .zp-promo__header {
            background: var(--zp-color);
            color: var(--zp-text);
            padding: 14px 16px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            font-weight: 600;
            cursor: pointer;
        }
        .zp-promo--panel .zp-promo__close {
            background: rgba(255,255,255,0.2);
            color: inherit;
            width: 28px;
            height: 28px;
            min-width: 28px;
            min-height: 28px;
            border-radius: 50%;
            font-size: 20px;
            line-height: 1;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
            cursor: pointer;
        }
        .zp-promo--panel .zp-promo__close:hover {
            background: rgba(255,255,255,0.3);
        }
        .zp-promo--panel .zp-promo__list {
            padding: 18px 12px 12px;
            max-height: calc(70vh - 52px);
            overflow-y: auto;
            display: flex;
            flex-direction: column;
            gap: 10px;
        }
        .zp-promo--panel .zp-promo__item {
            display: flex;
            gap: 12px;
            padding: 10px;
            background: #f8f9fa;
            border-radius: 10px;
            position: relative;
            align-items: center;
            transition: 0.2s;
            overflow: visible;
        }
        .zp-promo--panel .zp-promo__item:hover { background: #f0f0f0; }
        .zp-promo--panel .zp-promo__img { width: 50px; height: 50px; }
        .zp-promo--panel .zp-promo__info { flex: 1; min-width: 0; }
        .zp-promo--panel .zp-promo__name {
            font-size: 12px;
            max-width: 130px;
        }
        
        /* ====================
           SLIDER (dół ekranu)
           ==================== */
        .zp-promo--slider {
            left: 0;
            right: 0;
            bottom: 0;
            transition: opacity 0.4s ease;
            overflow: visible;
        }
        .zp-promo--slider.is-hidden {
            opacity: 0;
            pointer-events: none;
        }
        /* Tab z boku ekranu (pionowy, jak w compact) */
        .zp-promo--slider .zp-promo__tab {
            position: fixed;
            bottom: 100px;
            left: 0;
            background: var(--zp-color) !important;
            color: var(--zp-text) !important;
            border: none !important;
            padding: 14px 8px;
            border-radius: 0 8px 8px 0;
            font-size: 13px;
            font-weight: 600;
            box-shadow: 0 4px 15px rgba(0,0,0,0.2);
            writing-mode: vertical-rl;
            cursor: pointer;
            opacity: 0;
            pointer-events: none;
            transition: opacity 0.3s;
            z-index: 999998;
        }
        .zp-promo--slider .zp-promo__tab span {
            transform: rotate(180deg);
        }
        .zp-promo--slider.is-collapsed .zp-promo__tab {
            opacity: 1;
            pointer-events: auto;
        }
        .zp-promo--slider .zp-promo__tab:hover {
            filter: brightness(1.1);
        }
        /* Bar */
        .zp-promo--slider .zp-promo__bar {
            background: var(--zp-color);
            color: var(--zp-text);
            padding: 12px 20px;
            display: flex;
            align-items: center;
            gap: 15px;
            box-shadow: 0 -4px 20px rgba(0,0,0,0.15);
            cursor: pointer;
            transition: transform 0.4s ease;
        }
        .zp-promo--slider.is-collapsed .zp-promo__bar {
            transform: translateY(100%);
        }
        .zp-promo--slider .zp-promo__close {
            background: rgba(255,255,255,0.2);
            color: inherit;
            width: 32px;
            height: 32px;
            min-width: 32px;
            min-height: 32px;
            border-radius: 50%;
            font-size: 20px;
            line-height: 1;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
            cursor: pointer;
        }
        .zp-promo--slider .zp-promo__close:hover {
            background: rgba(255,255,255,0.3);
        }
        .zp-promo--slider .zp-promo__bar-title {
            font-weight: 700;
            font-size: 15px;
            white-space: nowrap;
        }
        .zp-promo--slider .zp-promo__track {
            flex: 1;
            display: flex;
            gap: 12px;
            overflow: visible;
            padding-top: 8px;
            margin-top: -8px;
        }
        .zp-promo--slider .zp-promo__item {
            display: flex;
            align-items: center;
            gap: 10px;
            background: rgba(255,255,255,0.95);
            color: #333;
            padding: 8px 14px;
            border-radius: 10px;
            position: relative;
            min-width: 220px;
            overflow: visible;
        }
        .zp-promo--slider .zp-promo__item:not(.is-active) { display: none; }
        .zp-promo--slider .zp-promo__img { width: 45px; height: 45px; }
        .zp-promo--slider .zp-promo__name { font-size: 12px; max-width: 100px; }
        .zp-promo--slider .zp-promo__nav { display: flex; gap: 6px; }
        .zp-promo--slider .zp-promo__prev,
        .zp-promo--slider .zp-promo__next {
            background: rgba(255,255,255,0.2);
            color: inherit;
            width: 36px;
            height: 36px;
            border-radius: 50%;
            font-size: 20px;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        
        /* ====================
           POPUP (odsunięty baner)
           ==================== */
        .zp-promo--popup {
            bottom: 30px;
            transition: opacity 0.4s ease, transform 0.4s ease;
        }
        .zp-promo--popup.zp-promo--left { left: 30px; }
        .zp-promo--popup.zp-promo--right { right: 30px; }
        .zp-promo--popup.is-hidden {
            opacity: 0;
            transform: translateY(30px);
            pointer-events: none;
        }
        .zp-promo--popup .zp-promo__popup {
            background: #fff;
            border-radius: 16px;
            box-shadow: 0 8px 40px rgba(0,0,0,0.2);
            padding: 16px;
            min-width: 280px;
            position: relative;
            animation: zp-bounce 0.5s ease;
            cursor: pointer;
        }
        @keyframes zp-bounce {
            0% { transform: scale(0.8); opacity: 0; }
            50% { transform: scale(1.02); }
            100% { transform: scale(1); opacity: 1; }
        }
        .zp-promo--popup .zp-promo__close {
            position: absolute;
            top: -10px;
            right: -10px;
            width: 28px;
            height: 28px;
            min-width: 28px;
            min-height: 28px;
            background: var(--zp-color);
            color: var(--zp-text);
            border-radius: 50%;
            font-size: 18px;
            line-height: 1;
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: 0 2px 8px rgba(0,0,0,0.2);
            z-index: 10;
            cursor: pointer;
        }
        .zp-promo--popup .zp-promo__close:hover {
            filter: brightness(1.1);
        }
        .zp-promo--popup .zp-promo__popup-header {
            background: var(--zp-color);
            color: var(--zp-text);
            padding: 10px 14px;
            margin: -16px -16px 12px;
            border-radius: 16px 16px 0 0;
            font-weight: 700;
            font-size: 14px;
        }
        .zp-promo--popup .zp-promo__item {
            display: flex;
            gap: 12px;
            padding: 12px;
            background: #f8f9fa;
            border-radius: 12px;
            position: relative;
            align-items: center;
            overflow: visible;
        }
        .zp-promo--popup .zp-promo__info { display: flex; flex-direction: column; gap: 4px; }
        
        /* Mobile */
        @media (max-width: 500px) {
            .zp-promo--popup { left: 15px !important; right: 15px !important; }
            .zp-promo--popup .zp-promo__popup { min-width: auto; }
            .zp-promo--slider .zp-promo__bar-title { display: none; }
        }

/* ── public/templates/review-page.php : 62 ── */
body{margin:0;background:#f4f7f6;color:#0b1a14;
       font:400 16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
  .zr{max-width:38rem;margin:0 auto;padding:2.2rem 1.1rem 4rem}
  .zr-card{background:#fff;border-radius:18px;padding:1.9rem 1.8rem;
           box-shadow:0 20px 46px -24px rgba(10,50,32,.35)}
  .zr h1{margin:0 0 .3rem;font-size:1.32rem;font-weight:750;letter-spacing:-.03em;line-height:1.3}
  .zr-ok{display:inline-flex;align-items:center;gap:.5rem;margin:0 0 1.2rem;padding:.5rem .9rem;
         border-radius:99px;background:#eafaf3;border:1px solid #bfe6d3;
         font-size:.87rem;font-weight:620;color:#0b7a4d}
  .zr-stars{font-size:1.7rem;color:#f0a500;letter-spacing:2px;margin-bottom:1.1rem}
  .zr-stars .off{color:#dfe5e2}
  label{display:block;font-size:.86rem;font-weight:650;margin-bottom:.45rem}
  textarea{width:100%;min-height:120px;padding:.85rem 1rem;border:1px solid #dde3e0;
           border-radius:12px;font:inherit;font-size:.95rem;resize:vertical}
  textarea:focus{outline:none;border-color:#0ea968;box-shadow:0 0 0 3px rgba(14,169,104,.16)}
  .zr-tips{display:flex;gap:.4rem;flex-wrap:wrap;margin:.7rem 0 1.1rem}
  .zr-tips button{appearance:none;cursor:pointer;font:inherit;font-size:.83rem;font-weight:600;
                  padding:.42rem .85rem;border-radius:99px;border:1px solid #dde3e0;
                  background:#f7faf9;color:#4a5a53}
  .zr-tips button:hover{border-color:#0ea968;color:#0b1a14}
  .zr-note{margin:0 0 1.3rem;font-size:.82rem;color:#7f8f88;line-height:1.55}
  .zr-btn{display:inline-block;padding:.78rem 1.5rem;border:0;border-radius:11px;cursor:pointer;
          font:inherit;font-size:.95rem;font-weight:660;color:#fff;
          background:linear-gradient(120deg,#0ea968,#14b8a6);
          box-shadow:0 12px 26px -12px rgba(14,169,104,.6)}
  .zr-skip{margin-left:.9rem;font-size:.88rem;color:#7f8f88;text-decoration:none}
  .zr-err{margin:0 0 1rem;padding:.7rem .9rem;border-radius:10px;
          background:#fdecea;border:1px solid #f5c6c0;color:#8c2f22;font-size:.88rem}
  /* Druga część formularza: ocena sklepu. Odcięta linią, żeby było widać,
     że to inne pytanie niż opinia o produkcie. */
  .zr-sklep{margin:0 0 1.3rem;padding:1rem 1.1rem;border-radius:14px;
            background:#f7faf9;border:1px solid #e6ecea}
  .zr-sklep strong{font-size:.95rem;font-weight:700}
  .zr-oceny{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 .7rem}
  .zr-oceny label{display:inline-flex;margin:0}
  /* Chowamy sam kwadracik, nie pole: zerowy rozmiar potrafi wypaść
     z drzewa dostępności i czytnik ekranu nie mówi, że jest co wybrać. */
  .zr-oceny input{position:absolute;width:1px;height:1px;margin:-1px;padding:0;
                  border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .zr-oceny span{display:inline-block;padding:.4rem .8rem;border-radius:99px;cursor:pointer;
                 border:1px solid #dde3e0;background:#fff;color:#4a5a53;
                 font-size:.85rem;font-weight:640;white-space:nowrap}
  .zr-oceny input:checked+span{border-color:#0ea968;background:#eafaf3;color:#0b7a4d}
  .zr-oceny input:focus-visible+span{outline:2px solid #0ea968;outline-offset:2px}

/* ── public/templates/shortcodes/animals.php : 65 ── */
.zoopet-animals-shortcode .zoopet-animals-header {
    margin-bottom: 20px;
}
.zoopet-animals-shortcode.zoopet-cols-2 .zoopet-animals-grid { grid-template-columns: repeat(2, 1fr); }
.zoopet-animals-shortcode.zoopet-cols-3 .zoopet-animals-grid { grid-template-columns: repeat(3, 1fr); }
.zoopet-animals-shortcode.zoopet-cols-4 .zoopet-animals-grid { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 768px) {
    .zoopet-animals-shortcode .zoopet-animals-grid { grid-template-columns: 1fr !important; }
}

/* ── public/templates/shortcodes/birthday-banner.php : 29 ── */
.zoopet-birthday-banner {
    display: flex;
    align-items: center;
    gap: 16px;
    background: linear-gradient(135deg, var(--zpp-warn-bg), var(--zpp-warn-bg-2));
    border-radius: var(--zoopet-radius, 12px);
    padding: 20px 24px;
    margin: 20px 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
.zoopet-birthday-banner .zoopet-birthday-icon { font-size: 40px; }
.zoopet-birthday-banner .zoopet-birthday-content { flex: 1; }
.zoopet-birthday-banner h4 { margin: 0 0 4px 0; color: var(--zpp-warn-ink); }
.zoopet-birthday-banner p { margin: 0; color: #78350f; font-size: 14px; }
@media (max-width: 600px) {
    .zoopet-birthday-banner { flex-direction: column; text-align: center; }
}

/* ── public/templates/shortcodes/club-card.php : 103 ── */
.zoopet-sc-card {
    max-width: 420px;
    border-radius: var(--zpp-r);
    padding: 22px 26px;
    color: var(--zpp-on-accent);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    box-shadow: var(--zpp-sh-lg);
    position: relative;
    overflow: hidden;
}
.zoopet-sc-circle {
    position: absolute;
    border-radius: 50%;
    background: rgba(255,255,255,0.08);
    pointer-events: none;
}
.zoopet-sc-circle-1 { width: 180px; height: 180px; top: -60px; right: -40px; }
.zoopet-sc-circle-2 { width: 120px; height: 120px; bottom: -40px; left: -20px; }

.zoopet-sc-header {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 18px;
}
.zoopet-sc-logo { max-height: 28px; }
.zoopet-sc-brand { font-size: 17px; font-weight: 700; }
.zoopet-sc-tier {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: rgba(255,255,255,0.2);
    backdrop-filter: blur(4px);
    padding: 4px 12px;
    border-radius: var(--zpp-r-lg);
    font-size: 12px;
    font-weight: 600;
}

.zoopet-sc-member {
    position: relative;
    z-index: 1;
    margin-bottom: 18px;
}
.zoopet-sc-name {
    font-size: 22px;
    font-weight: 600;
    margin-bottom: 2px;
}
.zoopet-sc-cardnum {
    font-size: 12px;
    opacity: 0.75;
    font-family: 'SF Mono', Monaco, 'Courier New', monospace;
}

.zoopet-sc-bottom {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 16px;
    flex-wrap: wrap;
}
.zoopet-sc-stats {
    display: flex;
    gap: 20px;
}
.zoopet-sc-stat { text-align: center; }
.zoopet-sc-stat-val {
    display: block;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.2;
}
.zoopet-sc-stat-lbl {
    font-size: 10px;
    opacity: 0.75;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.zoopet-sc-barcode {
    background: #fff;
    border-radius: 10px;
    padding: 10px 18px 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}
.zoopet-sc-barcode-img {
    display: block;
    height: 65px;
    width: auto;
    min-width: 220px;
    max-width: 100%;
    image-rendering: pixelated;
    image-rendering: crisp-edges;
}
.zoopet-sc-barcode-num {
    font-size: 10px;
    font-family: 'SF Mono', Monaco, 'Courier New', monospace;
    color: #111;
    letter-spacing: 1.5px;
    font-weight: 600;
}

/* Responsive */
@media (max-width: 480px) {
    .zoopet-sc-card { padding: 18px 20px; }
    .zoopet-sc-bottom { flex-direction: column; align-items: stretch; }
    .zoopet-sc-barcode { align-self: center; }
    .zoopet-sc-stats { justify-content: center; }
    .zoopet-sc-name { font-size: 19px; }
}

/* ── public/templates/shortcodes/points-badge.php : 19 ── */
.zoopet-points-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--zoopet-bg, var(--zpp-surface));
    border: 1px solid var(--zoopet-border, var(--zpp-line));
    padding: 10px 16px;
    border-radius: 50px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
.zoopet-points-badge .zoopet-points-icon { font-size: 20px; }
.zoopet-points-badge .zoopet-points-value { font-size: 18px; font-weight: 700; color: var(--zoopet-primary, #6366f1); }
.zoopet-points-badge .zoopet-points-label { font-size: 13px; color: var(--zoopet-text-light, var(--zpp-ink-3)); }
.zoopet-points-badge .zoopet-tier-mini { padding: 2px 8px; border-radius: var(--zpp-r-sm); font-size: 11px; color: var(--zpp-on-accent); }

/* ── public/templates/shortcodes/recommendations.php : 39 ── */
.zoopet-recommendations-title { margin-bottom: 20px; color: var(--zoopet-text, var(--zpp-ink)); }
.zoopet-products-grid { display: grid; gap: 20px; }
.zoopet-recommendations-shortcode.zoopet-cols-2 .zoopet-products-grid { grid-template-columns: repeat(2, 1fr); }
.zoopet-recommendations-shortcode.zoopet-cols-3 .zoopet-products-grid { grid-template-columns: repeat(3, 1fr); }
.zoopet-recommendations-shortcode.zoopet-cols-4 .zoopet-products-grid { grid-template-columns: repeat(4, 1fr); }
.zoopet-product-card {
    background: var(--zoopet-bg, var(--zpp-surface));
    border: 1px solid var(--zoopet-border, var(--zpp-line));
    border-radius: var(--zoopet-radius, 12px);
    padding: 16px;
    text-align: center;
}
.zoopet-product-link { text-decoration: none !important; color: inherit; }
.zoopet-product-image img { max-width: 100%; height: auto; margin-bottom: 12px; }
.zoopet-product-title { margin: 0 0 8px 0; font-size: 14px; color: var(--zoopet-text, var(--zpp-ink)); }
.zoopet-product-price { color: var(--zoopet-primary, #6366f1); font-weight: 600; display: block; margin-bottom: 12px; }
@media (max-width: 768px) {
    .zoopet-recommendations-shortcode .zoopet-products-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

/* ── public/templates/shortcodes/rewards-grid.php : 66 ── */
.zoopet-rewards-shortcode .zoopet-rewards-header { margin-bottom: 20px; }
.zoopet-rewards-shortcode.zoopet-cols-2 .zoopet-rewards-grid { grid-template-columns: repeat(2, 1fr); }
.zoopet-rewards-shortcode.zoopet-cols-3 .zoopet-rewards-grid { grid-template-columns: repeat(3, 1fr); }
.zoopet-rewards-shortcode.zoopet-cols-4 .zoopet-rewards-grid { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 768px) {
    .zoopet-rewards-shortcode .zoopet-rewards-grid { grid-template-columns: 1fr !important; }
}

/* ── public/templates/shortcodes/tier-badge.php : 18 ── */
.zoopet-tier-badge-shortcode {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-radius: 50px;
    color: var(--zpp-on-accent);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
.zoopet-tier-badge-shortcode .zoopet-tier-name { font-weight: 600; }
.zoopet-tier-badge-shortcode .zoopet-tier-multiplier { opacity: 0.9; font-size: 12px; }
.zoopet-tier-badge-shortcode.zoopet-tier-small { padding: 4px 10px; font-size: 12px; }
.zoopet-tier-badge-shortcode.zoopet-tier-large { padding: 12px 24px; font-size: 16px; }

/* ── Formularz opinii WooCommerce w stylu wtyczki ──────────────────────
   Nie podmieniamy znacznikow — WooCommerce buduje ten formularz sam i
   inne wtyczki sie w niego wpinaja. Zmieniamy wylacznie wyglad.        */

#review_form_wrapper { margin-top: 22px; }

/* Ten naglowek stoi na tle motywu, nie na naszej karcie — kolor
   dziedziczy po motywie, zeby nie zniknal w ciemnym stylu. */
#review_form .comment-reply-title {
    display: block; font-size: 17px; font-weight: 800; letter-spacing: -.02em;
    margin: 0 0 4px;
}

/* Zdanie o adresie e-mail: potrzebne, ale nie jako naglowek sekcji. */
#review_form .comment-notes {
    font-size: 12.5px; opacity: .7; margin: 0 0 18px;
}

#review_form .comment-form {
    background: var(--zpp-surface, #fff); border: 1px solid var(--zpp-line, #e6ecea);
    border-radius: var(--zpp-r, 16px);
    padding: 20px 22px; box-shadow: var(--zpp-sh, 0 10px 30px -22px rgba(10, 50, 32, .5));
}

#review_form .comment-form p { margin: 0 0 14px; }
#review_form .comment-form p:last-child { margin-bottom: 0; }

#review_form .comment-form label {
    display: block; font-size: 13px; font-weight: 600;
    color: var(--zpp-ink-2, #3d444d); margin-bottom: 6px;
}
#review_form .comment-form .required { color: var(--zpp-risk, #dc2626); }

#review_form .comment-form input[type="text"],
#review_form .comment-form input[type="email"],
#review_form .comment-form input[type="url"],
#review_form .comment-form textarea {
    width: 100%; box-sizing: border-box;
    padding: 11px 13px; font-size: 14px; color: var(--zpp-ink, #15161a);
    background: var(--zpp-sunk, #fbfcfd); border: 1px solid var(--zpp-line, #dfe5e2);
    border-radius: var(--zpp-r-xs, 10px);
    transition: border-color .15s, box-shadow .15s, background .15s;
}
#review_form .comment-form textarea { min-height: 110px; resize: vertical; }

#review_form .comment-form input[type="text"]:focus,
#review_form .comment-form input[type="email"]:focus,
#review_form .comment-form input[type="url"]:focus,
#review_form .comment-form textarea:focus {
    outline: none; background: var(--zpp-surface, #fff);
    border-color: var(--zoopet-primary, #6366f1);
    box-shadow: 0 0 0 3px rgba(99, 102, 241, .14);
}

/* Imie i e-mail obok siebie — to dwa krotkie pola, nie dwa akapity. */
@media (min-width: 560px) {
    #review_form .comment-form-author,
    #review_form .comment-form-email {
        display: inline-block; width: calc(50% - 7px); vertical-align: top;
    }
    #review_form .comment-form-author { margin-right: 12px; }
}

/* ── Ocena w gwiazdkach ───────────────────────────────────────────────
   WooCommerce rysuje ja jako liste linkow z tekstem „1 of 5 stars".
   Tekst zostaje dla czytnikow ekranu, na wierzchu daje my symbole.     */
#review_form .comment-form-rating { margin-bottom: 16px; }
#review_form .comment-form-rating label { margin-bottom: 8px; }

#review_form .stars {
    display: inline-flex; gap: 4px; margin: 0;
}
#review_form .stars a {
    /* inline-block jest tu konieczny: na elemencie liniowym szerokosc i
       wysokosc sa ignorowane, wiec gwiazdka nie mialaby w co klikac —
       elementFromPoint w jej srodku zwracal null. */
    display: inline-block;
    position: relative; width: 30px; height: 30px;
    text-indent: -9999px; overflow: hidden; text-decoration: none;
}
#review_form .stars a::before {
    content: "★"; position: absolute; inset: 0;
    text-indent: 0; font-size: 26px; line-height: 30px; text-align: center;
    color: var(--zpp-ink-4, #dfe5e2); transition: color .12s, transform .12s;
}
/* Kolejnosc regul jest tu cala mechanika: najpierw wszystkie szare,
   potem przy najechaniu na pasek wszystkie zlote, na koncu gasimy te
   za wskazana gwiazdka. Bez wlasnego JS. */
#review_form .stars:hover a::before { color: #f0a500; }
#review_form .stars a:hover ~ a::before { color: var(--zpp-ink-4, #dfe5e2); }

#review_form .stars.selected a::before { color: #f0a500; }
#review_form .stars.selected a.active ~ a::before { color: var(--zpp-ink-4, #dfe5e2); }

/* Zgoda na zapamietanie danych — drobiazg, nie osobny blok. */
#review_form .comment-form-cookies-consent {
    display: flex; align-items: flex-start; gap: 8px;
    font-size: 12.5px; color: var(--zpp-ink-3, #8a929c);
}
#review_form .comment-form-cookies-consent label {
    font-weight: 400; font-size: 12.5px; color: var(--zpp-ink-3, #8a929c); margin: 0;
}
#review_form .comment-form-cookies-consent input { margin-top: 2px; }

#review_form .form-submit { margin-top: 4px; }
#review_form .form-submit input[type="submit"] {
    background: var(--zoopet-primary, #6366f1); color: var(--zpp-on-accent, #fff);
    border: 0; border-radius: var(--zpp-r-btn, 999px); cursor: pointer;
    padding: 12px 30px; font-size: 15px; font-weight: 700;
    transition: filter .15s, transform .1s;
}
#review_form .form-submit input[type="submit"]:hover { filter: brightness(1.07); }
#review_form .form-submit input[type="submit"]:active { transform: translateY(1px); }

/* Bez wariantu ciemnego: o schemacie kolorow decyduje motyw sklepu, nie
   ustawienie systemu. Sprzezenie z prefers-color-scheme dawalo czarny
   formularz na bialej stronie u kazdego, kto ma ciemny system. */

/* ── Karuzela opinii przy cenie ────────────────────────────────────────
   Zajawka, nie druga sekcja opinii: jeden pasek nad wyborem ilosci.
   Pelna lista zostaje w zakladce „Recenzje".                          */

.zoopet-reviews-slider {
    margin: 12px 0; padding: 10px 12px;
    background: var(--zpp-warn-bg, #fffbeb); border: 1px solid var(--zpp-line, #fcd96b);
    border-radius: var(--zpp-r-sm, 12px); box-shadow: var(--zpp-sh-sm, none);
}
.zrs-pasek { display: flex; align-items: center; gap: 7px; margin-bottom: 7px; }
.zrs-ocena { font-weight: 800; font-size: 14px; color: var(--zpp-warn-ink, #92610a); letter-spacing: -.01em; }
.zrs-ile   { font-size: 12px; color: var(--zpp-warn-ink, #a97c22); }
.zoopet-reviews-nav { margin-left: auto; display: inline-flex; gap: 5px; }
.zoopet-reviews-nav button {
    width: 22px; height: 22px; line-height: 1; padding: 0;
    border-radius: 50%; border: 1px solid var(--zpp-line, #fcd96b); background: var(--zpp-surface, #fff);
    color: var(--zpp-warn-ink, #92610a); cursor: pointer; font-size: 13px;
}
.zoopet-reviews-nav button:hover { background: var(--zpp-warn-bg-2, #fcd96b); }

.zoopet-reviews-track { overflow: hidden; }
.zoopet-reviews-inner { display: flex; }
/* Jeden wiersz na opinie: awatar, imie, gwiazdki, plakietka i cytat.
   Cytat dostaje caly zapas miejsca i przycina sie wielokropkiem, wiec
   kafelek ma zawsze te sama wysokosc niezaleznie od dlugosci opinii. */
.zoopet-review-slide {
    min-width: 100%; box-sizing: border-box;
    display: flex; align-items: center; gap: 7px; white-space: nowrap;
    flex-wrap: wrap; row-gap: 3px;
}

.zrs-awatar {
    width: 24px; height: 24px; flex-shrink: 0; border-radius: 50%;
    color: #fff; font-weight: 700; font-size: 11px;
    display: inline-flex; align-items: center; justify-content: center;
}
.zrs-imie { font-size: 12.5px; color: var(--zpp-ink, #1f2937); flex-shrink: 0; }
.zrs-gwiazdki { color: #f0a500; font-size: 11.5px; letter-spacing: .5px; flex-shrink: 0; }
.zrs-zweryf {
    background: var(--zpp-ok-bg, #dcfce7); color: var(--zpp-ok, #166534); font-size: 10px; font-weight: 700;
    padding: 1px 6px; border-radius: 9px; flex-shrink: 0;
}
/* Pelna szerokosc lamie wiersz — tresc opinii ladnie pod nazwiskiem,
   nie doklejona z boku. */
.zrs-cytat {
    flex: 0 0 100%; min-width: 0; font-size: 12.5px; color: var(--zpp-ink-3, #52606d);
    overflow: hidden; text-overflow: ellipsis;
}

/* ── Przycisk „Dodaj do koszyka" w stylu wtyczki ───────────────────── */
.single_add_to_cart_button.button,
.woocommerce div.product form.cart .single_add_to_cart_button {
    background: var(--zoopet-primary, #6366f1); color: var(--zpp-on-accent, #fff);
    border: 0; border-radius: var(--zpp-r-btn, 999px);
    padding: 14px 34px; font-size: 15.5px; font-weight: 700;
    letter-spacing: -.01em; cursor: pointer; width: 100%;
    box-shadow: 0 12px 26px -14px rgba(99, 102, 241, .85);
    transition: filter .15s, transform .1s, box-shadow .15s;
}
.single_add_to_cart_button.button:hover,
.woocommerce div.product form.cart .single_add_to_cart_button:hover {
    background: var(--zoopet-primary, #6366f1); color: var(--zpp-on-accent, #fff);
    filter: brightness(1.07);
    box-shadow: 0 14px 30px -14px rgba(99, 102, 241, .95);
}
.single_add_to_cart_button.button:active { transform: translateY(1px); }

/* ── Lista opinii WooCommerce w stylu wtyczki ──────────────────────────
   Sama lista zostaje WooCommerce'owa — zmieniamy wylacznie wyglad, zeby
   nie odstawala od formularza pod spodem.                             */

.woocommerce-Reviews .woocommerce-Reviews-title {
    font-size: 17px; font-weight: 800; letter-spacing: -.02em;
    margin: 0 0 14px;
}

.woocommerce-Reviews ol.commentlist {
    list-style: none; margin: 0 0 22px; padding: 0;
    display: flex; flex-direction: column; gap: 10px;
}
.woocommerce-Reviews ol.commentlist li { margin: 0; }

.woocommerce-Reviews .comment_container {
    display: flex; align-items: flex-start; gap: 12px;
    background: var(--zpp-surface, #fff); border: 1px solid var(--zpp-line, #e6ecea);
    border-radius: var(--zpp-r-sm, 14px);
    padding: 14px 16px;
    box-shadow: var(--zpp-sh-sm, 0 8px 24px -20px rgba(10, 50, 32, .5));
}

.woocommerce #reviews.woocommerce-Reviews #comments ol.commentlist li img.avatar,
.woocommerce-Reviews .comment_container img.avatar {
    position: static; float: none;
    width: 38px; height: 38px; border-radius: 50%;
    margin: 0; flex-shrink: 0; border: 0; padding: 0;
}

/* WooCommerce stosuje tu selektor z dwoma identyfikatorami
   (#reviews #comments …), wiec slabszy zostalby zignorowany —
   ramka i padding wewnetrznej ramki zostawaly widoczne. */
/* Regula WooCommerce to „.woocommerce #reviews #comments ol.commentlist
   li .comment-text". Dokladamy klase do identyfikatora, zeby wygrac
   niezaleznie od kolejnosci ladowania arkuszy — bez !important. */
.woocommerce #reviews.woocommerce-Reviews #comments ol.commentlist li .comment-text,
.woocommerce-Reviews .comment-text {
    margin: 0; border: 0; padding: 0; flex: 1; min-width: 0; background: none;
}

.woocommerce-Reviews .comment-text .star-rating {
    float: none; margin: 0 0 5px; font-size: 12px; color: #f0a500;
}

.woocommerce-Reviews .comment-text .meta {
    font-size: 12.5px; color: var(--zpp-ink-3, #8a929c); margin: 0 0 6px; font-style: normal;
}
.woocommerce-Reviews .comment-text .meta strong {
    color: var(--zpp-ink, #1f2937); font-size: 13.5px; font-weight: 700;
}
/* „(verified owner)" to zaufanie, nie przypis — dostaje plakietke. */
.woocommerce-Reviews .comment-text .meta .woocommerce-review__verified {
    display: inline-block; margin-left: 6px; padding: 1px 7px;
    background: var(--zpp-ok-bg, #dcfce7); color: var(--zpp-ok, #166534); border-radius: 9px;
    font-size: 10.5px; font-weight: 700; font-style: normal;
}
.woocommerce-Reviews .comment-text .meta time,
.woocommerce-Reviews .comment-text .meta .woocommerce-review__published-date {
    color: var(--zpp-ink-4, #9aa1ac);
}

.woocommerce-Reviews .comment-text .description,
.woocommerce-Reviews .comment-text p:not(.meta) {
    font-size: 13.5px; line-height: 1.55; color: var(--zpp-ink-2, #4b5563); margin: 0;
}

.woocommerce-Reviews .woocommerce-pagination { margin-bottom: 18px; }
.woocommerce-Reviews .woocommerce-pagination ul {
    display: inline-flex; gap: 6px; border: 0; padding: 0; margin: 0;
}
.woocommerce-Reviews .woocommerce-pagination li { border: 0; margin: 0; }
.woocommerce-Reviews .woocommerce-pagination a,
.woocommerce-Reviews .woocommerce-pagination span {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 32px; height: 32px; padding: 0 9px;
    border: 1px solid var(--zpp-line, #dfe5e2); border-radius: var(--zpp-r-xs, 9px);
    font-size: 13px; color: var(--zpp-ink-2, #3d444d); background: var(--zpp-surface, #fff);
}
.woocommerce-Reviews .woocommerce-pagination span.current {
    background: var(--zoopet-primary, #6366f1); border-color: transparent; color: var(--zpp-on-accent, #fff);
}

/* ── Ksztalt przyciskow sklepu ─────────────────────────────────────────
   Preset ustala ksztalt, motyw zostaje przy swoich kolorach. Bez tego
   pigulka z karty produktu spotykala sie z prostokatem w koszyku.     */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.add_to_cart_button,
.single_add_to_cart_button,
.checkout-button,
.wc-block-components-button,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wc-block-mini-cart__button,
.woocommerce-button {
    border-radius: var(--zpp-r-btn, 999px);
}

/* ── Okienko z prośbą o opinię (ZooPet_Opinie_Okienko) ── */
.zok-tlo{position:fixed!important;inset:0!important;z-index:100000!important;--zok-ink:#1b1a18;--zok-ink2:#55524c;--zok-ink3:#8a867e;--zok-line:#e8e5df;--zok-sunk:#f6f5f2;--zok-al:color-mix(in srgb,var(--zok-a) 10%,#fff);background:rgba(20,18,15,.45);display:flex;align-items:center;justify-content:center;padding:16px;opacity:0;transition:opacity .25s;font-family:inherit;color:var(--zok-ink)}
.zok-tlo[hidden]{display:none!important}
.zok-tlo.otw{opacity:1}
html.zok-blokada{overflow:hidden}
.zok-tlo *{box-sizing:border-box}
.zok-tlo button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;margin:0;text-transform:none;letter-spacing:normal;box-shadow:none}
.zok-tlo :focus-visible{outline:2px solid var(--zok-a);outline-offset:2px}
.zok-tlo [hidden]{display:none!important}
.zok{position:relative!important;width:480px;max-width:100%;max-height:calc(100vh - 32px);background:#fff;border-radius:20px;box-shadow:0 40px 80px -30px rgba(0,0,0,.55);display:flex;flex-direction:column;overflow:hidden;transform:translateY(12px) scale(.98);transition:transform .3s cubic-bezier(.22,.61,.36,1)}
.zok-tlo.otw .zok{transform:none}
.zok-g{display:flex;align-items:center;gap:10px;padding:16px 18px 0;flex:none}
.zok-krok{font-size:12px;font-weight:700;color:var(--zok-ink3);white-space:nowrap}
.zok-kreski{display:flex;gap:4px;flex:1}.zok-kreski i{flex:1;height:4px;border-radius:9px;background:#ece9e3;display:block}.zok-kreski i.on{background:var(--zok-a)}
.zok-tlo .zok-x{width:32px;height:32px;border-radius:50%;background:var(--zok-sunk);font-size:19px;line-height:1;color:var(--zok-ink2);padding:0}
.zok-b{padding:18px 22px 8px;overflow-y:auto;flex:1 1 auto;min-height:0}
.zok-co{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--zok-sunk);border-radius:12px;margin-bottom:16px}
.zok-img{width:46px;height:46px;border-radius:9px;object-fit:cover;flex:none}
.zok-ikona{width:46px;height:46px;border-radius:9px;background:var(--zok-al);display:grid;place-items:center;flex:none;font-size:22px}
.zok-co b{display:block;font-size:14px;line-height:1.3}.zok-co small{display:block;font-size:12px;color:var(--zok-ink3)}
.zok-tlo .zok-pyt{font-size:22px;font-weight:800;letter-spacing:-.02em;line-height:1.2;margin:0;color:var(--zok-ink);text-wrap:balance}
.zok-gw{display:flex;gap:4px;margin:14px 0 2px}
.zok-tlo .zok-gw button{font-size:40px;line-height:1;color:#ddd8cf;padding:2px;transition:transform .12s,color .12s}
.zok-tlo .zok-gw button.on{color:var(--zok-a)}
.zok-tlo .zok-gw button:hover{transform:scale(1.12)}
.zok-opis{font-size:13px;color:var(--zok-ink3);min-height:18px;margin:0}
.zok-prop{margin-top:12px}
.zok-prop h5{font-size:12px;font-weight:700;color:var(--zok-ink3);text-transform:uppercase;letter-spacing:.05em;margin:0 0 8px}
.zok-lista{display:grid;gap:7px}
.zok-tlo .zok-lista button{display:flex;gap:10px;align-items:flex-start;text-align:left;border:1.5px solid var(--zok-line);border-radius:12px;padding:10px 12px;font-size:14px;line-height:1.4;width:100%}
.zok-tlo .zok-lista button::before{content:"";width:18px;height:18px;border-radius:50%;border:2px solid #cfc9bf;flex:none;margin-top:1px}
.zok-tlo .zok-lista button[aria-pressed=true]{border-color:var(--zok-a);background:var(--zok-al)}
.zok-tlo .zok-lista button[aria-pressed=true]::before{border-color:var(--zok-a);background:radial-gradient(circle,var(--zok-a) 45%,transparent 50%)}
.zok-tlo .zok-wlasne{margin-top:4px;font-size:13px;font-weight:650;color:var(--zok-a);text-decoration:underline;text-underline-offset:3px;padding:6px 0}
.zok-tlo textarea{width:100%;margin-top:10px;min-height:84px;border:1.5px solid var(--zok-line);border-radius:12px;padding:10px 12px;font:inherit;font-size:14px;line-height:1.45;resize:vertical;background:#fff;color:var(--zok-ink)}
.zok-tlo textarea:focus{outline:none;border-color:var(--zok-a)}
.zok-druga{margin-top:12px;padding:10px 12px;border-radius:12px;background:#fff6e6;border:1px solid #f1d9ad;font-size:13px;color:#6b4b12;line-height:1.45}
.zok-d{flex:none;padding:12px 22px 18px;border-top:1px solid var(--zok-line);display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.zok-tlo .zok-wyslij{flex:1;min-width:170px;padding:13px 16px;border-radius:12px;background:var(--zok-a);color:#fff;font-weight:750;font-size:15px}
.zok-tlo .zok-wyslij:disabled{opacity:.4;cursor:not-allowed}
.zok-tlo .zok-nie{font-size:13px;color:var(--zok-ink3);text-decoration:underline;text-underline-offset:3px;padding:6px 2px}
.zok-plus{display:inline-flex;align-items:center;font-size:12.5px;font-weight:700;color:#2f7a45;background:#eaf5ec;border-radius:99px;padding:4px 10px}
.zok-dzieki{text-align:center;padding:18px 4px 6px}
.zok-kolo{width:68px;height:68px;border-radius:50%;background:var(--zok-al);color:var(--zok-a);display:grid;place-items:center;font-size:34px;margin:0 auto 14px}
.zok-tlo .zok-dzieki h3{font-size:22px;font-weight:800;letter-spacing:-.02em;margin:0}
.zok-dzieki p{font-size:14px;color:var(--zok-ink2);margin:8px 0 0;line-height:1.5}
.zok-dzieki .zok-plus{margin-top:12px;font-size:14px;padding:6px 14px}
.zok-link{display:block;margin-top:14px;font-size:13.5px;font-weight:650;color:var(--zok-a)!important}
@media (max-width:640px){
  .zok-tlo{align-items:flex-end;padding:0}
  .zok{width:100%;border-radius:22px 22px 0 0;max-height:92vh;transform:translateY(100%)}
  .zok::before{content:"";display:block;width:40px;height:4px;border-radius:9px;background:#ddd8cf;margin:8px auto 0;flex:none}
  .zok-tlo .zok-pyt{font-size:20px}
  .zok-tlo .zok-gw button{font-size:36px}
}
@media (prefers-reduced-motion:reduce){.zok-tlo,.zok,.zok-tlo *{transition:none!important}}

/* ══ Warianty z produktów: przełącznik na karcie i znaczek na liście ══
   Kolor zaznaczenia = kolor główny sklepu (--zwa-a z ustawień marki).
   Selektory dwuklasowe: motywy (WoodMart) stylują linki i przyciski
   szerokimi regułami, które pojedyncza klasa przegrywa. */
.zwa { --zwa-a: #1f6f5c; --zwa-l: #e3e0da; --zwa-i2: #5d5a54; margin: 16px 0 18px; clear: both; }
.zwa .zwa-cecha { margin: 0 0 14px; }
.zwa .zwa-g { font-size: 14px; margin: 0 0 8px; line-height: 1.4; }
.zwa .zwa-g b { font-weight: 700; }
.zwa .zwa-g .zwa-biez { color: var(--zwa-i2); }
.zwa .zwa-opcje { display: flex; flex-wrap: wrap; gap: 8px; }
.zwa .zwa-o { position: relative; display: inline-flex; flex-direction: column; justify-content: center; align-items: center; min-width: 46px; min-height: 40px; padding: 6px 12px; border: 1.5px solid var(--zwa-l); border-radius: 10px; background: #fff; color: inherit !important; text-decoration: none !important; font-size: 14px; font-weight: 600; line-height: 1.25; box-shadow: none; transition: border-color .12s; }
.zwa .zwa-o:hover { border-color: color-mix(in srgb, var(--zwa-a) 55%, #fff); }
.zwa .zwa-o.zwa-on { border-color: var(--zwa-a); box-shadow: 0 0 0 3px color-mix(in srgb, var(--zwa-a) 18%, transparent); }
.zwa .zwa-o.zwa-brak { color: #9b978f !important; background: repeating-linear-gradient(135deg, #fff 0 6px, #f4f2ee 6px 7px); }
.zwa .zwa-o.zwa-niema { color: #bdb8af !important; border-style: dashed; cursor: not-allowed; }
.zwa .zwa-o.zwa-duzy { align-items: flex-start; min-width: 112px; padding: 9px 14px; text-align: left; }
.zwa .zwa-o.zwa-duzy b { font-size: 15px; }
.zwa .zwa-o.zwa-duzy small { font-size: 12px; font-weight: 500; color: var(--zwa-i2); }
.zwa .zwa-o.zwa-duzy small .amount, .zwa .zwa-lista .amount { color: inherit; font-weight: inherit; }
.zwa .zwa-o.zwa-brak.zwa-duzy b { text-decoration: line-through; }
.zwa .zwa-najt { position: absolute; top: -9px; right: 8px; background: var(--zwa-a); color: #fff; font-size: 10.5px; font-weight: 700; line-height: 1.5; border-radius: 99px; padding: 0 7px; white-space: nowrap; }
.zwa .zwa-o.zwa-kolor { width: 38px; min-width: 38px; height: 38px; min-height: 38px; padding: 0; border-radius: 50%; border: 2px solid #fff; background: var(--zwa-k); box-shadow: 0 0 0 1.5px var(--zwa-l); }
.zwa .zwa-o.zwa-kolor.zwa-on { box-shadow: 0 0 0 2px var(--zwa-a); }
.zwa .zwa-o.zwa-kolor.zwa-brak { opacity: .45; }
/* Kolor bez nazwy w słowniku: wycinek zdjęcia wariantu w kółku (wzór, nietypowy odcień). */
.zwa .zwa-o.zwa-kolor.zwa-zdj { background: #fff; overflow: hidden; }
.zwa .zwa-o.zwa-kolor.zwa-zdj img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.8); border-radius: 50%; }
/* Miniatury zdjęć: smak, wzór, model — zdjęcie wariantu z jego produktu. */
.zwa .zwa-o.zwa-mini { width: 84px; min-width: 84px; padding: 5px 5px 7px; justify-content: flex-start; gap: 4px; text-align: center; font-size: 12px; line-height: 1.25; }
.zwa .zwa-o.zwa-mini img { width: 100%; height: 64px; object-fit: contain; border-radius: 7px; background: #f6f5f2; margin: 0; }
.zwa .zwa-o.zwa-mini span { display: block; overflow-wrap: anywhere; }
.zwa .zwa-o.zwa-mini small { display: block; font-size: 11px; font-weight: 500; color: var(--zwa-i2); }
.zwa .zwa-o.zwa-mini small .amount { color: inherit; font-weight: inherit; }
.zwa .zwa-o.zwa-mini.zwa-brak img { opacity: .5; }
.zwa .zwa-o.zwa-niema.zwa-duzy { align-items: flex-start; }
.zwa .zwa-o.zwa-niema.zwa-duzy small { font-size: 11.5px; font-weight: 500; }
.zwa .zwa-lista { position: relative; max-width: 420px; }
.zwa .zwa-lista summary { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 11px 14px; border: 1.5px solid var(--zwa-l); border-radius: 10px; background: #fff; cursor: pointer; list-style: none; }
.zwa .zwa-lista summary::-webkit-details-marker { display: none; }
.zwa .zwa-lista summary::after { content: "▾"; color: var(--zwa-i2); margin-left: auto; }
.zwa .zwa-lista summary > span { color: var(--zwa-i2); font-size: 13px; }
.zwa .zwa-lista[open] summary { border-color: var(--zwa-a); }
.zwa .zwa-pole { position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 30; background: #fff; border: 1px solid var(--zwa-l); border-radius: 10px; box-shadow: 0 18px 40px -18px rgba(0,0,0,.35); overflow: hidden; }
.zwa .zwa-pole .zwa-szukaj { width: 100%; margin: 0; border: 0; border-bottom: 1px solid var(--zwa-l); border-radius: 0; padding: 10px 14px; box-shadow: none; }
.zwa .zwa-pole ul { list-style: none; margin: 0; padding: 0; max-height: 260px; overflow-y: auto; }
.zwa .zwa-pole li { margin: 0; padding: 0; }
.zwa .zwa-pole li[hidden] { display: none; }
.zwa .zwa-pole .zwa-o { display: flex; flex-direction: row; justify-content: space-between; width: 100%; border: 0; border-radius: 0; min-height: 0; padding: 9px 14px; font-weight: 500; background: #fff; }
.zwa .zwa-pole .zwa-o:hover { background: #f6f5f2; }
.zwa .zwa-pole .zwa-o.zwa-on { box-shadow: none; background: color-mix(in srgb, var(--zwa-a) 10%, #fff); font-weight: 700; }
.zwa .zwa-pole .zwa-o.zwa-brak { background: #fff; }
.zwa .zwa-nic { margin: 0; padding: 10px 14px; color: var(--zwa-i2); font-size: 13px; }
.zwa-laduje { opacity: .55; pointer-events: none; transition: opacity .15s; }
.zwa-kafel { margin: 4px 0 0; font-size: 12px; line-height: 1.45; color: #6b675f; }
.zwa-kafel div { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.zwa-kafel i { display: inline-block; width: 12px; height: 12px; border-radius: 50%; border: 1px solid rgba(0,0,0,.12); }
@media (prefers-reduced-motion: reduce) { .zwa .zwa-o, .zwa-laduje { transition: none; } }
