/* ==========================================================================
   Art-icul8 Theme — WooCommerce styles
   Loaded after WooCommerce core styles so these overrides win.
   ========================================================================== */

/* ---------- Shared WooCommerce elements ---------- */
.woocommerce,
.woocommerce-page {
        color: var(--color-text);
}

.shop-area {
        padding-bottom: var(--section-pad);
}

.shop-container {
        padding-top: 2rem;
}

/* Breadcrumbs */
.woocommerce .woocommerce-breadcrumb,
.articul8-breadcrumb {
        font-size: .75rem;
        letter-spacing: .12em;
        text-transform: uppercase;
        color: var(--color-text-muted);
        margin: 0 0 2rem;
        padding: 0;
}

.woocommerce .woocommerce-breadcrumb a,
.articul8-breadcrumb a {
        color: var(--color-text-muted);
}

.woocommerce .woocommerce-breadcrumb a:hover,
.articul8-breadcrumb a:hover {
        color: var(--color-gold);
}

.breadcrumb-sep {
        color: var(--color-gold);
        margin: 0 .65rem;
}

.breadcrumb-current {
        color: var(--color-text);
}

/* Archive header */
.woocommerce-products-header {
        text-align: center;
        padding: 1.5rem 0 3rem;
        margin-bottom: 2.5rem;
        border-bottom: 1px solid var(--color-border);
}

.woocommerce-products-header__title.page-title {
        margin-bottom: .5rem;
}

.woocommerce-products-header .term-description,
.woocommerce-products-header .page-description {
        max-width: 680px;
        margin: 1rem auto 0;
        font-family: var(--font-accent);
        font-style: italic;
        font-size: 1.25rem;
        color: var(--color-text-muted);
}

/* Toolbar */
.shop-toolbar {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        padding: 1rem 1.25rem;
        margin-bottom: 2.5rem;
        background: var(--color-surface);
        border: 1px solid var(--color-border);
        border-left: 2px solid var(--color-gold);
}

.shop-toolbar::before,
.shop-toolbar::after {
        display: none;
}

.woocommerce .shop-toolbar .woocommerce-result-count,
.woocommerce .shop-toolbar .woocommerce-ordering {
        float: none;
        margin: 0;
}

.woocommerce-result-count {
        font-size: .8rem;
        letter-spacing: .1em;
        text-transform: uppercase;
        color: var(--color-text-muted);
}

.woocommerce-ordering select.orderby {
        min-width: 230px;
        background-color: var(--color-bg);
        border-color: var(--color-gold-dark);
        color: var(--color-text);
        font-size: .85rem;
        padding-top: .6rem;
        padding-bottom: .6rem;
}

/* ---------- Product grid ---------- */
.woocommerce ul.products,
.woocommerce-page ul.products {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 2rem;
        margin: 0 0 2rem;
        padding: 0;
        list-style: none;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after {
        display: none !important;
        content: none !important;
}

.woocommerce ul.products.columns-1 { grid-template-columns: minmax(0, 1fr); }
.woocommerce ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.woocommerce ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.woocommerce ul.products.columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.woocommerce ul.products.columns-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }

/* ---------- Product card ---------- */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
        position: relative;
        display: flex;
        flex-direction: column;
        width: auto !important;
        float: none !important;
        margin: 0 !important;
        padding: 0 0 1.5rem;
        background: var(--color-surface);
        border: 1px solid var(--color-border);
        text-align: center;
        transition: box-shadow .45s var(--ease), border-color .45s var(--ease), transform .45s var(--ease);
}

.woocommerce ul.products li.product:hover {
        border-color: rgba(201, 169, 110, .45);
        box-shadow: var(--shadow-lg);
        transform: translateY(-4px);
}

.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
        display: flex;
        flex-direction: column;
        flex: 1;
        color: var(--color-text);
}

.product-card__media {
        position: relative;
        aspect-ratio: 3 / 4;
        overflow: hidden;
        background: var(--color-surface2);
        margin-bottom: 1.25rem;
}

.woocommerce ul.products li.product .product-card__media img,
.woocommerce ul.products li.product a img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        margin: 0;
        box-shadow: none;
        transition: transform .8s var(--ease);
}

.woocommerce ul.products li.product .product-card__media img {
        position: absolute;
        inset: 0;
}

.woocommerce ul.products li.product:hover .product-card__media img {
        transform: scale(1.03);
}

