/* ==========================================================================
   WooCommerce Style Overrides
   ========================================================================== */

/* Hide default "View cart" link injected by WC AJAX add-to-cart */
.woocommerce a.added_to_cart {
    display: none !important;
}

/* Remove default WooCommerce styles where we override */
.woocommerce .products ul,
.woocommerce ul.products {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-4);
}

@media (min-width: 480px) {
    .woocommerce ul.products {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 768px) {
    .woocommerce ul.products {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (min-width: 1024px) {
    .woocommerce ul.products {
        grid-template-columns: repeat(4, 1fr);
    }
}

.woocommerce ul.products li.product {
    width: 100%;
    margin: 0;
    float: none;
}

/* Override WC button styles */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-3) var(--space-5);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 600;
    background-color: var(--color-primary);
    color: var(--color-white);
    border: none;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: background-color var(--transition-fast);
    text-transform: uppercase;
    letter-spacing: 0.025em;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
    background-color: var(--color-dark);
    color: var(--color-white);
}

.woocommerce a.button.alt,
.woocommerce button.button.alt {
    background-color: var(--color-gold);
    color: var(--color-dark);
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
    background-color: #d4be78;
}

/* Price styling */
.woocommerce .price {
    font-size: var(--text-lg);
    font-weight: 700;
    color: var(--color-black);
}

.woocommerce .price del {
    font-size: var(--text-sm);
    font-weight: 400;
    color: var(--color-gray-dark);
}

.woocommerce .price ins {
    text-decoration: none;
    font-weight: 700;
}

/* Sale badge */
.woocommerce span.onsale {
    background: var(--color-psp);
    color: var(--color-white);
    font-size: var(--text-xs);
    font-weight: 700;
    padding: var(--space-1) var(--space-3);
    border-radius: var(--radius-badge);
    min-height: auto;
    min-width: auto;
    line-height: 1.4;
}

/* Breadcrumbs */
.woocommerce .woocommerce-breadcrumb {
    font-size: var(--text-sm);
    color: var(--color-gray-dark);
    margin-bottom: var(--space-5);
    padding: var(--space-4) 0;
}

.woocommerce .woocommerce-breadcrumb a {
    color: var(--color-primary);
    transition: color var(--transition-fast);
}

.woocommerce .woocommerce-breadcrumb a:hover {
    color: var(--color-dark);
}

/* ==========================================================================
   Messages / Notices (success, info, error)
   ========================================================================== */

/*
 * WooCommerce renders notices as:
 *   .woocommerce-message  — <div> (success)
 *   .woocommerce-info     — <div> (informational)
 *   .woocommerce-error    — <ul> with <li> children (errors)
 *
 * All three use ::before for a default icon. We override that icon and
 * force a horizontal flex layout so icon + text sit side by side.
 */

/* Reset WC defaults */
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error {
    border-top: none !important;
    padding-left: 0 !important;
}

.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-error::before {
    position: static !important;
    float: none !important;
    top: auto !important;
    left: auto !important;
    margin: 0 !important;
}

/* Shared base */
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error {
    display: flex;
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-5) !important;
    margin-bottom: var(--space-5);
    border: 1px solid;
    border-left: 4px solid;
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    line-height: 1.6;
    box-shadow: var(--shadow-sm);
    list-style: none;
}

/* Error is <ul> — reset list styles & keep items inline */
.woocommerce .woocommerce-error li {
    list-style: none;
}

/* Icon pseudo-element — shared */
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-error::before {
    content: '';
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    font-weight: 700;
    color: #fff;
    line-height: 1;
}

/* ---- Success (message) ---- */
.woocommerce .woocommerce-message {
    border-color: #bbf7d0;
    border-left-color: #22c55e;
    background: #f0fdf4;
    color: #15803d;
}

.woocommerce .woocommerce-message::before {
    content: '\2713';
    background: #22c55e;
    font-size: 12px;
}

/* ---- Info ---- */
.woocommerce .woocommerce-info {
    border-color: #bfdbfe;
    border-left-color: #3b82f6;
    background: #eff6ff;
    color: #1e40af;
}

.woocommerce .woocommerce-info::before {
    content: 'i';
    background: #3b82f6;
    font-size: 13px;
    font-style: italic;
    font-family: Georgia, serif;
}

/* ---- Error ---- */
.woocommerce .woocommerce-error {
    border-color: #fecaca;
    border-left-color: #ef4444;
    background: #fef2f2;
    color: #991b1b;
}

.woocommerce .woocommerce-error::before {
    content: '!';
    background: #ef4444;
    font-size: 14px;
}

/* ---- Buttons inside notices ---- */
.woocommerce .woocommerce-message .button,
.woocommerce .woocommerce-info .button,
.woocommerce .woocommerce-error .button {
    display: inline-flex;
    align-items: center;
    float: none;
    margin-left: auto;
    padding: var(--space-1) var(--space-4);
    font-size: var(--text-xs);
    font-weight: 600;
    border-radius: var(--radius-sm);
    text-decoration: none;
    white-space: nowrap;
    border: none;
    cursor: pointer;
    transition: all var(--transition-base);
}

.woocommerce .woocommerce-message .button {
    background: #22c55e;
    color: #fff;
}

.woocommerce .woocommerce-message .button:hover {
    background: #16a34a;
}

.woocommerce .woocommerce-info .button {
    background: #3b82f6;
    color: #fff;
}

.woocommerce .woocommerce-info .button:hover {
    background: #2563eb;
}

.woocommerce .woocommerce-error .button {
    background: #ef4444;
    color: #fff;
}

.woocommerce .woocommerce-error .button:hover {
    background: #dc2626;
}

/* ---- Links inside notices ---- */
.woocommerce .woocommerce-message a:not(.button) {
    color: #15803d;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.woocommerce .woocommerce-info a:not(.button) {
    color: #1e40af;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.woocommerce .woocommerce-error a:not(.button) {
    color: #991b1b;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* ---- Responsive notices ---- */
@media (max-width: 767px) {
    .woocommerce .woocommerce-message,
    .woocommerce .woocommerce-info,
    .woocommerce .woocommerce-error {
        padding: var(--space-3) var(--space-4) !important;
        gap: var(--space-2);
    }

    .woocommerce .woocommerce-message .button,
    .woocommerce .woocommerce-info .button,
    .woocommerce .woocommerce-error .button {
        margin-left: 0;
        width: 100%;
        justify-content: center;
        margin-top: var(--space-2);
    }
}

@media (max-width: 479px) {
    .woocommerce .woocommerce-message,
    .woocommerce .woocommerce-info,
    .woocommerce .woocommerce-error {
        font-size: var(--text-xs);
        border-left-width: 3px;
    }

    .woocommerce .woocommerce-message::before,
    .woocommerce .woocommerce-info::before,
    .woocommerce .woocommerce-error::before {
        width: 20px;
        height: 20px;
        font-size: 10px;
    }
}

/* ==========================================================================
   Single Product Page (.sp prefix)
   ========================================================================== */

.single-product-page {
    padding: var(--space-8) 0 var(--space-10);
}

/* ---------- Top: Gallery + Summary (two columns) ---------- */
.sp__top {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-6);
    margin-bottom: var(--space-8);
}

@media (min-width: 768px) {
    .sp__top {
        grid-template-columns: 1fr 1fr;
        gap: var(--space-8);
        align-items: start;
    }
}

@media (min-width: 1024px) {
    .sp__top {
        grid-template-columns: 55% 1fr;
    }
}

/* ---------- Gallery ---------- */
.sp__gallery {
    position: relative;
}

