/* ============================================================
   Swift Elementor — WooCommerce Compatibility Styles
   Covers: single product page, cart page, checkout page.
   Uses CSS custom properties set by the Customizer (base.css).
   All cart/checkout rules are scoped to body classes so they
   only fire on the relevant pages, not site-wide.
   ============================================================ */


/* ══════════════════════════════════════════════════════════════
   SINGLE PRODUCT PAGE
   ══════════════════════════════════════════════════════════════ */

/* ── 2-column grid: [image left] [summary right] ──
   !important on every property to beat WooCommerce + Elementor overrides. */
.woocommerce div.product {
    display: grid !important;
    grid-template-columns: minmax(0, 45%) minmax(0, 1fr) !important;
    gap: 2.5rem 3.5rem !important;
    align-items: start !important;
    padding: 2rem 0 3rem !important;
}

/* Gallery — always column 1, row 1 */
.woocommerce div.product .woocommerce-product-gallery {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 100% !important;
}

/* Summary — always column 2, row 1 */
.woocommerce div.product .summary.entry-summary,
.woocommerce div.product div.entry-summary {
    grid-column: 2 !important;
    grid-row: 1 !important;
    width: 100% !important;
}

/* Tabs, related, upsells — span full width below */
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .wc-tabs-wrapper {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    width: 100% !important;
}

.woocommerce div.product section.related,
.woocommerce div.product .related.products,
.woocommerce div.product .up-sells.upsells,
.woocommerce div.product .upsells.products {
    grid-column: 1 / -1 !important;
    width: 100% !important;
}

@media (max-width: 900px) {
    .woocommerce div.product {
        grid-template-columns: 1fr !important;
        gap: 1.5rem !important;
    }
    .woocommerce div.product .woocommerce-product-gallery,
    .woocommerce div.product .summary.entry-summary,
    .woocommerce div.product div.entry-summary,
    .woocommerce div.product .woocommerce-tabs,
    .woocommerce div.product section.related,
    .woocommerce div.product .related.products {
        grid-column: 1 !important;
        grid-row: auto !important;
    }
}

/* ── Gallery ── */
.woocommerce div.product .woocommerce-product-gallery {
    position: sticky;
    top: 1.5rem;
}

.woocommerce div.product .woocommerce-product-gallery__wrapper {
    border-radius: 12px;
    overflow: hidden;
    background: #f5f5f5;
}

.woocommerce div.product .woocommerce-product-gallery__image img {
    border-radius: 12px;
    width: 100%;
    height: auto;
    display: block;
}

.woocommerce div.product .flex-control-thumbs {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    padding: 10px 0 0;
    list-style: none;
    margin: 0;
}

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

.woocommerce div.product .flex-control-thumbs img {
    border-radius: 6px;
    border: 2px solid transparent;
    cursor: pointer;
    transition: border-color 0.15s;
}