.product-card__cat {
        display: block;
        padding: 0 1.25rem;
        font-size: .66rem;
        font-weight: 600;
        letter-spacing: .25em;
        text-transform: uppercase;
        color: var(--color-text-muted);
        margin-bottom: .45rem;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-category__title,
.woocommerce ul.products li.product h3 {
        font-family: var(--font-display);
        font-size: 1.15rem;
        font-weight: 400;
        line-height: 1.35;
        color: var(--color-text);
        padding: 0 1.25rem;
        margin: 0 0 .5rem;
        transition: color .3s var(--ease);
}

.woocommerce ul.products li.product:hover .woocommerce-loop-product__title {
        color: var(--color-gold);
}

.woocommerce ul.products li.product .star-rating {
        margin: 0 auto .5rem;
        font-size: .75em;
}

.woocommerce ul.products li.product .price {
        display: block;
        color: var(--color-gold);
        font-family: var(--font-body);
        font-size: 1rem;
        font-weight: 500;
        letter-spacing: .05em;
        margin: 0 0 1.25rem;
        padding: 0 1.25rem;
}

.woocommerce ul.products li.product .price del {
        color: var(--color-text-muted);
        opacity: .7;
        font-size: .85em;
        margin-right: .35rem;
}

.woocommerce ul.products li.product .price ins {
        text-decoration: none;
        font-weight: 600;
}

/* Card buttons */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .btn-card {
        align-self: center;
        margin: auto 1.25rem 0;
        min-width: 70%;
        background: transparent;
        color: var(--color-gold);
        border: 1px solid var(--color-gold);
        border-radius: var(--radius);
        padding: .75rem 1.5rem;
        font-family: var(--font-body);
        font-size: .72rem;
        font-weight: 600;
        letter-spacing: .14em;
        text-transform: uppercase;
        line-height: 1.2;
        transition: all .3s var(--ease);
}

.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .button:focus {
        background: var(--color-gold);
        color: var(--color-black);
}

.woocommerce ul.products li.product .button.loading {
        opacity: .6;
        padding-right: 2.5rem;
}

.woocommerce ul.products li.product .button.added::after {
        margin-left: .5em;
}

.woocommerce ul.products li.product .added_to_cart {
        display: block;
        margin-top: .75rem;
        font-size: .72rem;
        letter-spacing: .14em;
        text-transform: uppercase;
        color: var(--color-text-muted);
}

.woocommerce ul.products li.product .added_to_cart:hover { color: var(--color-gold); }

/* Gold flash after add-to-cart */
.articul8-flash {
        animation: articul8-flash .9s var(--ease);
}

@keyframes articul8-flash {
        0% { box-shadow: 0 0 0 0 rgba(212, 175, 55, .75); background: var(--color-gold-light); color: var(--color-black); }
        100% { box-shadow: 0 0 0 14px rgba(212, 175, 55, 0); }
}

/* Sale badge — gold ribbon */
.woocommerce span.onsale,
.woocommerce ul.products li.product .onsale {
        position: absolute;
        top: 1rem;
        left: 0;
        right: auto;
        z-index: 3;
        min-width: 0;
        min-height: 0;
        margin: 0;
        padding: .35rem .9rem .35rem .75rem;
        border-radius: 0;
        background: var(--color-gold);
        color: var(--color-black);
        font-family: var(--font-body);
        font-size: .65rem;
        font-weight: 600;
        letter-spacing: .2em;
        line-height: 1.4;
        text-transform: uppercase;
        clip-path: polygon(0 0, 100% 0, calc(100% - 8px) 50%, 100% 100%, 0 100%);
}

/* Stock badge */
.woocommerce .stock,
.woocommerce div.product p.stock {
        font-size: .8rem;
        letter-spacing: .1em;
        text-transform: uppercase;
        color: var(--color-gold);
}

.woocommerce div.product .out-of-stock,
.woocommerce .stock.out-of-stock {
        color: #c97a6e;
}

/* Star rating */
.woocommerce .star-rating,
.woocommerce p.stars a {
        color: var(--color-gold);
}

.woocommerce .star-rating::before {
        color: var(--color-border);
}

/* ---------- Buttons (global WooCommerce) ---------- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-page a.button,
.woocommerce-page button.button {
        font-family: var(--font-body);
        font-size: .78rem;
        font-weight: 600;
        letter-spacing: .1em;
        text-transform: uppercase;
        line-height: 1.2;
        padding: .85rem 1.75rem;
        border-radius: var(--radius);
        background: transparent;
        color: var(--color-gold);
        border: 1px solid var(--color-gold);
        transition: all .3s var(--ease);
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
        background: var(--color-gold);
        border-color: var(--color-gold);
        color: var(--color-black);
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce .checkout-button,
.woocommerce #place_order,
.woocommerce .single_add_to_cart_button {
        background: var(--color-gold);
        color: var(--color-black);
        border: 1px solid var(--color-gold);
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit.alt:hover,
.woocommerce .checkout-button:hover,
.woocommerce #place_order:hover,
.woocommerce .single_add_to_cart_button:hover {
        background: var(--color-gold-light);
        border-color: var(--color-gold-light);
        color: var(--color-black);
}

.woocommerce a.button:disabled,
.woocommerce a.button.disabled,
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled],
.woocommerce button.button.alt:disabled,
.woocommerce button.button.alt.disabled,
.woocommerce .single_add_to_cart_button.disabled {
        background: var(--color-surface2);
        border-color: var(--color-border);
        color: var(--color-text-muted);
        opacity: .7;
        padding: .85rem 1.75rem;
        cursor: not-allowed;
}

/* ---------- Pagination ---------- */
.woocommerce nav.woocommerce-pagination {
        margin-top: 3.5rem;
        text-align: center;
}

.woocommerce nav.woocommerce-pagination ul {
        display: inline-flex;
        flex-wrap: wrap;
        gap: .5rem;
        border: 0;
        margin: 0;
}

.woocommerce nav.woocommerce-pagination ul li {
        border: 0;
        float: none;
        overflow: visible;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 44px;
        height: 44px;
        padding: 0 .8rem;
        border: 1px solid var(--color-border);
        color: var(--color-text);
        font-size: .85rem;
        transition: all .25s var(--ease);
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:focus {
        background: var(--color-gold);
        border-color: var(--color-gold);
        color: var(--color-black);
}

/* ---------- Notices ---------- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
        position: relative;
        list-style: none;
        margin: 0 0 2rem !important;
        padding: 1.1rem 1.5rem 1.1rem 3.25rem !important;
        background: var(--color-surface) !important;
        color: var(--color-text) !important;
        border: 1px solid var(--color-border) !important;
        border-left: 3px solid var(--color-gold) !important;
        border-radius: var(--radius);
        font-size: .92rem;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        gap: .75rem 1.5rem;
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
        position: absolute;
        top: 50%;
        left: 1.25rem;
        transform: translateY(-50%);
        color: var(--color-gold) !important;
}

.woocommerce-error {
        border-left-color: #c97a6e !important;
        flex-direction: column;
        align-items: flex-start;
}

.woocommerce-error::before { color: #c97a6e !important; }

.woocommerce-error li {
        margin: 0;
}

.woocommerce-message a:not(.button),
.woocommerce-info a:not(.button),
.woocommerce-error a:not(.button) {
        color: var(--color-gold);
        text-decoration: underline;
        text-underline-offset: 3px;
}

.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button {
        order: 2;
        float: none !important;
        padding: .55rem 1.25rem !important;
        font-size: .7rem !important;
}

.woocommerce-notices-wrapper:empty { display: none; }

/* ---------- Single product ---------- */
.single-product .shop-container {
        padding-top: 2rem;
}

.woocommerce div.product {
        position: relative;
        display: grid;
        grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
        column-gap: 4.5rem;
        align-items: start;
}

.woocommerce div.product > * {
        grid-column: 1 / -1;
}

.woocommerce div.product > .woocommerce-product-gallery,
.woocommerce div.product > .images {
        grid-column: 1;
        grid-row: 1;
        width: 100% !important;
        float: none !important;
        margin: 0 0 3rem !important;
}

.woocommerce div.product > .summary {
        grid-column: 2;
        grid-row: 1;
        width: 100% !important;
        float: none !important;
        margin: 0 0 3rem !important;
        position: static;
}

.woocommerce div.product > span.onsale {
        grid-column: 1;
        grid-row: 1;
        position: absolute;
        top: 1.25rem;
        left: 0;
        align-self: start;
        justify-self: start;
        width: auto;
}

/* Gallery */
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
        margin: 0;
}

.woocommerce div.product div.images .woocommerce-product-gallery__image:first-child,
.woocommerce div.product div.images .flex-viewport {
        border: 1px solid var(--color-border);
        background: var(--color-surface);
}

.woocommerce div.product div.images img {
        width: 100%;
}

.woocommerce div.product div.images .flex-control-thumbs {
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: .75rem;
        margin-top: .75rem;
}

.woocommerce div.product div.images .flex-control-thumbs li {
        width: auto !important;
        float: none !important;
        margin: 0 !important;
}

.woocommerce div.product div.images .flex-control-thumbs li img {
        border: 1px solid var(--color-border);
        opacity: .55;
        transition: opacity .3s var(--ease), border-color .3s var(--ease);
        aspect-ratio: 1;
        object-fit: cover;
}

.woocommerce div.product div.images .flex-control-thumbs li img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs li img:hover {
        opacity: 1;
        border-color: var(--color-gold);
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
        top: 1rem;
        right: 1rem;
        width: 40px;
        height: 40px;
        background: rgba(13, 13, 13, .8);
        border: 1px solid var(--color-gold-dark);
        border-radius: 50%;
        z-index: 5;
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger::before {
        border-color: var(--color-gold);
        top: 10px;
        left: 10px;
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger::after {
        background: var(--color-gold);
        top: 23px;
        left: 23px;
}

/* Summary */
.woocommerce div.product .product_title {
        font-family: var(--font-display);
        font-size: clamp(2rem, 3.6vw, 2.9rem);
        line-height: 1.15;
        margin-bottom: 1rem;
}

.woocommerce div.product .woocommerce-product-rating {
        margin-bottom: 1rem;
        font-size: .85rem;
}

.woocommerce div.product .woocommerce-product-rating a {
        color: var(--color-text-muted);
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
        color: var(--color-gold);
        font-family: var(--font-display);
        font-size: 1.85rem;
        margin: 0 0 1.75rem;
        padding-bottom: 1.75rem;
        border-bottom: 1px solid var(--color-border);
}

.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
        color: var(--color-text-muted);
        font-size: .7em;
        opacity: .7;
}

.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins {
        text-decoration: none;
}

.woocommerce div.product .woocommerce-product-details__short-description {
        font-size: 1.05rem;
        color: var(--color-text-muted);
        margin-bottom: 2rem;
}

.woocommerce div.product form.cart {
        display: flex;
        flex-wrap: wrap;
        align-items: stretch;
        gap: 1rem;
        margin: 0 0 2rem;
}

.woocommerce div.product form.cart::before,
.woocommerce div.product form.cart::after {
        display: none;
}

.woocommerce div.product form.cart div.quantity {
        float: none;
        margin: 0;
}

.woocommerce div.product form.cart .button {
        float: none;
        flex: 1;
        min-width: 200px;
        padding: 1.05rem 2rem;
        font-size: .82rem;
}

.woocommerce div.product form.cart.variations_form,
.woocommerce div.product form.cart.grouped_form {
        display: block;
}

.woocommerce div.product form.cart .woocommerce-variation-add-to-cart {
        display: flex;
        flex-wrap: wrap;
        gap: 1rem;
}

.woocommerce div.product form.cart .variations {
        margin-bottom: 1.5rem;
        border: 0;
}

.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td {
        border: 0;
        padding: .4rem 0;
        display: block;
        line-height: 1.4;
}

.woocommerce div.product form.cart .variations label {
        color: var(--color-text);
        font-weight: 600;
        letter-spacing: .14em;
        text-transform: uppercase;
        font-size: .72rem;
}

.woocommerce div.product form.cart .variations select {
        min-width: 100%;
        margin-right: 0;
}

.woocommerce div.product form.cart .reset_variations {
        display: inline-block;
        margin-top: .5rem;
        font-size: .72rem;
        letter-spacing: .12em;
        text-transform: uppercase;
        color: var(--color-text-muted);
}

.woocommerce div.product .woocommerce-variation-price .price {
        font-size: 1.5rem;
        border: 0;
        padding: 0;
        margin-bottom: 1rem;
}

.woocommerce div.product form.cart.grouped_form table td {
        vertical-align: middle;
        border-color: var(--color-border);
}

.woocommerce .product_meta {
        font-size: .78rem;
        letter-spacing: .08em;
        color: var(--color-text-muted);
        padding-top: 1.5rem;
        border-top: 1px solid var(--color-border);
}

.woocommerce .product_meta > span {
        display: block;
        margin-bottom: .35rem;
}

.woocommerce .product_meta a {
        color: var(--color-text);
}

.woocommerce .product_meta a:hover { color: var(--color-gold); }

/* Quantity with +/- buttons */
.woocommerce .quantity {
        display: inline-flex;
        align-items: stretch;
        border: 1px solid var(--color-border);
        background: var(--color-surface);
        height: 52px;
}

.woocommerce .quantity .qty {
        width: 3.5rem;
        height: 100%;
        padding: 0 .25rem;
        border: 0;
        background: transparent;
        text-align: center;
        font-size: 1rem;
        color: var(--color-text);
        box-shadow: none;
        -moz-appearance: textfield;
}

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

.woocommerce .quantity .qty:focus {
        box-shadow: inset 0 -1px 0 var(--color-gold);
}

.qty-btn {
        width: 2.75rem;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        color: var(--color-gold);
        font-size: 1.25rem;
        font-weight: 300;
        letter-spacing: 0;
        line-height: 1;
        cursor: pointer;
}

.qty-btn:hover {
        background: var(--color-surface2);
        color: var(--color-gold-light);
}

.woocommerce .quantity.hidden,
.woocommerce .quantity input[type="hidden"] + .qty-btn {
        display: none;
}

/* Tabs */
.woocommerce div.product .woocommerce-tabs {
        margin: 2rem 0 4rem;
        padding-top: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        gap: 2.5rem;
        margin: 0 0 2.5rem;
        padding: 0;
        border-bottom: 1px solid var(--color-border);
        overflow: visible;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
        display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
        background: transparent;
        border: 0;
        border-radius: 0;
        margin: 0;
        padding: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
        display: block;
        padding: 1rem 0;
        font-family: var(--font-body);
        font-size: .78rem;
        font-weight: 600;
        letter-spacing: .2em;
        text-transform: uppercase;
        color: var(--color-text-muted);
        border-bottom: 2px solid transparent;
        margin-bottom: -1px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
        background: transparent;
        color: var(--color-gold);
        border-bottom-color: var(--color-gold);
}

.woocommerce div.product .woocommerce-tabs .panel {
        max-width: 820px;
        margin: 0 auto;
        font-size: 1.05rem;
        line-height: 1.85;
        color: var(--color-text);
}

.woocommerce div.product .woocommerce-tabs .panel > h2:first-child {
        font-size: 1.6rem;
        text-align: center;
        margin-bottom: 1.5rem;
}

.woocommerce table.shop_attributes {
        border-top: 1px solid var(--color-border);
}

.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
        border-bottom: 1px solid var(--color-border);
        background: transparent !important;
        padding: .85rem 1rem;
        font-style: normal;
}

.woocommerce table.shop_attributes td p { padding: 0; }

/* Reviews */
.woocommerce #reviews #comments ol.commentlist {
        padding: 0;
}