.sp__sale-badge {
    position: absolute;
    top: var(--space-4);
    left: var(--space-4);
    z-index: 2;
    background: var(--color-psp);
    color: var(--color-white);
    font-size: var(--text-xs);
    font-weight: 700;
    padding: var(--space-1) var(--space-3);
    border-radius: var(--radius-badge);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.sp__formation-badge {
    position: absolute;
    top: var(--space-4);
    right: var(--space-4);
    z-index: 2;
    color: var(--color-white);
    font-size: 11px;
    font-weight: 700;
    padding: var(--space-1) var(--space-3);
    border-radius: var(--radius-badge);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.sp__gallery-main {
    position: relative;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: zoom-in;
}

.sp__gallery-main img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.sp__gallery-zoom {
    position: absolute;
    bottom: var(--space-4);
    right: var(--space-4);
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-full);
    box-shadow: var(--shadow-sm);
    color: var(--color-gray-dark);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.sp__gallery-zoom:hover {
    background: var(--color-gold);
    color: var(--color-dark);
    border-color: var(--color-gold);
}

/* Thumbnails */
.sp__gallery-thumbs {
    display: flex;
    gap: var(--space-3);
    margin-top: var(--space-3);
    overflow-x: auto;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
    padding-bottom: var(--space-1);
}

.sp__gallery-thumb {
    flex-shrink: 0;
    width: 72px;
    height: 72px;
    border: 2px solid var(--color-border);
    border-radius: var(--radius-sm);
    overflow: hidden;
    cursor: pointer;
    background: var(--color-white);
    padding: 4px;
    transition: border-color var(--transition-fast);
}

.sp__gallery-thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.sp__gallery-thumb:hover {
    border-color: var(--color-primary);
}

.sp__gallery-thumb.is-active {
    border-color: var(--color-gold);
    box-shadow: 0 0 0 1px var(--color-gold);
}

/* ---------- Summary ---------- */
.sp__summary {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.sp__categories {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.sp__cat-tag {
    display: inline-block;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-primary);
    background: var(--color-white);
    padding: var(--space-1) var(--space-3);
    border-radius: var(--radius-badge);
    transition: background var(--transition-fast), color var(--transition-fast);
}

.sp__cat-tag:hover {
    background: var(--color-primary);
    color: var(--color-white);
}

.sp__title {
    font-family: var(--font-heading);
    font-size: var(--text-3xl);
    font-weight: 700;
    color: var(--color-dark);
    line-height: 1.2;
    margin: 0;
}

.sp__sku {
    font-size: var(--text-xs);
    color: var(--color-gray-dark);
    margin: 0;
}

.sp__sku span {
    font-weight: 600;
    color: var(--color-dark);
}

.sp__price {
    font-size: var(--text-2xl);
    font-weight: 700;
    color: var(--color-dark);
    line-height: 1.15;
}

.sp__price del {
    font-size: var(--text-base);
    font-weight: 400;
    color: var(--color-gray-dark);
}

.sp__price ins {
    text-decoration: none;
}

.sp__short-desc {
    font-size: var(--text-sm);
    line-height: 1.7;
    color: var(--color-gray-dark);
    padding-bottom: var(--space-4);
    border-bottom: 1px solid var(--color-border);
}

.sp__short-desc p:last-child {
    margin-bottom: 0;
}

/* Add to cart form overrides */
.sp__add-to-cart {
    padding: var(--space-5) 0;
    border-bottom: 1px solid var(--color-border);
}

.sp__add-to-cart .cart {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
}

.sp__add-to-cart .quantity {
    display: flex;
    align-items: center;
}

.sp__add-to-cart .quantity .qty {
    width: 64px;
    height: 48px;
    text-align: center;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    font-size: var(--text-base);
    font-weight: 600;
    font-family: var(--font-body);
}

.sp__add-to-cart .quantity .qty:focus {
    border-color: var(--color-gold);
    outline: none;
    box-shadow: 0 0 0 3px rgba(231, 210, 150, 0.2);
}

.sp__add-to-cart .single_add_to_cart_button {
    flex: 1;
    min-width: 180px;
    height: 48px;
    background: var(--color-dark);
    color: var(--color-white);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border: none;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: background var(--transition-fast);
}

.sp__add-to-cart .single_add_to_cart_button:hover {
    background: var(--color-gold);
    color: var(--color-dark);
}

/* Variations table */
.sp__add-to-cart .variations {
    width: 100%;
    margin-bottom: var(--space-4);
    border-collapse: collapse;
}

.sp__add-to-cart .variations td,
.sp__add-to-cart .variations th {
    padding: var(--space-2) 0;
    border: none;
    vertical-align: middle;
}

.sp__add-to-cart .variations .label label {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--color-dark);
}

.sp__add-to-cart .variations select {
    width: 100%;
    height: 44px;
    padding: 0 var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    font-size: var(--text-sm);
    font-family: var(--font-body);
    background: var(--color-white);
}

.sp__add-to-cart .variations select:focus {
    border-color: var(--color-gold);
    outline: none;
}

.sp__add-to-cart .reset_variations {
    font-size: var(--text-xs);
    color: var(--color-primary);
    margin-left: var(--space-2);
}

/* Tags */
.sp__tags {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-2);
    font-size: var(--text-xs);
}

.sp__tags-label {
    font-weight: 600;
    color: var(--color-dark);
}

.sp__tag {
    color: var(--color-gray-dark);
    transition: color var(--transition-fast);
}

.sp__tag:hover {
    color: var(--color-primary);
}

/* Trust signals */
.sp__trust {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    padding: var(--space-4);
    background: var(--color-white);
    border-radius: var(--radius-md);
    margin-top: var(--space-2);
}

.sp__trust-item {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    font-size: var(--text-sm);
    color: var(--color-dark);
    font-weight: 500;
}

.sp__trust-item .icon {
    color: var(--color-gold);
    flex-shrink: 0;
}

/* ---------- Description section ---------- */
.sp__description {
    background: var(--color-white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    padding: var(--space-8);
    margin: var(--space-8) 0;
}

@media (min-width: 768px) {
    .sp__description {
        padding: var(--space-10);
    }
}

.sp__description-title {
    font-family: var(--font-heading);
    font-size: var(--text-2xl);
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: var(--space-6);
    padding-bottom: var(--space-4);
    border-bottom: 2px solid var(--color-border);
}

.sp__description-content {
    max-width: 820px;
    font-size: var(--text-base);
    line-height: 1.75;
    color: var(--color-dark);
}

.sp__description-content p {
    margin-bottom: var(--space-4);
}

.sp__description-content p:last-child {
    margin-bottom: 0;
}

.sp__description-content ul,
.sp__description-content ol {
    padding-left: var(--space-5);
    margin-bottom: var(--space-4);
}

.sp__description-content li {
    margin-bottom: var(--space-2);
}

.sp__description-content h2,
.sp__description-content h3,
.sp__description-content h4 {
    font-family: var(--font-heading);
    font-weight: 700;
    color: var(--color-dark);
    margin: var(--space-6) 0 var(--space-3);
}

/* ---------- Tabs ---------- */
.sp__tabs-section {
    margin-bottom: var(--space-8);
}

.sp__tabs-section .woocommerce-tabs {
    margin: 0;
    padding: 0;
}

.sp__tabs-section .woocommerce-tabs ul.tabs {
    display: flex;
    gap: 0;
    list-style: none;
    padding: 0;
    margin: 0 0 var(--space-6);
    border-bottom: 2px solid var(--color-border);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.sp__tabs-section .woocommerce-tabs ul.tabs::before,
.sp__tabs-section .woocommerce-tabs ul.tabs::after {
    display: none;
}

.sp__tabs-section .woocommerce-tabs ul.tabs li {
    border: none;
    background: none;
    padding: 0;
    margin: 0;
    border-radius: 0;
}

.sp__tabs-section .woocommerce-tabs ul.tabs li a {
    display: block;
    padding: var(--space-3) var(--space-5);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--color-gray-dark);
    text-decoration: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    transition: color var(--transition-fast), border-color var(--transition-fast);
    white-space: nowrap;
}

.sp__tabs-section .woocommerce-tabs ul.tabs li a:hover {
    color: var(--color-dark);
}

.sp__tabs-section .woocommerce-tabs ul.tabs li.active a {
    color: var(--color-dark);
    border-bottom-color: var(--color-gold);
}

.sp__tabs-section .woocommerce-tabs .woocommerce-Tabs-panel {
    padding: 0;
    margin: 0;
    border: none;
    box-shadow: none;
    background: none;
}

.sp__tabs-section .woocommerce-tabs .woocommerce-Tabs-panel h2 {
    display: none;
}

.sp__tabs-section .woocommerce-tabs .woocommerce-Tabs-panel p,
.sp__tabs-section .woocommerce-tabs .woocommerce-Tabs-panel li {
    font-size: var(--text-sm);
    line-height: 1.7;
    color: var(--color-gray-dark);
}

/* Additional information table */
.sp__tabs-section .shop_attributes {
    width: 100%;
    border-collapse: collapse;
}

.sp__tabs-section .shop_attributes th,
.sp__tabs-section .shop_attributes td {
    padding: var(--space-3) var(--space-4);
    font-size: var(--text-sm);
    border-bottom: 1px solid var(--color-border);
    text-align: left;
}

.sp__tabs-section .shop_attributes th {
    font-weight: 600;
    color: var(--color-dark);
    width: 30%;
}

.sp__tabs-section .shop_attributes td {
    color: var(--color-gray-dark);
}

.sp__tabs-section .shop_attributes td p {
    margin: 0;
}

/* Reviews */
.sp__tabs-section #reviews .comment-reply-title {
    font-family: var(--font-heading);
    font-size: var(--text-xl);
    font-weight: 600;
    margin-bottom: var(--space-4);
}

.sp__tabs-section #reviews .commentlist {
    list-style: none;
    padding: 0;
    margin: 0;
}

.sp__tabs-section #reviews .commentlist li {
    padding: var(--space-5) 0;
    border-bottom: 1px solid var(--color-border);
}

.sp__tabs-section #reviews .star-rating {
    color: var(--color-gold);
    font-size: var(--text-sm);
}

/* ---------- Related Products (slider) ---------- */
.sp__related {
    padding: var(--space-10) 0;
    border-top: 1px solid var(--color-border);
}

.sp__related-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    margin-bottom: var(--space-6);
    flex-wrap: wrap;
}

.sp__related-title {
    font-family: var(--font-heading);
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--color-dark);
    margin: 0;
}

.sp__related-title span {
    color: var(--color-primary);
}


.sp__related-more {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin-top: var(--space-5);
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--color-primary);
    text-decoration: none;
    transition: gap 0.2s;
}

.sp__related-more:hover {
    gap: var(--space-3);
}

.sp__related-more .icon {
    flex-shrink: 0;
}

/* ---------- Trust Strip ---------- */
.sp__trust-strip {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1px;
    background-color: var(--color-border);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
    margin: var(--space-10) 0 var(--space-4);
}

@media (min-width: 768px) {
    .sp__trust-strip {
        grid-template-columns: repeat(4, 1fr);
    }
}

.sp__trust-strip-item {
    background: var(--color-white);
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-5) var(--space-6);
    transition: background 0.2s;
}

.sp__trust-strip-item:hover {
    background: var(--color-bg);
}

.sp__trust-strip-item .icon {
    color: var(--color-gold);
    flex-shrink: 0;
    width: 28px;
    height: 28px;
}

.sp__trust-strip-item div {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.sp__trust-strip-item strong {
    font-size: var(--text-sm);
    font-weight: 700;
    color: var(--color-dark);
    line-height: 1.3;
}

.sp__trust-strip-item span {
    font-size: var(--text-xs);
    color: var(--color-gray-dark);
    line-height: 1.3;
}

/* ---------- Lightbox ---------- */
.sp__lightbox {
    position: fixed;
    inset: 0;
    z-index: 3000;
    background: rgba(0, 0, 0, 0.92);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-6);
}

.sp__lightbox[hidden] {
    display: none;
}

.sp__lightbox img {
    max-width: 90vw;
    max-height: 85vh;
    object-fit: contain;
    border-radius: var(--radius-sm);
}

.sp__lightbox-close,
.sp__lightbox-prev,
.sp__lightbox-next {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    background: rgba(255, 255, 255, 0.1);
    color: var(--color-white);
    border: none;
    border-radius: var(--radius-full);
    cursor: pointer;
    transition: background var(--transition-fast);
}

.sp__lightbox-close:hover,
.sp__lightbox-prev:hover,
.sp__lightbox-next:hover {
    background: rgba(255, 255, 255, 0.25);
}

.sp__lightbox-close {
    top: var(--space-4);
    right: var(--space-4);
}

.sp__lightbox-prev {
    left: var(--space-4);
    top: 50%;
    transform: translateY(-50%);
}

.sp__lightbox-next {
    right: var(--space-4);
    top: 50%;
    transform: translateY(-50%);
}

/* ---------- WC default overrides for single product ---------- */

/* Hide default WC breadcrumbs on single product (we have our own) */
.single-product .woocommerce-breadcrumb {
    display: none;
}

/* WC notices inside product page */
.sp .woocommerce-message,
.sp .woocommerce-info,
.sp .woocommerce-error {
    margin-bottom: var(--space-5);
}

/* Stock status */
.sp .stock {
    font-size: var(--text-sm);
    font-weight: 600;
}

.sp .stock.in-stock {
    color: #16a34a;
}

.sp .stock.out-of-stock {
    color: var(--color-psp);
}

/* ==========================================================================
   Shop / Archive Page
   ========================================================================== */

.shop-page {
    padding: var(--space-6) 0 var(--space-10);
}

/* ---------- Shop Hero Banner ---------- */
.shop-hero {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    background: var(--color-dark);
    border-radius: var(--radius-lg);
    overflow: hidden;
    margin-bottom: var(--space-5);
    position: relative;
}

@media (min-width: 768px) {
    .shop-hero {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 1fr auto;
        min-height: 380px;
    }
}

.shop-hero__content {
    padding: var(--space-6) var(--space-5);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: var(--space-3);
}

@media (min-width: 768px) {
    .shop-hero__content {
        padding: var(--space-8) var(--space-6);
    }
}

.shop-hero__badge {
    display: inline-flex;
    align-self: flex-start;
    font-size: var(--text-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-dark);
    background: var(--color-gold);
    padding: var(--space-1) var(--space-3);
    border-radius: var(--radius-badge);
}

.shop-hero__title {
    font-family: var(--font-heading);
    font-size: var(--text-4xl);
    font-weight: 700;
    color: var(--color-white);
    line-height: 1.15;
    margin: 0;
}

.shop-hero__text {
    font-size: var(--text-base);
    color: rgba(255, 255, 255, 0.75);
    line-height: 1.6;
    max-width: 420px;
    margin: 0;
}

.shop-hero__media {
    position: relative;
    min-height: 300px;
    aspect-ratio: 14 / 9;
    overflow: hidden;
}

@media (min-width: 768px) {
    .shop-hero__media {
        grid-row: 1 / 3;
        grid-column: 2;
        min-height: 100%;
        height: 100%;
        aspect-ratio: auto;
    }
}

.shop-hero__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Promo strip at bottom */
.shop-hero__promo {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-5);
    background: rgba(255, 255, 255, 0.08);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    cursor: pointer;
    transition: background var(--transition-fast);
}