.woocommerce div.product .flex-control-thumbs .flex-active {
    border-color: var(--swift-accent, #cc1f1f);
}

/* ── Summary (right column) ── */
.woocommerce div.product .summary {
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* Breadcrumb */
.woocommerce .woocommerce-breadcrumb {
    font-size: 0.8125rem;
    color: #888;
    margin-bottom: 0.75rem;
}

.woocommerce .woocommerce-breadcrumb a {
    color: #888;
    text-decoration: none;
}

.woocommerce .woocommerce-breadcrumb a:hover {
    color: var(--swift-accent, #cc1f1f);
}

/* Product title */
.woocommerce div.product .product_title {
    font-family: var(--swift-font-heading, 'Syne', sans-serif);
    font-size: clamp(1.5rem, 3vw, 2.1rem);
    font-weight: 800;
    color: var(--swift-text, #161616);
    line-height: 1.18;
    letter-spacing: -0.025em;
    margin: 0 0 0.75rem;
    text-transform: uppercase;
}

/* Category */
.woocommerce div.product .posted_in {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 0.5rem;
}

.woocommerce div.product .posted_in a {
    color: var(--swift-accent, #cc1f1f);
    text-decoration: none;
}

/* Rating */
.woocommerce div.product .woocommerce-product-rating {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 1.25rem;
}

.woocommerce div.product .star-rating {
    font-size: 0.9rem;
    color: #f5a623;
}

.woocommerce div.product .woocommerce-review-link {
    font-size: 0.8125rem;
    color: #888;
}

/* Price */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    font-family: var(--swift-font-body, 'Jost', sans-serif);
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--swift-text, #161616);
    margin-bottom: 1.25rem;
    line-height: 1;
    display: block;
}

.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
    color: #aaa;
    font-weight: 400;
    font-size: 1.1rem;
    margin-right: 6px;
}

.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins {
    text-decoration: none;
    color: var(--swift-accent, #cc1f1f);
}

/* Short description */
.woocommerce div.product .woocommerce-product-details__short-description {
    font-size: 0.9375rem;
    line-height: 1.65;
    color: #555;
    margin-bottom: 1.5rem;
    border-top: 1px solid #ebebeb;
    padding-top: 1.25rem;
}

/* ── Variations ── */
.woocommerce div.product .variations {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 1.25rem;
}

.woocommerce div.product .variations td,
.woocommerce div.product .variations th {
    padding: 0 0 0.75rem;
    vertical-align: middle;
}

.woocommerce div.product .variations .label label {
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #555;
    white-space: nowrap;
    padding-right: 1rem;
}

.woocommerce div.product .variations select {
    width: 100%;
    padding: 10px 14px;
    border: 1.5px solid #ddd;
    border-radius: 8px;
    font-family: var(--swift-font-body, 'Jost', sans-serif);
    font-size: 0.9375rem;
    color: var(--swift-text, #161616);
    background: #fff;
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
    transition: border-color 0.15s;
}

.woocommerce div.product .variations select:focus {
    outline: none;
    border-color: var(--swift-accent, #cc1f1f);
    box-shadow: 0 0 0 3px rgba(204, 31, 31, 0.08);
}

.woocommerce div.product .reset_variations {
    font-size: 0.8125rem;
    color: #888;
    text-decoration: underline;
    cursor: pointer;
    margin-top: 4px;
    display: inline-block;
}

/* ── Quantity + Add to Cart row ── */
.woocommerce div.product form.cart {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
    padding: 1.1rem 0;
    border-top: 1px solid #ebebeb;
    border-bottom: 1px solid #ebebeb;
}

.woocommerce div.product form.cart .quantity {
    display: flex;
    align-items: center;
}

/* Bigger qty input */
.woocommerce div.product form.cart .qty {
    width: 96px;
    padding: 11px 10px;
    border: 1.5px solid #ddd;
    border-radius: 8px;
    font-family: var(--swift-font-body, 'Jost', sans-serif);
    font-size: 1rem;
    font-weight: 600;
    text-align: center;
    color: var(--swift-text, #161616);
    transition: border-color 0.15s;
}

.woocommerce div.product form.cart .qty:focus {
    outline: none;
    border-color: var(--swift-accent, #cc1f1f);
}

/* Smaller, refined Add to Cart button */
.woocommerce div.product form.cart .single_add_to_cart_button,
.woocommerce div.product form.cart button[type="submit"] {
    flex: 1;
    min-width: 160px;
    padding: 11px 22px;
    background: var(--swift-accent, #cc1f1f);
    color: #fff !important;
    border: none;
    border-radius: 8px;
    font-family: var(--swift-font-body, 'Jost', sans-serif);
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.2s, transform 0.1s;
    line-height: 1;
}

.woocommerce div.product form.cart .single_add_to_cart_button:hover {
    background: var(--swift-accent-hover, #a81818);
}

.woocommerce div.product form.cart .single_add_to_cart_button:active {
    transform: scale(0.985);
}

.woocommerce div.product form.cart .single_add_to_cart_button.loading::after {
    border-color: rgba(255,255,255,.35);
    border-top-color: #fff;
}

/* ── Product meta (SKU, categories) — hide tags ── */
.woocommerce div.product .product_meta {
    font-size: 0.8125rem;
    color: #888;
    line-height: 2;
    margin-top: 1.25rem;
}

.woocommerce div.product .product_meta span {
    display: block;
}

.woocommerce div.product .product_meta a {
    color: var(--swift-accent, #cc1f1f);
    text-decoration: none;
}

/* Hide product tags row — all possible WC selectors */
.woocommerce div.product .tagged_as,
.woocommerce div.product .product_meta .tagged_as,
.woocommerce .product_meta span.tagged_as {
    display: none !important;
}

/* Hide currency switcher anywhere on product page */
.woocommerce div.product .yay-currency-switcher,
.woocommerce div.product .yaycs-switcher,
.woocommerce div.product [class*="yay-currency"],
.woocommerce div.product [class*="yaycurrency"],
.woocommerce div.product .wcml-currency-switcher,
.woocommerce div.product .currency_switcher,
body.single-product .yay-currency-switcher,
body.single-product [class*="yay-currency"]:not(.woocommerce-Price-currencySymbol),
body.single-product .wcml-currency-switcher {
    display: none !important;
}

/* ── Single/Pack Variation Buttons (PCD-style on single product page) ──
   These are output by inc/woocommerce.php hook and styled to match shop cards. */
.swift-spb {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}

.swift-spb__btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 16px;
    border: 1.5px solid #d4d4d4;
    border-radius: 6px;
    background: #fff;
    font-family: var(--swift-font-body, 'Jost', sans-serif);
    font-size: 0.8125rem;
    font-weight: 600;
    color: #444;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
    line-height: 1.2;
}

.swift-spb__btn--active {
    border-color: #111;
    color: #111;
    background: #fff;
}

.swift-spb__btn:hover:not(.swift-spb__btn--active) {
    border-color: #999;
}

.swift-spb__badge {
    font-size: 10px;
    font-weight: 700;
    background: var(--swift-accent, #cc1f1f);
    color: #fff;
    border-radius: 99px;
    padding: 2px 7px;
    letter-spacing: 0.3px;
    text-transform: uppercase;
}

/* WooCommerce variation swatches — style to match PCD buttons */
.woocommerce div.product .variations_form .variations td.value {
    display: flex !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
}

/* Style existing WC variation select like a clean dropdown */
.woocommerce div.product .variations select {
    min-width: 180px;
    padding: 10px 14px;
    border: 1.5px solid #ddd;
    border-radius: 8px;
    font-family: var(--swift-font-body, 'Jost', sans-serif);
    font-size: 0.9375rem;
    color: var(--swift-text, #161616);
    background: #fff;
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
    transition: border-color 0.15s;
}

/* ── Tabs (Description, Reviews) ── */
.woocommerce div.product .woocommerce-tabs {
    grid-column: 1 / -1;
    margin-top: 2rem;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
    display: flex;
    gap: 0;
    border-bottom: 2px solid #ebebeb;
    padding: 0;
    margin: 0 0 1.5rem;
    list-style: none;
}

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

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    display: block;
    padding: 10px 22px;
    font-family: var(--swift-font-body, 'Jost', sans-serif);
    font-size: 0.875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #888;
    text-decoration: none;
    border-bottom: 3px solid transparent;
    margin-bottom: -2px;
    transition: color 0.15s, border-color 0.15s;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
    color: var(--swift-accent, #cc1f1f);
    border-bottom-color: var(--swift-accent, #cc1f1f);
}

.woocommerce div.product .woocommerce-tabs .panel {
    font-size: 0.9375rem;
    line-height: 1.7;
    color: #444;
}

/* ── Related / Upsells — full-width 4-col grid ── */
.woocommerce .related.products,
.woocommerce .up-sells.upsells.products,
.woocommerce .up-sells.upsells {
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 1px solid #ebebeb;
    clear: both;
    width: 100%;
}

.woocommerce .related.products > h2,
.woocommerce .up-sells > h2 {
    font-family: var(--swift-font-heading, 'Syne', sans-serif);
    font-size: 1.1rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--swift-text, #161616);
    margin-bottom: 1.5rem;
    padding-bottom: 0.75rem;
    border-bottom: 2px solid #ebebeb;
}

/* 4-column inline grid for related products */
.woocommerce .related.products ul.products,
.woocommerce .up-sells ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 20px !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    clear: both !important;
}

.woocommerce .related.products ul.products li.product,
.woocommerce .up-sells ul.products li.product {
    margin: 0 !important;
    float: none !important;
    width: auto !important;
    background: #fff;
    border: 1px solid #f0f0f0;
    border-radius: 10px;
    overflow: hidden;
    transition: box-shadow 0.18s;
    padding: 0 0 14px !important;
}

.woocommerce .related.products ul.products li.product:hover,
.woocommerce .up-sells ul.products li.product:hover {
    box-shadow: 0 4px 18px rgba(0,0,0,.08);
}

/* Product image in related card */
.woocommerce .related.products ul.products li.product a img,
.woocommerce .up-sells ul.products li.product a img {
    width: 100% !important;
    height: 180px !important;
    object-fit: cover !important;
    border-radius: 0 !important;
    display: block !important;
    margin-bottom: 12px !important;
}

/* Product title in related card */
.woocommerce .related.products ul.products li.product .woocommerce-loop-product__title,
.woocommerce .up-sells ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.3px !important;
    color: var(--swift-text, #161616) !important;
    padding: 0 12px !important;
    margin: 0 0 6px !important;
    line-height: 1.4 !important;
}

/* Price in related card */
.woocommerce .related.products ul.products li.product .price,
.woocommerce .up-sells ul.products li.product .price {
    font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    color: var(--swift-text, #161616) !important;
    padding: 0 12px !important;
    display: block !important;
    margin-bottom: 10px !important;
}

/* Add to cart button in related card */
.woocommerce .related.products ul.products li.product .button,
.woocommerce .up-sells ul.products li.product .button {
    display: block !important;
    margin: 0 12px !important;
    text-align: center !important;
    padding: 9px 14px !important;
    font-size: 11px !important;
    letter-spacing: 1px !important;
    border-radius: 6px !important;
    font-weight: 700 !important;
    font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
    background: var(--swift-accent, #cc1f1f) !important;
    color: #fff !important;
    border: none !important;
    transition: background 0.18s !important;
}

.woocommerce .related.products ul.products li.product .button:hover,
.woocommerce .up-sells ul.products li.product .button:hover {
    background: var(--swift-accent-hover, #a81818) !important;
}

@media (max-width: 900px) {
    .woocommerce .related.products ul.products,
    .woocommerce .up-sells ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 480px) {
    .woocommerce .related.products ul.products,
    .woocommerce .up-sells ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px !important;
    }
}

/* ── Stock status ── */
.woocommerce div.product .stock {
    font-size: 0.875rem;
    font-weight: 600;
    padding: 6px 12px;
    border-radius: 99px;
    display: inline-block;
    margin-bottom: 1rem;
}

.woocommerce div.product .in-stock {
    background: #f0fdf4;
    color: #1a7f37;
}

.woocommerce div.product .out-of-stock {
    background: #fef2f2;
    color: #cc1f1f;
}


/* ══════════════════════════════════════════════════════════════
   CART PAGE (body.woocommerce-cart)
   2-column layout: product list left │ order summary right
   ══════════════════════════════════════════════════════════════ */

body.woocommerce-cart .woocommerce {
    font-family: var(--swift-font-body, 'Jost', sans-serif);
}

/* ── Desktop 2-column grid ── */
@media (min-width: 768px) {
    body.woocommerce-cart .woocommerce {
        display: grid !important;
        grid-template-columns: 1fr 400px !important;
        gap: 0 2rem !important;
        align-items: start !important;
    }
    body.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper {
        grid-column: 1 / -1 !important;
        grid-row: 1 !important;
    }
    body.woocommerce-cart .woocommerce > form.woocommerce-cart-form {
        grid-column: 1 !important;
        grid-row: 2 !important;
    }
    body.woocommerce-cart .woocommerce > .cart-collaterals {
        grid-column: 2 !important;
        grid-row: 2 !important;
        margin-top: 0 !important;
    }
}

/* ══ CART TABLE ══ */
body.woocommerce-cart table.shop_table {
    border-collapse: separate !important;
    border-spacing: 0 !important;
    width: 100%;
    border: 1.5px solid #ebebeb;
    border-radius: 12px;
    overflow: hidden;
    font-family: var(--swift-font-body, 'Jost', sans-serif);
    background: #fff;
    box-shadow: 0 1px 8px rgba(0,0,0,.04);
}

/* Table header row */
body.woocommerce-cart table.shop_table thead tr {
    background: #111 !important;
}

body.woocommerce-cart table.shop_table thead th {
    background: #111 !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em !important;
    color: rgba(255,255,255,.65) !important;
    padding: 13px 14px !important;
    border-bottom: none !important;
    text-align: left !important;
    white-space: nowrap !important;
}

/* Remove & thumbnail columns: no header label */
body.woocommerce-cart table.shop_table thead th.product-remove,
body.woocommerce-cart table.shop_table thead th.product-thumbnail {
    width: 1px !important;
    padding: 0 !important;
}

/* Product name header aligned with the name cell */
body.woocommerce-cart table.shop_table thead th.product-name {
    padding-left: 0 !important;
}

/* Price / subtotal right-aligned in header */
body.woocommerce-cart table.shop_table thead th.product-price,
body.woocommerce-cart table.shop_table thead th.product-subtotal {
    text-align: right !important;
}

/* Body rows */
body.woocommerce-cart table.shop_table tbody tr {
    transition: background 0.15s;
}
body.woocommerce-cart table.shop_table tbody tr:hover {
    background: #fafafa;
}

body.woocommerce-cart table.shop_table td {
    padding: 14px 14px !important;
    border-bottom: 1px solid #f0f0f0 !important;
    vertical-align: middle !important;
    font-size: 13px;
    color: #444;
}

body.woocommerce-cart table.shop_table tbody tr:last-child td {
    border-bottom: none !important;
}

/* ── Remove button cell ── */
body.woocommerce-cart table.shop_table td.product-remove {
    padding: 14px 6px 14px 14px !important;
    width: 32px !important;
    text-align: center !important;
}

body.woocommerce-cart table.shop_table a.remove {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 22px !important;
    height: 22px !important;
    border-radius: 50% !important;
    border: 1.5px solid #ddd !important;
    background: transparent !important;
    color: #aaa !important;
    font-size: 14px !important;
    line-height: 1 !important;
    text-decoration: none !important;
    transition: background 0.15s, border-color 0.15s, color 0.15s !important;
}

body.woocommerce-cart table.shop_table a.remove:hover {
    background: var(--swift-accent, #cc1f1f) !important;
    border-color: var(--swift-accent, #cc1f1f) !important;
    color: #fff !important;
}

/* ── Product thumbnail cell ── */
body.woocommerce-cart table.shop_table td.product-thumbnail {
    padding: 14px 10px 14px 0 !important;
    width: 60px !important;
}

body.woocommerce-cart table.shop_table .product-thumbnail img {
    width: 56px !important;
    height: 56px !important;
    object-fit: cover !important;
    border-radius: 8px !important;
    border: 1px solid #eee !important;
    display: block !important;
}

/* ── Product name cell — LEFT aligned ── */
body.woocommerce-cart table.shop_table td.product-name {
    text-align: left !important;
    padding-left: 0 !important;
}

body.woocommerce-cart table.shop_table td.product-name a {
    color: var(--swift-text, #161616) !important;
    font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    text-decoration: none !important;
    display: block !important;
    line-height: 1.4 !important;
}

body.woocommerce-cart table.shop_table td.product-name a:hover {
    color: var(--swift-accent, #cc1f1f) !important;
}

/* Variation data under product name */
body.woocommerce-cart table.shop_table td.product-name .variation {
    font-size: 11px !important;
    color: #888 !important;
    margin-top: 4px !important;
}

/* ── Price cell ── */
body.woocommerce-cart table.shop_table td.product-price {
    text-align: right !important;
    color: #666 !important;
    font-size: 13px !important;
    white-space: nowrap !important;
}

/* ── Quantity cell ── */
body.woocommerce-cart table.shop_table td.product-quantity {
    text-align: center !important;
}

body.woocommerce-cart .quantity .qty {
    width: 58px !important;
    padding: 7px 8px !important;
    border: 1.5px solid #e0e0e0 !important;
    border-radius: 6px !important;
    font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-align: center !important;
    color: var(--swift-text, #161616) !important;
    background: #fff !important;
}

body.woocommerce-cart .quantity .qty:focus {
    outline: none !important;
    border-color: var(--swift-accent, #cc1f1f) !important;
}

/* ── Subtotal cell ── */
body.woocommerce-cart table.shop_table td.product-subtotal {
    text-align: right !important;
    white-space: nowrap !important;
}

body.woocommerce-cart table.shop_table td.product-subtotal .woocommerce-Price-amount {
    font-weight: 700 !important;
    font-size: 13px !important;
    color: var(--swift-text, #161616) !important;
}

/* ── Actions row (below table) — hide coupon, keep Update Cart ── */
body.woocommerce-cart .actions {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;  /* update cart right-aligned */
    gap: 10px !important;
    padding: 14px 0 0 !important;
    border-top: none !important;
}

/* Coupon: hidden from left (moved to cart totals box by PHP) */
body.woocommerce-cart .actions .coupon {
    display: none !important;
}

body.woocommerce-cart button[name="update_cart"] {
    background: transparent !important;
    color: #888 !important;
    border: 1.5px solid #e0e0e0 !important;
    border-radius: 6px !important;
    font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    padding: 8px 16px !important;
    cursor: pointer !important;
    transition: border-color 0.15s, color 0.15s !important;
}

body.woocommerce-cart button[name="update_cart"]:hover {
    border-color: #aaa !important;
    color: #555 !important;
}


/* ══ CART TOTALS CARD ══ */
body.woocommerce-cart .cart-collaterals {
    margin-top: 0;
    display: block;
}

body.woocommerce-cart .cart_totals {
    width: 100%;
    max-width: none;
    background: #fff;
    border: 1.5px solid #ebebeb;
    border-radius: 12px;
    overflow: visible; /* NOT hidden — prevents clipping of content */
    box-shadow: 0 2px 16px rgba(0,0,0,.06);
    position: sticky;
    top: 1.5rem;
    padding: 0;
    /* Use clip-path on the heading instead of overflow:hidden on the card */
}

/* Totals heading — dark bar at top with its own rounded corners */
body.woocommerce-cart .cart_totals h2 {
    font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em !important;
    color: rgba(255,255,255,.9) !important;
    background: #111 !important;
    margin: 0 !important;
    padding: 14px 20px !important;
    border-radius: 10px 10px 0 0 !important;
}

/* Totals table — no overflow issues */
body.woocommerce-cart .cart_totals table {
    width: 100%;
    border-collapse: collapse;
    margin: 0;
    table-layout: fixed !important; /* prevent cells from overflowing */
}

/* All th/td base style */
body.woocommerce-cart .cart_totals table th,
body.woocommerce-cart .cart_totals table td {
    padding: 12px 20px !important;
    font-size: 13px !important;
    border-bottom: 1px solid #f2f2f2 !important;
    vertical-align: top !important;
    font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
}

/* Label column (th) */
body.woocommerce-cart .cart_totals table th {
    font-weight: 600 !important;
    color: #888 !important;
    width: 38% !important;
    white-space: nowrap !important;
}

/* Value column (td) — default LEFT aligned, specific rows get right */
body.woocommerce-cart .cart_totals table td {
    color: var(--swift-text, #161616) !important;
    text-align: left !important;
}

/* Subtotal row — right align the price */
body.woocommerce-cart .cart_totals table .cart-subtotal td {
    text-align: right !important;
    font-weight: 600 !important;
}

/* Shipping row — left-align, compact address text */
body.woocommerce-cart .cart_totals table .woocommerce-shipping-totals td {
    font-size: 12px !important;
    color: #555 !important;
    line-height: 1.5 !important;
    text-align: left !important;
}

/* Shipping address list under "Free shipping" */
body.woocommerce-cart .cart_totals .woocommerce-shipping-destination,
body.woocommerce-cart .cart_totals ul.woocommerce-shipping-destination {
    list-style: none !important;
    padding: 0 !important;
    margin: 3px 0 4px !important;
    font-size: 11px !important;
    color: #aaa !important;
    line-height: 1.4 !important;
}

/* "Change address" link */
body.woocommerce-cart .cart_totals .shipping-calculator-button {
    font-size: 11px !important;
    color: var(--swift-accent, #cc1f1f) !important;
    text-decoration: none !important;
    display: inline-block !important;
    margin-top: 2px !important;
    font-weight: 600 !important;
}

body.woocommerce-cart .cart_totals .shipping-calculator-button:hover {
    text-decoration: underline !important;
}

/* Shipping calculator form */
body.woocommerce-cart .cart_totals .shipping-calculator-form {
    margin-top: 8px !important;
    font-size: 12px !important;
}

/* Order total row */
body.woocommerce-cart .cart_totals table tr.order-total {
    background: rgba(204,31,31,.03) !important;
}

body.woocommerce-cart .cart_totals table .order-total th {
    font-size: 13px !important;
    font-weight: 700 !important;
    color: #111 !important;
    border-bottom: none !important;
    padding-top: 15px !important;
    padding-bottom: 15px !important;
    vertical-align: middle !important;
}

body.woocommerce-cart .cart_totals table .order-total td {
    font-size: 22px !important;
    font-weight: 800 !important;
    color: var(--swift-accent, #cc1f1f) !important;
    border-bottom: none !important;
    padding-top: 15px !important;
    padding-bottom: 15px !important;
    text-align: right !important;
    vertical-align: middle !important;
}

/* ── Coupon box inside cart totals (injected by PHP hook) ── */
.swift-cart-coupon {
    padding: 14px 22px !important;
    border-top: 1px solid #f2f2f2 !important;
    background: #fafafa !important;
}

.swift-cart-coupon__label {
    font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    color: #888 !important;
    margin: 0 0 8px !important;
}

.swift-cart-coupon__form {
    margin: 0 !important;
}

.swift-cart-coupon__row {
    display: flex !important;
    gap: 6px !important;
}

.swift-cart-coupon .input-text {
    flex: 1 !important;
    min-width: 0 !important;
    padding: 9px 12px !important;
    border: 1.5px solid #e0e0e0 !important;
    border-radius: 6px !important;
    font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
    font-size: 13px !important;
    background: #fff !important;
    color: var(--swift-text, #161616) !important;
    transition: border-color 0.15s !important;
}

.swift-cart-coupon .input-text:focus {
    outline: none !important;
    border-color: var(--swift-accent, #cc1f1f) !important;
    box-shadow: 0 0 0 3px rgba(204,31,31,.08) !important;
}

.swift-cart-coupon .button {
    flex-shrink: 0 !important;
    background: var(--swift-accent, #cc1f1f) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 6px !important;
    font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    padding: 9px 14px !important;
    cursor: pointer !important;
    transition: background 0.15s !important;
    display: inline-flex !important;
    align-items: center !important;
    min-height: 0 !important;
}

.swift-cart-coupon .button:hover {
    background: var(--swift-accent-hover, #a81818) !important;
}

/* ── Proceed to Checkout button ── */
body.woocommerce-cart .wc-proceed-to-checkout {
    padding: 16px 22px 20px !important;
    margin: 0 !important;
    border-top: 1px solid #f2f2f2 !important;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
body.woocommerce-cart a.checkout-button.button.alt {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    text-align: center !important;
    background: var(--swift-accent, #cc1f1f) !important;
    color: #fff !important;
    border-radius: 8px !important;
    font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    letter-spacing: 1.2px !important;
    text-transform: uppercase !important;
    padding: 16px 20px !important;
    text-decoration: none !important;
    border: none !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    box-shadow: 0 4px 14px rgba(204,31,31,.3) !important;
    transition: background 0.18s, box-shadow 0.18s !important;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
    background: var(--swift-accent-hover, #a81818) !important;
    box-shadow: 0 6px 18px rgba(204,31,31,.35) !important;
    color: #fff !important;
}

/* Mobile */
@media (max-width: 767px) {
    body.woocommerce-cart .woocommerce {
        display: block !important;
    }
    body.woocommerce-cart .cart-collaterals {
        margin-top: 20px;
    }
    body.woocommerce-cart .cart_totals {
        position: static;
    }
}


/* ══════════════════════════════════════════════════════════════
   CHECKOUT PAGE (body.woocommerce-checkout)
   2-column layout: billing/shipping left │ order review right
   Theme accent (#cc1f1f) applied throughout for brand cohesion.
   ══════════════════════════════════════════════════════════════ */

body.woocommerce-checkout .woocommerce {
    font-family: var(--swift-font-body, 'Jost', sans-serif);
}

/* ── Desktop 2-column grid ── */
@media (min-width: 768px) {
    body.woocommerce-checkout form.woocommerce-checkout {
        display: grid !important;
        grid-template-columns: 1fr 440px !important;
        gap: 2rem !important;
        align-items: start !important;
    }
    body.woocommerce-checkout form.woocommerce-checkout > * {
        grid-column: 1 !important;
    }
    body.woocommerce-checkout form.woocommerce-checkout #customer_details {
        grid-column: 1 !important;
        grid-row: 1 !important;
    }
    body.woocommerce-checkout form.woocommerce-checkout #order_review {
        grid-column: 2 !important;
        grid-row: 1 !important;
        position: sticky !important;
        top: 1.5rem !important;
    }
    body.woocommerce-checkout #customer_details .col-1,
    body.woocommerce-checkout #customer_details .col-2 {
        float: none !important;
        width: 100% !important;
        margin-right: 0 !important;
    }
    body.woocommerce-checkout #customer_details .col-2 {
        margin-top: 1.5rem !important;
    }
}

@media (max-width: 767px) {
    body.woocommerce-checkout form.woocommerce-checkout {
        display: block !important;
    }
    body.woocommerce-checkout #customer_details .col-1,
    body.woocommerce-checkout #customer_details .col-2 {
        float: none !important;
        width: 100% !important;
        margin-right: 0 !important;
    }
}

/* ── Billing / Shipping cards ── */
body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout #customer_details .col-2 {
    float: none !important;
    width: 100% !important;
    background: #fff !important;
    border: 1.5px solid #ebebeb !important;
    border-radius: 12px !important;
    padding: 24px 24px 20px !important;
    box-sizing: border-box !important;
    box-shadow: 0 1px 8px rgba(0,0,0,.04) !important;
}

/* ── Section headings with red left accent bar ── */
body.woocommerce-checkout .woocommerce h3,
body.woocommerce-checkout #customer_details h3,
body.woocommerce-checkout h3#ship-to-different-address,
body.woocommerce-checkout h3#order_review_heading {
    font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    color: var(--swift-text, #161616) !important;
    margin: 0 0 18px !important;
    padding: 0 0 12px 14px !important;
    border-bottom: 1px solid #f0f0f0 !important;
    border-left: 3px solid var(--swift-accent, #cc1f1f) !important;
    line-height: 1.4 !important;
}

/* ── Form field rows ── */
body.woocommerce-checkout .woocommerce form .form-row {
    margin-bottom: 14px !important;
}

/* Half-width rows (first name / last name etc) */
body.woocommerce-checkout .form-row-first {
    float: left !important;
    width: 48% !important;
    margin-right: 4% !important;
    clear: left !important;
}

body.woocommerce-checkout .form-row-last {
    float: right !important;
    width: 48% !important;
    margin-right: 0 !important;
}

body.woocommerce-checkout .form-row-wide {
    float: none !important;
    width: 100% !important;
    clear: both !important;
}

@media (max-width: 480px) {
    body.woocommerce-checkout .form-row-first,
    body.woocommerce-checkout .form-row-last {
        float: none !important;
        width: 100% !important;
        margin-right: 0 !important;
        clear: both !important;
    }
}

/* Field labels */
body.woocommerce-checkout .woocommerce form .form-row label {
    display: block !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    color: #888 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.07em !important;
    margin-bottom: 5px !important;
    font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
}

/* Text inputs / selects */
body.woocommerce-checkout .woocommerce form .form-row input.input-text,
body.woocommerce-checkout .woocommerce form .form-row textarea,
body.woocommerce-checkout .woocommerce form .form-row select {
    width: 100% !important;
    padding: 11px 13px !important;
    border: 1.5px solid #e8e8e8 !important;
    border-radius: 7px !important;
    font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
    font-size: 13px !important;
    color: var(--swift-text, #161616) !important;
    background: #fff !important;
    box-sizing: border-box !important;
    transition: border-color 0.15s, box-shadow 0.15s !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}

body.woocommerce-checkout .woocommerce form .form-row input.input-text:focus,
body.woocommerce-checkout .woocommerce form .form-row textarea:focus,
body.woocommerce-checkout .woocommerce form .form-row select:focus {
    outline: none !important;
    border-color: var(--swift-accent, #cc1f1f) !important;
    box-shadow: 0 0 0 3px rgba(204,31,31,.08) !important;
}

/* Required star */
body.woocommerce-checkout .woocommerce form .form-row .required {
    color: var(--swift-accent, #cc1f1f) !important;
}

/* Ship-to checkbox + label */
body.woocommerce-checkout #ship-to-different-address label {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    cursor: pointer !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: var(--swift-text, #161616) !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

body.woocommerce-checkout #ship-to-different-address input[type="checkbox"] {
    accent-color: var(--swift-accent, #cc1f1f) !important;
    width: 16px !important;
    height: 16px !important;
}

/* Order notes */
body.woocommerce-checkout .woocommerce-additional-fields h3 {
    margin-top: 8px !important;
}

/* ── Notices / info banners ── */
body.woocommerce-checkout .woocommerce-info,
body.woocommerce-checkout .woocommerce-message {
    border-radius: 8px !important;
    border-left: 4px solid var(--swift-accent, #cc1f1f) !important;
    font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
    font-size: 13px !important;
    margin-bottom: 18px !important;
    padding: 12px 16px !important;
}

body.woocommerce-checkout .woocommerce-info a {
    color: var(--swift-accent, #cc1f1f) !important;
    font-weight: 600 !important;
}

/* Login / coupon toggle forms */
body.woocommerce-checkout .woocommerce-form-login,
body.woocommerce-checkout .checkout_coupon {
    background: #fafafa !important;
    border: 1.5px solid #ebebeb !important;
    border-radius: 8px !important;
    padding: 16px 20px !important;
    margin-bottom: 18px !important;
    font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
}

body.woocommerce-checkout .woocommerce-form-login button,
body.woocommerce-checkout .checkout_coupon button {
    background: var(--swift-accent, #cc1f1f) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 6px !important;
    font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
    font-weight: 700 !important;
    font-size: 12px !important;
    padding: 10px 18px !important;
    cursor: pointer !important;
    transition: background 0.15s !important;
}

body.woocommerce-checkout .woocommerce-form-login button:hover,
body.woocommerce-checkout .checkout_coupon button:hover {
    background: var(--swift-accent-hover, #a81818) !important;
}

/* ══ RIGHT COLUMN: Order Review ══ */

/* Wrap the order review in a card */
body.woocommerce-checkout #order_review {
    background: #fff !important;
    border: 1.5px solid #ebebeb !important;
    border-radius: 12px !important;
    overflow: visible !important; /* Don't clip — use border-radius on children */
    box-shadow: 0 2px 16px rgba(0,0,0,.06) !important;
}

/* Heading inside the card */
body.woocommerce-checkout h3#order_review_heading {
    background: #111 !important;
    color: rgba(255,255,255,.9) !important;
    border-left: none !important;
    border-bottom: none !important;
    padding: 14px 22px !important;
    margin: 0 !important;
    font-size: 11px !important;
    letter-spacing: 0.12em !important;
    border-radius: 10px 10px 0 0 !important; /* round top corners since parent is overflow:visible */
}

/* Order review table */
body.woocommerce-checkout table.woocommerce-checkout-review-order-table {
    width: 100% !important;
    border-collapse: collapse !important;
    table-layout: fixed !important;
    background: #fff !important;
    border: none !important;
    border-radius: 0 !important;
    overflow: visible !important;
    font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
    margin: 0 !important;
    word-wrap: break-word !important;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table thead th {
    background: #f8f8f8 !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    color: #aaa !important;
    padding: 11px 22px !important;
    text-align: left !important;
    border-bottom: 1px solid #f0f0f0 !important;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table thead th:last-child {
    text-align: right !important;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table td {
    padding: 11px 22px !important;
    font-size: 13px !important;
    border-bottom: 1px solid #f2f2f2 !important;
    vertical-align: middle !important;
    color: #444 !important;
    font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-name {
    font-weight: 600 !important;
    color: var(--swift-text, #161616) !important;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-total {
    text-align: right !important;
    font-weight: 700 !important;
    color: var(--swift-text, #161616) !important;
}

/* Subtotal / shipping rows */
body.woocommerce-checkout table.woocommerce-checkout-review-order-table .cart-subtotal td,
body.woocommerce-checkout table.woocommerce-checkout-review-order-table .woocommerce-shipping-totals td {
    text-align: right !important;
    color: #666 !important;
    font-size: 12px !important;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table .cart-subtotal th,
body.woocommerce-checkout table.woocommerce-checkout-review-order-table .woocommerce-shipping-totals th {
    color: #888 !important;
    font-weight: 600 !important;
    font-size: 12px !important;
}

/* Order total row */
body.woocommerce-checkout table.woocommerce-checkout-review-order-table .order-total {
    background: rgba(204,31,31,.03) !important;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table .order-total th {
    font-size: 13px !important;
    font-weight: 700 !important;
    color: #111 !important;
    border-bottom: none !important;
    padding-top: 14px !important;
    padding-bottom: 14px !important;
}

body.woocommerce-checkout table.woocommerce-checkout-review-order-table .order-total td {
    font-size: 20px !important;
    font-weight: 800 !important;
    color: var(--swift-accent, #cc1f1f) !important;
    border-bottom: none !important;
    padding-top: 14px !important;
    padding-bottom: 14px !important;
    text-align: right !important;
}

/* ── Payment section ── */
body.woocommerce-checkout #payment {
    background: #fff !important;
    border: none !important;
    border-top: 1px solid #f0f0f0 !important;
    border-radius: 0 !important;
    padding: 18px 22px 20px !important;
    font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
}

body.woocommerce-checkout #payment ul.payment_methods {
    list-style: none !important;
    margin: 0 0 14px !important;
    padding: 0 !important;
    border: 1.5px solid #ebebeb !important;
    border-radius: 8px !important;
    overflow: hidden !important;
}

body.woocommerce-checkout #payment ul.payment_methods li {
    padding: 12px 16px !important;
    border-bottom: 1px solid #f0f0f0 !important;
    font-size: 13px !important;
    color: #444 !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
}

body.woocommerce-checkout #payment ul.payment_methods li:last-child {
    border-bottom: none !important;
}

body.woocommerce-checkout #payment ul.payment_methods li input[type="radio"] {
    accent-color: var(--swift-accent, #cc1f1f) !important;
    width: 16px !important;
    height: 16px !important;
    flex-shrink: 0 !important;
    cursor: pointer !important;
}

body.woocommerce-checkout #payment ul.payment_methods li label {
    font-weight: 600 !important;
    color: var(--swift-text, #161616) !important;
    cursor: pointer !important;
    font-size: 13px !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    flex: 1 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
}

/* PayPal / card logos inside label */
body.woocommerce-checkout #payment ul.payment_methods li label img {
    max-height: 22px !important;
    width: auto !important;
    vertical-align: middle !important;
}

body.woocommerce-checkout #payment .payment_box {
    background: rgba(204,31,31,.04) !important;
    border-left: 3px solid var(--swift-accent, #cc1f1f) !important;
    border-radius: 0 6px 6px 0 !important;
    padding: 10px 14px !important;
    margin: 0 0 0 26px !important;
    font-size: 12px !important;
    color: #555 !important;
    line-height: 1.55 !important;
    width: calc(100% - 26px) !important;
}

/* Privacy policy notice */
body.woocommerce-checkout #payment .woocommerce-privacy-policy-text {
    font-size: 11px !important;
    color: #aaa !important;
    line-height: 1.5 !important;
    margin: 0 0 12px !important;
}

body.woocommerce-checkout #payment .woocommerce-privacy-policy-text a {
    color: var(--swift-accent, #cc1f1f) !important;
}

/* ── Place Order button ── */
body.woocommerce-checkout #place_order,
body.woocommerce-checkout button#place_order,
body.woocommerce-checkout #place_order.button.alt {
    display: block !important;
    width: 100% !important;
    background: var(--swift-accent, #cc1f1f) !important;
    background-image: none !important;
    color: #fff !important;
    border: none !important;
    border-radius: 8px !important;
    font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 1.4px !important;
    text-transform: uppercase !important;
    padding: 16px 24px !important;
    cursor: pointer !important;
    transition: background 0.18s, box-shadow 0.18s !important;
    margin-top: 0 !important;
    box-shadow: 0 4px 14px rgba(204,31,31,.28) !important;
    line-height: 1 !important;
}

body.woocommerce-checkout #place_order:hover,
body.woocommerce-checkout button#place_order:hover {
    background: var(--swift-accent-hover, #a81818) !important;
    box-shadow: 0 6px 18px rgba(204,31,31,.35) !important;
}


/* ══════════════════════════════════════════════════════════════
   GLOBAL WC BUTTON OVERRIDES (non-cart/checkout pages)
   ══════════════════════════════════════════════════════════════ */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
    background-color: var(--swift-accent, #cc1f1f) !important;
    color: #fff !important;
    border-radius: 6px !important;
    font-family: var(--swift-font-body, 'Jost', sans-serif) !important;
    font-weight: 700 !important;
    border: none !important;
    transition: background 0.18s !important;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
    background-color: var(--swift-accent-hover, #a81818) !important;
    color: #fff !important;
}

/* ── Notices (global) ── */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    font-family: var(--swift-font-body, 'Jost', sans-serif);
}


/* ══════════════════════════════════════════════════════════════
   SHOP / ARCHIVE PAGE
   ══════════════════════════════════════════════════════════════ */

/* ── Toolbar (result count + ordering) ── */
.woocommerce .woocommerce-products-header {
    margin-bottom: 0.75rem;
}

.woocommerce .woocommerce-products-header__title.page-title {
    font-family: var(--swift-font-heading, 'Syne', sans-serif);
    font-size: clamp(1.4rem, 3vw, 2rem);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.02em;
    color: var(--swift-text, #161616);
    margin-bottom: 1.5rem;
}

/* Row that holds result-count + ordering */
.woocommerce .woocommerce-ordering,
.woocommerce .woocommerce-result-count {
    font-family: var(--swift-font-body, 'Jost', sans-serif);
}

.woocommerce nav.woocommerce-ordering {
    float: right;
    margin-bottom: 1.5rem;
}

.woocommerce p.woocommerce-result-count {
    float: left;
    margin-bottom: 1.5rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: #888;
    line-height: 42px; /* vertically align with the select */
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

/* ── Default-sorting dropdown ── */
.woocommerce .woocommerce-ordering select,
.woocommerce-page .woocommerce-ordering select {
    /* reset */
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;

    /* layout */
    display: inline-block;
    padding: 10px 40px 10px 14px;
    min-width: 180px;

    /* visual */
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23555' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 13px center;
    background-size: 11px;
    border: 1.5px solid #e0e0e0;
    border-radius: 8px;

    /* typography */
    font-family: var(--swift-font-body, 'Jost', sans-serif);
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--swift-text, #161616);
    letter-spacing: 0.02em;

    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s;
    line-height: 1.4;
}

.woocommerce .woocommerce-ordering select:focus,
.woocommerce-page .woocommerce-ordering select:focus {
    outline: none;
    border-color: var(--swift-accent, #cc1f1f);
    box-shadow: 0 0 0 3px rgba(204, 31, 31, 0.08);
}

.woocommerce .woocommerce-ordering select:hover {
    border-color: #bbb;
}

/* ── Shop page notices (e.g. "Product added to cart") ── */
.woocommerce-shop .woocommerce-message,
.post-type-archive-product .woocommerce-message {
    border-radius: 8px;
    border-left: 4px solid var(--swift-accent, #cc1f1f);
    font-family: var(--swift-font-body, 'Jost', sans-serif);
    font-size: 0.875rem;
    padding: 12px 18px;
    margin-bottom: 1.25rem;
}

/* ── Category / sub-category tiles (if displayed) ── */
.woocommerce ul.products li.product-category .woocommerce-loop-category__title {
    font-family: var(--swift-font-heading, 'Syne', sans-serif);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.9375rem;
    color: var(--swift-text, #161616);
}

/* ── Pagination ── */
.woocommerce nav.woocommerce-pagination {
    clear: both;
    margin-top: 2.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid #ebebeb;
    text-align: center;
}

.woocommerce nav.woocommerce-pagination ul {
    display: inline-flex;
    gap: 4px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.woocommerce nav.woocommerce-pagination ul li {
    display: inline-flex;
}

.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: 38px;
    height: 38px;
    padding: 0 10px;
    border: 1.5px solid #e0e0e0;
    border-radius: 8px;
    font-family: var(--swift-font-body, 'Jost', sans-serif);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--swift-text, #161616);
    text-decoration: none;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
    background: #fff;
    line-height: 1;
}

.woocommerce nav.woocommerce-pagination ul li a:hover {
    border-color: var(--swift-accent, #cc1f1f);
    color: var(--swift-accent, #cc1f1f);
    background: #fff8f8;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--swift-accent, #cc1f1f);
    border-color: var(--swift-accent, #cc1f1f);
    color: #fff;
}

/* ── "No products found" message ── */
.woocommerce .woocommerce-info.woocommerce-no-products-found {
    text-align: center;
    padding: 3rem 2rem;
    border: 1px dashed #e0e0e0;
    border-radius: 10px;
    background: #fafafa;
    font-size: 0.9375rem;
    color: #888;
    border-left-color: #e0e0e0;
}

/* ── Clearfix for toolbar ── */
.woocommerce .woocommerce-ordering::after,
.woocommerce-page .woocommerce-ordering::after {
    content: '';
    display: table;
    clear: both;
}

@media (max-width: 600px) {
    .woocommerce nav.woocommerce-ordering {
        float: none;
        display: block;
        margin-bottom: 1rem;
    }
    .woocommerce p.woocommerce-result-count {
        float: none;
        line-height: 1.4;
        margin-bottom: 0.5rem;
        display: block;
    }
    .woocommerce .woocommerce-ordering select,
    .woocommerce-page .woocommerce-ordering select {
        width: 100%;
    }
}


/* ══════════════════════════════════════════════════════════════
   COMPREHENSIVE MOBILE RESPONSIVENESS
   All breakpoints for every WooCommerce page
   ══════════════════════════════════════════════════════════════ */

/* ────────────────────────────────────────────
   SINGLE PRODUCT PAGE — Mobile
   ──────────────────────────────────────────── */
@media (max-width: 767px) {

    /* Product title smaller */
    .woocommerce div.product .product_title {
        font-size: clamp(1.3rem, 6vw, 1.7rem) !important;
        margin-bottom: 0.5rem !important;
    }

    /* Price */
    .woocommerce div.product p.price,
    .woocommerce div.product span.price {
        font-size: 1.5rem !important;
        margin-bottom: 1rem !important;
    }

    /* Short description */
    .woocommerce div.product .woocommerce-product-details__short-description {
        font-size: 0.875rem !important;
        margin-bottom: 1.25rem !important;
    }

    /* Gallery: remove sticky on mobile */
    .woocommerce div.product .woocommerce-product-gallery {
        position: static !important;
    }

    /* ATC form: stack qty above button on very small screens */
    .woocommerce div.product form.cart {
        gap: 8px !important;
        padding: 0.9rem 0 !important;
    }

    .woocommerce div.product form.cart .qty {
        width: 80px !important;
        padding: 10px 8px !important;
    }

    .woocommerce div.product form.cart .single_add_to_cart_button,
    .woocommerce div.product form.cart button[type="submit"] {
        flex: 1 1 auto !important;
        min-width: 0 !important;
        padding: 12px 16px !important;
        font-size: 0.8125rem !important;
    }

    /* Single/Pack variation toggle */
    .swift-spb {
        gap: 6px !important;
    }

    .swift-spb__btn {
        padding: 8px 14px !important;
        font-size: 0.8125rem !important;
        flex: 1 !important;
        justify-content: center !important;
    }

    /* Variation select */
    .woocommerce div.product .variations select {
        font-size: 0.875rem !important;
        padding: 10px 12px !important;
    }

    /* Tabs: smaller text */
    .woocommerce div.product .woocommerce-tabs ul.tabs li a {
        padding: 10px 14px !important;
        font-size: 0.8125rem !important;
    }

    /* Product meta */
    .woocommerce div.product .product_meta {
        font-size: 0.75rem !important;
    }

    /* Reviews */
    .woocommerce div.product .woocommerce-tabs .panel {
        font-size: 0.875rem !important;
    }
}

@media (max-width: 480px) {

    /* Gallery thumbnails: smaller */
    .woocommerce div.product .flex-control-thumbs li {
        width: 56px !important;
    }

    /* ATC: full-width button on tiny screens */
    .woocommerce div.product form.cart {
        flex-wrap: wrap !important;
    }

    .woocommerce div.product form.cart .quantity {
        flex: 0 0 auto !important;
    }

    .woocommerce div.product form.cart .single_add_to_cart_button,
    .woocommerce div.product form.cart button[type="submit"] {
        flex: 1 1 100% !important;
        width: 100% !important;
    }

    /* Single/Pack: each button full-width on tiny screens */
    .swift-spb {
        flex-direction: column !important;
    }

    .swift-spb__btn {
        width: 100% !important;
    }
}

/* Related products: 2-col on mobile already handled above; extra tweaks */
@media (max-width: 767px) {
    .woocommerce .related.products,
    .woocommerce .up-sells.upsells.products {
        margin-top: 2rem !important;
        padding-top: 1.5rem !important;
    }

    .woocommerce .related.products > h2,
    .woocommerce .up-sells > h2 {
        font-size: 0.9375rem !important;
        margin-bottom: 1rem !important;
    }

    .woocommerce .related.products ul.products li.product a img,
    .woocommerce .up-sells ul.products li.product a img {
        height: 140px !important;
    }
}


/* ────────────────────────────────────────────
   CART PAGE — Mobile
   ──────────────────────────────────────────── */
@media (max-width: 767px) {

    /* Scrollable table */
    body.woocommerce-cart .woocommerce-cart-form {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    body.woocommerce-cart table.shop_table td {
        padding: 10px 10px !important;
    }

    body.woocommerce-cart table.shop_table .product-thumbnail img {
        width: 48px !important;
        height: 48px !important;
    }

    body.woocommerce-cart .quantity .qty {
        width: 52px !important;
        padding: 6px 6px !important;
    }

    /* Cart totals: update padding to match mobile */
    body.woocommerce-cart .cart_totals table th,
    body.woocommerce-cart .cart_totals table td {
        padding: 11px 16px !important;
    }

    body.woocommerce-cart .cart_totals table .order-total th,
    body.woocommerce-cart .cart_totals table .order-total td {
        padding: 13px 16px !important;
    }

    .swift-cart-coupon {
        padding: 12px 16px !important;
    }

    body.woocommerce-cart .wc-proceed-to-checkout {
        padding: 14px 16px 18px !important;
    }
}


/* ────────────────────────────────────────────
   CHECKOUT PAGE — Mobile
   ──────────────────────────────────────────── */
@media (max-width: 767px) {

    /* Section headings */
    body.woocommerce-checkout .woocommerce h3,
    body.woocommerce-checkout .woocommerce h3#ship-to-different-address,
    body.woocommerce-checkout .woocommerce h3#order_review_heading {
        font-size: 13px !important;
        margin-bottom: 12px !important;
    }

    /* Billing/shipping boxes */
    body.woocommerce-checkout #customer_details .col-1,
    body.woocommerce-checkout #customer_details .col-2 {
        padding: 16px !important;
    }

    /* Form labels */
    body.woocommerce-checkout .woocommerce form .form-row label {
        font-size: 10px !important;
        margin-bottom: 4px !important;
    }

    /* Form inputs — larger tap target */
    body.woocommerce-checkout .woocommerce form .form-row input.input-text,
    body.woocommerce-checkout .woocommerce form .form-row textarea,
    body.woocommerce-checkout .woocommerce form .form-row select {
        padding: 12px 12px !important;
        font-size: 14px !important;
    }

    /* Half-width fields → full width on mobile */
    body.woocommerce-checkout .woocommerce form .form-row-first,
    body.woocommerce-checkout .woocommerce form .form-row-last {
        float: none !important;
        width: 100% !important;
        margin-right: 0 !important;
        clear: both !important;
    }

    /* Order review */
    body.woocommerce-checkout table.woocommerce-checkout-review-order-table td,
    body.woocommerce-checkout table.woocommerce-checkout-review-order-table thead th {
        padding: 10px 12px !important;
        font-size: 13px !important;
    }

    /* Payment section */
    body.woocommerce-checkout #payment {
        padding: 16px !important;
    }

    body.woocommerce-checkout #payment ul.payment_methods li {
        padding: 10px 0 !important;
        font-size: 14px !important;
    }

    /* Place Order */
    body.woocommerce-checkout #place_order,
    body.woocommerce-checkout button#place_order {
        padding: 16px 20px !important;
        font-size: 14px !important;
        letter-spacing: 1px !important;
    }

    /* Login/coupon toggle boxes */
    body.woocommerce-checkout .woocommerce-form-login,
    body.woocommerce-checkout .checkout_coupon {
        padding: 14px 16px !important;
        font-size: 13px !important;
    }
}


/* ────────────────────────────────────────────
   SHOP / ARCHIVE PAGE — Mobile
   ──────────────────────────────────────────── */
@media (max-width: 767px) {

    /* Shop page title */
    .woocommerce .woocommerce-products-header__title.page-title {
        font-size: clamp(1.2rem, 5vw, 1.6rem) !important;
        margin-bottom: 1rem !important;
    }

    /* Toolbar: stack count + sort */
    .woocommerce nav.woocommerce-ordering {
        float: none !important;
        display: block !important;
        margin-bottom: 0.75rem !important;
    }

    .woocommerce p.woocommerce-result-count {
        float: none !important;
        line-height: 1.4 !important;
        margin-bottom: 0.5rem !important;
        display: block !important;
        font-size: 0.75rem !important;
    }

    .woocommerce .woocommerce-ordering select,
    .woocommerce-page .woocommerce-ordering select {
        width: 100% !important;
        font-size: 0.8125rem !important;
    }

    /* Pagination: smaller buttons */
    .woocommerce nav.woocommerce-pagination ul li a,
    .woocommerce nav.woocommerce-pagination ul li span {
        min-width: 34px !important;
        height: 34px !important;
        font-size: 0.8125rem !important;
    }
}


/* ────────────────────────────────────────────
   GLOBAL WC ELEMENTS — Mobile touch tweaks
   ──────────────────────────────────────────── */
@media (max-width: 767px) {

    /* All WC buttons: minimum touch target height */
    .woocommerce a.button,
    .woocommerce button.button,
    .woocommerce input.button,
    .woocommerce #respond input#submit {
        min-height: 44px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 0.8125rem !important;
    }

    /* Quantity inputs */
    .woocommerce .quantity .qty {
        min-height: 44px !important;
        font-size: 1rem !important;
    }

    /* WooCommerce info/message notices */
    .woocommerce-message a.button,
    .woocommerce-info a.button {
        display: block !important;
        width: 100% !important;
        text-align: center !important;
        margin-bottom: 8px !important;
    }

    /* Tables: prevent overflow */
    .woocommerce table {
        display: block !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    /* But keep cart/checkout tables properly displayed */
    body.woocommerce-cart table.shop_table,
    body.woocommerce-checkout table.woocommerce-checkout-review-order-table {
        display: table !important;
        width: 100% !important;
        overflow-x: visible !important;
    }
}