.woocommerce #reviews #comments ol.commentlist li .comment-text {
        border: 1px solid var(--color-border);
        background: var(--color-surface);
        border-radius: var(--radius);
        padding: 1.25rem 1.5rem;
}

.woocommerce #reviews #comments ol.commentlist li img.avatar {
        background: var(--color-surface2);
        border: 1px solid var(--color-gold-dark);
        border-radius: 50%;
        padding: 0;
}

.woocommerce #reviews #comments ol.commentlist li .meta {
        color: var(--color-text-muted);
}

.woocommerce #review_form #respond {
        padding: 2rem;
        background: var(--color-surface);
        border: 1px solid var(--color-border);
}

.woocommerce #review_form #respond .comment-reply-title {
        font-family: var(--font-display);
        font-size: 1.4rem;
        display: block;
        margin-bottom: 1rem;
}

/* Related / upsells */
.woocommerce .related,
.woocommerce .upsells,
.woocommerce .cross-sells {
        padding-top: 4rem;
        border-top: 1px solid var(--color-border);
        margin-bottom: 2rem;
}

.woocommerce .related > h2,
.woocommerce .upsells > h2,
.woocommerce .cross-sells > h2 {
        text-align: center;
        font-size: clamp(1.6rem, 3vw, 2.2rem);
        margin-bottom: 2.5rem;
}

