@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
/* Always-visible product action icons (cart / wishlist / quick-view / compare) */
.product-block .group-buttons {
    opacity: 1 !important;
    visibility: visible !important;
}


/* Hide category thumbnails on the front-end (Mr Timothy: minimalist look) */
.cat-image { display: none !important; }
.item-cat .cat-name,
.item-cat .cat-info { margin-top: 0; }


/* Service request modal fix — keep modal scrollable + visible above sticky header */
#serviceModal { padding: 32px 16px; align-items: center; overflow-y: auto; }
/* iotr-modal-box-center */
#serviceModal .modal-box {
    margin: auto;
    max-height: calc(100vh - 32px);
    overflow-y: auto;
    padding: 28px 28px 24px !important;
}
#serviceModal .modal-box .close-modal {
    position: sticky;
    top: 0;
    float: right;
    background: #fff;
    z-index: 2;
}
#serviceModal .modal-box #modalServiceTitle {
    margin-top: 0;
    padding-right: 32px;
}


/* Hide broken carousel in injected footer (slides stack vertically and clip the intro text) */
#tbay-footer .elementor-element-0d71582 { display: none !important; }


/* Mobile cart badge + Lightning Deals slim-down */
html body .mini-cart-items {
    background-color: #008050 !important;
    color: #fff !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    min-width: 16px !important;
    height: 16px !important;
    line-height: 16px !important;
    padding: 0 4px !important;
    border-radius: 10px !important;
    text-align: center !important;
    display: inline-block !important;
}
@media (max-width: 767px) {
    .top-flash-sale-wrapper { padding: 8px 12px !important; }
    .top-flash-sale-wrapper .heading-tbay-title { margin-bottom: 6px !important; }
    .top-flash-sale-wrapper .heading-tbay-title .title { font-size: 16px !important; line-height: 1.2 !important; }
    .top-flash-sale-wrapper .flash-sales-date { padding: 4px 8px !important; }
    .top-flash-sale-wrapper .date-title { font-size: 12px !important; }
    .top-flash-sale-wrapper .tbay-countdown { font-size: 13px !important; height: auto !important; }
}


/* =====================================================================
   IoT Robotics Store — Design System v1 (Phase 4, 2026-09-17)
   Lives at the end of Appearance → Customize → Additional CSS.
   To roll back: delete everything from this banner down.
   ===================================================================== */
:root {
    --iotr-primary: #008050;        /* action green — white text 5.0:1 */
    --iotr-primary-hover: #006b43;
    --iotr-primary-tint: #e8f5ef;
    --iotr-accent: #c2410c;         /* deals / sale only — white text 5.2:1 */
    --iotr-ink: #0f172a;            /* headings */
    --iotr-text: #334155;           /* body copy */
    --iotr-muted: #64748b;
    --iotr-border: #e2e8f0;
    --iotr-surface: #f6f8f9;
    --iotr-card: #ffffff;
    --iotr-radius: 10px;
    --iotr-radius-sm: 8px;
    --iotr-shadow: 0 1px 2px rgba(15, 23, 42, .05);
    --iotr-shadow-hover: 0 8px 24px rgba(15, 23, 42, .08);
    --iotr-font: "Inter", "Open Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --tb-text-primary-font: var(--iotr-font);
}

/* ---------- Base typography ---------- */
body {
    font-family: var(--iotr-font);
    color: var(--iotr-text);
    background-color: var(--iotr-surface);
    -webkit-font-smoothing: antialiased;
}
body h1, body h2, body h3, body h4, body h5, body h6 {
    font-family: var(--iotr-font);
    color: var(--iotr-ink);
    letter-spacing: -0.01em;
}
body h1, body h2 { font-weight: 700; }
body h3, body h4 { font-weight: 600; }
body a:hover { color: var(--iotr-primary); }

/* ---------- Buttons ---------- */
body .button,
body button.button,
body input[type="submit"],
body .elementor-button,
body .single_add_to_cart_button,
body .checkout-button,
body #place_order {
    font-family: var(--iotr-font);
    font-weight: 600;
    border-radius: var(--iotr-radius-sm);
    transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
body .single_add_to_cart_button,
body .checkout-button,
body #place_order {
    background-color: var(--iotr-primary) !important;
    border-color: var(--iotr-primary) !important;
    color: #fff !important;
}
body .single_add_to_cart_button:hover,
body .checkout-button:hover,
body #place_order:hover {
    background-color: var(--iotr-primary-hover) !important;
    border-color: var(--iotr-primary-hover) !important;
}

/* ---------- Product cards ---------- */
body .product-block.grid {
    background: var(--iotr-card);
    border: 1px solid var(--iotr-border);
    border-radius: var(--iotr-radius);
    box-shadow: var(--iotr-shadow);
    overflow: hidden;
    transition: border-color .15s ease, box-shadow .15s ease;
}
body .product-block.grid:hover {
    border-color: #b7dcc9;
    box-shadow: var(--iotr-shadow-hover);
}
body .product-block.grid .image img {
    aspect-ratio: 1 / 1;
    object-fit: contain;
    background: #fff;
}
body .product-block .caption { padding: 10px 14px 14px; }
body .product-block .name {
    font-family: var(--iotr-font);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--iotr-ink);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: calc(1.4em * 2);
}
body .product-block .name a { color: inherit; }
body .product-block .name a:hover { color: var(--iotr-primary); }
body .product-block .price {
    font-size: 16px;
    font-weight: 700;
    color: var(--iotr-ink);
}
body .product-block .price del { color: var(--iotr-muted); font-weight: 400; font-size: 13px; }
body .product-block .price ins { text-decoration: none; }
/* No reviews yet → hide the empty star row instead of showing "0" */
body .product-block .rating.no-rate { display: none; }