.shop-hero__promo:hover {
    background: rgba(255, 255, 255, 0.12);
}

@media (min-width: 768px) {
    .shop-hero__promo {
        grid-column: 1;
        padding: var(--space-3) var(--space-6);
    }
}

.shop-hero__promo-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--radius-full);
    background: var(--color-gold);
    color: var(--color-dark);
    flex-shrink: 0;
}

.shop-hero__promo-body {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 0;
}

.shop-hero__promo-title {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--color-white);
}

.shop-hero__promo-desc {
    font-size: var(--text-xs);
    color: var(--color-gray);
}

.shop-hero__promo-arrow {
    color: var(--color-gray);
    flex-shrink: 0;
    transition: transform var(--transition-fast);
}

.shop-hero__promo:hover .shop-hero__promo-arrow {
    transform: translateX(3px);
}

/* ---------- Shop Search Bar ---------- */
.shop-search {
    margin-bottom: var(--space-5);
}

.shop-search__form {
    position: relative;
    width: 100%;
}

.shop-search__input {
    width: 100%;
    padding: var(--space-4) var(--space-5);
    padding-right: 60px;
    font-size: var(--text-lg);
    font-family: var(--font-body);
    border: 2px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
    outline: none;
}

.shop-search__input:focus {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-md);
}

.shop-search__btn {
    position: absolute;
    right: var(--space-2);
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-primary);
    color: var(--color-white);
    border: none;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: background var(--transition-fast);
}

.shop-search__btn:hover {
    background: var(--color-dark);
}

/* ---------- Category Page Header ---------- */
.shop-page__header {
    margin-bottom: var(--space-5);
}

.shop-page__title {
    font-family: var(--font-heading);
    font-size: var(--text-3xl);
    font-weight: 700;
    color: var(--color-dark);
    margin: 0;
}

.shop-page__desc {
    font-size: var(--text-sm);
    color: var(--color-gray-dark);
    margin-top: var(--space-2);
    max-width: 640px;
}

/* ---------- Toolbar ---------- */
.shop-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    margin-bottom: var(--space-5);
    padding-bottom: var(--space-4);
    border-bottom: 1px solid var(--color-border);
}

.shop-toolbar__filter-btn {
    gap: var(--space-2);
}

@media (min-width: 1024px) {
    .shop-toolbar__filter-btn {
        display: none;
    }
}

.shop-toolbar__filter-count {
    font-size: var(--text-xs);
    font-weight: 700;
}

.shop-toolbar__right {
    display: flex;
    align-items: center;
    gap: var(--space-4);
}

.shop-toolbar__count {
    font-size: var(--text-sm);
    color: var(--color-gray-dark);
    white-space: nowrap;
}

@media (max-width: 479px) {
    .shop-toolbar__count {
        display: none;
    }
}

.shop-toolbar__sort {
    height: 40px;
    padding: 0 var(--space-4);
    padding-right: var(--space-6);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--color-dark);
    background: var(--color-white);
    cursor: pointer;
    appearance: auto;
}

.shop-toolbar__sort:focus {
    border-color: var(--color-gold);
    outline: none;
}

/* ---------- Two-column layout ---------- */
.shop-page__layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-6);
}

@media (min-width: 1024px) {
    .shop-page__layout {
        grid-template-columns: 280px 1fr;
    }
}

/* ---------- Sidebar filters ---------- */
.shop-filters {
    display: none;
}

@media (min-width: 1024px) {
    .shop-filters {
        display: block;
        position: sticky;
        top: calc(var(--header-height) + var(--space-4));
        max-height: calc(100vh - var(--header-height) - var(--space-8));
        overflow-y: auto;
        scrollbar-width: thin;
    }
}

.shop-filters__inner {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--space-4);
}

/* Mobile header/footer inside drawer */
.shop-filters__mobile-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: var(--space-4);
    margin-bottom: var(--space-4);
    border-bottom: 1px solid var(--color-border);
}

@media (min-width: 1024px) {
    .shop-filters__mobile-header {
        display: none;
    }
}

.shop-filters__mobile-title {
    font-size: var(--text-lg);
    font-weight: 700;
    color: var(--color-dark);
    margin: 0;
}

.shop-filters__mobile-close {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.shop-filters__mobile-footer {
    display: block;
    padding-top: var(--space-4);
    margin-top: var(--space-4);
    border-top: 1px solid var(--color-border);
}

.shop-filters__mobile-footer .btn {
    width: 100%;
}

@media (min-width: 1024px) {
    .shop-filters__mobile-footer {
        display: none;
    }
}

/* Mobile drawer */
@media (max-width: 1023px) {
    .shop-filters {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: 85%;
        max-width: 360px;
        z-index: 2000;
        background: var(--color-white);
        overflow-y: auto;
        transform: translateX(-100%);
        transition: transform var(--transition-base);
        display: block;
    }

    .shop-filters.is-open {
        transform: translateX(0);
    }

    .shop-filters__inner {
        border: none;
        border-radius: 0;
        min-height: 100%;
        display: flex;
        flex-direction: column;
    }

    .shop-filters__groups {
        flex: 1;
    }
}

.shop-filters__backdrop {
    position: fixed;
    inset: 0;
    z-index: 1999;
    background: rgba(0, 0, 0, 0.5);
    opacity: 0;
    transition: opacity var(--transition-base);
    pointer-events: none;
}

.shop-filters__backdrop[hidden] {
    display: block;
    visibility: hidden;
}

.shop-filters__backdrop.is-open {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
}

body.filters-open {
    overflow: hidden;
}

@media (min-width: 1024px) {
    body.filters-open {
        overflow: auto;
    }
}

/* ---------- Active filter chips ---------- */
.shop-filters__active {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
    margin-bottom: var(--space-4);
}

.shop-filters__active[hidden] {
    display: none;
}

.shop-filters__chips {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.shop-filters__chip {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: var(--space-1) var(--space-3);
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-badge);
    font-size: var(--text-xs);
    font-weight: 500;
    color: var(--color-dark);
    cursor: pointer;
    transition: all var(--transition-fast);
}

.shop-filters__chip:hover {
    background: var(--color-psp);
    color: var(--color-white);
    border-color: var(--color-psp);
}

.shop-filters__chip .icon {
    width: 12px;
    height: 12px;
}

.shop-filters__clear-all {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: var(--space-1) var(--space-3);
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-badge);
    font-size: var(--text-xs);
    font-weight: 600;
    color: var(--color-gray-dark);
    white-space: nowrap;
    cursor: pointer;
    transition: color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);
}

.shop-filters__clear-all:hover {
    color: var(--color-psp);
    border-color: var(--color-psp);
}

/* ---------- Filter groups ---------- */
.filter-group {
    border-bottom: 1px solid var(--color-border);
    padding: var(--space-3) 0;
}

.filter-group:last-child {
    border-bottom: none;
}

.filter-group__toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: var(--space-2) 0;
    background: none;
    border: none;
    cursor: pointer;
    font-family: var(--font-body);
}

.filter-group__title {
    font-size: var(--text-sm);
    font-weight: 700;
    color: var(--color-dark);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.filter-group__chevron {
    transition: transform 200ms ease;
    color: var(--color-gray-dark);
}

.filter-group__body {
    padding-top: var(--space-2);
}

.filter-group__body--inline {
    padding: var(--space-3) 0;
}

/* ---------- Checkbox / filter-check (for stock toggle) ---------- */
.filter-check {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-1) 0;
    cursor: pointer;
    font-size: var(--text-sm);
    transition: color var(--transition-fast);
}

.filter-check:hover {
    color: var(--color-dark);
}

.filter-check__input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.filter-check__indicator {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    border: 2px solid var(--color-border);
    border-radius: var(--radius-sm);
    position: relative;
    transition: all var(--transition-fast);
    background: var(--color-white);
}

.filter-check__input:checked + .filter-check__indicator {
    background: var(--color-dark);
    border-color: var(--color-dark);
}

.filter-check__input:checked + .filter-check__indicator::after {
    content: '';
    position: absolute;
    top: 2px;
    left: 5px;
    width: 4px;
    height: 8px;
    border: solid var(--color-white);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.filter-check__input:focus-visible + .filter-check__indicator {
    box-shadow: 0 0 0 3px rgba(231, 210, 150, 0.4);
}

.filter-check__label {
    flex: 1;
    color: var(--color-gray-dark);
}

.filter-check__input:checked ~ .filter-check__label {
    color: var(--color-dark);
    font-weight: 600;
}

/* ---------- Category tree ---------- */
.filter-tree {
    list-style: none;
    padding: 0;
    margin: 0;
}

.filter-tree__children {
    list-style: none;
    padding: 0;
    margin: 0;
}

.filter-tree__item {
    position: relative;
}

/* Indentation per level */
.filter-tree__item--l1 > .filter-tree__row { padding-left: 0; }
.filter-tree__item--l2 > .filter-tree__row { padding-left: var(--space-4); }
.filter-tree__item--l3 > .filter-tree__row { padding-left: calc(var(--space-4) * 2); }

/* Row layout */
.filter-tree__row {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    min-height: 36px;
}

/* Expand/collapse arrow button */
.filter-tree__expand {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    background: none;
    border: none;
    cursor: pointer;
    border-radius: var(--radius-sm);
    color: var(--color-gray-dark);
    transition: color var(--transition-fast), background var(--transition-fast);
}

.filter-tree__expand:hover {
    color: var(--color-dark);
    background: var(--color-bg);
}

.filter-tree__arrow {
    transition: transform 200ms ease;
}

.filter-tree__expand[aria-expanded="true"] .filter-tree__arrow {
    transform: rotate(90deg);
}

.filter-tree__expand-spacer {
    flex-shrink: 0;
    width: 24px;
}

/* Colored dot for formations */
.filter-tree__dot {
    flex-shrink: 0;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    margin-right: var(--space-1);
}

/* Clickable label */
.filter-tree__label {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    background: none;
    border: none;
    cursor: pointer;
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--color-gray-dark);
    padding: var(--space-1) var(--space-2);
    border-radius: var(--radius-sm);
    text-align: left;
    transition: all var(--transition-fast);
    min-height: 32px;
}

.filter-tree__label:hover {
    background: var(--color-bg);
    color: var(--color-dark);
}

.filter-tree__label:focus-visible {
    outline: 2px solid var(--color-gold);
    outline-offset: -2px;
}

.filter-tree__name {
    flex: 1;
    line-height: 1.3;
}

.filter-tree__count {
    flex-shrink: 0;
    font-size: 11px;
    color: var(--color-gray);
    min-width: 18px;
    text-align: right;
}

/* Level 1 labels are bolder */
.filter-tree__item--l1 > .filter-tree__row > .filter-tree__label {
    font-weight: 600;
    color: var(--color-dark);
}

/* Selected state */
.filter-tree__item.is-selected > .filter-tree__row > .filter-tree__label {
    background: var(--color-gold);
    color: var(--color-dark);
    font-weight: 600;
}

.filter-tree__item.is-selected > .filter-tree__row > .filter-tree__label .filter-tree__count {
    color: var(--color-dark);
}

/* Subtle left border on selected formation */
.filter-tree__item--l1.is-selected {
    border-left: 3px solid var(--color-gold);
    margin-left: -3px;
}

/* Animate children show/hide */
.filter-tree__children {
    overflow: hidden;
}

.filter-tree__children[hidden] {
    display: none;
}

/* ---------- Price filter ---------- */
.filter-price__inputs {
    display: flex;
    align-items: flex-end;
    gap: var(--space-2);
}