/* ---------- Tables (cart, order review, account) ---------- */
.woocommerce table.shop_table {
        border: 1px solid var(--color-border);
        border-radius: var(--radius);
        border-collapse: collapse;
        background: var(--color-surface);
        margin: 0 0 2rem;
}

.woocommerce table.shop_table th {
        padding: 1rem 1.25rem;
        font-size: .72rem;
        font-weight: 600;
        letter-spacing: .18em;
        text-transform: uppercase;
        color: var(--color-text-muted);
        border-color: var(--color-border);
        background: var(--color-surface2);
}

.woocommerce table.shop_table td {
        padding: 1.25rem;
        border-top: 1px solid var(--color-border);
        color: var(--color-text);
        vertical-align: middle;
}

.woocommerce table.shop_table tbody th,
.woocommerce table.shop_table tfoot td,
.woocommerce table.shop_table tfoot th {
        border-top: 1px solid var(--color-border);
        background: transparent;
}

.woocommerce table.shop_table .product-name a {
        font-family: var(--font-display);
        font-size: 1.1rem;
        color: var(--color-text);
}

.woocommerce table.shop_table .product-name a:hover { color: var(--color-gold); }

.woocommerce table.shop_table .product-price,
.woocommerce table.shop_table .product-subtotal,
.woocommerce table.shop_table .product-total {
        color: var(--color-gold);
}

.woocommerce table.cart img,
.woocommerce-page table.cart img {
        width: 80px;
        border: 1px solid var(--color-border);
}

.woocommerce table.cart td.product-remove a.remove,
.woocommerce a.remove {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 28px;
        height: 28px;
        font-size: 1.2rem;
        line-height: 1;
        border: 1px solid var(--color-border);
        border-radius: 50%;
        color: var(--color-text-muted) !important;
        background: transparent;
        transition: all .25s var(--ease);
}

.woocommerce a.remove:hover {
        color: var(--color-black) !important;
        background: var(--color-gold);
        border-color: var(--color-gold);
}

.woocommerce table.cart td.actions {
        background: var(--color-surface2);
        padding: 1.25rem;
}