/* ---------- Badges ---------- */
body .onsale,
body .product-block .onsale {
    background: var(--iotr-accent);
    color: #fff;
    border-radius: 4px;
    font-weight: 700;
    font-size: 11px;
    letter-spacing: .02em;
    text-transform: uppercase;
}
body .featured,
body .product-block .featured { border-radius: 4px; }

/* ---------- Forms ---------- */
body input[type="text"],
body input[type="email"],
body input[type="tel"],
body input[type="number"],
body input[type="password"],
body input[type="search"],
body textarea,
body select {
    border-radius: var(--iotr-radius-sm);
    border-color: #cbd5e1;
}
body input:focus,
body textarea:focus,
body select:focus {
    border-color: var(--iotr-primary);
    box-shadow: 0 0 0 3px var(--iotr-primary-tint);
    outline: none;
}

/* ---------- Accessibility: visible keyboard focus ---------- */
body a:focus-visible,
body button:focus-visible,
body .button:focus-visible,
body input[type="submit"]:focus-visible {
    outline: 2px solid var(--iotr-primary);
    outline-offset: 2px;
}

/* ---------- Mobile header (was orange) ---------- */
@media (max-width: 1199px) {
    body .topbar-device-mobile,
    body .tbay_header-template-mobile,
    body #tbay-mobile-app-header {
        border-bottom: 1px solid var(--iotr-border);
    }
}
/* ================= end Design System v1 ================= */


/* ===================== Shop & category pages v1 (Phase 7) ===================== */
/* Product cards: finish what Besa's more specific rules overrode in v1 */
body .products .product-block.grid,
body .product-block.grid {
    border-color: var(--iotr-border) !important;
    border-radius: var(--iotr-radius) !important;
}
body .product-block .name,
body .product-block .name a {
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--iotr-ink) !important;
}
body .product-block .price,
body .product-block .price .amount {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: var(--iotr-ink) !important;
}
body .product-block .price del,
body .product-block .price del .amount { font-size: 13px !important; font-weight: 400 !important; color: var(--iotr-muted) !important; }
body .product-block .price ins,
body .product-block .price ins .amount { color: var(--iotr-accent) !important; text-decoration: none; }
body .product-block .image img { transition: transform .2s ease; }
body .product-block.grid:hover .image img { transform: scale(1.03); }

/* Action icons under the image: consistent, tappable */
body .product-block .group-buttons > div > a,
body .product-block .group-buttons .yith-wcwl-add-to-wishlist-button {
    border-radius: 8px !important;
}

/* Archive header / breadcrumb band */
body.woocommerce .tbay-breadscrumb,
body.archive .tbay-breadscrumb {
    background-color: #fff !important;
    border-bottom: 1px solid var(--iotr-border);
}
body .tbay-breadscrumb .page-title,
body.woocommerce .page-title {
    color: var(--iotr-ink);
    font-weight: 700;
    letter-spacing: -0.01em;
}

/* Toolbar: result count + sorting */
body .woocommerce-result-count { color: var(--iotr-muted); font-size: 14px; }
body .woocommerce-ordering select,
body .tbay-filter select {
    border: 1px solid #cbd5e1;
    border-radius: var(--iotr-radius-sm);
    min-height: 40px;
    padding: 0 12px;
    background-color: #fff;
}

/* Filter sidebar (HUSKY) */
body.woocommerce .sidebar .widget {
    background: #fff;
    border: 1px solid var(--iotr-border);
    border-radius: var(--iotr-radius);
    padding: 18px 18px 8px;
}
body.woocommerce .sidebar .widget .widget { border: 0; padding: 0; background: transparent; }
body .sidebar .woof_container { padding: 0 0 14px; margin: 0 0 14px; border-bottom: 1px solid var(--iotr-border); }
body .sidebar .woof_container:last-child { border-bottom: 0; }
body .sidebar .woof_container h4 {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--iotr-ink);
    margin: 0 0 10px;
}
body .sidebar .woof_list label { font-size: 14px; color: var(--iotr-text); }
body .sidebar .woof_submit_search_form_container .button,
body .sidebar .woof_reset_search_form {
    border-radius: var(--iotr-radius-sm) !important;
}
body .irs--round .irs-bar,
body .irs--round .irs-from,
body .irs--round .irs-to,
body .irs--round .irs-single { background-color: var(--iotr-primary) !important; }
body .irs--round .irs-handle { border-color: var(--iotr-primary) !important; }