.filter-price__field {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    position: relative;
}

.filter-price__label {
    font-size: var(--text-xs);
    font-weight: 600;
    color: var(--color-gray-dark);
}

.filter-price__input {
    width: 100%;
    height: 40px;
    padding: 0 var(--space-6) 0 var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    font-size: var(--text-sm);
    font-family: var(--font-body);
    color: var(--color-dark);
    -moz-appearance: textfield;
}

.filter-price__input::-webkit-outer-spin-button,
.filter-price__input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.filter-price__input:focus {
    border-color: var(--color-gold);
    outline: none;
}

.filter-price__currency {
    position: absolute;
    right: var(--space-2);
    bottom: 10px;
    font-size: var(--text-xs);
    color: var(--color-gray-dark);
    pointer-events: none;
}

.filter-price__sep {
    padding-bottom: var(--space-2);
    color: var(--color-gray);
}

/* ---------- Products grid (shop variant) ---------- */
.products-grid--shop {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-3);
}

@media (min-width: 480px) {
    .products-grid--shop {
        gap: var(--space-4);
    }
}

@media (min-width: 768px) {
    .products-grid--shop {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* With sidebar, 3 cols is the max */

/* ---------- Shop content loading state ---------- */
.shop-page__content.is-loading {
    opacity: 0.4;
    pointer-events: none;
    transition: opacity var(--transition-fast);
}

/* ---------- Empty state ---------- */
.shop-page__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: var(--space-10) var(--space-4);
    gap: var(--space-3);
    color: var(--color-gray-dark);
}

.shop-page__empty .icon {
    width: 48px;
    height: 48px;
    color: var(--color-gray);
}

.shop-page__empty h2 {
    font-size: var(--text-xl);
    color: var(--color-dark);
    margin: 0;
}

.shop-page__empty p {
    font-size: var(--text-sm);
    max-width: 400px;
    margin: 0;
}

/* ---------- Pagination ---------- */
.shop-pagination {
    margin-top: var(--space-8);
    display: flex;
    justify-content: center;
}

.shop-pagination .page-numbers {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-1);
    list-style: none;
    padding: 0;
    margin: 0;
}

.shop-pagination .page-numbers li {
    display: inline-flex;
}

.shop-pagination .page-numbers a,
.shop-pagination .page-numbers span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 var(--space-2);
    border-radius: var(--radius-sm);
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--color-gray-dark);
    transition: all var(--transition-fast);
    text-decoration: none;
}

.shop-pagination .page-numbers a:hover {
    background: var(--color-bg);
    color: var(--color-dark);
}

.shop-pagination .page-numbers .current {
    background: var(--color-dark);
    color: var(--color-white);
    font-weight: 700;
}

.shop-pagination .page-numbers .dots {
    color: var(--color-gray);
}

.shop-pagination .page-numbers .prev,
.shop-pagination .page-numbers .next {
    color: var(--color-dark);
}

.shop-pagination .page-numbers .prev:hover,
.shop-pagination .page-numbers .next:hover {
    background: var(--color-gold);
    color: var(--color-dark);
}

/* ==========================================================================
   Mini Cart - Slide-in Panel
   ========================================================================== */

.mini-cart__backdrop {
    position: fixed;
    inset: 0;
    z-index: 2998;
    background: rgba(0, 0, 0, 0.5);
    opacity: 0;
    transition: opacity var(--transition-base);
    pointer-events: none;
}

.mini-cart__backdrop.is-open {
    opacity: 1;
    pointer-events: auto;
}

.mini-cart {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 2999;
    width: 100%;
    max-width: 420px;
    height: 100vh;
    height: 100dvh;
    background: var(--color-white);
    box-shadow: var(--shadow-lg);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transform: translateX(100%);
    transition: transform var(--transition-base);
}

.mini-cart.is-open {
    transform: translateX(0);
}

.mini-cart__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--color-border);
    flex-shrink: 0;
}

/* =====================================================
   TYMCZASOWA NAKŁADKA — USUNĄĆ GDY SKLEP ONLINE
   ===================================================== */
.mini-cart__coming-soon {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-4);
    padding: var(--space-8) var(--space-6);
    text-align: center;
    background: var(--color-white);
}

.mini-cart__coming-soon-icon {
    color: var(--color-gold);
    opacity: 0.7;
    width: 48px;
    height: 48px;
}

.mini-cart__coming-soon-title {
    font-family: var(--font-heading);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--color-dark);
    line-height: 1.35;
    margin: 0;
}

.mini-cart__coming-soon-sub {
    font-size: var(--text-sm);
    color: var(--color-gray-dark);
    margin: 0;
    line-height: 1.6;
}

.mini-cart__allegro-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: 12px var(--space-5);
    background: #FF5A00;
    color: #fff;
    font-family: var(--font-alt);
    font-size: var(--text-sm);
    font-weight: 600;
    border-radius: var(--radius-md);
    text-decoration: none;
    transition: background 0.2s ease, transform 0.15s ease;
    margin-top: var(--space-2);
}

.mini-cart__allegro-btn:hover {
    background: #e64e00;
    transform: translateY(-1px);
    color: #fff;
}

.mini-cart__allegro-btn .icon {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
}

/* Ukryj body i footer gdy nakładka jest aktywna */
.mini-cart__coming-soon ~ .mini-cart__body,
.mini-cart__coming-soon ~ .mini-cart__footer {
    display: none;
}
/* ===================================================== */

.mini-cart__title {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-family: var(--font-heading);
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--color-dark);
    margin: 0;
}

.mini-cart__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 24px;
    padding: 0 var(--space-2);
    background: var(--color-gold);
    color: var(--color-dark);
    font-size: 12px;
    font-weight: 700;
    border-radius: var(--radius-full);
    font-family: var(--font-body);
}

.mini-cart__close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: var(--radius-full);
    color: var(--color-gray-dark);
    transition: background var(--transition-fast), color var(--transition-fast);
}

.mini-cart__close:hover {
    background: var(--color-bg);
    color: var(--color-dark);
}

.mini-cart__body {
    flex: 1;
    overflow-y: auto;
    overscroll-behavior: contain;
}

/* Empty state */
.mini-cart__empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-4);
    padding: var(--space-10) var(--space-5);
    text-align: center;
    color: var(--color-gray-dark);
}

.mini-cart__empty .icon {
    width: 48px;
    height: 48px;
    color: var(--color-gray);
}

.mini-cart__empty p {
    font-size: var(--text-sm);
    margin: 0;
}

/* Items list */
.mini-cart__items {
    list-style: none;
    padding: 0;
    margin: 0;
}

.mini-cart__item {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--color-border);
    transition: background var(--transition-fast);
}

.mini-cart__item:hover {
    background: var(--color-bg);
}

.mini-cart__item-image {
    flex-shrink: 0;
    width: 64px;
    height: 64px;
    border-radius: var(--radius-sm);
    overflow: hidden;
    background: var(--color-white);
    border: 1px solid var(--color-border);
}

.mini-cart__item-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.mini-cart__item-info {
    flex: 1;
    min-width: 0;
}

.mini-cart__item-name {
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--color-dark);
    margin: 0 0 var(--space-1);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mini-cart__item-name a {
    color: inherit;
    transition: color var(--transition-fast);
}

.mini-cart__item-name a:hover {
    color: var(--color-primary);
}

.mini-cart__item-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    margin-top: var(--space-1);
}

.mini-cart__item-actions {
    display: flex;
    align-items: center;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    overflow: hidden;
}

.mini-cart__item-action {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    color: var(--color-gray-dark);
    background: none;
    border: none;
    cursor: pointer;
    transition: background var(--transition-fast), color var(--transition-fast);
}

.mini-cart__item-action:hover {
    background: var(--color-bg-alt);
    color: var(--color-dark);
}

.mini-cart__item-action--minus:hover {
    color: var(--color-psp);
}

.mini-cart__item-qty {
    min-width: 28px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--color-dark);
    border-left: 1px solid var(--color-border);
    border-right: 1px solid var(--color-border);
}

.mini-cart__item-price {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--color-dark);
}

.mini-cart__item-remove {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: var(--radius-sm);
    color: var(--color-gray-dark);
    transition: color var(--transition-fast), background var(--transition-fast);
}

.mini-cart__item-remove:hover {
    color: var(--color-psp);
    background: var(--color-bg-alt);
}

/* Footer */
.mini-cart__footer {
    flex-shrink: 0;
    padding: var(--space-4) var(--space-5);
    border-top: 1px solid var(--color-border);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.mini-cart__subtotal {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: var(--text-sm);
    color: var(--color-gray-dark);
}

.mini-cart__subtotal strong {
    color: var(--color-dark);
    font-size: var(--text-base);
    font-weight: 700;
}

.mini-cart__actions {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.mini-cart__btn {
    width: 100%;
    justify-content: center;
}

/* Body scroll lock when cart is open */
body.mini-cart-open {
    overflow: hidden;
}

@media (max-width: 479px) {
    .mini-cart {
        max-width: 100%;
    }
}

/* ==========================================================================
   MY ACCOUNT & LOGIN
   ========================================================================== */

/* ---- Auth Card (Login/Register) ---- */

.auth-card {
    max-width: 520px;
    margin: var(--space-10) auto;
    background: var(--color-white);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-md);
    overflow: hidden;
}

.auth-card__header {
    padding: var(--space-6) var(--space-6) 0;
}

.auth-card__title {
    font-family: var(--font-heading);
    font-size: var(--text-2xl);
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: var(--space-4);
    text-align: center;
}

/* Auth Tabs */

.auth-tabs {
    display: flex;
    border-bottom: 2px solid var(--color-border);
}

.auth-tabs__tab {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    border: none;
    background: none;
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--color-gray-dark);
    cursor: pointer;
    position: relative;
    transition: color var(--transition-base);
}

.auth-tabs__tab::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    right: 0;
    height: 2px;
    background: transparent;
    transition: background var(--transition-base);
}

.auth-tabs__tab:hover {
    color: var(--color-dark);
}

.auth-tabs__tab.is-active {
    color: var(--color-primary);
}

.auth-tabs__tab.is-active::after {
    background: var(--color-primary);
}

/* Auth Panels */

.auth-panel {
    display: none;
    padding: var(--space-6);
}

.auth-panel.is-active {
    display: block;
}

/* Auth Fields */

.auth-field {
    margin-bottom: var(--space-4);
}

.auth-field label {
    display: block;
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--color-dark);
    margin-bottom: var(--space-2);
}

.auth-field .input-text {
    width: 100%;
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    font-family: var(--font-body);
    font-size: var(--text-base);
    color: var(--color-dark);
    background: var(--color-white);
    transition: border-color var(--transition-base), box-shadow var(--transition-base);
}

.auth-field .input-text:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 15%, transparent);
}

.auth-field--row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.auth-field--row label {
    margin-bottom: 0;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-weight: 400;
    cursor: pointer;
}

.auth-link {
    font-size: var(--text-sm);
    color: var(--color-primary);
    text-decoration: none;
    font-weight: 500;
}

.auth-link:hover {
    text-decoration: underline;
}

.auth-field .required {
    color: var(--color-danger, #dc3545);
}

/* Full-width button helper */
.btn--full {
    width: 100%;
}

/* ---- Account Layout (Dashboard) ---- */

/* MOBILE-FIRST: 1 kolumna domyślnie, sidebar od 768px */
.account-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-3);
    max-width: 1280px;
    margin: var(--space-4) auto;
    padding: 0;
    overflow-x: hidden; /* clip any accidental child overflow on mobile */
}