.woocommerce table.cart td.actions .coupon {
        display: flex;
        gap: .75rem;
        align-items: center;
}

.woocommerce table.cart td.actions .coupon .input-text {
        width: 200px;
        padding: .8rem 1rem;
        margin: 0;
        border: 1px solid var(--color-border);
        background: var(--color-bg);
        color: var(--color-text);
}

.woocommerce table.cart td.actions > .button {
        float: right;
}

/* Cart layout */
.articul8-cart .cart-collaterals {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 440px);
        gap: 3rem;
        align-items: start;
}

.woocommerce .cart-collaterals .cross-sells,
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals {
        width: 100%;
        float: none;
}

.woocommerce .cart-collaterals .cart_totals {
        grid-column: 2;
        padding: 2rem;
        background: var(--color-surface);
        border: 1px solid var(--color-border);
        border-top: 2px solid var(--color-gold);
}

.woocommerce .cart-collaterals .cross-sells {
        grid-column: 1;
        grid-row: 1;
        padding-top: 0;
        border-top: 0;
}

.woocommerce .cart-collaterals .cross-sells > h2 {
        text-align: left;
        font-size: 1.5rem;
}

.woocommerce .cart_totals h2 {
        font-size: 1.5rem;
        margin-bottom: 1.25rem;
}

.woocommerce .cart_totals table.shop_table {
        border: 0;
        background: transparent;
}

.woocommerce .cart_totals table.shop_table th,
.woocommerce .cart_totals table.shop_table td {
        background: transparent;
        padding: 1rem 0;
}

.woocommerce .cart_totals .order-total th,
.woocommerce .cart_totals .order-total td,
.woocommerce .cart_totals .order-total .amount {
        color: var(--color-gold);
        font-family: var(--font-display);
        font-size: 1.35rem;
        letter-spacing: 0;
        text-transform: none;
}

.woocommerce .wc-proceed-to-checkout {
        padding: 1rem 0 0;
}

.woocommerce .wc-proceed-to-checkout a.checkout-button {
        display: block;
        width: 100%;
        padding: 1.15rem;
        font-size: .85rem;
        margin: 0;
}

.woocommerce-shipping-calculator .shipping-calculator-button {
        color: var(--color-gold);
        font-size: .8rem;
}

.woocommerce ul#shipping_method li label {
        display: inline;
        color: var(--color-text);
}

.woocommerce .cart-empty {
        text-align: center;
        justify-content: center;
}

.woocommerce .return-to-shop {
        text-align: center;
}

/* ---------- Forms (checkout, account) ---------- */
.woocommerce form .form-row {
        padding: 0;
        margin: 0 0 1.25rem;
}

.woocommerce form .form-row label {
        line-height: 1.6;
        color: var(--color-text-muted);
}

.woocommerce form .form-row .required {
        color: var(--color-gold);
        text-decoration: none;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
        background-color: var(--color-surface);
        color: var(--color-text);
        border: 1px solid var(--color-border);
        border-radius: var(--radius);
        padding: .85rem 1rem;
        line-height: 1.4;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
        border-bottom-color: var(--color-gold);
        box-shadow: 0 1px 0 0 var(--color-gold);
        background-color: var(--color-surface2);
}

.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select {
        border-color: #c97a6e;
}

.woocommerce form .form-row.woocommerce-validated input.input-text,
.woocommerce form .form-row.woocommerce-validated select {
        border-bottom-color: var(--color-gold-dark);
}

.woocommerce form .form-row .input-checkbox {
        margin-right: .5rem;
}

.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
        background: var(--color-surface);
        border: 1px solid var(--color-border);
        border-radius: var(--radius);
        padding: 2rem;
        margin: 0 0 2rem;
}

/* Select2 (country / state selectors) */
.select2-container--default .select2-selection--single {
        height: auto;
        min-height: 50px;
        background: var(--color-surface);
        border: 1px solid var(--color-border);
        border-radius: var(--radius);
        display: flex;
        align-items: center;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
        color: var(--color-text);
        line-height: 1.4;
        padding: .8rem 2.5rem .8rem 1rem;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
        height: 100%;
        right: .5rem;
}

.select2-container--default .select2-selection--single .select2-selection__arrow b {
        border-top-color: var(--color-gold);
}

.select2-container--default.select2-container--open .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--single {
        border-bottom-color: var(--color-gold);
}

.select2-dropdown {
        background: var(--color-surface);
        border-color: var(--color-border);
        color: var(--color-text);
}

.select2-container--default .select2-search--dropdown .select2-search__field {
        background: var(--color-bg);
        border-color: var(--color-border);
        color: var(--color-text);
}

.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected],
.select2-container--default .select2-results__option.select2-results__option--highlighted {
        background: var(--color-gold);
        color: var(--color-black);
}

.select2-container--default .select2-results__option[aria-selected="true"],
.select2-container--default .select2-results__option[data-selected="true"] {
        background: var(--color-surface2);
        color: var(--color-gold);
}

/* ---------- Checkout ---------- */
.articul8-checkout {
        display: grid;
        grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
        gap: 3.5rem;
        align-items: start;
}

.articul8-checkout .col2-set,
.woocommerce-page .articul8-checkout .col2-set {
        width: 100%;
        float: none;
}

.articul8-checkout .col2-set .col-1,
.articul8-checkout .col2-set .col-2 {
        width: 100%;
        float: none;
        max-width: none;
}

.articul8-checkout .col2-set .col-2 {
        margin-top: 2rem;
}

.woocommerce-billing-fields > h3,
.woocommerce-shipping-fields > h3,
.woocommerce-additional-fields > h3,
.articul8-checkout #order_review_heading {
        font-family: var(--font-display);
        font-size: 1.5rem;
        margin-bottom: 1.5rem;
        padding-bottom: 1rem;
        border-bottom: 1px solid var(--color-border);
}

#ship-to-different-address {
        font-size: 1rem;
        font-family: var(--font-body);
}