/* Pagination */
body .woocommerce-pagination ul.page-numbers { border: 0; display: flex; gap: 6px; justify-content: center; }
body .woocommerce-pagination ul.page-numbers li { border: 0 !important; }
body .woocommerce-pagination .page-numbers a,
body .woocommerce-pagination .page-numbers span {
    min-width: 40px; height: 40px; line-height: 40px; padding: 0 10px;
    border: 1px solid var(--iotr-border) !important; border-radius: var(--iotr-radius-sm);
    background: #fff; color: var(--iotr-text); font-weight: 600;
}
body .woocommerce-pagination .page-numbers span.current,
body .woocommerce-pagination .page-numbers a:hover {
    background: var(--iotr-primary) !important; border-color: var(--iotr-primary) !important; color: #fff !important;
}

/* Category description: readable measure */
body .term-description,
body .woocommerce-products-header__description { max-width: 820px; color: var(--iotr-text); line-height: 1.65; }

@media (max-width: 767px) {
    body .product-block .caption { padding: 8px 10px 12px; }
    body .product-block .name, body .product-block .name a { font-size: 13px !important; }
    body .product-block .price, body .product-block .price .amount { font-size: 15px !important; }
}

/* Category header: keep products above the fold (Phase 7) */
body .woocommerce-products-header > img { width: 100%; max-height: 180px; height: 180px; object-fit: cover; border-radius: var(--iotr-radius); margin: 8px 0 14px; display: block; }
body .woocommerce-products-header > br { display: none; }
body .woocommerce-products-header { margin-bottom: 18px; }
@media (max-width: 767px) { body .woocommerce-products-header > img { height: 120px; max-height: 120px; } body .woocommerce-products-header .term-description { font-size: 14px; } }

/* Toolbar: hide Besa's duplicate 'Sort by: Recent Products' and the category jump-select (no 'All' option; showed the wrong category). WooCommerce sorting, result count and grid/list switch remain. */
body .tbay-filter form.woocommerce-fillter { display: none !important; }
body .tbay-filter .main-filter { align-items: center; gap: 12px; }
/* ===================== end Shop & category pages v1 ===================== */


/* ===================== Product page v1 (Phase 8) ===================== */
/* Title + price */
body.single-product .product_title,
body.single-product h1.product_title {
    font-size: clamp(22px, 2.4vw, 30px) !important;
    line-height: 1.25 !important;
    font-weight: 700 !important;
    color: var(--iotr-ink) !important;
    letter-spacing: -0.015em;
}
body.single-product .summary .price,
body.single-product .summary .price .amount {
    font-size: 26px !important;
    font-weight: 800 !important;
    color: var(--iotr-ink) !important;
}
body.single-product .summary .price ins .amount { color: var(--iotr-accent) !important; }
body.single-product .summary .price del,
body.single-product .summary .price del .amount { font-size: 16px !important; font-weight: 400 !important; color: var(--iotr-muted) !important; }

/* Short description: readable, not grey-on-grey */
body.single-product .woocommerce-product-details__short-description,
body.single-product .woocommerce-product-details__short-description p {
    font-size: 15px !important;
    line-height: 1.6 !important;
    color: var(--iotr-text) !important;
}

