/* ============================================================
   COSME THEME — WOOCOMMERCE STYLESHEET
   Overrides WooCommerce default styles to match Rituel Essence design.
   ============================================================ */

/* ============================================================
   SHOP / ARCHIVE PAGE
   ============================================================ */
.woocommerce-page .site-main { min-height: 60vh; }

.shop-layout {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: var(--sp-10);
    padding: var(--sp-10) 0 var(--sp-20);
    align-items: start;
}

/* ── Brand search (type-to-find a brand) ── */
.brand-search {
    position: relative;
    margin-bottom: var(--sp-4);
    max-width: 420px;
}
.brand-search__icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--clr-text-muted);
    pointer-events: none;
}
.brand-search__input {
    width: 100%;
    padding: 0.75rem 2.5rem 0.75rem 2.75rem;
    border: 1.5px solid var(--clr-border);
    border-radius: 999px;
    font-size: 0.9375rem;
    color: var(--clr-text);
    background: var(--clr-white);
    outline: none;
    transition: border-color var(--t-fast), box-shadow var(--t-fast);
}
.brand-search__input:focus {
    border-color: var(--clr-primary);
    box-shadow: 0 0 0 3px rgba(201,169,110,.15);
}
.brand-search__clear {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    width: 24px;
    height: 24px;
    border: none;
    background: var(--clr-bg-alt);
    border-radius: 50%;
    color: var(--clr-text-muted);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
}
.brand-search__clear:hover { background: var(--clr-border); color: var(--clr-text); }

.brand-search__dropdown {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    z-index: 50;
    background: var(--clr-white);
    border: 1px solid var(--clr-border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    max-height: 320px;
    overflow-y: auto;
    padding: var(--sp-2);
}
.brand-search__item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-2);
    padding: 0.625rem 0.875rem;
    border-radius: var(--radius-md);
    font-size: 0.9375rem;
    color: var(--clr-text-body);
    text-decoration: none;
    transition: background var(--t-fast), color var(--t-fast);
}
.brand-search__item:hover,
.brand-search__item.is-active {
    background: var(--clr-bg-alt);
    color: var(--clr-primary);
}
.brand-search__count {
    font-size: 0.75rem;
    color: var(--clr-text-muted);
    background: var(--clr-bg-alt);
    border-radius: 999px;
    padding: 0.1rem 0.5rem;
    flex-shrink: 0;
}
.brand-search__item.is-active .brand-search__count { background: var(--clr-white); }
.brand-search__empty {
    padding: 0.875rem;
    text-align: center;
    font-size: 0.875rem;
    color: var(--clr-text-muted);
}

/* Reassurance strip (replaces the old sort/count/filter toolbar) */
.shop-reassurance {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: var(--sp-2) var(--sp-3);
    padding: var(--sp-3) 0 var(--sp-5);
    border-bottom: 1px solid var(--clr-border);
    margin-bottom: var(--sp-6);
    font-size: var(--fs-sm);
    color: var(--clr-text-muted);
}
.shop-reassurance__sep { color: var(--clr-primary); opacity: 0.6; }
@media (max-width: 480px) {
    .shop-reassurance { font-size: var(--fs-xs); gap: var(--sp-1) var(--sp-2); }
}

/* Shop toolbar */
.shop-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--sp-4) 0;
    border-bottom: 1px solid var(--clr-border);
    margin-bottom: var(--sp-6);
    flex-wrap: wrap;
    gap: var(--sp-3);
}

.shop-toolbar__count {
    font-size: var(--fs-sm);
    color: var(--clr-text-muted);
}

.shop-toolbar__sort select {
    padding: var(--sp-2) var(--sp-8) var(--sp-2) var(--sp-3);
    border: 1.5px solid var(--clr-border);
    border-radius: var(--radius-md);
    font-size: var(--fs-sm);
    color: var(--clr-text-body);
    background-color: var(--clr-white);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238B7565' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right var(--sp-3) center;
    appearance: none;
    cursor: pointer;
    outline: none;
    transition: border-color var(--t-fast);
}

.shop-toolbar__sort select:focus {
    border-color: var(--clr-primary);
}

/* Sidebar Filters */
.shop-sidebar {
    position: sticky;
    top: calc(var(--header-height) + var(--announcement-height) + var(--sp-4));
}

.filter-panel {
    background: var(--clr-white);
    border: 1px solid var(--clr-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.filter-panel__header {
    padding: var(--sp-5) var(--sp-5);
    border-bottom: 1px solid var(--clr-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.filter-panel__title {
    font-size: var(--fs-sm);
    font-weight: var(--fw-semibold);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--clr-text);
}

.filter-clear {
    font-size: var(--fs-xs);
    color: var(--clr-primary);
    cursor: pointer;
    background: none;
    border: none;
    padding: 0;
    transition: opacity var(--t-fast);
}

.filter-clear:hover { opacity: 0.7; }

.filter-section {
    border-bottom: 1px solid var(--clr-border);
    padding: var(--sp-5);
}

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

.filter-section__title {
    font-size: var(--fs-xs);
    font-weight: var(--fw-semibold);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--clr-text-muted);
    margin-bottom: var(--sp-4);
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    background: none;
    border: none;
    width: 100%;
    text-align: left;
}

.filter-list {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2);
    list-style: none;
}

.filter-list__item label {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    font-size: var(--fs-sm);
    color: var(--clr-text-body);
    cursor: pointer;
    padding: var(--sp-1) 0;
    transition: color var(--t-fast);
}

.filter-list__item label:hover { color: var(--clr-primary); }

.filter-list__item input[type="checkbox"] {
    width: 16px;
    height: 16px;
    border: 1.5px solid var(--clr-border);
    border-radius: 3px;
    appearance: none;
    cursor: pointer;
    flex-shrink: 0;
    position: relative;
    background: var(--clr-white);
    transition: all var(--t-fast);
}

.filter-list__item input[type="checkbox"]:checked {
    background: var(--clr-primary);
    border-color: var(--clr-primary);
}

.filter-list__item input[type="checkbox"]:checked::after {
    content: '';
    position: absolute;
    top: 1px;
    left: 4px;
    width: 5px;
    height: 9px;
    border: 2px solid white;
    border-top: none;
    border-left: none;
    transform: rotate(45deg);
}

.filter-count {
    margin-left: auto;
    font-size: var(--fs-xs);
    color: var(--clr-text-muted);
    padding: 1px 6px;
    background: var(--clr-bg-alt);
    border-radius: var(--radius-pill);
}

/* Price range filter */
.price-range {
    padding: var(--sp-2) 0;
}

.price-range__slider {
    width: 100%;
    accent-color: var(--clr-primary);
    cursor: pointer;
}

.price-range__values {
    display: flex;
    justify-content: space-between;
    font-size: var(--fs-xs);
    color: var(--clr-text-muted);
    margin-top: var(--sp-2);
}

/* Color swatches filter */
.color-swatches {
    display: flex;
    gap: var(--sp-2);
    flex-wrap: wrap;
}

.color-swatch {
    width: 28px;
    height: 28px;
    border-radius: var(--radius-circle);
    border: 2px solid var(--clr-border);
    cursor: pointer;
    transition: all var(--t-fast);
    position: relative;
}

.color-swatch.is-active,
.color-swatch:hover {
    border-color: var(--clr-text);
}

.color-swatch.is-active::after {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: var(--radius-circle);
    border: 2px solid var(--clr-text);
}

/* ============================================================
   SINGLE PRODUCT PAGE
   ============================================================ */
.single-product-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--sp-12);
    padding: var(--sp-10) 0 var(--sp-4);
    align-items: start;
}

/* Product Gallery */
.product-gallery {
    position: sticky;
    top: calc(var(--header-height) + var(--announcement-height) + var(--sp-4));
}

.product-gallery__main {
    aspect-ratio: 3/4;
    overflow: hidden;
    border-radius: var(--radius-xl);
    background: var(--clr-bg-alt);
    margin-bottom: var(--sp-3);
    position: relative;
    cursor: zoom-in;
}

.product-gallery__main img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--t-slow);
}

.product-gallery__main:hover img { transform: scale(1.04); }

.product-gallery__badge {
    position: absolute;
    top: var(--sp-4);
    left: var(--sp-4);
    z-index: 2;
}

.product-gallery__thumbs {
    display: flex;
    gap: var(--sp-2);
    overflow-x: auto;
    scrollbar-width: none;
}

.product-gallery__thumbs::-webkit-scrollbar { display: none; }

.product-gallery__thumb {
    flex-shrink: 0;
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: var(--radius-md);
    cursor: pointer;
    border: 2px solid var(--clr-border);
    transition: border-color var(--t-fast);
}

.product-gallery__thumb.is-active,
.product-gallery__thumb:hover {
    border-color: var(--clr-primary);
}

/* Product Info */
.product-info { display: flex; flex-direction: column; gap: var(--sp-5); }

.product-info__brand {
    font-size: var(--fs-xs);
    font-weight: var(--fw-semibold);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--clr-primary);
}