#ship-to-different-address label {
        display: flex;
        align-items: center;
        gap: .5rem;
        color: var(--color-text);
        font-weight: 500;
}

.articul8-checkout__review {
        position: sticky;
        top: calc(var(--header-h) + 2rem);
        padding: 2rem;
        background: var(--color-surface);
        border: 1px solid var(--color-border);
        border-top: 2px solid var(--color-gold);
}

.articul8-checkout__review table.shop_table {
        border: 0;
        background: transparent;
}

.articul8-checkout__review table.shop_table th,
.articul8-checkout__review table.shop_table td {
        padding: .9rem 0;
        background: transparent;
}

.articul8-checkout__review .order-total th,
.articul8-checkout__review .order-total td,
.articul8-checkout__review .order-total .amount {
        color: var(--color-gold);
        font-family: var(--font-display);
        font-size: 1.3rem;
        letter-spacing: 0;
        text-transform: none;
}

/* Payment box */
.woocommerce-checkout #payment,
.woocommerce #payment {
        background: transparent;
        border-radius: 0;
}

.woocommerce-checkout #payment ul.payment_methods {
        padding: 0 0 1.25rem;
        border-bottom: 1px solid var(--color-border);
}

.woocommerce-checkout #payment ul.payment_methods li {
        padding: .75rem 0;
        color: var(--color-text);
}

.woocommerce-checkout #payment ul.payment_methods li label {
        display: inline;
        color: var(--color-text);
        font-weight: 500;
}

.woocommerce-checkout #payment div.payment_box {
        background: var(--color-surface2);
        color: var(--color-text-muted);
        border-radius: var(--radius);
        font-size: .88rem;
}

.woocommerce-checkout #payment div.payment_box::before {
        border-bottom-color: var(--color-surface2);
}

.woocommerce-checkout #payment div.form-row {
        padding: 1.25rem 0 0;
}

.woocommerce-checkout #payment #place_order {
        width: 100%;
        float: none;
        padding: 1.15rem;
        font-size: .85rem;
}

.woocommerce-terms-and-conditions-wrapper {
        font-size: .85rem;
        color: var(--color-text-muted);
}

.woocommerce-terms-and-conditions {
        background: var(--color-bg) !important;
        border: 1px solid var(--color-border);
}

/* Order received */
.woocommerce ul.order_details {
        display: flex;
        flex-wrap: wrap;
        gap: 1rem;
        padding: 1.5rem;
        margin: 0 0 2.5rem;
        background: var(--color-surface);
        border: 1px solid var(--color-border);
        list-style: none;
}

.woocommerce ul.order_details::before,
.woocommerce ul.order_details::after { display: none; }

.woocommerce ul.order_details li {
        float: none;
        margin: 0;
        padding: 0 1.5rem 0 0;
        border-right: 1px dashed var(--color-border);
        font-size: .7rem;
        letter-spacing: .15em;
        text-transform: uppercase;
        color: var(--color-text-muted);
}

.woocommerce ul.order_details li:last-child { border: 0; }

.woocommerce ul.order_details li strong {
        display: block;
        margin-top: .35rem;
        font-size: 1rem;
        letter-spacing: 0;
        text-transform: none;
        color: var(--color-gold);
}

.woocommerce-order .woocommerce-thankyou-order-received {
        font-family: var(--font-display);
        font-size: 1.6rem;
        color: var(--color-gold);
}

.woocommerce .woocommerce-customer-details address {
        border: 1px solid var(--color-border);
        border-radius: var(--radius);
        padding: 1.5rem;
        background: var(--color-surface);
        font-style: normal;
}

/* ---------- My Account ---------- */
.articul8-account {
        display: grid;
        grid-template-columns: 260px minmax(0, 1fr);
        gap: 3rem;
        align-items: start;
}

.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
        width: 100%;
        float: none;
}

.woocommerce-MyAccount-navigation ul {
        list-style: none;
        margin: 0;
        padding: 0;
        background: var(--color-surface);
        border: 1px solid var(--color-border);
}

.woocommerce-MyAccount-navigation li {
        border-bottom: 1px solid var(--color-border);
}

.woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }

.woocommerce-MyAccount-navigation li a {
        display: block;
        padding: 1rem 1.25rem;
        font-size: .78rem;
        font-weight: 500;
        letter-spacing: .15em;
        text-transform: uppercase;
        color: var(--color-text);
        border-left: 2px solid transparent;
        transition: all .25s var(--ease);
}

.woocommerce-MyAccount-navigation li a:hover,
.woocommerce-MyAccount-navigation li.is-active a {
        color: var(--color-gold);
        background: var(--color-surface2);
        border-left-color: var(--color-gold);
}

.woocommerce-MyAccount-content > p:first-of-type {
        font-size: 1.05rem;
}

.woocommerce-MyAccount-content mark {
        background: transparent;
        color: var(--color-gold);
}

.woocommerce-account .addresses .title h2,
.woocommerce-account .addresses .title h3 {
        font-size: 1.3rem;
}

.woocommerce-account .addresses .title .edit {
        font-size: .75rem;
        letter-spacing: .12em;
        text-transform: uppercase;
}

.woocommerce-account .woocommerce-orders-table .button {
        padding: .5rem 1rem;
        font-size: .68rem;
        margin: .15rem;
}

.woocommerce-account fieldset {
        border: 1px solid var(--color-border);
        padding: 1.5rem;
        margin: 2rem 0;
}

.woocommerce-account fieldset legend {
        padding: 0 .75rem;
        font-family: var(--font-display);
        color: var(--color-gold);
}

/* Logged-out login / register */
.woocommerce-account:not(.logged-in) .articul8-account {
        display: block;
}

.woocommerce .u-columns.col2-set {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 3rem;
}

.woocommerce .u-columns.col2-set::before,
.woocommerce .u-columns.col2-set::after { display: none; }