/* Buy box: quantity + Add to Cart + Buy Now */
body.single-product .summary form.cart {
    padding: 16px 0;
    border-top: 1px solid var(--iotr-border);
    border-bottom: 1px solid var(--iotr-border);
}
body.single-product .summary .quantity {
    border: 1px solid #cbd5e1 !important;
    border-radius: var(--iotr-radius-sm) !important;
    min-height: 46px;
}
body.single-product .single_add_to_cart_button,
body.single-product .tbay-buy-now {
    min-height: 46px !important;
    padding: 0 26px !important;
    border-radius: var(--iotr-radius-sm) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    text-transform: none !important;
}
/* FIX: Buy Now had black text on the navy button */
body.single-product .tbay-buy-now,
body.single-product .tbay-buy-now span {
    color: #fff !important;
    background-color: var(--iotr-ink) !important;
    border-color: var(--iotr-ink) !important;
}
body.single-product .tbay-buy-now:hover { background-color: #1e293b !important; border-color: #1e293b !important; }
body.single-product .tbay-buy-now.disabled,
body.single-product .single_add_to_cart_button.disabled { opacity: .55; }

/* Stock + meta */
body.single-product .summary .stock { font-weight: 600; font-size: 14px; }
body.single-product .summary .stock.in-stock { color: var(--iotr-primary) !important; }
body.single-product .summary .stock.out-of-stock { color: var(--iotr-accent) !important; }
body.single-product .product_meta {
    font-size: 13px !important;
    line-height: 1.7 !important;
    color: var(--iotr-muted) !important;
}
body.single-product .product_meta > span { display: block; margin-bottom: 4px; }
body.single-product .product_meta a { color: var(--iotr-text) !important; }
body.single-product .product_meta a:hover { color: var(--iotr-primary) !important; }
/* Hide empty SKU line (52 of 64 products have no SKU yet) */
body.single-product .product_meta .sku_wrapper:has(.sku:empty) { display: none; }

/* Gallery */
body.single-product .woocommerce-product-gallery .flex-viewport,
body.single-product .woocommerce-product-gallery__wrapper {
    background: #fff;
    border: 1px solid var(--iotr-border);
    border-radius: var(--iotr-radius);
    overflow: hidden;
}
body.single-product .flex-control-thumbs li img {
    border: 1px solid var(--iotr-border);
    border-radius: 6px;
    opacity: .75;
}
body.single-product .flex-control-thumbs li img.flex-active,
body.single-product .flex-control-thumbs li img:hover { border-color: var(--iotr-primary); opacity: 1; }

/* Tabs */
body.single-product .woocommerce-tabs .tabs li,
body.single-product .woocommerce-tabs ul.tabs li a {
    border-radius: var(--iotr-radius-sm) var(--iotr-radius-sm) 0 0;
    font-weight: 600;
}
body.single-product .woocommerce-tabs ul.tabs li.active a { color: var(--iotr-primary) !important; }

/* Description content: readable measure, clear hierarchy */
body.single-product .woocommerce-Tabs-panel--description > p,
body.single-product .woocommerce-Tabs-panel--description > ul,
body.single-product .woocommerce-Tabs-panel--description > ol {
    max-width: 860px;
}
body.single-product .woocommerce-Tabs-panel--description p,
body.single-product .woocommerce-Tabs-panel--description li {
    font-size: 15px;
    line-height: 1.7;
    color: var(--iotr-text);
}
body.single-product .woocommerce-Tabs-panel--description h2 {
    font-size: 22px !important;
    margin: 32px 0 12px !important;
    padding-top: 20px;
    border-top: 1px solid var(--iotr-border);
}
body.single-product .woocommerce-Tabs-panel--description > h2:first-child { border-top: 0; padding-top: 0; margin-top: 0 !important; }
body.single-product .woocommerce-Tabs-panel--description h3 {
    font-size: 17px !important;
    margin: 22px 0 8px !important;
}
body.single-product .woocommerce-Tabs-panel--description ul { padding-left: 1.2em; }
body.single-product .woocommerce-Tabs-panel--description li { margin-bottom: 4px; }

/* Specification tables */
body.single-product .woocommerce-Tabs-panel table {
    width: 100%;
    max-width: 860px;
    border-collapse: separate !important;
    border-spacing: 0;
    border: 1px solid var(--iotr-border) !important;
    border-radius: var(--iotr-radius);
    overflow: hidden;
    margin: 12px 0 24px;
    font-size: 14px;
}
body.single-product .woocommerce-Tabs-panel table th,
body.single-product .woocommerce-Tabs-panel table td {
    border: 0 !important;
    border-bottom: 1px solid var(--iotr-border) !important;
    padding: 11px 16px !important;
    text-align: left;
    vertical-align: top;
}
body.single-product .woocommerce-Tabs-panel table tr:last-child th,
body.single-product .woocommerce-Tabs-panel table tr:last-child td { border-bottom: 0 !important; }
body.single-product .woocommerce-Tabs-panel table thead th,
body.single-product .woocommerce-Tabs-panel table tr:first-child th {
    background: var(--iotr-ink);
    color: #fff;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-size: 12px;
}
body.single-product .woocommerce-Tabs-panel table tbody tr:nth-child(even) td { background: var(--iotr-surface); }
body.single-product .woocommerce-Tabs-panel table td:first-child {
    width: 38%;
    font-weight: 600;
    color: var(--iotr-ink);
}

/* Related / upsells heading */
body.single-product .related > h2,
body.single-product .upsells > h2,
body.single-product .related .heading-tbay-title {
    font-size: 22px !important;
    font-weight: 700 !important;
    text-transform: none !important;
    color: var(--iotr-ink) !important;
}

@media (max-width: 767px) {
    body.single-product .summary .price, body.single-product .summary .price .amount { font-size: 22px !important; }
    body.single-product .woocommerce-Tabs-panel table { font-size: 13px; }
    body.single-product .woocommerce-Tabs-panel table th,
    body.single-product .woocommerce-Tabs-panel table td { padding: 9px 10px !important; }
    body.single-product .woocommerce-Tabs-panel table td:first-child { width: 42%; }
}
/* ===================== end Product page v1 ===================== */


/* ===================== Cart & checkout v1 (Phase 9) — styling only ===================== */
/* Shared buttons: replace Besa pill shapes with the design-system radius */
body.woocommerce-cart .checkout-button,
body.woocommerce-cart .coupon .button,
body.woocommerce-checkout #place_order,
body.woocommerce-checkout .woocommerce-form-coupon .button {
    border-radius: var(--iotr-radius-sm) !important;
    font-weight: 700 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}
body.woocommerce-cart .checkout-button,
body.woocommerce-checkout #place_order {
    min-height: 52px !important;
    font-size: 16px !important;
    width: 100%;
}