@media (min-width: 768px) {
    .account-layout {
        grid-template-columns: 260px 1fr;
        gap: var(--space-6);
        margin: var(--space-8) auto;
        overflow-x: visible; /* allow sticky nav to work */
    }
}

/* ---- Account Navigation ---- */
/* MOBILE-FIRST: poziomy scroll strip, pionowy sidebar od 768px */

.account-nav {
    position: relative;
    min-width: 0; /* prevent grid item from expanding beyond 1fr column */
}

.account-nav::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 48px;
    height: 100%;
    /* gradient + inline chevron-right SVG icon */
    background:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E") right 8px center / 16px 16px no-repeat,
        linear-gradient(to right, transparent, var(--color-white, #fff) 55%);
    pointer-events: none;
    z-index: 1;
    transition: opacity 0.25s;
}

/* Hide chevron when the list is fully scrolled to the end */
.account-nav.is-scrolled-end::after {
    opacity: 0;
}

.account-nav__list {
    list-style: none;
    padding: 0;
    margin: 0;
    background: var(--color-white);
    box-shadow: var(--shadow-sm);
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.account-nav__list::-webkit-scrollbar {
    display: none;
}

.account-nav__item {
    flex-shrink: 0;
    border-bottom: none;
    border-right: 1px solid var(--color-border);
}

.account-nav__item:last-child {
    border-right: none;
}

.account-nav__link {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    text-decoration: none;
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--color-gray-dark);
    white-space: nowrap;
    transition: all var(--transition-base);
}

.account-nav__link:hover {
    color: var(--color-dark);
    background: var(--color-bg);
}

.account-nav__item.is-active .account-nav__link {
    color: var(--color-primary);
    background: color-mix(in srgb, var(--color-primary) 8%, transparent);
    font-weight: 600;
}

@media (min-width: 768px) {
    .account-nav {
        position: sticky;
        top: calc(var(--header-height, 72px) + var(--space-4));
        align-self: start;
    }

    .account-nav::after {
        display: none;
    }

    .account-nav__list {
        display: block;
        border-radius: var(--radius-md);
        overflow: hidden;
    }

    .account-nav__item {
        flex-shrink: unset;
        border-right: none;
        border-bottom: 1px solid var(--color-border);
    }

    .account-nav__item:last-child {
        border-bottom: none;
    }

    .account-nav__link {
        white-space: normal;
    }
}

/* ---- Account Content ---- */
/* MOBILE-FIRST: mniejszy padding, pełne od 768px */

.account-layout__content {
    min-width: 0;
    background: var(--color-white);
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-sm);
    padding: var(--space-4);
}

@media (min-width: 768px) {
    .account-layout__content {
        border-radius: var(--radius-md);
        padding: var(--space-6);
    }
}

/* ---- Account Welcome (Dashboard) ---- */
/* MOBILE-FIRST: kolumna wyśrodkowana, rząd od 768px */

.account-welcome {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: var(--space-4);
    margin-bottom: var(--space-6);
    padding-bottom: var(--space-6);
    border-bottom: 1px solid var(--color-border);
}

@media (min-width: 768px) {
    .account-welcome {
        flex-direction: row;
        text-align: left;
        align-items: center;
    }
}

.account-welcome__avatar img {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    object-fit: cover;
}

.account-welcome__greeting {
    font-family: var(--font-heading);
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: var(--space-1);
}

.account-welcome__desc {
    font-size: var(--text-sm);
    color: var(--color-gray-dark);
    line-height: 1.6;
}

/* Quick Links Grid */

.account-quicklinks {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 1fr;
    align-items: stretch;
    gap: var(--space-4);
}

.account-quicklink {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-3);
    min-height: 120px;
    height: 100%;
    padding: var(--space-4) var(--space-3);
    background: var(--color-bg);
    border-radius: var(--radius-md);
    text-decoration: none;
    color: var(--color-dark);
    border: 1px solid var(--color-border);
    transition: all var(--transition-base);
}

@media (min-width: 768px) {
    .account-quicklink {
        padding: var(--space-6) var(--space-4);
    }
}

.account-quicklink:hover {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-sm);
    transform: translateY(-2px);
}

.account-quicklink .icon {
    width: 28px;
    height: 28px;
    color: var(--color-primary);
}

.account-quicklink__label {
    font-size: var(--text-sm);
    font-weight: 600;
}

/* ---- Auth Card (Login/Register) — responsive ---- */
/* MOBILE-FIRST: kompaktowy bez shadow/radius, rośnie od 480px */

.auth-card {
    margin: var(--space-4) auto;
    border-radius: 0;
    box-shadow: none;
}

.auth-card__header,
.auth-panel {
    padding: var(--space-4);
}

.auth-tabs__tab {
    font-size: var(--text-sm);
    padding: var(--space-3) var(--space-2);
}

@media (min-width: 480px) {
    .auth-card {
        margin: var(--space-6) auto;
        border-radius: var(--radius-md);
        box-shadow: var(--shadow-md);
    }

    .auth-card__header,
    .auth-panel {
        padding: var(--space-6);
    }

    .auth-tabs__tab {
        padding: var(--space-3) var(--space-4);
    }
}

@media (min-width: 768px) {
    .auth-card {
        margin: var(--space-10) auto;
    }
}

/* ==========================================================================
   MY ACCOUNT — Section pages (orders, addresses, account details, etc.)
   ========================================================================== */

/* ---- Section Header ---- */

.account-section-header {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-6);
    padding-bottom: var(--space-4);
    border-bottom: 1px solid var(--color-border);
}

.account-section-header .icon {
    width: 24px;
    height: 24px;
    color: var(--color-primary);
    flex-shrink: 0;
}

.account-section-header__title {
    font-family: var(--font-heading);
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--color-dark);
    margin: 0;
}

/* ---- Account Table (orders, downloads) ---- */

.account-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.account-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--text-sm);
}

.account-table th {
    text-align: left;
    font-weight: 600;
    color: var(--color-gray-dark);
    padding: var(--space-3) var(--space-4);
    border-bottom: 2px solid var(--color-border);
    white-space: nowrap;
    font-size: var(--text-xs);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.account-table td {
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--color-border);
    color: var(--color-dark);
    vertical-align: middle;
}

.account-table tbody tr:last-child td {
    border-bottom: none;
}

.account-table tbody tr:hover {
    background: var(--color-bg);
}

.account-table__order-num {
    font-weight: 600;
    color: var(--color-primary);
    text-decoration: none;
}

.account-table__order-num:hover {
    text-decoration: underline;
}

/* ---- Status Badge ---- */

.account-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: var(--text-xs);
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
}

.account-status::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
}

.account-status--pending {
    background: #fff3cd;
    color: #856404;
}

.account-status--pending::before {
    background: #856404;
}

.account-status--processing {
    background: #cce5ff;
    color: #004085;
}

.account-status--processing::before {
    background: #004085;
}

.account-status--on-hold {
    background: #fff3cd;
    color: #856404;
}

.account-status--on-hold::before {
    background: #856404;
}

.account-status--completed {
    background: #d4edda;
    color: #155724;
}

.account-status--completed::before {
    background: #155724;
}

.account-status--cancelled,
.account-status--failed {
    background: #f8d7da;
    color: #721c24;
}

.account-status--cancelled::before,
.account-status--failed::before {
    background: #721c24;
}

.account-status--refunded {
    background: #e2e3e5;
    color: #383d41;
}

.account-status--refunded::before {
    background: #383d41;
}

/* ---- Inquiry table — expandable rows ---- */

.inq-table .inq-row {
    cursor: pointer;
    transition: background-color 0.15s;
}

.inq-table .inq-row:hover,
.inq-table .inq-row--open {
    background-color: #faf8f5;
}

.inq-row__toggle-cell {
    text-align: right;
}

.inq-toggle {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: none;
    border: 1px solid #d6cfc7;
    border-radius: 4px;
    padding: 5px 10px;
    font-size: var(--text-xs);
    font-weight: 600;
    color: #6b5e55;
    cursor: pointer;
    white-space: nowrap;
    transition: border-color 0.15s, color 0.15s;
}

.inq-toggle:hover {
    border-color: #C8A04A;
    color: #2d2520;
}

.inq-toggle__chevron {
    transition: transform 0.2s;
    flex-shrink: 0;
}

.inq-row--open .inq-toggle__chevron {
    transform: rotate(180deg);
}

/* Detail row */
.inq-detail__cell {
    padding: 0 !important;
    border-top: none !important;
}

.inq-detail__inner {
    padding: 16px 20px 20px;
    background: #faf8f5;
    border-top: 1px solid #ebe7e0;
    border-bottom: 2px solid #C8A04A;
}

/* Product table inside detail */
.inq-products-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--text-sm);
    margin-bottom: 0;
}

.inq-products-table th,
.inq-products-table td {
    padding: 8px 12px;
    border: none;
    border-bottom: 1px solid #ebe7e0;
    text-align: left;
    font-size: var(--text-xs);
    color: #2d2520;
    background: none;
}

.inq-products-table th {
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #9a8878;
    font-size: 10px;
}

.inq-products-table__num {
    text-align: right;
}

.inq-products-table__link {
    color: #2d2520;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.inq-products-table__link:hover {
    color: #C8A04A;
}

.inq-products-table tfoot td {
    border-top: 2px solid #d6cfc7;
    border-bottom: none;
    font-weight: 600;
}

.inq-products-table__sum-label {
    color: #453731;
    font-size: var(--text-xs) !important;
    font-weight: 600 !important;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.inq-products-table__sum {
    color: #2d2520;
    font-weight: 700 !important;
}

/* Message block */
.inq-detail__message {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid #ebe7e0;
}

.inq-detail__message-label {
    display: block;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #9a8878;
    margin-bottom: 6px;
}

.inq-detail__message-text {
    margin: 0;
    font-size: var(--text-sm);
    color: #453731;
    line-height: 1.6;
}

/* ---- Action Button (table) ---- */

.account-table .btn--sm {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: 6px 14px;
    font-size: var(--text-xs);
    font-weight: 600;
    border-radius: var(--radius-sm);
    text-decoration: none;
    background: var(--color-primary);
    color: var(--color-white);
    transition: all var(--transition-base);
    border: none;
    cursor: pointer;
}

.account-table .btn--sm:hover {
    opacity: 0.9;
    transform: translateY(-1px);
}

/* ---- Empty State ---- */

.account-empty {
    text-align: center;
    padding: var(--space-10) var(--space-6);
}

.account-empty__icon {
    width: 64px;
    height: 64px;
    color: var(--color-border);
    margin: 0 auto var(--space-4);
}

.account-empty__title {
    font-family: var(--font-heading);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--color-dark);
    margin-bottom: var(--space-2);
}

.account-empty__desc {
    font-size: var(--text-sm);
    color: var(--color-gray-dark);
    margin-bottom: var(--space-6);
}

.account-empty .btn {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-6);
    background: var(--color-primary);
    color: var(--color-white);
    border-radius: var(--radius-sm);
    text-decoration: none;
    font-weight: 600;
    font-size: var(--text-sm);
    transition: all var(--transition-base);
}

.account-empty .btn:hover {
    opacity: 0.9;
}

/* ---- Pagination ---- */

.account-pagination {
    display: flex;
    justify-content: center;
    gap: var(--space-1);
    margin-top: var(--space-6);
    padding-top: var(--space-4);
    border-top: 1px solid var(--color-border);
}