.product-info__title {
    font-family: var(--font-heading);
    font-size: clamp(var(--fs-2xl), 3.5vw, var(--fs-4xl));
    color: var(--clr-text);
    line-height: 1.2;
}

.product-info__rating {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
}

.product-info__reviews-link {
    font-size: var(--fs-sm);
    color: var(--clr-text-muted);
    border-bottom: 1px solid var(--clr-border);
    transition: color var(--t-fast);
}

.product-info__reviews-link:hover { color: var(--clr-primary); border-color: var(--clr-primary); }

.product-info__price {
    display: flex;
    align-items: baseline;
    gap: var(--sp-3);
    padding: var(--sp-4) 0;
    border-top: 1px solid var(--clr-border);
    border-bottom: 1px solid var(--clr-border);
}

.product-info__price .price-current {
    font-family: var(--font-heading);
    font-size: clamp(var(--fs-2xl), 3vw, var(--fs-3xl));
}

.product-info__short-desc {
    font-size: var(--fs-sm);
    color: var(--clr-text-muted);
    line-height: 1.7;
}

/* Variant selectors */
.product-variants { display: flex; flex-direction: column; gap: var(--sp-4); }

.variant-group__label {
    font-size: var(--fs-sm);
    font-weight: var(--fw-semibold);
    color: var(--clr-text);
    margin-bottom: var(--sp-2);
    display: flex;
    align-items: center;
    gap: var(--sp-2);
}

.variant-group__label span {
    font-weight: var(--fw-regular);
    color: var(--clr-text-muted);
}

.variant-pills {
    display: flex;
    gap: var(--sp-2);
    flex-wrap: wrap;
}

/* Quantity selector */
.qty-wrapper {
    display: flex;
    align-items: center;
    gap: var(--sp-4);
}

.qty-label {
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    color: var(--clr-text);
    min-width: 80px;
}

.qty-selector {
    display: flex;
    align-items: center;
    border: 1.5px solid var(--clr-border);
    border-radius: var(--radius-pill);
    overflow: hidden;
    background: var(--clr-white);
}

.qty-btn {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--fs-lg);
    color: var(--clr-text-body);
    cursor: pointer;
    background: none;
    border: none;
    transition: background var(--t-fast), color var(--t-fast);
}

.qty-btn:hover {
    background: var(--clr-bg-alt);
    color: var(--clr-primary);
}

.qty-input {
    width: 52px;
    text-align: center;
    font-size: var(--fs-base);
    font-weight: var(--fw-semibold);
    color: var(--clr-text);
    border: none;
    border-left: 1px solid var(--clr-border);
    border-right: 1px solid var(--clr-border);
    padding: 0;
    background: transparent;
    -moz-appearance: textfield;
}

.qty-input::-webkit-outer-spin-button,
.qty-input::-webkit-inner-spin-button { -webkit-appearance: none; }

/* Product CTAs */
.product-ctas {
    display: flex;
    flex-direction: column;
    gap: var(--sp-3);
}

.product-ctas__primary { display: flex; gap: var(--sp-3); }
.product-ctas__primary .btn { flex: 1; }

/* Product trust badges */
.product-trust-list {
    display: flex;
    flex-direction: column;
    gap: var(--sp-2);
    padding: var(--sp-4) 0;
    border-top: 1px solid var(--clr-border);
    list-style: none;
}

.product-trust-item {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    font-size: var(--fs-sm);
    color: var(--clr-text-muted);
}

.product-trust-icon {
    font-size: 1rem;
    width: 20px;
    text-align: center;
    flex-shrink: 0;
}

/* Product tabs */
.product-tabs {
    margin-top: 0;
    border-top: 2px solid var(--clr-border);
    padding-top: 0;
}

.product-tabs__nav {
    display: flex;
    gap: 0;
    overflow-x: auto;
    scrollbar-width: none;
    border-bottom: 2px solid var(--clr-border);
    margin-top: -2px;
}

.product-tab-btn {
    padding: var(--sp-4) var(--sp-6);
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    color: var(--clr-text-muted);
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    transition: all var(--t-fast);
    white-space: nowrap;
}

.product-tab-btn.is-active,
.product-tab-btn:hover {
    color: var(--clr-text);
    border-bottom-color: var(--clr-primary);
}

.product-tab-content {
    display: none;
    padding: var(--sp-8) 0;
}

.product-tab-content.is-active { display: block; }

.product-tab-content p {
    font-size: var(--fs-sm);
    color: var(--clr-text-body);
    line-height: 1.8;
}

/* Reviews */
.review-card {
    padding: var(--sp-6) 0;
    border-bottom: 1px solid var(--clr-border);
}

.review-card__header {
    display: flex;
    align-items: flex-start;
    gap: var(--sp-4);
    margin-bottom: var(--sp-3);
}

.review-card__avatar {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-circle);
    background: var(--clr-primary-light);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-heading);
    font-size: var(--fs-lg);
    color: var(--clr-primary);
    flex-shrink: 0;
    font-weight: var(--fw-medium);
}

.review-card__meta { flex: 1; }

.review-card__name {
    font-weight: var(--fw-semibold);
    font-size: var(--fs-sm);
    color: var(--clr-text);
}

.review-card__date {
    font-size: var(--fs-xs);
    color: var(--clr-text-muted);
}

.review-card__text {
    font-size: var(--fs-sm);
    color: var(--clr-text-body);
    line-height: 1.7;
}

.review-verified {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: var(--fs-xs);
    color: var(--clr-success);
    font-weight: var(--fw-medium);
    margin-top: var(--sp-2);
}

/* ============================================================
   CART PAGE
   ============================================================ */
.cart-layout {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: var(--sp-10);
    padding: var(--sp-10) 0 var(--sp-16);
    align-items: start;
}

.cart-table {
    width: 100%;
    border-collapse: collapse;
}

.cart-table th {
    font-size: var(--fs-xs);
    font-weight: var(--fw-semibold);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--clr-text-muted);
    padding: var(--sp-3) var(--sp-4);
    text-align: left;
    border-bottom: 2px solid var(--clr-border);
}

.cart-table td {
    padding: var(--sp-5) var(--sp-4);
    border-bottom: 1px solid var(--clr-border);
    vertical-align: middle;
}

.cart-item__image {
    width: 72px;
    height: 96px;
    object-fit: cover;
    border-radius: var(--radius-md);
}

.cart-item__details {
    display: flex;
    gap: var(--sp-4);
    align-items: center;
}

.cart-item__info { flex: 1; }

.cart-item__name {
    font-weight: var(--fw-medium);
    font-size: var(--fs-sm);
    color: var(--clr-text);
    margin-bottom: var(--sp-1);
}

.cart-item__name a { color: inherit; }
.cart-item__name a:hover { color: var(--clr-primary); }

.cart-item__variant {
    font-size: var(--fs-xs);
    color: var(--clr-text-muted);
}

.cart-item__remove {
    color: var(--clr-text-muted);
    font-size: 1.25rem;
    background: none;
    border: none;
    cursor: pointer;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-md);
    transition: background var(--t-fast), color var(--t-fast);
}

.cart-item__remove:hover {
    background: #fef2f2;
    color: var(--clr-error);
}

.cart-item__price {
    font-family: var(--font-heading);
    font-size: var(--fs-lg);
    font-weight: var(--fw-medium);
    color: var(--clr-text);
}

/* Cart Summary Box */
.cart-summary {
    background: var(--clr-white);
    border: 1px solid var(--clr-border);
    border-radius: var(--radius-xl);
    padding: var(--sp-8);
    position: sticky;
    top: calc(var(--header-height) + var(--announcement-height) + var(--sp-4));
}

.cart-summary__title {
    font-family: var(--font-heading);
    font-size: var(--fs-xl);
    color: var(--clr-text);
    margin-bottom: var(--sp-6);
    padding-bottom: var(--sp-4);
    border-bottom: 1px solid var(--clr-border);
}

.cart-summary__line {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--sp-3) 0;
    font-size: var(--fs-sm);
    color: var(--clr-text-body);
}

.cart-summary__line + .cart-summary__line { border-top: 1px solid var(--clr-border); }

.cart-summary__line--total {
    font-size: var(--fs-lg);
    font-weight: var(--fw-semibold);
    color: var(--clr-text);
    padding-top: var(--sp-4);
    border-top: 2px solid var(--clr-border) !important;
    margin-top: var(--sp-2);
}

.cart-summary__free-shipping {
    background: var(--clr-success-bg);
    border-radius: var(--radius-md);
    padding: var(--sp-3) var(--sp-4);
    font-size: var(--fs-xs);
    color: var(--clr-success);
    font-weight: var(--fw-medium);
    margin-bottom: var(--sp-4);
}

.cart-summary__cod-note {
    font-size: var(--fs-xs);
    color: var(--clr-text-muted);
    text-align: center;
    margin-top: var(--sp-4);
    padding-top: var(--sp-4);
    border-top: 1px solid var(--clr-border);
}

/* ============================================================
   CHECKOUT PAGE
   ============================================================ */