/* Cart table */
body.woocommerce-cart .woocommerce-cart-form .cart_item td { vertical-align: middle; border-color: var(--iotr-border) !important; }
body.woocommerce-cart .woocommerce-cart-form .product-name a { color: var(--iotr-ink); font-weight: 600; }
body.woocommerce-cart .woocommerce-cart-form .product-name a:hover { color: var(--iotr-primary); }
body.woocommerce-cart .woocommerce-cart-form .product-subtotal .amount { color: var(--iotr-ink) !important; font-weight: 700; }
body.woocommerce-cart .woocommerce-cart-form .quantity { border: 1px solid #cbd5e1 !important; border-radius: var(--iotr-radius-sm) !important; }
body.woocommerce-cart .coupon input.input-text { border-radius: var(--iotr-radius-sm) !important; min-height: 44px; }

/* Totals card (cart + checkout order review) */
body.woocommerce-cart .cart_totals,
body.woocommerce-checkout #order_review {
    background: #fff !important;
    border: 1px solid var(--iotr-border) !important;
    border-radius: var(--iotr-radius) !important;
    box-shadow: var(--iotr-shadow);
    padding: 20px !important;
}
body.woocommerce-cart .cart_totals h2,
body.woocommerce-checkout #order_review_heading {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: var(--iotr-ink) !important;
    text-transform: none !important;
}
body.woocommerce-cart .cart_totals table th,
body.woocommerce-cart .cart_totals table td,
body.woocommerce-checkout .woocommerce-checkout-review-order-table th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table td {
    border-color: var(--iotr-border) !important;
    color: var(--iotr-text);
    font-size: 14px;
}
body.woocommerce-cart .cart_totals .order-total th,
body.woocommerce-cart .cart_totals .order-total .amount,
body.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total .amount {
    color: var(--iotr-ink) !important;
    font-size: 18px !important;
    font-weight: 800 !important;
}

/* Checkout form */
body.woocommerce-checkout .woocommerce-billing-fields h3,
body.woocommerce-checkout .woocommerce-additional-fields h3,
body.woocommerce-checkout #payment-heading,
body.woocommerce-checkout form.checkout h3,
body.woocommerce-checkout .woocommerce-form-coupon-toggle ~ h3 {
    font-size: 18px;
    font-weight: 700;
    color: var(--iotr-ink);
    text-transform: none;
}
body.woocommerce-checkout .form-row label { font-weight: 600; font-size: 13px; color: var(--iotr-text); }
body.woocommerce-checkout .form-row .input-text,
body.woocommerce-checkout .form-row select,
body.woocommerce-checkout .select2-container .select2-selection--single {
    border: 1px solid #cbd5e1 !important;
    border-radius: var(--iotr-radius-sm) !important;
    min-height: 44px;
}
body.woocommerce-checkout .woocommerce-invalid .input-text,
body.woocommerce-checkout .woocommerce-invalid select { border-color: var(--iotr-accent) !important; }

/* Payment box */
body.woocommerce-checkout #payment {
    background: var(--iotr-surface) !important;
    border: 1px solid var(--iotr-border);
    border-radius: var(--iotr-radius);
}
body.woocommerce-checkout #payment ul.payment_methods { border-bottom-color: var(--iotr-border) !important; }
body.woocommerce-checkout #payment .wc_payment_method > label { font-weight: 700; color: var(--iotr-ink); }
body.woocommerce-checkout #payment div.payment_box {
    background: #fff !important;
    border: 1px solid var(--iotr-border);
    border-radius: var(--iotr-radius-sm);
    color: var(--iotr-text);
    font-size: 13px;
}
body.woocommerce-checkout #payment div.payment_box::before { display: none; }
body.woocommerce-checkout .woocommerce-privacy-policy-text,
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { font-size: 13px; color: var(--iotr-muted); }

/* Notices */
body .woocommerce-message,
body .woocommerce-info,
body .woocommerce-error {
    border-radius: var(--iotr-radius-sm);
    border-top-width: 0 !important;
    border-left: 4px solid var(--iotr-primary) !important;
    background: #fff !important;
    box-shadow: var(--iotr-shadow);
}
body .woocommerce-error { border-left-color: var(--iotr-accent) !important; }

@media (max-width: 767px) {
    body.woocommerce-cart .cart_totals,
    body.woocommerce-checkout #order_review { padding: 16px !important; }
}
/* ===================== end Cart & checkout v1 ===================== */