.account-pagination a,
.account-pagination span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--radius-sm);
    font-size: var(--text-sm);
    font-weight: 500;
    text-decoration: none;
    color: var(--color-gray-dark);
    border: 1px solid var(--color-border);
    transition: all var(--transition-base);
}

.account-pagination a:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
}

.account-pagination .current {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-white);
}

/* ---- Order Detail Page ---- */

.account-order-meta {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--space-4);
    margin-bottom: var(--space-6);
    padding: var(--space-4);
    background: var(--color-bg);
    border-radius: var(--radius-md);
}

.account-order-meta__item {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.account-order-meta__label {
    font-size: var(--text-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-gray-dark);
}

.account-order-meta__value {
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--color-dark);
}

.account-order-totals {
    margin-top: var(--space-4);
    border-top: 2px solid var(--color-border);
}

.account-order-totals tr td {
    padding: var(--space-2) var(--space-4);
    font-size: var(--text-sm);
}

.account-order-totals tr:last-child td {
    font-weight: 700;
    font-size: var(--text-base);
    padding-top: var(--space-3);
    border-top: 1px solid var(--color-border);
}

/* ---- Address Cards ---- */
/* MOBILE-FIRST: 1 kolumna domyślnie, 2 od 768px */

.account-addresses {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-4);
}

@media (min-width: 768px) {
    .account-addresses {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-6);
    }
}

.account-address-card {
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--space-5);
    position: relative;
}

.account-address-card__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--space-4);
    padding-bottom: var(--space-3);
    border-bottom: 1px solid var(--color-border);
}

.account-address-card__title {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-family: var(--font-heading);
    font-size: var(--text-base);
    font-weight: 600;
    color: var(--color-dark);
    margin: 0;
}

.account-address-card__title .icon {
    width: 18px;
    height: 18px;
    color: var(--color-primary);
}

.account-address-card__edit {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    font-size: var(--text-xs);
    font-weight: 600;
    color: var(--color-primary);
    text-decoration: none;
    padding: 4px 10px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--color-primary);
    transition: all var(--transition-base);
}

.account-address-card__edit:hover {
    background: var(--color-primary);
    color: var(--color-white);
}

.account-address-card address {
    font-style: normal;
    font-size: var(--text-sm);
    color: var(--color-gray-dark);
    line-height: 1.7;
}

.account-address-card .account-empty__desc {
    font-size: var(--text-sm);
    color: var(--color-gray-dark);
    padding: var(--space-4) 0;
}

/* ---- Account Form (edit address / edit account) ---- */

.account-form .form-row {
    margin-bottom: var(--space-4);
}

.account-form .form-row label {
    display: block;
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--color-dark);
    margin-bottom: var(--space-2);
}

.account-form .form-row label .required {
    color: var(--color-danger, #dc3545);
}

.account-form .form-row .input-text,
.account-form .form-row input[type="text"],
.account-form .form-row input[type="email"],
.account-form .form-row input[type="password"],
.account-form .form-row input[type="tel"],
.account-form .form-row select {
    width: 100%;
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    font-family: var(--font-body);
    font-size: var(--text-base);
    color: var(--color-dark);
    background: var(--color-white);
    transition: border-color var(--transition-base), box-shadow var(--transition-base);
}

.account-form .form-row .input-text:focus,
.account-form .form-row input:focus,
.account-form .form-row select:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 15%, transparent);
}

.account-form fieldset {
    border: none;
    padding: 0;
    margin: var(--space-6) 0 0;
}

.account-form fieldset legend {
    font-family: var(--font-heading);
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--color-dark);
    margin-bottom: var(--space-4);
    padding-bottom: var(--space-3);
    border-bottom: 1px solid var(--color-border);
    width: 100%;
}

.account-form .btn {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-6);
    background: var(--color-primary);
    color: var(--color-white);
    border: none;
    border-radius: var(--radius-sm);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 600;
    cursor: pointer;
    transition: all var(--transition-base);
    margin-top: var(--space-4);
}

.account-form .btn:hover {
    opacity: 0.9;
}

/* ---- Dashboard Stats ---- */
/* MOBILE-FIRST: 2 kolumny domyślnie, 3 od 768px */

.account-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 1fr;
    align-items: stretch;
    gap: var(--space-3);
    margin-bottom: var(--space-6);
}

@media (min-width: 768px) {
    .account-stats {
        grid-template-columns: repeat(3, 1fr);
        gap: var(--space-4);
    }
}

.account-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    min-height: 124px;
    height: 100%;
    padding: var(--space-3) var(--space-2);
    background: var(--color-bg);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    text-align: center;
}

@media (min-width: 768px) {
    .account-stat {
        padding: var(--space-5) var(--space-4);
    }
}

.account-stat__icon {
    width: 24px;
    height: 24px;
    color: var(--color-primary);
}

.account-stat__value {
    font-family: var(--font-heading);
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--color-dark);
    line-height: 1;
}

@media (min-width: 768px) {
    .account-stat__value {
        font-size: var(--text-2xl);
    }
}

.account-stat__value--sm {
    font-size: var(--text-sm);
}

@media (min-width: 768px) {
    .account-stat__value--sm {
        font-size: var(--text-base);
    }
}

.account-stat__label {
    font-size: var(--text-xs);
    color: var(--color-gray-dark);
    font-weight: 500;
}

/* Last order preview */

.account-last-order {
    margin-bottom: var(--space-6);
    padding: var(--space-4);
    background: var(--color-bg);
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
}

.account-last-order__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--space-3);
}

.account-last-order__title {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--color-dark);
}

.account-last-order__link {
    font-size: var(--text-xs);
    font-weight: 600;
    color: var(--color-primary);
    text-decoration: none;
}

.account-last-order__link:hover {
    text-decoration: underline;
}

.account-last-order__details {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-2);
    font-size: var(--text-sm);
    color: var(--color-gray-dark);
}

@media (min-width: 768px) {
    .account-last-order__details {
        flex-direction: row;
        align-items: center;
        gap: var(--space-4);
    }
}

/* ---- Download Card Style ---- */

.account-downloads-grid {
    display: grid;
    gap: var(--space-3);
}

.account-download-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-4);
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    transition: border-color var(--transition-base);
}

@media (min-width: 768px) {
    .account-download-item {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 0;
    }
}

.account-download-item:hover {
    border-color: var(--color-primary);
}

.account-download-item__info {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.account-download-item__name {
    font-weight: 600;
    font-size: var(--text-sm);
    color: var(--color-dark);
}

.account-download-item__meta {
    font-size: var(--text-xs);
    color: var(--color-gray-dark);
}

.account-download-item__action .btn--sm {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    padding: 6px 14px;
    font-size: var(--text-xs);
    font-weight: 600;
    border-radius: var(--radius-sm);
    text-decoration: none;
    background: var(--color-primary);
    color: var(--color-white);
    transition: all var(--transition-base);
}

.account-download-item__action .btn--sm:hover {
    opacity: 0.9;
}

/* ---- Responsive: Account Section Pages ---- */

/* Orphaned 3rd stat in 2-column mobile grid: span full width */
@media (max-width: 767.98px) {
    .account-stat:nth-child(3):last-child {
        grid-column: 1 / -1;
        justify-self: stretch;
        max-width: none;
    }
}

/* Form rows: always full-width — override WooCommerce's float: left/right */
.account-form .form-row-first,
.account-form .form-row-last,
.woocommerce-address-fields .form-row-first,
.woocommerce-address-fields .form-row-last {
    display: block;
    float: none;
    width: 100%;
    margin-left: 0;
}

/* WooCommerce-generated address fields: always full-width */
.woocommerce-address-fields .form-row {
    float: none;
    width: 100%;
    margin-left: 0;
    clear: both;
}

/* form-row-wide clearfix (replaces inline style="clear:both") */
.account-form .form-row-wide {
    clear: both;
}

/* PHP inline styles replacement */
.account-form__hint {
    font-size: var(--text-xs);
    color: var(--color-gray-dark);
    margin-top: var(--space-1);
}

.account-form__subheading {
    font-family: var(--font-heading);
    font-size: var(--text-lg);
    font-weight: 600;
    margin-bottom: var(--space-4);
}

.account-intro-text {
    margin-top: calc(-1 * var(--space-4));
    margin-bottom: var(--space-6);
    font-size: var(--text-sm);
    color: var(--color-gray-dark);
}

/* Edit address pencil icon size */
.account-address-card__edit .icon {
    width: 12px;
    height: 12px;
}

@media (max-width: 479px) {
    .account-section-header__title {
        font-size: var(--text-lg);
    }

    /* Tighter table cells on very small screens — table still scrolls horizontally */
    .account-table th,
    .account-table td {
        padding: var(--space-2) var(--space-3);
        font-size: var(--text-xs);
    }

    .account-table .btn--sm {
        padding: 4px 10px;
        font-size: 11px;
    }
}

/* ==========================================================================
   Cart Page
   ========================================================================== */

.cart-page {
    padding: var(--space-5) 0 var(--space-10);
}

/* ---- Page header ---- */

.cart-page__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--space-4);
    background: var(--color-dark);
    border-radius: var(--radius-lg);
    padding: var(--space-6) var(--space-6);
    margin-bottom: var(--space-8);
}

.cart-page__head-left {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.cart-page__subtitle {
    font-size: var(--text-base);
    color: rgba(255, 255, 255, 0.65);
    max-width: 500px;
    margin: 0;
}

.cart-page__title {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    font-family: var(--font-heading);
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 700;
    color: var(--color-white);
    margin: 0;
}

.cart-page__title .icon {
    width: 32px;
    height: 32px;
    color: var(--color-gold);
    flex-shrink: 0;
}

.cart-page__title-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 28px;
    padding: 0 var(--space-2);
    background: var(--color-gold);
    color: var(--color-dark);
    font-size: var(--text-sm);
    font-weight: 700;
    border-radius: var(--radius-full);
    font-family: var(--font-body);
}

.cart-page__continue {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-sm);
    font-weight: 500;
    color: rgba(255, 255, 255, 0.65);
    text-decoration: none;
    transition: color var(--transition-fast);
    white-space: nowrap;
    margin-top: var(--space-1);
}

.cart-page__continue:hover {
    color: var(--color-white);
}

/* ---- Two-column layout ---- */

.cart-page__layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-6);
    align-items: start;
}

@media (min-width: 1024px) {
    .cart-page__layout {
        grid-template-columns: 1fr 380px;
        gap: var(--space-8);
    }

    .cart-page__right {
        position: sticky;
        top: calc(var(--header-height) + var(--space-4));
    }
}

/* ---- Cart items list ---- */