.checkout-layout {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: var(--sp-10);
    padding: var(--sp-10) 0 var(--sp-16);
    align-items: start;
    max-width: 100%;
    box-sizing: border-box;
}

.checkout-form-card {
    background: var(--clr-white);
    border: 1px solid var(--clr-border);
    border-radius: var(--radius-xl);
    padding: var(--sp-8);
    overflow: hidden;
    min-width: 0;
    /* Prevent any descendant text or flex item from blowing out the card */
    max-width: 100%;
    box-sizing: border-box;
    word-break: break-word;
    overflow-wrap: break-word;
}

.checkout-section-title {
    font-family: var(--font-heading);
    font-size: var(--fs-xl);
    color: var(--clr-text);
    margin-bottom: var(--sp-6);
    padding-bottom: var(--sp-4);
    border-bottom: 1px solid var(--clr-border);
    display: flex;
    align-items: center;
    gap: var(--sp-3);
}

.checkout-section-title .step-num {
    width: 28px;
    height: 28px;
    background: var(--clr-primary);
    color: var(--clr-white);
    border-radius: var(--radius-circle);
    font-size: var(--fs-sm);
    font-weight: var(--fw-bold);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-family: var(--font-body);
}

.checkout-payment-box {
    display: flex;
    align-items: center;
    gap: var(--sp-4);
    padding: var(--sp-5);
    background: var(--clr-success-bg);
    border: 1.5px solid rgba(61,110,78,0.25);
    border-radius: var(--radius-lg);
    margin-bottom: var(--sp-6);
}

.checkout-payment-box__icon { font-size: 1.75rem; }

.checkout-payment-box__label {
    font-size: var(--fs-xs);
    font-weight: var(--fw-semibold);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--clr-success);
    margin-bottom: 2px;
}

.checkout-payment-box__text {
    font-size: var(--fs-sm);
    color: var(--clr-text-body);
}

/* Checkout Summary */
.checkout-summary {
    background: var(--clr-white);
    border: 1px solid var(--clr-border);
    border-radius: var(--radius-xl);
    overflow: hidden;
    position: sticky;
    top: calc(var(--header-height) + var(--announcement-height) + var(--sp-4));
}

.checkout-summary__header {
    padding: var(--sp-5) var(--sp-6);
    background: var(--clr-bg-alt);
    border-bottom: 1px solid var(--clr-border);
    font-family: var(--font-heading);
    font-size: var(--fs-lg);
    color: var(--clr-text);
}

.checkout-summary__body { padding: var(--sp-6); }

.checkout-summary__item {
    display: flex;
    gap: var(--sp-4);
    align-items: center;
    padding: var(--sp-4) 0;
    border-bottom: 1px solid var(--clr-border);
}

.checkout-summary__item:last-child { border-bottom: none; }

.checkout-item-img {
    width: 56px;
    height: 72px;
    object-fit: cover;
    border-radius: var(--radius-sm);
    flex-shrink: 0;
    position: relative;
}

.checkout-item-qty {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 20px;
    height: 20px;
    background: var(--clr-text);
    color: var(--clr-white);
    border-radius: var(--radius-circle);
    font-size: 11px;
    font-weight: var(--fw-bold);
    display: flex;
    align-items: center;
    justify-content: center;
}

.checkout-item-info { flex: 1; min-width: 0; }

.checkout-item-name {
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    color: var(--clr-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.checkout-item-variant {
    font-size: var(--fs-xs);
    color: var(--clr-text-muted);
}

.checkout-item-price {
    font-family: var(--font-heading);
    font-size: var(--fs-md);
    color: var(--clr-text);
    flex-shrink: 0;
}

.checkout-summary__totals {
    padding: var(--sp-4) var(--sp-6) var(--sp-6);
    border-top: 1px solid var(--clr-border);
}

.checkout-totals__line {
    display: flex;
    justify-content: space-between;
    font-size: var(--fs-sm);
    color: var(--clr-text-body);
    padding: var(--sp-2) 0;
}

.checkout-totals__line--total {
    font-size: var(--fs-lg);
    font-weight: var(--fw-semibold);
    color: var(--clr-text);
    border-top: 1px solid var(--clr-border);
    padding-top: var(--sp-4);
    margin-top: var(--sp-2);
}

.checkout-cta-box {
    padding: 0 var(--sp-6) var(--sp-6);
}

.checkout-cta-note {
    font-size: var(--fs-xs);
    color: var(--clr-text-muted);
    text-align: center;
    margin-top: var(--sp-3);
    line-height: 1.5;
}

.checkout-cta-guarantee {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--sp-2);
    font-size: var(--fs-xs);
    color: var(--clr-success);
    font-weight: var(--fw-medium);
    margin-top: var(--sp-3);
}

/* ============================================================
   MOBILE FILTER DRAWER
   ============================================================ */

/* Hidden on desktop — sidebar handles filtering there */
.mobile-filter-btn { display: none; }
.mobile-filter-drawer { display: none; }

@media (max-width: 768px) {

    /* ── Filter trigger button ── */
    .mobile-filter-btn {
        display: inline-flex;
        align-items: center;
        gap: 0.375rem;
        padding: 0.5rem 0.875rem;
        border: 1.5px solid var(--clr-border);
        border-radius: var(--radius-pill);
        background: var(--clr-white);
        font-size: var(--fs-sm);
        font-weight: var(--fw-medium);
        color: var(--clr-text-body);
        cursor: pointer;
        transition: border-color var(--t-fast), background var(--t-fast), color var(--t-fast);
    }
    .mobile-filter-btn:hover {
        border-color: var(--clr-primary);
        color: var(--clr-primary);
    }
    .mobile-filter-btn__badge {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 18px;
        height: 18px;
        border-radius: 50%;
        background: var(--clr-primary);
        color: var(--clr-white);
        font-size: 0.6875rem;
        font-weight: var(--fw-semibold);
        line-height: 1;
    }

    /* ── Drawer overlay (full-screen) ── */
    .mobile-filter-drawer {
        position: fixed;
        inset: 0;
        z-index: 1100;
        align-items: flex-end;
    }
    .mobile-filter-drawer[hidden] { display: none; }
    .mobile-filter-drawer.is-open { display: flex; }

    /* ── Backdrop ── */
    .mobile-filter-drawer__backdrop {
        position: absolute;
        inset: 0;
        background: rgba(0, 0, 0, 0.5);
        opacity: 0;
        transition: opacity 0.3s ease;
    }
    .mobile-filter-drawer.is-open .mobile-filter-drawer__backdrop { opacity: 1; }

    /* ── Panel ── */
    .mobile-filter-drawer__panel {
        position: relative;
        z-index: 1;
        width: 100%;
        max-height: 88dvh;
        background: var(--clr-white);
        border-radius: var(--radius-xl) var(--radius-xl) 0 0;
        display: flex;
        flex-direction: column;
        transform: translateY(100%);
        transition: transform 0.35s cubic-bezier(0.32, 0.72, 0, 1);
        overflow: hidden;
    }
    .mobile-filter-drawer.is-open .mobile-filter-drawer__panel { transform: translateY(0); }

    /* ── Drag handle ── */
    .mobile-filter-drawer__panel::before {
        content: '';
        display: block;
        width: 40px;
        height: 4px;
        background: var(--clr-border);
        border-radius: 2px;
        margin: 0.75rem auto 0;
        flex-shrink: 0;
    }

    /* ── Header ── */
    .mobile-filter-drawer__header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 1rem 1.25rem 0.875rem;
        border-bottom: 1px solid var(--clr-border);
        flex-shrink: 0;
    }
    .mobile-filter-drawer__title {
        font-family: var(--font-heading);
        font-size: var(--fs-lg);
        font-weight: var(--fw-semibold);
        color: var(--clr-text);
    }
    .mobile-filter-drawer__close {
        width: 36px;
        height: 36px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        background: var(--clr-bg-alt);
        border: none;
        cursor: pointer;
        color: var(--clr-text-muted);
        flex-shrink: 0;
        transition: background var(--t-fast);
    }
    .mobile-filter-drawer__close:hover { background: var(--clr-border); color: var(--clr-text); }

    /* ── Body (scrollable) ── */
    .mobile-filter-drawer__body {
        flex: 1;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
        padding-bottom: var(--sp-4);
    }

    /* ── Section ── */
    .mobile-filter-section { padding: 1.25rem 1.25rem 0; }
    .mobile-filter-section + .mobile-filter-section {
        border-top: 1px solid var(--clr-border);
    }
    .mobile-filter-section__title {
        font-size: var(--fs-xs);
        font-weight: var(--fw-semibold);
        text-transform: uppercase;
        letter-spacing: 0.08em;
        color: var(--clr-text-muted);
        margin: 0 0 0.875rem;
    }

    /* ── Sort options (pills) ── */
    .mobile-filter-sort-options {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
        padding-bottom: 1.25rem;
    }
    .mobile-filter-sort-option {
        display: inline-flex;
        align-items: center;
        gap: 0.25rem;
        padding: 0.4375rem 0.875rem;
        border: 1.5px solid var(--clr-border);
        border-radius: var(--radius-pill);
        font-size: var(--fs-xs);
        font-weight: var(--fw-medium);
        color: var(--clr-text-body);
        text-decoration: none;
        transition: background var(--t-fast), border-color var(--t-fast), color var(--t-fast);
    }
    .mobile-filter-sort-option:hover {
        border-color: var(--clr-primary);
        color: var(--clr-primary);
    }
    .mobile-filter-sort-option.is-active {
        background: var(--clr-primary);
        border-color: var(--clr-primary);
        color: var(--clr-white);
    }

    /* ── Category list ── */
    .mobile-filter-cat-list {
        list-style: none;
        margin: 0;
        padding: 0 0 1.25rem;
    }
    .mobile-filter-cat-item {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        padding: 0.875rem 0;
        border-bottom: 1px solid var(--clr-border);
        text-decoration: none;
        color: var(--clr-text-body);
        font-size: var(--fs-base);
        transition: color var(--t-fast);
    }
    .mobile-filter-cat-list li:last-child .mobile-filter-cat-item { border-bottom: none; }
    .mobile-filter-cat-item:hover { color: var(--clr-primary); }
    .mobile-filter-cat-item.is-active {
        color: var(--clr-primary);
        font-weight: var(--fw-semibold);
    }
    .mobile-filter-cat-item__name { flex: 1; }
    .mobile-filter-cat-item__count {
        font-size: var(--fs-xs);
        color: var(--clr-text-muted);
        background: var(--clr-bg-alt);
        border-radius: var(--radius-pill);
        padding: 0.125rem 0.5rem;
    }
    .mobile-filter-cat-item svg { color: var(--clr-primary); flex-shrink: 0; }

    /* ── Footer ── */
    .mobile-filter-drawer__footer {
        display: flex;
        align-items: center;
        gap: 0.75rem;
        padding: 1rem 1.25rem;
        padding-bottom: max(1rem, env(safe-area-inset-bottom));
        border-top: 1px solid var(--clr-border);
        background: var(--clr-white);
        flex-shrink: 0;
    }
    .mobile-filter-footer-reset {
        flex-shrink: 0;
        font-size: var(--fs-sm);
        color: var(--clr-text-muted);
        text-decoration: underline;
        text-underline-offset: 2px;
        white-space: nowrap;
    }
    .mobile-filter-footer-reset:hover { color: var(--clr-text); }
    .mobile-filter-drawer__footer .btn { flex: 1; }
}