.woocommerce .u-columns.col2-set .u-column1,
.woocommerce .u-columns.col2-set .u-column2 {
        width: 100%;
        float: none;
}

.woocommerce-form-login .woocommerce-form-login__rememberme {
        display: inline-flex;
        align-items: center;
        gap: .5rem;
        margin-right: 1rem;
}

.woocommerce-LostPassword a {
        font-size: .85rem;
}

.woocommerce .woocommerce-form-login .woocommerce-form-login__submit {
        float: none;
}

/* ---------- Header mini-cart drawer ---------- */
.cart-drawer {
        position: fixed;
        inset: 0;
        z-index: 2000;
        visibility: hidden;
        pointer-events: none;
}

.cart-drawer.is-open {
        visibility: visible;
        pointer-events: auto;
}

.cart-drawer__overlay {
        position: absolute;
        inset: 0;
        background: rgba(0, 0, 0, .7);
        opacity: 0;
        transition: opacity .4s var(--ease);
}

.cart-drawer.is-open .cart-drawer__overlay { opacity: 1; }

.cart-drawer__panel {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        width: min(420px, 100%);
        display: flex;
        flex-direction: column;
        background: var(--color-surface);
        border-left: 1px solid var(--color-border);
        transform: translateX(100%);
        transition: transform .45s var(--ease);
        box-shadow: -20px 0 50px rgba(0, 0, 0, .5);
}

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

.cart-drawer__header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 1.5rem 1.75rem;
        border-bottom: 1px solid var(--color-border);
}

.cart-drawer__header h2 {
        font-size: 1.4rem;
        margin: 0;
}

.drawer-count {
        font-family: var(--font-body);
        font-size: .85rem;
        color: var(--color-gold);
}

.cart-drawer__close {
        width: 40px;
        height: 40px;
        padding: 0;
        border: 0;
        color: var(--color-text);
}

.cart-drawer__close:hover {
        background: transparent;
        color: var(--color-gold);
}

.cart-drawer__body {
        flex: 1;
        overflow-y: auto;
        padding: 1.5rem 1.75rem;
}

.cart-drawer .widget_shopping_cart_content {
        display: flex;
        flex-direction: column;
        min-height: 100%;
}

.woocommerce-mini-cart {
        list-style: none;
        margin: 0;
        padding: 0;
}

.woocommerce-mini-cart-item,
.woocommerce ul.cart_list li,
.woocommerce ul.product_list_widget li {
        position: relative;
        display: block;
        min-height: 90px;
        padding: 0 2.25rem 1.25rem 90px !important;
        margin: 0 0 1.25rem;
        border-bottom: 1px solid var(--color-border);
        font-size: .9rem;
        color: var(--color-text-muted);
}

.woocommerce-mini-cart-item a:not(.remove) {
        display: block;
        font-family: var(--font-display);
        font-size: 1rem;
        color: var(--color-text);
        line-height: 1.35;
        margin-bottom: .35rem;
}

.woocommerce-mini-cart-item img,
.woocommerce ul.product_list_widget li img {
        position: absolute;
        left: 0;
        top: 0;
        width: 72px !important;
        height: 72px;
        object-fit: cover;
        margin: 0 !important;
        border: 1px solid var(--color-border);
}

.woocommerce-mini-cart-item a.remove {
        position: absolute;
        top: 0;
        right: 0;
        left: auto;
}

.woocommerce-mini-cart-item .quantity {
        display: block;
        height: auto;
        border: 0;
        background: transparent;
        color: var(--color-gold);
}

.woocommerce-mini-cart__total {
        display: flex;
        justify-content: space-between;
        align-items: baseline;
        margin: auto 0 1.25rem;
        padding-top: 1.25rem;
        border-top: 1px solid var(--color-border);
        font-size: .8rem;
        letter-spacing: .14em;
        text-transform: uppercase;
        color: var(--color-text-muted);
}

.woocommerce-mini-cart__total .amount {
        font-family: var(--font-display);
        font-size: 1.35rem;
        letter-spacing: 0;
        color: var(--color-gold);
}

.woocommerce-mini-cart__buttons {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: .75rem;
        margin: 0;
}

.woocommerce-mini-cart__buttons .button {
        width: 100%;
        text-align: center;
        margin: 0 !important;
}

.woocommerce-mini-cart__buttons .button.checkout {
        background: var(--color-gold) !important;
        color: var(--color-black) !important;
}

.woocommerce-mini-cart__empty-message {
        text-align: center;
        padding: 3rem 0;
        font-family: var(--font-accent);
        font-style: italic;
        font-size: 1.3rem;
        color: var(--color-text-muted);
}

/* ---------- WooCommerce widgets ---------- */
.woocommerce .widget_price_filter .ui-slider .ui-slider-range,
.woocommerce .widget_price_filter .ui-slider .ui-slider-handle {
        background-color: var(--color-gold);
}

.woocommerce .widget_price_filter .price_slider_wrapper .ui-widget-content {
        background-color: var(--color-border);
}

/* ---------- WooCommerce Blocks (Cart / Checkout / product blocks) ---------- */
.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wp-block-woocommerce-product-button .wp-block-button__link,
.wc-block-grid__product-add-to-cart .wp-block-button__link {
        background: var(--color-gold) !important;
        color: var(--color-black) !important;
        border: 1px solid var(--color-gold) !important;
        border-radius: var(--radius) !important;
        font-family: var(--font-body);
        font-weight: 600;
        letter-spacing: .1em;
        text-transform: uppercase;
}

.wc-block-components-button:not(.is-link):hover {
        background: var(--color-gold-light) !important;
}

.wc-block-components-text-input input,
.wc-block-components-text-input textarea,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select,
.wc-block-components-textarea {
        background: var(--color-surface) !important;
        color: var(--color-text) !important;
        border-color: var(--color-border) !important;
}

.wc-block-components-text-input label,
.wc-block-components-combobox label,
.wc-blocks-components-select__label {
        color: var(--color-text-muted) !important;
}