.cart-items {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

/* ---- Single cart item ---- */

.cart-item {
    display: grid;
    grid-template-columns: 80px 1fr;
    grid-template-rows: auto auto;
    grid-template-areas:
        "image info"
        "image controls";
    gap: var(--space-2) var(--space-4);
    align-items: flex-start;
    padding: var(--space-4);
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    transition: box-shadow 0.2s;
}

.cart-item:hover {
    box-shadow: var(--shadow-sm);
}

/* Image */

.cart-item__image {
    grid-area: image;
    width: 80px;
    height: 80px;
    border-radius: var(--radius-sm);
    overflow: hidden;
    background: var(--color-bg);
    flex-shrink: 0;
}

.cart-item__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cart-item__image a {
    display: block;
    width: 100%;
    height: 100%;
}

/* Info */

.cart-item__info {
    grid-area: info;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.cart-item__name {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--color-dark);
    text-decoration: none;
    line-height: 1.4;
    transition: color var(--transition-fast);
}

.cart-item__name:hover {
    color: var(--color-gold);
}

/* Unit price hidden — subtotal in controls shows the line total */
.cart-item__unit-price {
    display: none;
}

/* WC item meta (variations) */

.cart-item__info .wc-item-meta,
.cart-item__info dl.variation {
    font-size: var(--text-xs);
    color: var(--color-gray-dark);
    list-style: none;
    padding: 0;
    margin: 0;
}

.cart-item__info dl.variation dt,
.cart-item__info dl.variation dd {
    display: inline;
    margin: 0;
    font-size: var(--text-xs);
}

.cart-item__info dl.variation dd::after {
    content: ' ';
    display: block;
}

/* Controls group — styled like inquiry-page__item-footer */

.cart-item__controls {
    grid-area: controls;
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex-wrap: wrap;
}

/* Qty stepper */

.cart-item__qty .quantity {
    display: flex;
    align-items: stretch;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    overflow: hidden;
    background: var(--color-white);
    height: 30px;
}

.cart-item__qty .qty {
    width: 40px;
    height: 30px;
    text-align: center;
    border: none;
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: 700;
    color: var(--color-dark);
    background: transparent;
    -moz-appearance: textfield;
    padding: 0;
    outline: none;
    min-width: 0;
    border-left: 1px solid var(--color-border);
    border-right: 1px solid var(--color-border);
}

.cart-item__qty .qty::-webkit-outer-spin-button,
.cart-item__qty .qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* +/- buttons injected by cart.js */

.cart-item__qty .qty-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    background: var(--color-white);
    border: none;
    color: var(--color-dark);
    cursor: pointer;
    font-size: var(--text-base);
    font-weight: 400;
    line-height: 1;
    transition: background var(--transition-fast);
    flex-shrink: 0;
    user-select: none;
    padding: 0;
}

.cart-item__qty .qty-btn--minus {
    order: -1;
}

.cart-item__qty .qty-btn--plus {
    /* plus stays at right */
}

.cart-item__qty .qty-btn:hover {
    background: var(--color-gray-light, #f3f4f6);
}

.cart-item__qty-fixed {
    font-size: var(--text-sm);
    color: var(--color-gray-dark);
    padding: 0 var(--space-3);
    line-height: 30px;
}

/* Subtotal — pushed to far right like inquiry price */

.cart-item__subtotal {
    margin-left: auto;
    flex-shrink: 0;
}

.cart-item__subtotal .woocommerce-Price-amount {
    font-size: var(--text-sm);
    font-weight: 700;
    color: var(--color-dark);
}

/* Remove button — styled like inquiry-page__item-remove */

.cart-item__remove {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: var(--radius-sm);
    color: var(--color-gray-dark);
    text-decoration: none;
    background: none;
    transition: color 0.15s, background 0.15s;
    flex-shrink: 0;
    padding: var(--space-1);
}

.cart-item__remove:hover {
    color: #dc2626;
    background: #fef2f2;
}

/* ---- Cart actions bar ---- */

.cart-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-top: var(--space-4);
}

.cart-coupon {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}

.cart-coupon__field {
    position: relative;
    display: flex;
    align-items: center;
}

.cart-coupon__icon {
    position: absolute;
    left: var(--space-3);
    color: var(--color-gray-dark);
    pointer-events: none;
    width: 16px;
    height: 16px;
}

.cart-coupon .cart-coupon__input {
    height: 40px;
    padding: 0 var(--space-4) 0 calc(var(--space-3) + 16px + var(--space-2));
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    color: var(--color-dark);
    background: var(--color-white);
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
    outline: none;
    width: 200px;
}

.cart-coupon .cart-coupon__input:focus {
    border-color: var(--color-gold);
    box-shadow: 0 0 0 3px rgba(231, 210, 150, 0.2);
}

.cart-actions__right {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

/* Update cart button — greyed out until qty changes (cart.js enables it) */

.cart-update-btn {
    background: transparent;
    border: 2px solid var(--color-border);
    color: var(--color-gray-dark);
    transition: all var(--transition-fast);
}

.cart-update-btn:not(:disabled) {
    border-color: var(--color-dark);
    color: var(--color-dark);
}

.cart-update-btn:not(:disabled):hover {
    background: var(--color-dark);
    color: var(--color-white);
}

@media (max-width: 599px) {
    .cart-coupon .cart-coupon__input {
        width: 150px;
    }

    .cart-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .cart-coupon {
        width: 100%;
    }

    .cart-coupon .cart-coupon__input {
        flex: 1;
        width: auto;
    }

    .cart-actions__right {
        width: 100%;
        justify-content: flex-end;
    }
}

/* ---- Cart summary (right panel) ---- */

.cart-summary {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
}

/* WC cart_totals container */

.cart-summary .cart_totals {
    padding: var(--space-5) var(--space-5) var(--space-4);
}

.cart-summary .cart_totals > h2 {
    font-family: var(--font-heading);
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--color-dark);
    margin: 0 0 var(--space-5);
    padding-bottom: var(--space-4);
    border-bottom: 2px solid var(--color-border);
}

/* Totals table */

.cart-summary .cart_totals .shop_table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: var(--space-4);
}

.cart-summary .cart_totals .shop_table th,
.cart-summary .cart_totals .shop_table td {
    padding: var(--space-3) 0;
    font-size: var(--text-sm);
    border: none;
    border-bottom: 1px solid var(--color-border);
    vertical-align: middle;
    text-align: left;
}

.cart-summary .cart_totals .shop_table th {
    font-weight: 600;
    color: var(--color-gray-dark);
    width: 40%;
}

.cart-summary .cart_totals .shop_table td {
    text-align: right;
    color: var(--color-dark);
    font-weight: 500;
}

/* Subtotal row */

.cart-summary .cart_totals .cart-subtotal th,
.cart-summary .cart_totals .cart-subtotal td {
    color: var(--color-gray-dark);
    font-weight: 400;
}

/* Shipping row */

.cart-summary .cart_totals .woocommerce-shipping-totals td {
    font-size: var(--text-xs);
}

.cart-summary .cart_totals .woocommerce-shipping-methods {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--space-2);
}

.cart-summary .cart_totals .woocommerce-shipping-destination {
    font-size: var(--text-xs);
    color: var(--color-gray-dark);
    margin: 0;
}

.cart-summary .cart_totals .woocommerce-shipping-destination a {
    color: var(--color-primary);
    font-weight: 500;
}

/* Coupon discount rows */

.cart-summary .cart_totals .cart-discount td .woocommerce-Price-amount {
    color: #16a34a;
    font-weight: 600;
}

.cart-summary .cart_totals .cart-discount .coupon-remove {
    font-size: var(--text-xs);
    color: var(--color-gray-dark);
    margin-left: var(--space-2);
}

/* Order total row */

.cart-summary .cart_totals .order-total th,
.cart-summary .cart_totals .order-total td {
    border-bottom: none;
    padding-top: var(--space-4);
    font-weight: 700;
}

.cart-summary .cart_totals .order-total th {
    font-size: var(--text-base);
    color: var(--color-dark);
}

.cart-summary .cart_totals .order-total .woocommerce-Price-amount {
    font-size: var(--text-2xl);
    font-weight: 700;
    color: var(--color-dark);
}

/* Tax info */

.cart-summary .cart_totals .tax_label {
    font-size: var(--text-xs);
    color: var(--color-gray-dark);
    font-weight: 400;
    display: block;
}

/* ---- Checkout button ---- */

.cart-summary .wc-proceed-to-checkout {
    padding: 0 var(--space-5) var(--space-5);
}

.cart-summary .wc-proceed-to-checkout .checkout-button,
.cart-summary .wc-proceed-to-checkout .button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: var(--space-3);
    width: 100%;
    padding: var(--space-4) var(--space-5) !important;
    background: var(--color-gold) !important;
    color: var(--color-dark) !important;
    font-family: var(--font-body) !important;
    font-size: var(--text-base) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    border: none !important;
    border-radius: var(--radius-sm) !important;
    cursor: pointer;
    text-decoration: none;
    transition: background var(--transition-fast) !important;
    min-height: 54px;
}

.cart-summary .wc-proceed-to-checkout .checkout-button:hover,
.cart-summary .wc-proceed-to-checkout .button:hover {
    background: #d4be78 !important;
    color: var(--color-dark) !important;
}

/* ---- Trust signals ---- */

.cart-trust {
    padding: var(--space-4) var(--space-5);
    border-top: 1px solid var(--color-border);
    background: var(--color-bg);
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.cart-trust__item {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.cart-trust__item .icon {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    color: var(--color-gold);
}

.cart-trust__body {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.cart-trust__body strong {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--color-dark);
    display: block;
}

.cart-trust__body span {
    font-size: var(--text-xs);
    color: var(--color-gray-dark);
}

/* ---- Allegro redirect (cart replacement) ---- */

.cart-allegro {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: var(--space-10) var(--space-4);
    gap: var(--space-5);
}

.cart-allegro__icon-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 96px;
    height: 96px;
    border-radius: 50%;
    background: var(--color-bg-alt);
}

.cart-allegro__icon-wrap .icon {
    width: 44px;
    height: 44px;
    color: var(--color-gray-dark);
}

.cart-allegro__title {
    font-family: var(--font-heading);
    font-size: var(--text-2xl);
    font-weight: 700;
    color: var(--color-dark);
    margin: 0;
}

.cart-allegro__desc {
    font-size: var(--text-base);
    color: var(--color-gray-dark);
    max-width: 440px;
    margin: 0;
    line-height: 1.6;
}

/* ---- Empty cart ---- */

.cart-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: var(--space-10) var(--space-4);
    gap: var(--space-5);
}

.cart-empty__icon-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 96px;
    height: 96px;
    border-radius: 50%;
    background: var(--color-bg-alt);
}

.cart-empty__icon-wrap .icon {
    width: 44px;
    height: 44px;
    color: var(--color-gray-dark);
}

.cart-empty__title {
    font-family: var(--font-heading);
    font-size: var(--text-2xl);
    font-weight: 700;
    color: var(--color-dark);
    margin: 0;
}

.cart-empty__desc {
    font-size: var(--text-base);
    color: var(--color-gray-dark);
    max-width: 380px;
    margin: 0;
    line-height: 1.6;
}

/* ---- Responsive tweaks ---- */

@media (max-width: 479px) {
    .cart-page__head {
        padding: var(--space-5) var(--space-4);
    }

    .cart-page__title {
        font-size: var(--text-2xl);
    }

    .cart-item {
        grid-template-columns: 64px 1fr;
    }

    .cart-item__image {
        width: 64px;
        height: 64px;
    }

    .cart-item__controls {
        gap: var(--space-2);
    }
}

/* ==========================================================================
   WooCommerce Cart Block (wp-block-woocommerce-cart)
   Rendered through page.php — styled to match Mundur theme.
   Scope: wszystkie reguły z prefiksem .woocommerce-cart dla wyższej specyficzności.
   !important używany tylko tam gdzie WC Blocks / WP Block Editor ma inline styles.
   ========================================================================== */

/* ---- page.php wrapper ---- */

.woocommerce-cart .site-main {
    padding: var(--space-6) 0 var(--space-10);
}

/* Tytuł strony "Cart" ukryty — nagłówek wewnątrz bloku WC */
.woocommerce-cart .page-header {
    display: none;
}