/* ============================================================
   RESPONSIVE — WOOCOMMERCE
   ============================================================ */
@media (max-width: 1024px) {
    .shop-layout           { grid-template-columns: 220px 1fr; gap: var(--sp-6); }
    .single-product-layout { grid-template-columns: 1fr; gap: var(--sp-8); }
    .product-gallery       { position: static; }
    .cart-layout           { grid-template-columns: 1fr; }
    .cart-summary          { position: static; }
    .checkout-layout       { grid-template-columns: 1fr; }
    .checkout-summary      { position: static; }
}

@media (max-width: 768px) {

    /* ── Shop ── */
    .shop-layout { grid-template-columns: 1fr; }
    .shop-sidebar { position: static; display: none; }
    .shop-sidebar.is-open { display: block; }

    /* ── Cart table → stacked card layout ── */
    .cart-table,
    .cart-table thead,
    .cart-table tbody,
    .cart-table tfoot,
    .cart-table tr,
    .cart-table th,
    .cart-table td {
        display: block;
        width: 100%;
    }

    /* Hide desktop header row */
    .cart-table thead tr { display: none; }

    /* Each cart row becomes a card */
    .cart-table tbody tr {
        display: grid;
        grid-template-columns: 72px 1fr auto;
        grid-template-rows: auto auto;
        gap: var(--sp-2) var(--sp-3);
        align-items: center;
        padding: var(--sp-4) 0;
        border-bottom: 1px solid var(--clr-border);
    }

    /* Image cell */
    .cart-table tbody td:nth-child(1) {
        grid-row: 1 / 3;
        grid-column: 1;
    }

    /* Product name cell */
    .cart-table tbody td:nth-child(2) {
        grid-row: 1;
        grid-column: 2;
        padding: 0;
    }

    /* Price cell — hidden on mobile (shown in subtotal) */
    .cart-table tbody td:nth-child(3) {
        display: none;
    }

    /* Quantity cell */
    .cart-table tbody td:nth-child(4) {
        grid-row: 2;
        grid-column: 2;
        padding: 0;
    }

    /* Subtotal cell */
    .cart-table tbody td:nth-child(5) {
        grid-row: 1;
        grid-column: 3;
        padding: 0;
        font-weight: 600;
        color: var(--clr-text);
    }

    /* Remove button — show as small × in bottom-right corner */
    .cart-table tbody td:nth-child(6) {
        grid-row: 2;
        grid-column: 3;
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: flex-end;
    }

    .cart-item__image { width: 64px; height: 80px; border-radius: var(--radius-sm); }

    /* ── Single product gallery ── */
    .product-gallery__thumbs {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x mandatory;
        display: flex;
        flex-wrap: nowrap;
        gap: var(--sp-2);
        padding-bottom: var(--sp-2);
    }
    .product-gallery__thumb {
        scroll-snap-align: start;
        flex-shrink: 0;
        width: 64px;
        height: 64px;
    }

    /* ── Product info ── */
    .product-single__add-to-cart { flex-direction: column; }
    .product-single__add-to-cart .btn { width: 100%; }

    /* CTA buttons: stack vertically on mobile */
    .product-ctas__primary {
        flex-direction: column;
        gap: var(--sp-3);
    }
    .product-ctas__primary .btn {
        width: 100%;
        min-width: 0;
        text-align: center;
        justify-content: center;
    }

    /* Qty selector: full width + centered */
    .qty-wrapper { flex-wrap: wrap; gap: var(--sp-2); }
    .qty-selector { flex: 1; justify-content: center; }

    /* Product info text: force wrap to prevent overflow */
    .product-info__title,
    .product-info__short-desc,
    .product-info__brand,
    .cod-reassurance,
    .product-trust-item {
        overflow-wrap: break-word;
        word-break: break-word;
    }

    /* Single product layout: prevent horizontal overflow */
    .single-product-layout,
    .product-info,
    .product-gallery {
        min-width: 0;
        max-width: 100%;
    }

    /* ── Product tabs ── */
    .product-tabs__nav {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        white-space: nowrap;
        display: flex;
        border-bottom: 1px solid var(--clr-border);
        gap: 0;
    }
    .product-tab-btn {
        padding: var(--sp-3) var(--sp-4);
        font-size: var(--fs-xs);
        flex-shrink: 0;
    }

    /* ── Checkout ── */
    .checkout-form-card { padding: var(--sp-5) var(--sp-4); max-width: 100%; }
    .checkout-section-title { font-size: var(--fs-lg); }
    .checkout-layout { overflow: hidden; }
    .checkout-layout > * { min-width: 0; max-width: 100%; overflow: hidden; }

    /* Phone prefix row */
    .phone-row { flex-direction: column; gap: 0; }
    .phone-prefix { width: 100%; border-radius: var(--radius-md) var(--radius-md) 0 0; border-bottom: none; }
    .phone-input  { border-radius: 0 0 var(--radius-md) var(--radius-md); }

    /* ── Order summary (checkout) ── */
    .checkout-summary { margin-top: var(--sp-6); }

    /* ── Shop toolbar ── */
    .shop-toolbar { flex-direction: column; align-items: flex-start; gap: var(--sp-3); }
    .shop-toolbar__sort select { width: 100%; }
}

@media (max-width: 414px) {

    /* ── Checkout card: tighter padding ── */
    .checkout-form-card { padding: var(--sp-4); }
    .checkout-summary__body { padding: var(--sp-4); }
    .checkout-summary__totals { padding: var(--sp-3) var(--sp-4) var(--sp-4); }
    .checkout-cta-box { padding: 0 var(--sp-4) var(--sp-4); }

    /* ── COD payment box ── */
    .checkout-payment-box { flex-direction: column; align-items: flex-start; gap: var(--sp-3); }

    /* ── Single product ── */
    .product-single__price { font-size: var(--fs-2xl); }
    .product-single__cta-group .btn { font-size: var(--fs-xs); padding: 0.75rem 1rem; }

    /* ── Free shipping progress bar ── */
    .shipping-progress__bar { height: 6px; }
    .shipping-progress__text { font-size: var(--fs-xs); }

    /* ── Cart summary ── */
    .cart-summary { padding: var(--sp-5); }
}

@media (max-width: 360px) {
    /* Stack COD box vertically */
    .checkout-payment-box { gap: var(--sp-2); padding: var(--sp-4); }

    /* Full-width tabs with wrap */
    .product-tabs__nav { white-space: normal; flex-wrap: wrap; }
    .product-tab-btn   { flex: 1; text-align: center; min-width: 80px; }
}

/* ============================================================
   GLOBAL OVERFLOW CONTAINMENT
   Hard stop: nothing on WC pages should bleed outside the viewport.
   ============================================================ */