.wc-block-components-text-input input:focus,
.wc-block-components-combobox input:focus {
        border-color: var(--color-gold) !important;
        box-shadow: 0 0 0 1px var(--color-gold) !important;
}

.wc-block-components-totals-item__value,
.wc-block-components-product-price,
.wc-block-grid__product-price,
.wc-block-components-formatted-money-amount {
        color: var(--color-gold);
}

.wc-block-components-sidebar-layout .wc-block-components-sidebar,
.wp-block-woocommerce-checkout-order-summary-block,
.wc-block-components-order-summary {
        background: var(--color-surface);
}

.wc-block-components-panel,
.wc-block-components-totals-wrapper,
.wc-block-cart-items,
.wc-block-cart-items td,
.wc-block-components-radio-control__option,
.wc-block-components-radio-control-accordion-option {
        border-color: var(--color-border) !important;
}

.wc-block-components-product-name,
.wc-block-cart-item__product .wc-block-components-product-name {
        font-family: var(--font-display);
        color: var(--color-text);
}

.wc-block-components-quantity-selector {
        border-color: var(--color-border) !important;
}

.wc-block-components-quantity-selector input,
.wc-block-components-quantity-selector button {
        color: var(--color-text) !important;
        background: transparent !important;
        border: 0 !important;
}

.wc-block-components-notice-banner {
        background: var(--color-surface) !important;
        color: var(--color-text) !important;
        border-color: var(--color-gold) !important;
}

.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] {
        background: var(--color-surface);
        border-color: var(--color-border);
}

.wc-block-components-checkbox .wc-block-components-checkbox__mark {
        fill: var(--color-gold);
}

/* ---------- Misc ---------- */
.woocommerce .blockUI.blockOverlay {
        background: rgba(13, 13, 13, .7) !important;
}

.woocommerce .blockUI.blockOverlay::before,
.woocommerce .loader::before {
        filter: invert(1) sepia(1) saturate(3) hue-rotate(5deg);
}

/* PhotoSwipe lightbox — undo the theme's generic button styling */
.pswp button,
.pswp .pswp__button {
        border: 0;
        padding: 0;
        border-radius: 0;
        background-color: transparent;
        letter-spacing: 0;
}

.pswp__bg {
        background: #000;
}

mark.count {
        background: transparent;
        color: var(--color-text-muted);
}

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
        .woocommerce ul.products.columns-4,
        .woocommerce ul.products.columns-5,
        .woocommerce ul.products.columns-6 {
                grid-template-columns: repeat(3, minmax(0, 1fr));
        }

        .woocommerce div.product {
                column-gap: 3rem;
        }

        .articul8-checkout {
                gap: 2.5rem;
        }
}

@media (max-width: 960px) {
        .woocommerce ul.products,
        .woocommerce ul.products[class*="columns-"] {
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 1.25rem;
        }

        .woocommerce div.product {
                grid-template-columns: minmax(0, 1fr);
        }

        .woocommerce div.product > .woocommerce-product-gallery,
        .woocommerce div.product > .images,
        .woocommerce div.product > .summary,
        .woocommerce div.product > span.onsale {
                grid-column: 1;
        }

        .woocommerce div.product > .summary {
                grid-row: 2;
                position: static;
        }

        .articul8-cart .cart-collaterals,
        .articul8-checkout,
        .articul8-account {
                grid-template-columns: minmax(0, 1fr);
        }

        .woocommerce .cart-collaterals .cart_totals,
        .woocommerce .cart-collaterals .cross-sells {
                grid-column: 1;
                grid-row: auto;
        }

        .articul8-checkout__review {
                position: static;
        }

        .woocommerce div.product .woocommerce-tabs ul.tabs {
                gap: 1.5rem;
        }
}

@media (max-width: 768px) {
        /* Responsive cart table (WooCommerce adds data-title attrs) */
        .woocommerce table.shop_table_responsive tr td,
        .woocommerce-page table.shop_table_responsive tr td {
                background: transparent;
                border-top: 0;
                padding: .65rem 1rem;
        }

        .woocommerce table.shop_table_responsive tr,
        .woocommerce-page table.shop_table_responsive tr {
                border-bottom: 1px solid var(--color-border);
        }

        .woocommerce table.shop_table_responsive tr td::before {
                color: var(--color-text-muted);
                font-size: .72rem;
                letter-spacing: .14em;
                text-transform: uppercase;
        }

        .woocommerce table.shop_table_responsive tr:nth-child(2n) td {
                background: transparent;
        }

        .woocommerce table.cart td.actions .coupon {
                flex-direction: column;
                align-items: stretch;
                margin-bottom: 1rem;
        }

        .woocommerce table.cart td.actions .coupon .input-text {
                width: 100%;
        }

        .woocommerce table.cart td.actions > .button {
                float: none;
                width: 100%;
        }

        .woocommerce .u-columns.col2-set {
                grid-template-columns: 1fr;
        }

        .shop-toolbar {
                flex-direction: column;
                align-items: stretch;
                text-align: center;
        }

        .woocommerce-ordering select.orderby {
                width: 100%;
                min-width: 0;
        }
}

@media (max-width: 480px) {
        .woocommerce ul.products,
        .woocommerce ul.products[class*="columns-"] {
                grid-template-columns: minmax(0, 1fr);
        }

        /* Keep the homepage grid at 2-up on phones (per design brief). */
        .home-products ul.products[class*="columns-"] {
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: .75rem;
        }

        .home-products ul.products li.product .woocommerce-loop-product__title {
                font-size: .98rem;
                padding: 0 .75rem;
        }

        .home-products ul.products li.product .button {
                min-width: 0;
                margin: auto .75rem 0;
                padding: .65rem .5rem;
                font-size: .62rem;
                letter-spacing: .08em;
        }

        .woocommerce div.product form.cart .button {
                min-width: 0;
        }

        .woocommerce-mini-cart__buttons {
                grid-template-columns: 1fr;
        }
}