/* ===================== Mobile fixes v1 (Phase 12 QA) ===================== */
@media (max-width: 1199px) {
    /* Besa Theme Options custom CSS forces #0A1929 on the mobile header; the black logo was nearly invisible */
    body .topbar-device-mobile,
    body .topbar-device-mobile .mobile-logo-area { background-color: #ffffff !important; border-bottom: 1px solid var(--iotr-border); }
    body .topbar-device-mobile i,
    body .topbar-device-mobile > .active-mobile a,
    body .topbar-device-mobile .top-right-mobile a { color: var(--iotr-ink) !important; }
    /* Keep floating buttons clear of the 70px bottom navigation bar */
    body #ht-ctc-chat { bottom: 84px !important; }
    body .tbay-to-top-mobile { bottom: 162px !important; }
}
/* ===================== end Mobile fixes v1 ===================== */


/* ===================== Product gallery loading fix (2026-09-17) ===================== */
/* WooCommerce hides the gallery (opacity:0) until flexslider starts; until then every gallery image stacks full-size,
   creating a very tall blank area on slow connections. Show only the first image, visible, until the slider is ready. */
body.single-product .woocommerce-product-gallery{opacity:1!important}
body.single-product .woocommerce-product-gallery:not(:has(.flex-viewport)) .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:nth-child(n+2){display:none}
/* ===================== end Product gallery loading fix ===================== */


/* ===================== Header polish + colour harmonisation v1 (2026-09-17) ===================== */
/* Palette: navy ink #0f172a · slate text #334155 · muted #64748b · borders #e2e8f0/#cbd5e1
   action green #008050 · deals orange #c2410c (light #fdba74 on navy) · green on navy #86efac.
   Rollback: delete this block. */
:root{--iotr-ink-2:#1e293b;--iotr-muted-2:#94a3b8;--iotr-border-strong:#cbd5e1;--iotr-accent-soft:#fdba74;--iotr-primary-on-dark:#86efac}

/* ---- Header: single-line top bar, menu and icon row ---- */
.elementor-element-4ab37a3 p{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.elementor-element-4ab37a3,.elementor-element-4ab37a3 p{color:var(--iotr-text);font-size:13px;letter-spacing:.01em}
.elementor-element-3b84773 ul.elementor-nav-menu{flex-wrap:nowrap!important}
.elementor-element-3b84773 ul.elementor-nav-menu>li>a{white-space:nowrap;font-weight:600!important;letter-spacing:.01em;transition:color .15s ease}
.elementor-element-3b84773 ul.elementor-nav-menu>li>a:hover,
.elementor-element-3b84773 ul.elementor-nav-menu>li.current-menu-item>a,
.elementor-element-3b84773 ul.elementor-nav-menu>li.active>a{color:var(--iotr-primary-on-dark)!important}
.elementor-element-d03d4d4 *{white-space:nowrap}
.elementor-element-6091528>.elementor-widget-wrap{flex-wrap:nowrap!important;align-items:center!important;gap:22px}
.elementor-element-6091528 .elementor-element-2e41694{width:auto!important}
.count_wishlist,.mini-cart-items{background:var(--iotr-primary)!important;color:#fff!important}

/* Deals keep one accent colour everywhere */
.mm-listview li.flash-sale>a{color:var(--iotr-accent)!important}
.elementor-element-3b84773 li.flash-sale>a{color:var(--iotr-accent-soft)!important}
.elementor-element-3b84773 li.flash-sale>a:hover{color:#fff!important}
.flash-sales-date{background:var(--iotr-accent)!important}
.top-flash-sale-wrapper{background:var(--iotr-surface)!important}

/* ---- Product badges (outline style kept, brand colours) ---- */
.onsale .saled{color:var(--iotr-accent)!important;border-color:var(--iotr-accent)!important}
.onsale .featured{color:var(--iotr-primary)!important;border-color:var(--iotr-primary)!important}

/* ---- Product card controls & flash-sale cards ---- */
.group-buttons .qview-button,.group-buttons .yith-wcwl-add-to-wishlist-button,.group-buttons .compare{border-color:var(--iotr-border)!important;color:var(--iotr-text)!important}
.group-buttons .qview-button:hover,.group-buttons .yith-wcwl-add-to-wishlist-button:hover,.group-buttons .compare:hover{border-color:var(--iotr-primary)!important;color:var(--iotr-primary)!important}
.tbay-element-product-flash-sales .products-grid.product{border-color:var(--iotr-border)!important}
.tb-sold{color:var(--iotr-muted)!important}
.stock-flash-sale .progress{background:var(--iotr-border)!important}
.show-all{color:var(--iotr-text)!important;border-color:var(--iotr-border-strong)!important}
.show-all:hover{color:var(--iotr-primary)!important;border-color:var(--iotr-primary)!important}
#back-to-top{background:var(--iotr-ink)!important;color:#fff!important}

/* ---- Shop filters (price slider, category select) ---- */
.irs-line{background:var(--iotr-border)!important}
.irs-grid-pol{background:var(--iotr-border-strong)!important}
.irs-grid-text{color:var(--iotr-muted-2)!important}
.chosen-container .chosen-single,.chosen-container .chosen-search input{border-color:var(--iotr-border)!important;color:var(--iotr-text)!important}

/* ---- Cart / checkout neutrals ---- */
.cart_totals .shop_table th{color:var(--iotr-text)!important}
.continue-to-shop a,.woocommerce-shipping-destination{color:var(--iotr-muted)!important}
.continue-to-shop a:hover{color:var(--iotr-primary)!important}

/* ---- Contact page ---- */
.iot-contact-wrap p{color:var(--iotr-muted)!important}
.iot-custom-form-container label{color:var(--iotr-ink)!important}
.iot-contact-info{background:var(--iotr-surface)!important}

/* ---- Footer ---- */
.tbay-footer.footer-03{background:var(--iotr-card)!important}
.tbay-footer .heading-tbay-title .title{color:var(--iotr-ink)!important}
.tbay-footer .heading-tbay-title .subtitle,.tbay-footer .menu-vertical>li>a{color:var(--iotr-text)!important}
.tbay-footer .menu-vertical>li>a:hover{color:var(--iotr-primary)!important}
.tbay-footer .elementor-element-7c82da7 span,.tbay-footer .elementor-element-7c82da7 a,.tbay-footer .elementor-element-7c82da7 a span{color:var(--iotr-muted)!important}
.tbay-footer .elementor-element-7c82da7 a:hover span{color:var(--iotr-primary)!important}
.tbay-footer .elementor-element-3ace5e92{border-color:var(--iotr-primary)!important}
.tbay-footer .elementor-divider-separator{border-color:var(--iotr-border)!important}
.tbay-footer .wp-caption-text{color:var(--iotr-muted)!important}
/* ===================== end Header polish + colour harmonisation v1 ===================== */

/* ===================== Colour harmonisation v1 — pass 2 (2026-09-17) ===================== */
/* Remaining theme defaults: breadcrumbs, section headings, card/field borders, footer links. */
.breadcrumb,.breadcrumb li,.breadcrumb li a,.besa-back-btn .text{color:var(--iotr-muted)!important}
.breadcrumb li a:hover,.besa-back-btn:hover .text{color:var(--iotr-primary)!important}
.mini-cart .text-cart,.mini-cart .text-cart span{color:var(--iotr-ink)!important}
.heading-tbay-title .title{color:var(--iotr-ink)!important}
.heading-tbay-title .subtitle{color:var(--iotr-muted)!important}
.menu-vertical>li>a{color:var(--iotr-text)!important}
.menu-vertical>li>a:hover{color:var(--iotr-primary)!important}
.tbay-footer p strong{color:var(--iotr-text)!important}
.tbay-footer p a span{color:var(--iotr-primary)!important}
.woocommerce-result-count{color:var(--iotr-muted)!important}
.woof_front_toggle{color:var(--iotr-text)!important}
.chosen-container .chosen-single span{color:var(--iotr-text)!important}
.tb-sold .sold{color:var(--iotr-muted)!important}
.woocommerce-Tabs-panel td,.woocommerce-Tabs-panel th strong{color:var(--iotr-text)!important}
.iot-contact-wrap h3,.iot-contact-form-wrap h3{color:var(--iotr-ink)!important}
.iot-contact-form-wrap p{color:var(--iotr-muted)!important}

/* Borders → slate-200 */
.products .product.type-product,.products-grid .product.type-product,
.category-inside-content,.product-recently-viewed-header .content-view,
.woocommerce-tabs ul.tabs li,.shop-now .quantity .box,.shop-now.has-buy-now,
.iot-contact-form-wrap,.tbay-to-top a,#back-to-top,
.wpcf7-form-control,input.input-newletter,.SumoSelect>.CaptionCont,.sumo_orderby,
.flex-control-thumbs img,.media-left img,.slick-slide>img{border-color:var(--iotr-border)!important}
/* ===================== end pass 2 ===================== */

/* ===================== Colour harmonisation v1 — pass 3 (2026-09-17) ===================== */
.tbay-footer ul.menu-vertical li a{color:var(--iotr-text)!important}
.tbay-footer ul.menu-vertical li a:hover{color:var(--iotr-primary)!important}
.product_meta .posted_in,.product_meta .tagged_as,.posted_in,.tagged_as{color:var(--iotr-muted)!important}
.posted_in a,.tagged_as a{color:var(--iotr-text)!important}
.posted_in a:hover,.tagged_as a:hover{color:var(--iotr-primary)!important}
.tb-sold .total{color:var(--iotr-muted)!important}
.woocommerce-cart .shop_table .amount,.woocommerce-cart .shop_table .amount *{color:var(--iotr-ink)!important}
.woocommerce-Tabs-panel table tbody tr td[style],.woocommerce-Tabs-panel table tbody tr:nth-child(odd) td{background-color:var(--iotr-surface)!important}
body .wpcf7-form-control,.iot-custom-form-container input,.iot-custom-form-container textarea,
.woocommerce input.input-text,.quantity .box,.shop_table tbody tr,.shop_table td,.shop_table th{border-color:var(--iotr-border)!important}
/* ===================== end pass 3 ===================== */

/* ===================== Colour harmonisation v1 — pass 4 (2026-09-17) ===================== */
:root{--iotr-muted:#5b6b7f;--iotr-muted-2:#64748b}
/* keep the navy spec-table header row readable (pass 2 had recoloured it) */
.woocommerce-Tabs-panel table tr:first-child th,.woocommerce-Tabs-panel table tr:first-child th strong,.woocommerce-Tabs-panel thead th,.woocommerce-Tabs-panel thead th strong{color:#fff!important}
/* form fields */
.wpcf7-form input[type="text"],.wpcf7-form input[type="email"],.wpcf7-form input[type="tel"],.wpcf7-form input[type="url"],.wpcf7-form input[type="number"],.wpcf7-form textarea,.woocommerce .input-text,.form-control,form input:not([type="file"]),.iot-custom-form-container input[type="text"],.iot-custom-form-container input[type="email"],.iot-custom-form-container textarea{border-color:var(--iotr-border)!important}
/* cart table */
.woocommerce-cart .shop_table tbody tr,.woocommerce-cart .shop_table td,.woocommerce-cart .shop_table th{border-color:var(--iotr-border)!important}
.woocommerce-shipping-methods label,.shipping td,.shipping td *{color:var(--iotr-text)!important}
/* misc */
.woocommerce-tabs ul.tabs li a{color:var(--iotr-ink)!important}
.woocommerce-tabs ul.tabs li.active a{color:var(--iotr-primary)!important}
a.tag-name,.tag-name{color:var(--iotr-text)!important}
a.tag-name:hover{color:var(--iotr-primary)!important}
.irs-grid-text{color:var(--iotr-muted-2)!important}
/* WhatsApp order button: navy label on WhatsApp green = 9:1 */
.iotr-wa-order .iotr-wa-order-btn,.iotr-wa-order .iotr-wa-order-btn:hover,.iotr-wa-order .iotr-wa-order-btn:focus-visible{color:#0f172a!important}
/* ===================== end pass 4 ===================== */

/* ===================== Colour harmonisation v1 — pass 5 (2026-09-17) ===================== */
#tbay-wc-tab-description a,#tbay-wc-tab-reviews a,#tbay-wc-tab-additional_information a,.woocommerce-tabs ul.tabs li a{color:var(--iotr-ink)!important}
#tbay-wc-tab-description.active a,.woocommerce-tabs ul.tabs li.active a{color:var(--iotr-primary)!important}
#iotr-es .es-num{color:var(--iotr-muted-2)}
/* ===================== Product page spacing v2 ===================== */
/* 1. Summary -> tabs: theme stacks 60px padding + 20px margin + 30px tab padding */
body.single-product .single-main-content { padding-bottom: 24px !important; margin-bottom: 0 !important; }
body.single-product #woocommerce-tabs { padding-top: 8px !important; padding-bottom: 0 !important; }

/* 2. A lone "Description" tab is a button that does nothing: show it as a heading */
body.single-product #woocommerce-tabs ul.wc-tabs:has(> li:only-child) { padding-bottom: 12px !important; margin-bottom: 0 !important; border: 0 !important; }
body.single-product #woocommerce-tabs ul.wc-tabs > li:only-child,
body.single-product #woocommerce-tabs ul.wc-tabs > li:only-child a {
    border: 0 !important; background: none !important; padding-left: 0 !important; margin: 0 !important;
    font-size: 22px !important; font-weight: 700 !important; color: var(--iotr-ink) !important; pointer-events: none;
}

/* 3. First heading in the description: the "View more" wrapper broke the
      `> h2:first-child` reset, so the first h2 got 32px margin + 20px padding + a rule */
body.single-product .woocommerce-Tabs-panel--description .iotr-vm-body > h2:first-child {
    border-top: 0 !important; padding-top: 0 !important; margin-top: 0 !important;
}
body.single-product .woocommerce-Tabs-panel--description .iotr-vm-body > :last-child { margin-bottom: 0 !important; }

/* 4. View more -> Related products: 20 + 23 + 30 + 60px of nothing */
body.single-product #tab-description { padding-bottom: 0 !important; margin-bottom: 0 !important; }
body.single-product #tab-description .iotr-vm-bar { margin: 8px 0 0 !important; }
body.single-product #product-related,
body.single-product .upsells.products { margin-top: 32px !important; }

/* 5. Carousel dots -> footer: 40px dot padding + 100px container padding */
body.single-product #product-related .slick-dots { padding-bottom: 0 !important; }
body.single-product #main-container { padding-bottom: 40px !important; }

/* 6. Mobile: Add to Cart / Buy Now live in the sticky bottom bar, leaving an
      empty bordered box (and its margins) in the summary */
@media (max-width: 767px) {
    body.single-product .summary form.cart:not(:has(.variations)) {
        padding: 0 !important; border-bottom: 0 !important; min-height: 0;
    }
    body.single-product .summary .product_meta { margin-top: 12px !important; }
    body.single-product .top-main-content { padding-bottom: 12px !important; margin-bottom: 12px !important; }
    body.single-product #main-container { padding-bottom: 24px !important; }
}

/* 7. Desktop: gallery sat at 450px inside a 570px column, leaving a white strip */
@media (min-width: 992px) {
    body.single-product .image-mains .woocommerce-product-gallery { width: 100% !important; max-width: none !important; }
}
/* ===================== end Product page spacing v2 ===================== */
/* ===================== Site-wide spacing v1 ===================== */
/* 1. Theme adds 100px (80px on phones) under every page's content, on top of
      each section's own padding: the main source of the gap above the footer */
#tbay-main-content #main-container { padding-bottom: 40px !important; }
@media (max-width: 767px) { #tbay-main-content #main-container { padding-bottom: 24px !important; } }

/* 2. Shop + category: a further 90px under the pagination */
.archive-shop { padding-bottom: 0 !important; }

/* 3. Cart: 150px under the cart form and 60px under Continue / Update */
body.woocommerce-cart form.woocommerce-cart-form { padding-bottom: 24px !important; }
body.woocommerce-cart .cart-bottom { padding-bottom: 24px !important; }

/* 4. Product cards outside the shop grid (home, flash deals, related):
      an empty 26px badge row + 10px margin sat above every photo.
      Float it over the image instead, as the shop grid already does
      (z-index above the out-of-stock overlay, which is 10) */
.product-block.grid { position: relative; }
.product-block.grid .product-top {
    position: absolute; top: 8px; left: 8px; z-index: 11;
    min-height: 0 !important; margin: 0 !important;
}
/* ===================== end Site-wide spacing v1 ===================== */