.woocommerce-page .site-main { overflow-x: hidden; }

/* Checkout: every layer is capped at 100% width */
.checkout-layout,
.checkout-form-card,
.checkout-summary {
    max-width: 100%;
    box-sizing: border-box;
}

/* All flex/grid children inside checkout cards can shrink */
.checkout-form-card *,
.checkout-summary * {
    min-width: 0;
    max-width: 100%;
}

/* Long text wraps instead of overflowing */
.checkout-form-card,
.checkout-summary {
    overflow-wrap: break-word;
    word-break: break-word;
}

/* Product page: gallery and summary never wider than viewport */
.woocommerce div.product .woocommerce-product-gallery,
.woocommerce div.product .entry-summary {
    max-width: 100%;
    overflow: hidden;
}

/* Cart: table cells never wider than viewport */
.woocommerce-cart table.shop_table,
.cart_totals {
    max-width: 100%;
    box-sizing: border-box;
}

/* ============================================================
   WC NATIVE CLASS OVERRIDES
   WooCommerce outputs its own HTML class names. Since we dequeue
   WC's bundled CSS we must re-style every WC element here.
   ============================================================ */

/* ── Shared WC notices ── */
.woocommerce-notices-wrapper { grid-column: 1 / -1; }

.woocommerce-message,
.woocommerce-error li,
.woocommerce-info {
    padding: var(--sp-4) var(--sp-5);
    border-radius: var(--radius-md);
    margin-bottom: var(--sp-5);
    font-size: var(--fs-sm);
    display: flex;
    align-items: center;
    gap: var(--sp-4);
    list-style: none;
}
.woocommerce-message { background: var(--clr-success-bg); color: var(--clr-success); border-left: 3px solid var(--clr-success); }
.woocommerce-error   { background: #fef2f2; color: var(--clr-error); border-left: 3px solid var(--clr-error); padding: var(--sp-4) var(--sp-5); border-radius: var(--radius-md); margin-bottom: var(--sp-5); list-style: none; }
.woocommerce-info    { background: var(--clr-bg-alt); color: var(--clr-text-body); border-left: 3px solid var(--clr-border); }

.woocommerce-message .button,
.woocommerce-info .button {
    margin-left: auto;
    flex-shrink: 0;
    padding: 0.5rem 1.25rem;
    background: var(--clr-primary);
    color: var(--clr-white);
    border: none;
    border-radius: var(--radius-pill);
    font-size: var(--fs-xs);
    font-weight: var(--fw-semibold);
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
    transition: background var(--t-fast);
}
.woocommerce-message .button:hover { background: var(--clr-primary-dark); }

/* ── Shared .button (WC default button class) ── */
.woocommerce .button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 1.75rem;
    background: var(--clr-primary);
    color: var(--clr-white) !important;
    border: none;
    border-radius: var(--radius-pill);
    font-size: var(--fs-sm);
    font-weight: var(--fw-semibold);
    letter-spacing: 0.04em;
    cursor: pointer;
    text-decoration: none;
    transition: background var(--t-fast), transform var(--t-fast);
    line-height: 1.4;
}
.woocommerce .button:hover,
.woocommerce button.button:hover,
.woocommerce a.button:hover {
    background: var(--clr-primary-dark);
    transform: translateY(-1px);
    color: var(--clr-white) !important;
}
.woocommerce .button.alt { background: var(--clr-text); }
.woocommerce .button.alt:hover { background: var(--clr-text-muted); }

/* ── Shared form inputs ── */
.woocommerce input.input-text,
.woocommerce textarea,
.woocommerce select {
    width: 100%;
    padding: 0.75rem 1rem;
    border: 1.5px solid var(--clr-border);
    border-radius: var(--radius-md);
    font-size: var(--fs-sm);
    color: var(--clr-text);
    background: var(--clr-white);
    transition: border-color var(--t-fast), box-shadow var(--t-fast);
    appearance: none;
}
.woocommerce input.input-text:focus,
.woocommerce textarea:focus,
.woocommerce select:focus {
    outline: none;
    border-color: var(--clr-primary);
    box-shadow: 0 0 0 3px rgba(176,128,96,0.12);
}

.woocommerce label {
    display: block;
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    color: var(--clr-text);
    margin-bottom: var(--sp-2);
}

.woocommerce .form-row {
    margin-bottom: var(--sp-4);
}

.woocommerce .form-row label abbr {
    color: var(--clr-error);
    text-decoration: none;
    margin-left: 2px;
}

/* ============================================================
   SINGLE PRODUCT — WC native classes
   ============================================================ */

/* Prevent horizontal overflow */
.single-product .site-main,
.single-product .woocommerce,
.woocommerce div.product {
    max-width: 100%;
    overflow-x: hidden;
}

/* Two-column grid: gallery | summary */
.woocommerce div.product {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--sp-12);
    padding: var(--sp-10) 0 var(--sp-16);
    align-items: start;
}

/* Gallery — left column, sticky */
.woocommerce div.product .woocommerce-product-gallery {
    grid-column: 1;
    grid-row: 1;
    position: sticky;
    top: calc(var(--header-height) + var(--announcement-height) + var(--sp-4));
    min-width: 0;
}

/* Summary — right column */
.woocommerce div.product .entry-summary {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    gap: var(--sp-5);
    min-width: 0;
}

/* Full-width below the 2-column layout */
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related.products,
.woocommerce div.product .upsells.products {
    grid-column: 1 / -1;
}

/* ── Gallery images ── */
.woocommerce div.product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper {
    border-radius: var(--radius-xl);
    overflow: hidden;
    background: var(--clr-bg-alt);
}

.woocommerce div.product .woocommerce-product-gallery .flex-viewport {
    border-radius: var(--radius-xl);
    overflow: hidden;
    aspect-ratio: 3 / 4;
}

.woocommerce div.product .woocommerce-product-gallery img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Gallery: no flexslider by default — main image */
.woocommerce div.product .woocommerce-product-gallery__image:not(.flex-viewport) {
    border-radius: var(--radius-xl);
    overflow: hidden;
    aspect-ratio: 3 / 4;
    background: var(--clr-bg-alt);
}

/* Thumbnails strip */
.woocommerce div.product .flex-control-nav.flex-control-thumbs {
    display: flex;
    gap: var(--sp-2);
    list-style: none;
    margin: var(--sp-3) 0 0;
    padding: 0;
    overflow-x: auto;
    scrollbar-width: none;
}
.woocommerce div.product .flex-control-thumbs::-webkit-scrollbar { display: none; }

.woocommerce div.product .flex-control-thumbs li { flex-shrink: 0; }

.woocommerce div.product .flex-control-thumbs img {
    width: 72px;
    height: 72px;
    object-fit: cover;
    border-radius: var(--radius-sm);
    cursor: pointer;
    border: 2px solid transparent;
    transition: border-color var(--t-fast);
    aspect-ratio: 1;
}

.woocommerce div.product .flex-control-thumbs .flex-active img,
.woocommerce div.product .flex-control-thumbs img:hover {
    border-color: var(--clr-primary);
}

/* Gallery zoom icon */
.woocommerce div.product .woocommerce-product-gallery__trigger {
    position: absolute;
    top: var(--sp-4);
    right: var(--sp-4);
    z-index: 2;
    width: 36px;
    height: 36px;
    background: rgba(255,255,255,0.9);
    border-radius: var(--radius-circle);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--clr-text);
    font-size: 1.1rem;
    text-decoration: none;
    transition: background var(--t-fast);
}
.woocommerce div.product .woocommerce-product-gallery__trigger:hover { background: var(--clr-white); }

/* ── Product summary elements ── */
.woocommerce div.product .product_title {
    font-family: var(--font-heading);
    font-size: clamp(var(--fs-2xl), 3.5vw, var(--fs-4xl));
    color: var(--clr-text);
    line-height: 1.2;
    margin: 0;
}

/* Star rating */
.woocommerce div.product .woocommerce-product-rating {
    display: flex;
    align-items: center;
    gap: var(--sp-3);
}

.woocommerce .star-rating {
    color: #e8a838;
    font-size: 0.9rem;
    letter-spacing: 2px;
    position: relative;
    display: inline-block;
}

.woocommerce div.product .woocommerce-review-link {
    font-size: var(--fs-sm);
    color: var(--clr-text-muted);
    text-decoration: none;
    border-bottom: 1px solid var(--clr-border);
    transition: color var(--t-fast);
}
.woocommerce div.product .woocommerce-review-link:hover { color: var(--clr-primary); }

/* Price block */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    display: flex;
    align-items: baseline;
    gap: var(--sp-3);
    padding: var(--sp-4) 0;
    border-top: 1px solid var(--clr-border);
    border-bottom: 1px solid var(--clr-border);
    margin: 0;
}

.woocommerce div.product p.price .woocommerce-Price-amount bdi,
.woocommerce div.product span.price .woocommerce-Price-amount bdi {
    font-family: var(--font-heading);
    font-size: clamp(var(--fs-2xl), 3vw, var(--fs-3xl));
    color: var(--clr-text);
}