.woocommerce-cart .entry-content {
    margin: 0;
}

/* ---- Outer block wrapper: reset marginesów Gutenberga ---- */

.woocommerce-cart .wp-block-woocommerce-cart {
    margin: 0 !important;
}

/* ---- Prawa kolumna podsumowania ---- */

.woocommerce-cart .wp-block-woocommerce-cart-totals-block {
    background: var(--color-white) !important;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-md) !important;
    overflow: hidden !important;
    padding: 0 !important;
    box-shadow: var(--shadow-sm) !important;
}

/* ---- Tabela pozycji — kontener ---- */

.woocommerce-cart .wc-block-cart-items {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    overflow: hidden;
    margin-bottom: var(--space-4);
    box-shadow: var(--shadow-sm);
}

.woocommerce-cart .wc-block-cart-items table {
    width: 100%;
    border-collapse: collapse;
    margin: 0;
    background: var(--color-white);
}

/* Białe tło — ustawione na wrapperze + tr/td dla spójności.
   UWAGA: hover używa tej samej specyficzności z !important — nie beże. */
.woocommerce-cart .wc-block-cart-items thead th,
.woocommerce-cart .wc-block-cart-items tbody tr,
.woocommerce-cart .wc-block-cart-items tbody td {
    background-color: var(--color-white) !important;
}

/* Hover: minimalna zmiana — zaledwie widoczna, nie zmienia białego na beżowy */
.woocommerce-cart .wc-block-cart-items__row:hover,
.woocommerce-cart .wc-block-cart-items__row:hover td {
    background-color: #fafaf8 !important;
}

/* ---- Nagłówek tabeli ---- */

.woocommerce-cart .wc-block-cart-items thead tr {
    border-bottom: 2px solid var(--color-border);
}

.woocommerce-cart .wc-block-cart-items thead th {
    padding: var(--space-3) var(--space-4);
    font-size: var(--text-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-gray-dark);
}

/* ---- Wiersz pozycji ---- */

.woocommerce-cart .wc-block-cart-items__row {
    border-bottom: 1px solid var(--color-border);
    transition: background-color var(--transition-fast);
}

.woocommerce-cart .wc-block-cart-items__row:last-child {
    border-bottom: none;
}

.woocommerce-cart .wc-block-cart-items__row td {
    padding: var(--space-4);
    vertical-align: middle;
}

/* ---- Miniaturka produktu ---- */

.woocommerce-cart .wc-block-cart-item__image {
    width: 96px !important;
}

.woocommerce-cart .wc-block-cart-item__image img {
    border-radius: var(--radius-sm);
    border: 1px solid var(--color-border);
    object-fit: contain;
    background: var(--color-white);
    padding: 4px;
    display: block;
}

/* ---- Nazwa + meta ---- */

.woocommerce-cart .wc-block-cart-item__product {
    vertical-align: middle;
}

.woocommerce-cart .wc-block-cart-item__product-name,
.woocommerce-cart .wc-block-cart-item__product-name a {
    font-size: var(--text-base);
    font-weight: 600;
    color: var(--color-dark);
    text-decoration: none;
    line-height: 1.35;
    transition: color var(--transition-fast);
}

.woocommerce-cart .wc-block-cart-item__product-name a:hover {
    color: var(--color-primary);
}

.woocommerce-cart .wc-block-cart-item__product-price {
    font-size: var(--text-sm);
    color: var(--color-gray-dark);
    margin-top: var(--space-1);
    display: block;
}

.woocommerce-cart .wc-block-components-product-details {
    font-size: var(--text-xs);
    color: var(--color-gray-dark);
    margin-top: var(--space-1);
}

/* Usuń link */
.woocommerce-cart .wc-block-cart-item__remove-link {
    font-size: var(--text-xs);
    color: var(--color-gray-dark);
    text-decoration: none;
    transition: color var(--transition-fast);
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-top: var(--space-2);
}

.woocommerce-cart .wc-block-cart-item__remove-link:hover {
    color: var(--color-psp);
}

/* ---- Stepper ilości (WC Blocks ma inline styles — !important konieczny) ---- */

.woocommerce-cart .wc-block-components-quantity-selector {
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-sm) !important;
    overflow: hidden !important;
    display: inline-flex !important;
    align-items: stretch !important;
    height: 40px !important;
    background: var(--color-white) !important;
    margin-top: var(--space-2) !important;
}

.woocommerce-cart .wc-block-components-quantity-selector__button {
    width: 34px !important;
    height: 40px !important;
    background: none !important;
    border: none !important;
    color: var(--color-gray-dark) !important;
    font-size: 18px !important;
    font-weight: 400 !important;
    cursor: pointer !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background var(--transition-fast), color var(--transition-fast) !important;
    flex-shrink: 0 !important;
}

.woocommerce-cart .wc-block-components-quantity-selector__button--minus {
    border-right: 1px solid var(--color-border) !important;
}

.woocommerce-cart .wc-block-components-quantity-selector__button--plus {
    border-left: 1px solid var(--color-border) !important;
}

.woocommerce-cart .wc-block-components-quantity-selector__button:hover {
    background: var(--color-bg-alt) !important;
    color: var(--color-dark) !important;
}

.woocommerce-cart .wc-block-components-quantity-selector__value {
    width: 48px !important;
    height: 40px !important;
    text-align: center !important;
    border: none !important;
    font-family: var(--font-body) !important;
    font-size: var(--text-base) !important;
    font-weight: 600 !important;
    color: var(--color-dark) !important;
    background: transparent !important;
    padding: 0 !important;
    -moz-appearance: textfield !important;
}

.woocommerce-cart .wc-block-components-quantity-selector__value::-webkit-outer-spin-button,
.woocommerce-cart .wc-block-components-quantity-selector__value::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* ---- Kolumna total (prawa) ---- */

.woocommerce-cart .wc-block-cart-item__total {
    text-align: right;
    white-space: nowrap;
}

.woocommerce-cart .wc-block-cart-item__total .woocommerce-Price-amount {
    font-size: var(--text-base);
    font-weight: 700;
    color: var(--color-dark);
}

/* ---- Kupon ---- */

.woocommerce-cart .wc-block-components-coupon {
    margin-top: var(--space-3);
}

.woocommerce-cart .wc-block-components-coupon .wc-block-components-panel__button {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--color-primary);
    background: none;
    border: none;
    padding: var(--space-2) 0;
    cursor: pointer;
}

.woocommerce-cart .wc-block-components-coupon-form .wc-block-components-text-input input {
    height: 44px !important;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-sm) !important;
    font-family: var(--font-body) !important;
    font-size: var(--text-sm) !important;
    padding: 0 var(--space-4) !important;
    transition: border-color var(--transition-fast) !important;
}

.woocommerce-cart .wc-block-components-coupon-form .wc-block-components-text-input input:focus {
    border-color: var(--color-gold) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(231, 210, 150, 0.2) !important;
}

.woocommerce-cart .wc-block-components-coupon-form .wc-block-components-button {
    height: 44px !important;
    padding: 0 var(--space-5) !important;
    background: var(--color-dark) !important;
    color: var(--color-white) !important;
    border: none !important;
    border-radius: var(--radius-sm) !important;
    font-family: var(--font-body) !important;
    font-size: var(--text-sm) !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: background var(--transition-fast) !important;
}

.woocommerce-cart .wc-block-components-coupon-form .wc-block-components-button:hover {
    background: var(--color-black) !important;
}

/* ---- Podsumowanie — prawa kolumna ---- */

.woocommerce-cart .wc-block-cart__totals-title {
    font-family: var(--font-heading);
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--color-dark);
    padding: var(--space-5) var(--space-5) var(--space-4);
    margin: 0;
    border-bottom: 2px solid var(--color-border);
}

.woocommerce-cart .wc-block-components-totals-wrapper {
    padding: var(--space-4) var(--space-5);
}

.woocommerce-cart .wc-block-components-totals-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-3) 0;
    border-bottom: 1px solid var(--color-border);
    font-size: var(--text-sm);
}

.woocommerce-cart .wc-block-components-totals-item:last-child {
    border-bottom: none;
}

.woocommerce-cart .wc-block-components-totals-item__label {
    font-weight: 500;
    color: var(--color-gray-dark);
}

.woocommerce-cart .wc-block-components-totals-item__value {
    font-weight: 600;
    color: var(--color-dark);
    text-align: right;
}

/* Wiersz "Łącznie" */

.woocommerce-cart .wc-block-components-totals-footer-item {
    padding: var(--space-4) 0 0;
    border-top: 2px solid var(--color-border);
    border-bottom: none;
    margin-top: var(--space-2);
}

.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
    font-size: var(--text-base);
    font-weight: 700;
    color: var(--color-dark);
}

.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-size: var(--text-2xl);
    font-weight: 700;
    color: var(--color-dark);
}

.woocommerce-cart .wc-block-components-totals-footer-item-tax-value {
    font-size: var(--text-xs);
    color: var(--color-gray-dark);
    font-weight: 400;
}

/* ---- Przycisk "Przejdź do kasy" (WP element button — !important konieczny) ---- */

.woocommerce-cart .wc-block-cart__submit-container {
    padding: 0 var(--space-5) var(--space-5);
}

.woocommerce-cart .wc-block-cart__submit-button,
.woocommerce-cart .wc-block-cart__submit-button.wp-element-button {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 54px !important;
    padding: var(--space-4) var(--space-5) !important;
    background: var(--color-gold) !important;
    color: var(--color-dark) !important;
    font-family: var(--font-body) !important;
    font-size: var(--text-base) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    border: none !important;
    border-radius: var(--radius-sm) !important;
    cursor: pointer !important;
    text-decoration: none !important;
    transition: background var(--transition-fast) !important;
    box-shadow: none !important;
}

.woocommerce-cart .wc-block-cart__submit-button:hover,
.woocommerce-cart .wc-block-cart__submit-button.wp-element-button:hover {
    background: #d4be78 !important;
    color: var(--color-dark) !important;
    opacity: 1 !important;
}

/* ---- Wysyłka ---- */

.woocommerce-cart .wc-block-components-shipping-rates-control {
    font-size: var(--text-sm);
}

.woocommerce-cart .wc-block-components-shipping-rates-control__package-items {
    list-style: none;
    padding: 0;
    margin: 0;
}

.woocommerce-cart .wc-block-components-radio-control__option {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) 0;
    cursor: pointer;
    font-size: var(--text-sm);
}

/* ---- Responsywność ---- */

@media (max-width: 767px) {
    .woocommerce-cart .wc-block-cart-item__image {
        width: 72px !important;
    }

    .woocommerce-cart .wc-block-cart-items__row td {
        padding: var(--space-3) !important;
    }
}

@media (max-width: 479px) {
    .woocommerce-cart .wc-block-cart-items thead {
        display: none;
    }

    .woocommerce-cart .wc-block-cart-items__row {
        display: flex !important;
        flex-wrap: wrap !important;
        padding: var(--space-4) !important;
        gap: var(--space-3) !important;
    }

    .woocommerce-cart .wc-block-cart-items__row td {
        padding: 0 !important;
    }

    .woocommerce-cart .wc-block-cart-item__image {
        width: 72px !important;
        flex-shrink: 0 !important;
    }

    .woocommerce-cart .wc-block-cart-item__product {
        flex: 1 !important;
    }

    .woocommerce-cart .wc-block-cart-item__total {
        width: 100% !important;
        text-align: left !important;
    }
}