.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
    opacity: 0.6;
}

.woocommerce div.product p.price del .woocommerce-Price-amount bdi,
.woocommerce div.product span.price del .woocommerce-Price-amount bdi {
    font-size: var(--fs-lg);
    color: var(--clr-text-muted);
    text-decoration: line-through;
}

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

/* Short description */
.woocommerce div.product .woocommerce-product-details__short-description {
    font-size: var(--fs-sm);
    color: var(--clr-text-muted);
    line-height: 1.75;
}

/* ── Add to cart form ── */
.woocommerce div.product form.cart {
    display: flex;
    gap: var(--sp-4);
    align-items: center;
    flex-wrap: wrap;
}

.woocommerce div.product form.cart .quantity {
    display: flex;
    align-items: center;
    border: 1.5px solid var(--clr-border);
    border-radius: var(--radius-pill);
    overflow: hidden;
    background: var(--clr-white);
    flex-shrink: 0;
}

.woocommerce div.product form.cart .qty {
    width: 52px;
    text-align: center;
    font-size: var(--fs-base);
    font-weight: var(--fw-semibold);
    color: var(--clr-text);
    border: none;
    border-left: 1px solid var(--clr-border);
    border-right: 1px solid var(--clr-border);
    padding: 0.75rem 0;
    background: transparent;
    -moz-appearance: textfield;
}
.woocommerce div.product form.cart .qty::-webkit-outer-spin-button,
.woocommerce div.product form.cart .qty::-webkit-inner-spin-button { -webkit-appearance: none; }

.woocommerce div.product form.cart .single_add_to_cart_button {
    flex: 1;
    min-width: 160px;
    padding: 0.875rem 2rem;
    background: var(--clr-primary);
    color: var(--clr-white) !important;
    border: none;
    border-radius: var(--radius-pill);
    font-size: var(--fs-sm);
    font-weight: var(--fw-semibold);
    letter-spacing: 0.05em;
    cursor: pointer;
    text-align: center;
    transition: background var(--t-fast), transform var(--t-fast);
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover {
    background: var(--clr-primary-dark);
    transform: translateY(-1px);
}
.woocommerce div.product form.cart .single_add_to_cart_button.loading { opacity: 0.7; }

/* Product meta (SKU / Categories) */
.woocommerce div.product .product_meta {
    font-size: var(--fs-xs);
    color: var(--clr-text-muted);
    display: flex;
    flex-direction: column;
    gap: var(--sp-1);
    padding-top: var(--sp-3);
    border-top: 1px solid var(--clr-border);
}
.woocommerce div.product .product_meta a { color: var(--clr-primary); text-decoration: none; }
.woocommerce div.product .product_meta a:hover { text-decoration: underline; }

/* ── Product tabs ── */
.woocommerce div.product .woocommerce-tabs.wc-tabs-wrapper {
    margin-top: var(--sp-16);
    border-top: 2px solid var(--clr-border);
    grid-column: 1 / -1;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
    display: flex;
    list-style: none;
    margin: -2px 0 0;
    padding: 0;
    border-bottom: 2px solid var(--clr-border);
    overflow-x: auto;
    scrollbar-width: none;
    gap: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::-webkit-scrollbar { display: none; }

.woocommerce div.product .woocommerce-tabs ul.tabs li {
    flex-shrink: 0;
    margin: 0;
    border: none;
    background: none;
    padding: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    display: block;
    padding: var(--sp-4) var(--sp-6);
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    color: var(--clr-text-muted);
    text-decoration: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    white-space: nowrap;
    transition: all var(--t-fast);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
    color: var(--clr-text);
    border-bottom-color: var(--clr-primary);
}

.woocommerce div.product .woocommerce-tabs .panel {
    padding: var(--sp-8) 0;
    display: none;
}
.woocommerce div.product .woocommerce-tabs .panel.woocommerce-Tabs-panel--active { display: block; }

.woocommerce div.product .woocommerce-tabs .panel h2:first-child { display: none; }

.woocommerce div.product .woocommerce-tabs .panel p,
.woocommerce div.product .woocommerce-tabs .panel li {
    font-size: var(--fs-sm);
    color: var(--clr-text-body);
    line-height: 1.8;
}

/* Reviews */
#reviews #comments { margin-bottom: var(--sp-10); }
#reviews .comment-respond { border-top: 1px solid var(--clr-border); padding-top: var(--sp-8); }
#reviews .comment-respond h3 { font-family: var(--font-heading); font-size: var(--fs-xl); color: var(--clr-text); margin-bottom: var(--sp-6); }
#reviews .comment-form-rating label { font-size: var(--fs-sm); font-weight: var(--fw-medium); }
#reviews .stars a { font-size: 1.5rem; color: var(--clr-border); text-decoration: none; }
#reviews .stars.selected a.active,
#reviews .stars.selected a:not(.active) ~ a { color: #e8a838; }

.woocommerce #reviews .comment_container {
    display: flex;
    gap: var(--sp-4);
    padding: var(--sp-6) 0;
    border-bottom: 1px solid var(--clr-border);
}
.woocommerce #reviews .comment_container img.avatar {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-circle);
    flex-shrink: 0;
    object-fit: cover;
}
.woocommerce #reviews .comment-text { flex: 1; }
.woocommerce #reviews .comment-text p.meta { font-size: var(--fs-xs); color: var(--clr-text-muted); margin-bottom: var(--sp-2); }
.woocommerce #reviews .comment-text .description p { font-size: var(--fs-sm); color: var(--clr-text-body); line-height: 1.7; }

/* Related / Upsells */
.woocommerce .related.products,
.woocommerce .upsells.products {
    padding: var(--sp-16) 0;
    grid-column: 1 / -1;
}

.woocommerce .related.products > h2,
.woocommerce .upsells.products > h2 {
    font-family: var(--font-heading);
    font-size: var(--fs-3xl);
    color: var(--clr-text);
    margin-bottom: var(--sp-8);
}

.woocommerce .related.products ul.products,
.woocommerce .upsells.products ul.products {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--sp-6);
    list-style: none;
    padding: 0;
    margin: 0;
}

/* ============================================================
   CART PAGE — WC native classes
   ============================================================ */

/* Two-column grid: form | totals */
.woocommerce-cart div.woocommerce {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: var(--sp-10);
    padding: var(--sp-8) 0 var(--sp-16);
    align-items: start;
}

.woocommerce-cart div.woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }

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

.woocommerce-cart .cart-collaterals {
    min-width: 0;
    position: sticky;
    top: calc(var(--header-height) + var(--announcement-height) + var(--sp-4));
}

/* ── Cart table ── */
table.shop_table {
    width: 100%;
    border-collapse: collapse;
}

table.shop_table thead th {
    font-size: var(--fs-xs);
    font-weight: var(--fw-semibold);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--clr-text-muted);
    padding: var(--sp-3) var(--sp-4);
    text-align: left;
    border-bottom: 2px solid var(--clr-border);
}

table.shop_table td {
    padding: var(--sp-4) var(--sp-4);
    border-bottom: 1px solid var(--clr-border);
    vertical-align: middle;
    font-size: var(--fs-sm);
    color: var(--clr-text-body);
}

/* Remove button */
.woocommerce-cart-form table.shop_table td.product-remove {
    width: 40px;
    padding-right: 0;
}

.woocommerce-cart-form table.shop_table td.product-remove a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: var(--radius-md);
    color: var(--clr-text-muted);
    font-size: 1.2rem;
    text-decoration: none;
    line-height: 1;
    transition: background var(--t-fast), color var(--t-fast);
}
.woocommerce-cart-form table.shop_table td.product-remove a:hover {
    background: #fef2f2;
    color: var(--clr-error);
}

/* Thumbnail */
.woocommerce-cart-form table.shop_table td.product-thumbnail {
    width: 80px;
    padding-right: 0;
}
.woocommerce-cart-form table.shop_table td.product-thumbnail a { display: block; }
.woocommerce-cart-form table.shop_table td.product-thumbnail img {
    width: 72px;
    height: 96px;
    object-fit: cover;
    border-radius: var(--radius-md);
    display: block;
}

/* Product name */
.woocommerce-cart-form table.shop_table td.product-name a {
    font-weight: var(--fw-medium);
    font-size: var(--fs-sm);
    color: var(--clr-text);
    text-decoration: none;
}
.woocommerce-cart-form table.shop_table td.product-name a:hover { color: var(--clr-primary); }

.woocommerce-cart-form table.shop_table td.product-name .variation {
    font-size: var(--fs-xs);
    color: var(--clr-text-muted);
    margin-top: var(--sp-1);
}
.woocommerce-cart-form table.shop_table td.product-name .variation dt,
.woocommerce-cart-form table.shop_table td.product-name .variation dd { display: inline; margin: 0; }
.woocommerce-cart-form table.shop_table td.product-name .variation dt::after { content: ': '; }
.woocommerce-cart-form table.shop_table td.product-name .variation dd::after { content: ' '; }

/* Price & subtotal */
.woocommerce-cart-form table.shop_table td.product-price,
.woocommerce-cart-form table.shop_table td.product-subtotal {
    font-family: var(--font-heading);
    font-size: var(--fs-md);
    color: var(--clr-text);
}
.woocommerce-cart-form table.shop_table td.product-subtotal { font-weight: var(--fw-semibold); }

/* Quantity */
.woocommerce-cart-form table.shop_table td.product-quantity .qty {
    width: 64px;
    padding: 0.5rem 0.75rem;
    text-align: center;
    border: 1.5px solid var(--clr-border);
    border-radius: var(--radius-md);
    font-size: var(--fs-sm);
    color: var(--clr-text);
    background: var(--clr-white);
    -moz-appearance: textfield;
}
.woocommerce-cart-form table.shop_table td.product-quantity .qty::-webkit-outer-spin-button,
.woocommerce-cart-form table.shop_table td.product-quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; }

/* Actions row (coupon + update) */
.woocommerce-cart-form table.shop_table td.actions {
    padding-top: var(--sp-5);
    display: flex;
    align-items: center;
    gap: var(--sp-3);
    flex-wrap: wrap;
    border-bottom: none;
}
.woocommerce-cart-form table.shop_table td.actions .coupon {
    display: flex;
    gap: var(--sp-2);
    flex: 1;
}
.woocommerce-cart-form table.shop_table td.actions .coupon input#coupon_code {
    max-width: 200px;
    padding: 0.6rem 1rem;
    border: 1.5px solid var(--clr-border);
    border-radius: var(--radius-md);
    font-size: var(--fs-sm);
    color: var(--clr-text);
}
.woocommerce-cart-form table.shop_table td.actions .coupon .button,
.woocommerce-cart-form table.shop_table td.actions [name="update_cart"] {
    padding: 0.6rem 1.25rem;
    font-size: var(--fs-sm);
}
.woocommerce-cart-form table.shop_table td.actions [name="update_cart"] {
    background: var(--clr-bg-alt);
    color: var(--clr-text) !important;
    border: 1.5px solid var(--clr-border);
    margin-left: auto;
}
.woocommerce-cart-form table.shop_table td.actions [name="update_cart"]:hover { background: var(--clr-border); }

/* ── Cart totals box ── */
.cart_totals {
    background: var(--clr-white);
    border: 1px solid var(--clr-border);
    border-radius: var(--radius-xl);
    padding: var(--sp-8);
}

.cart_totals > h2 {
    font-family: var(--font-heading);
    font-size: var(--fs-xl);
    color: var(--clr-text);
    margin-bottom: var(--sp-6);
    padding-bottom: var(--sp-4);
    border-bottom: 1px solid var(--clr-border);
}

.cart_totals table.shop_table {
    margin-bottom: var(--sp-6);
}

.cart_totals table.shop_table th {
    font-size: var(--fs-sm);
    font-weight: var(--fw-medium);
    color: var(--clr-text-body);
    padding: var(--sp-3) 0;
    text-align: left;
    border-bottom: none;
    text-transform: none;
    letter-spacing: 0;
    white-space: nowrap;
    padding-right: var(--sp-4);
}

.cart_totals table.shop_table td {
    font-size: var(--fs-sm);
    color: var(--clr-text-body);
    padding: var(--sp-3) 0;
    text-align: right;
    border-bottom: none;
}

.cart_totals table.shop_table tr.order-total th,
.cart_totals table.shop_table tr.order-total td {
    font-size: var(--fs-lg);
    font-weight: var(--fw-semibold);
    color: var(--clr-text);
    border-top: 2px solid var(--clr-border);
    padding-top: var(--sp-4);
}

.cart_totals .wc-proceed-to-checkout { padding-top: var(--sp-2); }

.cart_totals .wc-proceed-to-checkout .checkout-button {
    display: block;
    width: 100%;
    padding: 0.9375rem 2rem;
    text-align: center;
    background: var(--clr-primary);
    color: var(--clr-white) !important;
    border-radius: var(--radius-pill);
    font-size: var(--fs-sm);
    font-weight: var(--fw-semibold);
    letter-spacing: 0.05em;
    text-decoration: none;
    transition: background var(--t-fast), transform var(--t-fast);
}
.cart_totals .wc-proceed-to-checkout .checkout-button:hover {
    background: var(--clr-primary-dark);
    transform: translateY(-1px);
}

/* Shipping methods */
.cart_totals .shipping-calculator-button {
    font-size: var(--fs-xs);
    color: var(--clr-primary);
    text-decoration: underline;
    cursor: pointer;
    background: none;
    border: none;
    padding: 0;
}

/* ============================================================
   CHECKOUT PAGE — WC native classes
   ============================================================ */

.woocommerce-checkout.woocommerce {
    padding: var(--sp-8) 0 var(--sp-16);
}

/* Two-column billing | order review layout is handled by .checkout-layout
   inside our custom form-checkout.php, NOT the form element itself.
   Keep the form as a plain block so it never creates a 2-column grid that
   overflows the viewport on mobile. */
.woocommerce-checkout form.woocommerce-checkout {
    display: block;
}

/* Ensure every direct child of checkout-layout can shrink below its content */
.checkout-layout > * {
    min-width: 0;
    overflow: hidden;
}

.woocommerce-checkout #customer_details { min-width: 0; }
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review { min-width: 0; }

/* col2-set — make both sub-columns full width inside grid cell */
.woocommerce-checkout .col2-set { grid-column: 1; }
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 { float: none; width: 100%; }
.woocommerce-checkout::after { display: none; } /* clear floats not needed */

/* Order review goes in the second column, spanning both rows */
.woocommerce-checkout #order_review_heading { display: none; } /* heading already inside the box */
.woocommerce-checkout #order_review {
    grid-column: 2;
    grid-row: 1 / 4;
    position: sticky;
    top: calc(var(--header-height) + var(--announcement-height) + var(--sp-4));
    background: var(--clr-white);
    border: 1px solid var(--clr-border);
    border-radius: var(--radius-xl);
    overflow: hidden;
}

/* Section headings inside checkout */
.woocommerce-checkout h3,
.woocommerce-checkout h3#ship-to-different-address {
    font-family: var(--font-heading);
    font-size: var(--fs-xl);
    color: var(--clr-text);
    margin-bottom: var(--sp-6);
    padding-bottom: var(--sp-4);
    border-bottom: 1px solid var(--clr-border);
    display: flex;
    align-items: center;
    gap: var(--sp-3);
}

/* Billing/shipping field groups */
.woocommerce-billing-fields,
.woocommerce-shipping-fields {
    background: var(--clr-white);
    border: 1px solid var(--clr-border);
    border-radius: var(--radius-xl);
    padding: var(--sp-8);
    margin-bottom: var(--sp-6);
}

.woocommerce-additional-fields {
    background: var(--clr-white);
    border: 1px solid var(--clr-border);
    border-radius: var(--radius-xl);
    padding: var(--sp-8);
    margin-bottom: var(--sp-6);
}

/* Form rows inside checkout */
.woocommerce-checkout .form-row {
    margin-bottom: var(--sp-4);
}

.woocommerce-checkout .form-row.form-row-first,
.woocommerce-checkout .form-row.form-row-last {
    display: inline-block;
    width: calc(50% - var(--sp-2));
    float: left;
}
.woocommerce-checkout .form-row.form-row-first { margin-right: calc(var(--sp-2) * 2); }
.woocommerce-checkout .form-row.form-row-wide  { clear: both; width: 100%; }
.woocommerce-checkout .form-row::after         { content: ''; display: table; clear: both; }

/* ── Order review table ── */
.woocommerce-checkout-review-order {
    padding: var(--sp-6);
}

.woocommerce-checkout-review-order-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: var(--sp-6);
}

.woocommerce-checkout-review-order-table thead th {
    font-size: var(--fs-xs);
    font-weight: var(--fw-semibold);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--clr-text-muted);
    padding: var(--sp-2) 0 var(--sp-3);
    border-bottom: 1px solid var(--clr-border);
}

.woocommerce-checkout-review-order-table tbody td {
    padding: var(--sp-3) 0;
    font-size: var(--fs-sm);
    color: var(--clr-text-body);
    border-bottom: 1px solid var(--clr-border);
    vertical-align: middle;
}

.woocommerce-checkout-review-order-table tbody .product-name { font-weight: var(--fw-medium); color: var(--clr-text); }
.woocommerce-checkout-review-order-table tbody .product-total { text-align: right; font-family: var(--font-heading); }

.woocommerce-checkout-review-order-table tfoot tr th,
.woocommerce-checkout-review-order-table tfoot tr td {
    padding: var(--sp-3) 0;
    font-size: var(--fs-sm);
    border-bottom: 1px solid var(--clr-border);
}

.woocommerce-checkout-review-order-table tfoot tr.order-total th,
.woocommerce-checkout-review-order-table tfoot tr.order-total td {
    font-size: var(--fs-lg);
    font-weight: var(--fw-semibold);
    color: var(--clr-text);
    border-top: 2px solid var(--clr-border);
    border-bottom: none;
    padding-top: var(--sp-4);
}

/* ── Payment box ── */
#payment {
    background: var(--clr-bg-alt);
    border-top: 1px solid var(--clr-border);
    border-radius: 0 0 var(--radius-xl) var(--radius-xl);
    padding: var(--sp-6);
}

#payment ul.payment_methods {
    list-style: none;
    padding: 0;
    margin-bottom: var(--sp-5);
}

#payment ul.payment_methods li {
    padding: var(--sp-4) var(--sp-5);
    background: var(--clr-white);
    border: 1.5px solid var(--clr-border);
    border-radius: var(--radius-md);
    margin-bottom: var(--sp-3);
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-3);
    align-items: center;
    cursor: pointer;
    transition: border-color var(--t-fast);
}
#payment ul.payment_methods li:has(input:checked) { border-color: var(--clr-primary); }

#payment ul.payment_methods li label {
    font-weight: var(--fw-medium);
    font-size: var(--fs-sm);
    color: var(--clr-text);
    margin: 0;
    cursor: pointer;
    flex: 1;
}

#payment ul.payment_methods li input[type="radio"] {
    accent-color: var(--clr-primary);
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    cursor: pointer;
}

#payment .payment_box {
    width: 100%;
    font-size: var(--fs-sm);
    color: var(--clr-text-muted);
    line-height: 1.6;
    padding-top: var(--sp-2);
}

#payment .place-order { text-align: center; }

#payment .place-order #place_order {
    display: block;
    width: 100%;
    padding: 1rem 2rem;
    background: var(--clr-primary);
    color: var(--clr-white) !important;
    border: none;
    border-radius: var(--radius-pill);
    font-size: var(--fs-base);
    font-weight: var(--fw-semibold);
    letter-spacing: 0.05em;
    cursor: pointer;
    text-align: center;
    transition: background var(--t-fast), transform var(--t-fast);
}
#payment .place-order #place_order:hover {
    background: var(--clr-primary-dark);
    transform: translateY(-1px);
}

#payment .terms {
    font-size: var(--fs-xs);
    color: var(--clr-text-muted);
    text-align: center;
    margin-bottom: var(--sp-4);
}

/* ── Checkout: "ship to different address" toggle ── */
.woocommerce-shipping-fields h3 label { font-family: var(--font-body); font-size: var(--fs-sm); font-weight: var(--fw-medium); }
.woocommerce-shipping-fields h3 input[type="checkbox"] { accent-color: var(--clr-primary); }

/* ── Order received / thank-you ── */
.woocommerce-order {
    padding: var(--sp-10) 0 var(--sp-16);
}

.woocommerce-thankyou-order-received {
    font-family: var(--font-heading);
    font-size: var(--fs-2xl);
    color: var(--clr-text);
    margin-bottom: var(--sp-6);
}

.woocommerce-order-overview.woocommerce-thankyou-order-details {
    display: flex;
    flex-wrap: wrap;
    gap: var(--sp-4) var(--sp-8);
    list-style: none;
    padding: var(--sp-6);
    background: var(--clr-bg-alt);
    border-radius: var(--radius-xl);
    margin-bottom: var(--sp-8);
}

.woocommerce-order-overview li {
    font-size: var(--fs-sm);
    color: var(--clr-text-muted);
}
.woocommerce-order-overview li strong { display: block; color: var(--clr-text); font-size: var(--fs-base); margin-top: 2px; }

/* ============================================================
   RESPONSIVE — WC NATIVE CLASSES
   ============================================================ */

@media (max-width: 1024px) {
    /* Single product: still 2 cols on tablet */
    .woocommerce div.product .woocommerce-product-gallery { position: static; }

    /* Cart: stack */
    .woocommerce-cart div.woocommerce {
        grid-template-columns: 1fr;
        gap: var(--sp-8);
    }
    .woocommerce-cart .cart-collaterals { position: static; }

    /* Checkout: stack #order_review below billing */
    .woocommerce-checkout #order_review {
        grid-column: 1;
        grid-row: auto;
        position: static;
    }

    /* Related: 3 cols */
    .woocommerce .related.products ul.products,
    .woocommerce .upsells.products ul.products { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 768px) {
    /* ── Single product: stack ── */
    .woocommerce div.product {
        grid-template-columns: 1fr;
        gap: var(--sp-6);
        padding: var(--sp-6) 0 var(--sp-12);
    }

    .woocommerce div.product .woocommerce-product-gallery,
    .woocommerce div.product .entry-summary {
        grid-column: 1;
    }
    .woocommerce div.product .woocommerce-product-gallery { grid-row: 1; }
    .woocommerce div.product .entry-summary             { grid-row: 2; }

    /* Stack add-to-cart form */
    .woocommerce div.product form.cart {
        flex-direction: column;
        align-items: stretch;
    }
    .woocommerce div.product form.cart .quantity {
        justify-content: center;
    }
    .woocommerce div.product form.cart .single_add_to_cart_button { width: 100%; }

    /* Related: 2 cols */
    .woocommerce .related.products ul.products,
    .woocommerce .upsells.products ul.products { grid-template-columns: repeat(2, 1fr); gap: var(--sp-4); }

    /* ── Cart table → card layout ── */
    .woocommerce-cart table.shop_table,
    .woocommerce-cart table.shop_table thead,
    .woocommerce-cart table.shop_table tbody,
    .woocommerce-cart table.shop_table tfoot,
    .woocommerce-cart table.shop_table tr,
    .woocommerce-cart table.shop_table th,
    .woocommerce-cart table.shop_table td {
        display: block;
        width: 100%;
        box-sizing: border-box;
    }

    .woocommerce-cart table.shop_table thead { display: none; }

    .woocommerce-cart table.shop_table tbody tr.woocommerce-cart-form__cart-item {
        display: grid;
        grid-template-columns: 44px 80px 1fr auto;
        grid-template-rows: auto auto;
        gap: var(--sp-2) var(--sp-3);
        align-items: center;
        padding: var(--sp-4) 0;
        border-bottom: 1px solid var(--clr-border);
    }

    /* Remove */
    .woocommerce-cart table.shop_table tbody td.product-remove {
        grid-column: 1; grid-row: 1 / 3;
        width: auto; padding: 0;
        display: flex; align-items: center; justify-content: center;
    }

    /* Thumbnail */
    .woocommerce-cart table.shop_table tbody td.product-thumbnail {
        grid-column: 2; grid-row: 1 / 3;
        width: auto; padding: 0;
    }
    .woocommerce-cart table.shop_table tbody td.product-thumbnail img { width: 64px; height: 80px; }

    /* Name */
    .woocommerce-cart table.shop_table tbody td.product-name {
        grid-column: 3; grid-row: 1;
        padding: 0;
    }

    /* Price (hide on mobile — shown in subtotal) */
    .woocommerce-cart table.shop_table tbody td.product-price { display: none; }

    /* Quantity */
    .woocommerce-cart table.shop_table tbody td.product-quantity {
        grid-column: 3; grid-row: 2;
        padding: 0;
    }
    .woocommerce-cart table.shop_table tbody td.product-quantity .qty { width: 64px; }

    /* Subtotal */
    .woocommerce-cart table.shop_table tbody td.product-subtotal {
        grid-column: 4; grid-row: 1;
        padding: 0;
        text-align: right;
        font-weight: var(--fw-semibold);
        font-size: var(--fs-sm);
    }

    /* Actions row */
    .woocommerce-cart table.shop_table tbody td.actions {
        grid-column: 1 / -1; grid-row: auto;
        flex-wrap: wrap;
        border-top: none;
    }

    /* Totals box */
    .cart_totals { padding: var(--sp-6); }

    /* ── Checkout ── */
    .woocommerce-billing-fields,
    .woocommerce-shipping-fields,
    .woocommerce-additional-fields { padding: var(--sp-5); }

    .woocommerce-checkout .form-row.form-row-first,
    .woocommerce-checkout .form-row.form-row-last {
        float: none;
        width: 100%;
        margin-right: 0;
    }
}

@media (max-width: 414px) {
    /* Single product: smaller gaps */
    .woocommerce div.product { padding: var(--sp-4) 0 var(--sp-10); gap: var(--sp-4); }

    /* Cart card: tighter */
    .woocommerce-cart table.shop_table tbody tr.woocommerce-cart-form__cart-item {
        grid-template-columns: 36px 64px 1fr auto;
    }
    .woocommerce-cart table.shop_table tbody td.product-thumbnail img { width: 56px; height: 72px; }

    /* Related: 2 cols tighter */
    .woocommerce .related.products ul.products,
    .woocommerce .upsells.products ul.products { gap: var(--sp-3); }

    /* Checkout fields */
    .woocommerce-billing-fields,
    .woocommerce-shipping-fields,
    .woocommerce-additional-fields { padding: var(--sp-4); }
    .woocommerce-checkout-review-order { padding: var(--sp-4); }
    #payment { padding: var(--sp-4); }
}
