/*
 * WooCommerce Overrides
 * Shop page, Single product, Cart, Checkout
 */

/* ========== SHOP PAGE LAYOUT ========== */
.tp-shop-page {
    padding-bottom: var(--space-3xl);
}

.shop-layout {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: var(--space-xl);
}

@media (min-width: 993px) {
    .tp-shop-page .product-grid {
        grid-template-columns: repeat(4, 1fr) !important;
    }
}

/* ========== SIDEBAR ========== */
.shop-sidebar {
    display: flex;
    flex-direction: column;
    gap: var(--space-lg);
}

.sidebar-widget {
    background: var(--white);
    border-radius: var(--radius-xl);
    padding: var(--space-lg);
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--gray-100);
}

.widget-title {
    font-family: var(--font-heading);
    font-size: 16px;
    font-weight: 700;
    color: var(--gray-900);
    margin-bottom: var(--space-lg);
    padding-bottom: var(--space-sm);
    border-bottom: 2px solid var(--gold-400);
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}

.widget-title i {
    color: var(--gold-500);
}

/* Category List */
.category-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.category-list > li {
    margin-bottom: var(--space-xs);
}

.category-list > li > a {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-sm) var(--space-md);
    color: var(--gray-700);
    font-size: 14px;
    border-radius: var(--radius-md);
    transition: all var(--duration-fast) var(--ease-out);
}

.category-list > li > a i {
    color: var(--gray-400);
    font-size: 12px;
    width: 16px;
    text-align: center;
}

.category-list > li > a span:first-of-type {
    flex: 1;
}

.category-list > li > a .count {
    background: var(--gray-100);
    color: var(--gray-600);
    font-size: 11px;
    padding: 2px 8px;
    border-radius: var(--radius-full);
    font-weight: 600;
}

.category-list > li > a:hover,
.category-list > li.active > a {
    background: var(--gold-50);
    color: var(--gold-700);
}

.category-list > li > a:hover i,
.category-list > li.active > a i {
    color: var(--gold-500);
}

.category-list > li.active > a .count {
    background: var(--gold-500);
    color: var(--white);
}

/* Subcategory */
.subcategory-list {
    list-style: none;
    padding: 0;
    margin: var(--space-xs) 0 var(--space-sm) var(--space-xl);
    border-left: 2px solid var(--gray-200);
}

.subcategory-list li a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-xs) var(--space-md);
    color: var(--gray-600);
    font-size: 13px;
    transition: all var(--duration-fast) var(--ease-out);
}

.subcategory-list li a:hover,
.subcategory-list li.active a {
    color: var(--gold-600);
}

.subcategory-list li a .count {
    font-size: 11px;
    color: var(--gray-400);
}

/* Hotline Widget */
.hotline-widget {
    background: linear-gradient(135deg, #1a1a1a, #2d2d2d);
    border: none;
}

.hotline-content {
    display: flex;
    align-items: center;
    gap: var(--space-md);
}

.hotline-content > i {
    font-size: 32px;
    color: var(--gold-400);
}

.hotline-text {
    display: flex;
    flex-direction: column;
}

.hotline-text span {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.7);
}

.hotline-text a {
    font-family: var(--font-heading);
    font-size: 20px;
    font-weight: 700;
    color: var(--gold-400);
    transition: color var(--duration-fast) var(--ease-out);
}

.hotline-text a:hover {
    color: var(--white);
}

/* ========== SHOP MAIN ========== */
.shop-main {
    min-width: 0;
}

/* Shop Toolbar */
.shop-toolbar-premium {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--white);
    padding: var(--space-md) var(--space-lg);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    margin-bottom: var(--space-xl);
    border: 1px solid var(--gray-100);
}

.shop-toolbar-premium .toolbar-left {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    color: var(--gray-600);
    font-size: 14px;
}

.shop-toolbar-premium .toolbar-left i {
    color: var(--gold-500);
}

.shop-toolbar-premium .toolbar-left .woocommerce-result-count {
    margin: 0;
    line-height: 1;
}

.shop-toolbar-premium .toolbar-right {
    display: flex;
    align-items: center;
    gap: var(--space-md);
}

/* Ordering Dropdown */
.woocommerce-ordering {
    margin: 0;
}

.woocommerce-ordering select,
.orderby {
    padding: 10px var(--space-md);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-md);
    font-size: 14px;
    color: var(--gray-700);
    background: var(--white);
    cursor: pointer;
    min-width: 180px;
    transition: all var(--duration-fast) var(--ease-out);
}

.woocommerce-ordering select:hover,
.woocommerce-ordering select:focus {
    border-color: var(--gold-400);
    outline: none;
}

/* No Products Found */
.woocommerce-no-products-found {
    padding: var(--space-3xl);
    text-align: center;
}

.no-products-content {
    max-width: 400px;
    margin: 0 auto;
}

.no-products-content i {
    font-size: 64px;
    color: var(--gray-300);
    margin-bottom: var(--space-lg);
    display: block;
}

.no-products-content h3 {
    font-family: var(--font-heading);
    font-size: 24px;
    color: var(--gray-800);
    margin-bottom: var(--space-sm);
}

.no-products-content p {
    color: var(--gray-600);
    margin-bottom: var(--space-lg);
}

.btn-back-shop {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-md) var(--space-xl);
    background: linear-gradient(135deg, #B8956C, #D4B896);
    color: var(--white);
    font-weight: 600;
    border-radius: var(--radius-lg);
    transition: all var(--duration-fast) var(--ease-out);
}

.btn-back-shop:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(184, 149, 108, 0.3);
    color: var(--white);
}

/* Shop Page Responsive */
@media (max-width: 992px) {
    .shop-layout {
        grid-template-columns: 1fr;
    }

    .shop-sidebar {
        order: 2;
    }

    .shop-main {
        order: 1;
    }

    .category-list {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-xs);
    }

    .subcategory-list {
        display: none;
    }
}

@media (max-width: 576px) {
    .category-list {
        grid-template-columns: 1fr;
    }

    .shop-toolbar-premium {
        flex-direction: column;
        gap: var(--space-md);
        text-align: center;
    }

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

/* Result Count */
.woocommerce-result-count {
    margin: 0;
    font-size: 14px;
    color: var(--gray-600);
}

/* ========== PAGINATION PREMIUM ========== */
.tp-pagination,
.woocommerce-pagination {
    margin-top: var(--space-2xl);
    display: flex;
    justify-content: center;
}

.woocommerce-pagination ul,
.tp-pagination ul {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    list-style: none;
}

.woocommerce-pagination ul li,
.tp-pagination ul li {
    margin: 0;
}

.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span,
.tp-pagination ul li a,
.tp-pagination ul li span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    padding: 0 var(--space-md);
    background: var(--white);
    color: var(--gray-700);
    font-family: var(--font-heading);
    font-weight: 600;
    font-size: 15px;
    border-radius: var(--radius-md);
    border: 2px solid var(--gray-200);
    transition: all var(--duration-fast) var(--ease-out);
}

.woocommerce-pagination ul li a:hover,
.tp-pagination ul li a:hover {
    border-color: var(--gold-400);
    color: var(--gold-600);
}

.woocommerce-pagination ul li span.current,
.tp-pagination ul li span.current {
    background: linear-gradient(135deg, #B8956C, #D4B896);
    color: var(--white);
    border-color: transparent;
    box-shadow: 0 4px 15px rgba(184, 149, 108, 0.3);
}

/* Prev/Next buttons */
.woocommerce-pagination ul li a.prev,
.woocommerce-pagination ul li a.next,
.tp-pagination ul li a.prev,
.tp-pagination ul li a.next {
    font-size: 20px;
    font-weight: 400;
}

/* Dots */
.woocommerce-pagination ul li span.page-numbers.dots,
.tp-pagination ul li span.dots {
    border: none;
    background: transparent;
    color: var(--gray-400);
    min-width: auto;
    padding: 0 var(--space-xs);
}

/* Responsive pagination */
@media (max-width: 576px) {
    .woocommerce-pagination ul,
    .tp-pagination ul {
        gap: var(--space-xs);
    }

    .woocommerce-pagination ul li a,
    .woocommerce-pagination ul li span,
    .tp-pagination ul li a,
    .tp-pagination ul li span {
        min-width: 38px;
        height: 38px;
        font-size: 14px;
        padding: 0 var(--space-sm);
    }
}

/* Single Product Page */
.tp-single-product-wrapper {
    padding: var(--space-xl) 0 var(--space-3xl);
}

.tp-single-product-wrapper .woocommerce-breadcrumb {
    font-size: 14px;
    color: var(--gray-600);
    padding: var(--space-md) var(--space-lg);
    background: var(--white);
    border-radius: var(--radius-md);
    margin-bottom: var(--space-xl);
}

.tp-single-product-wrapper .woocommerce-breadcrumb a {
    color: var(--primary);
}

.tp-single-product-wrapper .woocommerce-breadcrumb a:hover {
    color: var(--gold-500);
}

/* Product Gallery */
.woocommerce-product-gallery {
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-md);
}

.woocommerce-product-gallery__image img {
    border-radius: var(--radius-lg);
}

/* Product Summary */
.entry-summary {
    background: var(--white);
    padding: var(--space-xl);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
}

.entry-summary .product_title {
    font-size: 28px;
    margin-bottom: var(--space-md);
}

.entry-summary .price {
    font-size: 28px;
    color: var(--accent);
    font-weight: 700;
    font-family: var(--font-heading);
    margin-bottom: var(--space-lg);
}

.entry-summary .price del {
    font-size: 18px;
    color: var(--gray-400);
    font-weight: 400;
    margin-right: var(--space-sm);
}

.entry-summary .price ins {
    text-decoration: none;
}

/* Add to Cart Button */
.single_add_to_cart_button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
    background: linear-gradient(135deg, var(--accent) 0%, var(--accent-600) 100%) !important;
    color: var(--white) !important;
    border: none !important;
    padding: 14px var(--space-xl) !important;
    border-radius: var(--radius-full) !important;
    font-family: var(--font-heading) !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    transition: all var(--duration-normal) var(--ease-out) !important;
    box-shadow: var(--shadow-accent) !important;
}

.single_add_to_cart_button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
    background: linear-gradient(135deg, var(--gold-400) 0%, var(--gold-500) 100%) !important;
    transform: translateY(-2px) !important;
    box-shadow: var(--shadow-gold) !important;
}

/* Alt Button */
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-600) 100%) !important;
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
    background: linear-gradient(135deg, var(--gold-400) 0%, var(--gold-500) 100%) !important;
    transform: translateY(-2px) !important;
    box-shadow: var(--shadow-gold) !important;
}

/* Quantity Input */
.quantity {
    display: inline-flex;
    align-items: center;
    border: 2px solid var(--gray-200);
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: var(--white);
}

.quantity .qty-btn {
    width: 44px;
    height: 48px;
    background: var(--gray-100);
    border: none;
    font-size: 20px;
    font-weight: 600;
    color: var(--gray-700);
    cursor: pointer;
    transition: all var(--duration-fast) var(--ease-out);
    display: flex;
    align-items: center;
    justify-content: center;
}

.quantity .qty-btn:hover {
    background: linear-gradient(135deg, #B8956C, #D4B896);
    color: var(--white);
}

.quantity .qty-btn:active,
.quantity .qty-btn.pressed {
    transform: scale(0.92);
}

.quantity input.qty {
    width: 60px;
    height: 48px;
    border: none;
    border-left: 1px solid var(--gray-200);
    border-right: 1px solid var(--gray-200);
    text-align: center;
    font-size: 18px;
    font-weight: 600;
    font-family: var(--font-heading);
    -moz-appearance: textfield;
    background: var(--white);
}

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

/* Product Tabs */
.woocommerce-tabs {
    margin-top: var(--space-2xl);
}

.woocommerce-tabs ul.tabs {
    display: flex;
    gap: var(--space-sm);
    border-bottom: 2px solid var(--gray-200);
    padding: 0;
    margin-bottom: var(--space-lg);
}

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

.woocommerce-tabs ul.tabs li a {
    display: block;
    padding: 12px var(--space-lg);
    font-family: var(--font-heading);
    font-weight: 600;
    color: var(--gray-600);
    border-bottom: 3px solid transparent;
    margin-bottom: -2px;
    transition: all var(--duration-fast) var(--ease-out);
}

.woocommerce-tabs ul.tabs li.active a,
.woocommerce-tabs ul.tabs li a:hover {
    color: var(--primary);
    border-bottom-color: var(--gold-400);
}

.woocommerce-tabs .panel {
    background: var(--white);
    padding: var(--space-xl);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}

/* Related Products */
.related.products,
.upsells.products {
    margin-top: var(--space-3xl);
}

.related.products > h2,
.upsells.products > h2 {
    font-size: 24px;
    margin-bottom: var(--space-xl);
    position: relative;
    display: inline-block;
}

.related.products > h2::after,
.upsells.products > h2::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 0;
    width: 60px;
    height: 3px;
    background: linear-gradient(90deg, var(--accent) 0%, var(--gold-400) 100%);
    border-radius: var(--radius-full);
}

.related.products ul.products,
.upsells.products ul.products {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-lg);
}

/* Cart Page */
.woocommerce-cart-form {
    background: var(--white);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-md);
}

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

.woocommerce-cart-form th {
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-600) 100%);
    color: var(--white);
    padding: var(--space-md);
    font-family: var(--font-heading);
    font-weight: 600;
    text-align: left;
}

.woocommerce-cart-form td {
    padding: var(--space-md);
    border-bottom: 1px solid var(--gray-200);
    vertical-align: middle;
}

.woocommerce-cart-form .product-thumbnail img {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: var(--radius-md);
}

.woocommerce-cart-form .product-name a {
    font-weight: 600;
    color: var(--gray-800);
}

.woocommerce-cart-form .product-name a:hover {
    color: var(--gold-500);
}

/* Cart Totals */
.cart_totals {
    background: var(--white);
    padding: var(--space-xl);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
}

.cart_totals h2 {
    margin-bottom: var(--space-lg);
    padding-bottom: var(--space-md);
    border-bottom: 2px solid var(--gray-200);
}

.cart_totals table {
    width: 100%;
}

.cart_totals th,
.cart_totals td {
    padding: var(--space-md) 0;
    border-bottom: 1px solid var(--gray-200);
}

.cart_totals .order-total {
    font-size: 20px;
    font-weight: 700;
    color: var(--accent);
}

/* Checkout Page */
form.woocommerce-checkout {
    display: grid;
    grid-template-columns: 1fr 400px;
    gap: var(--space-xl);
}

.woocommerce-billing-fields,
.woocommerce-shipping-fields {
    background: var(--white);
    padding: var(--space-xl);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
}

.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3 {
    margin-bottom: var(--space-lg);
    padding-bottom: var(--space-md);
    border-bottom: 2px solid var(--gold-400);
}

#order_review_heading {
    margin-bottom: var(--space-lg);
}

#order_review {
    background: var(--white);
    padding: var(--space-xl);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    position: sticky;
    top: 100px;
}

/* Form Fields */
.woocommerce form .form-row {
    margin-bottom: var(--space-md);
}

.woocommerce form .form-row label {
    display: block;
    margin-bottom: var(--space-xs);
    font-weight: 500;
    color: var(--gray-700);
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
    width: 100%;
    padding: 12px var(--space-md);
    border: 1px solid var(--gray-300);
    border-radius: var(--radius-md);
    font-size: 15px;
    transition: border-color var(--duration-fast) var(--ease-out),
                box-shadow var(--duration-fast) var(--ease-out);
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus {
    border-color: var(--gold-400);
    box-shadow: 0 0 0 3px var(--gold-100);
    outline: none;
}

/* Place Order Button */
#place_order {
    width: 100%;
    padding: 16px var(--space-xl) !important;
    font-size: 16px !important;
    margin-top: var(--space-lg);
}

/* ==========================================
   SINGLE PRODUCT - PREMIUM LAYOUT
   ========================================== */

.tp-single-product {
    background: var(--gray-50);
    max-width: 100%;
}

.tp-product-top {
    display: grid;
    grid-template-columns: 4fr 5fr 3fr; /* 4 phần hình, 5 phần thông tin, 3 phần sidebar */
    gap: var(--space-xl);
    margin-bottom: var(--space-2xl);
    max-width: 100%;
}

/* ========== GALLERY SECTION ========== */
.tp-product-gallery {
    position: sticky;
    top: 100px;
    align-self: start;
    min-width: 0; /* Ngăn chặn co kéo làm phồng hình lớn */
    width: 100%;
}

/* Main Image */
.tp-gallery-main {
    position: relative;
    background: var(--white);
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-lg);
    margin-bottom: var(--space-md);
}

.tp-gallery-slide {
    display: none;
    aspect-ratio: 1 / 1;
}

.tp-gallery-slide.active {
    display: block;
    animation: fadeIn 0.3s ease;
}

.tp-gallery-slide img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: var(--white);
}

.tp-gallery-slide a {
    display: block;
    position: relative;
}

/* Zoom Icon */
.tp-zoom-icon {
    position: absolute;
    bottom: var(--space-md);
    right: var(--space-md);
    width: 44px;
    height: 44px;
    background: rgba(0, 0, 0, 0.6);
    color: var(--white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transform: scale(0.8);
    transition: all var(--duration-normal) var(--ease-spring);
}

.tp-gallery-slide:hover .tp-zoom-icon {
    opacity: 1;
    transform: scale(1);
}

/* Sale Badge */
.tp-sale-badge {
    position: absolute;
    top: var(--space-md);
    left: var(--space-md);
    background: linear-gradient(135deg, #e53935 0%, #c62828 100%);
    color: var(--white);
    font-size: 14px;
    font-weight: 700;
    font-family: var(--font-heading);
    padding: 8px 16px;
    border-radius: var(--radius-full);
    z-index: 5;
    animation: pulse 2s infinite;
}

/* Gallery Arrows */
.tp-gallery-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 48px;
    height: 48px;
    background: var(--white);
    border: none;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 18px;
    color: var(--gray-700);
    box-shadow: var(--shadow-md);
    transition: all var(--duration-fast) var(--ease-out);
    z-index: 10;
    opacity: 0;
}

.tp-gallery-main:hover .tp-gallery-arrow {
    opacity: 1;
}

.tp-gallery-prev { left: var(--space-md); }
.tp-gallery-next { right: var(--space-md); }

.tp-gallery-arrow:hover {
    background: linear-gradient(135deg, #B8956C, #D4B896, #E8CDB0);
    color: var(--white);
    transform: translateY(-50%) scale(1.1);
}

/* Thumbnail Slider */
.tp-gallery-thumbs-wrapper {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}

.tp-gallery-thumbs {
    flex: 1;
    overflow: hidden;
    border-radius: var(--radius-lg);
}

.tp-thumbs-track {
    display: flex;
    gap: var(--space-sm);
    transition: transform var(--duration-normal) var(--ease-out);
}

.tp-thumb-item {
    flex-shrink: 0;
    width: 80px;
    height: 80px;
    border-radius: var(--radius-md);
    overflow: hidden;
    cursor: pointer;
    border: 3px solid transparent;
    transition: all var(--duration-fast) var(--ease-out);
    background: var(--white);
}

.tp-thumb-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--duration-normal) var(--ease-out);
}

.tp-thumb-item:hover {
    border-color: var(--gray-300);
}

.tp-thumb-item:hover img {
    transform: scale(1.1);
}

.tp-thumb-item.active {
    border-color: #D4B896;
    box-shadow: 0 0 15px rgba(212, 184, 150, 0.4);
}

/* Thumb Arrows */
.tp-thumb-arrow {
    width: 32px;
    height: 32px;
    background: var(--white);
    border: 1px solid var(--gray-300);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 12px;
    color: var(--gray-600);
    transition: all var(--duration-fast) var(--ease-out);
    flex-shrink: 0;
}

.tp-thumb-arrow:hover {
    background: linear-gradient(135deg, #B8956C, #D4B896);
    border-color: #D4B896;
    color: var(--white);
}

/* ========== PRODUCT INFO SECTION ========== */
.tp-product-info {
    background: var(--white);
    padding: var(--space-xl);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md);
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    word-break: break-word;
    overflow-wrap: break-word;
}

/* Category */
.tp-product-category {
    margin-bottom: var(--space-sm);
    max-width: 100%;
}

.tp-product-category a {
    display: inline-block;
    background: var(--gold-100);
    color: #B8956C;
    padding: 4px 12px;
    border-radius: var(--radius-full);
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: all var(--duration-fast) var(--ease-out);
    max-width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tp-product-category a:hover {
    background: linear-gradient(135deg, #B8956C, #D4B896);
    color: var(--white);
}

/* Title */
.tp-product-title {
    font-family: var(--font-heading);
    font-size: 28px;
    font-weight: 700;
    color: var(--gray-900);
    line-height: 1.3;
    margin-bottom: var(--space-md);
    word-break: break-word;
    overflow-wrap: break-word;
    max-width: 100%;
}

/* Meta Row */
.tp-product-meta-row {
    display: flex;
    align-items: center;
    gap: var(--space-md) var(--space-lg);
    margin-bottom: var(--space-lg);
    padding-bottom: var(--space-lg);
    border-bottom: 1px solid var(--gray-200);
    flex-wrap: wrap;
    max-width: 100%;
}

.tp-sku {
    color: var(--gray-600);
    font-size: 14px;
}

.tp-sku i {
    color: #D4B896;
    margin-right: 6px;
}

.tp-stock {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 600;
}

.tp-stock.in-stock {
    color: var(--success);
}

.tp-stock.out-of-stock {
    color: var(--danger);
}

/* Price - Tự co dãn linh hoạt, không tràn màn hình */
.tp-product-price {
    margin-bottom: var(--space-lg);
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 8px;
    max-width: 100%;
}

.tp-product-price,
.tp-product-price .price,
.tp-product-price .amount,
.tp-product-price bdi,
.tp-product-price ins {
    font-family: var(--font-heading) !important;
    font-size: 26px !important;
    font-weight: 800 !important;
    color: #e53935 !important;
    text-decoration: none !important;
    line-height: 1.2;
}

.tp-product-price .amount {
    white-space: nowrap !important;
}

/* Ký hiệu tiền tệ */
.tp-product-price .woocommerce-Price-currencySymbol {
    font-size: 18px !important;
    font-weight: 700 !important;
    vertical-align: super;
    margin-left: 2px;
    color: #e53935 !important;
}

/* Khoảng giá dấu gạch ngang */
.tp-product-price span[aria-hidden="true"] {
    font-size: 20px !important;
    color: #e53935 !important;
    margin: 0 2px;
}

/* Xử lý giá gốc khi có khuyến mãi */
.tp-product-price del,
.tp-product-price del .amount,
.tp-product-price del bdi {
    font-size: 18px !important;
    font-weight: 400 !important;
    color: var(--gray-400) !important;
    text-decoration: line-through !important;
}

/* Contact Price - Thay cho giá */
.tp-contact-price {
    font-family: var(--font-heading);
    font-size: 26px !important;
    font-weight: 800 !important;
    color: #e53935 !important;
    white-space: nowrap !important;
}

.tp-contact-price a {
    color: #e53935 !important;
    text-decoration: underline !important;
    transition: color 0.3s ease;
}

.tp-contact-price a:hover {
    color: #b71c1c !important;
}

/* ========== PRODUCT SIDEBAR SECTION ========== */
.tp-product-sidebar {
    background: var(--white);
    border-radius: var(--radius-xl);
    padding: var(--space-md);
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--gray-200);
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
    align-self: start;
    min-width: 0;
}

.tp-sidebar-widget {
    background: var(--gray-50);
    border-radius: var(--radius-lg);
    padding: var(--space-md);
    border: 1px solid var(--gray-100);
}

.tp-widget-title {
    font-size: 15px;
    font-weight: 700;
    margin-bottom: var(--space-sm);
    color: var(--secondary-900);
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    border-bottom: 2px solid var(--primary-300);
    padding-bottom: var(--space-xs);
}

.tp-widget-title i {
    color: var(--primary-800);
}

.tp-widget-services ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
}

.tp-widget-services li {
    font-size: 13px;
    color: var(--text);
    display: flex;
    align-items: flex-start;
    gap: var(--space-xs);
    line-height: 1.4;
}

.tp-widget-services li i {
    color: var(--success);
    margin-top: 3px;
    font-size: 14px;
}

.tp-sidebar-features-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
    margin-top: var(--space-sm);
}

.tp-sidebar-features-list .tp-feature-item {
    background: var(--white);
    padding: var(--space-sm) var(--space-md);
    border-radius: var(--radius-md);
    border: 1px solid var(--gray-200);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02);
    transition: all 0.2s ease;
}

.tp-sidebar-features-list .tp-feature-item:hover {
    transform: translateX(3px);
    border-color: var(--primary-400);
}

/* CTA Buttons - Gọi điện & Zalo */
.tp-cta-buttons {
    display: flex;
    flex-direction: column; /* Xếp dọc các nút */
    gap: var(--space-md);
    margin-bottom: var(--space-xl);
    width: 100%;
}

.tp-btn-call,
.tp-btn-zalo {
    display: inline-flex;
    align-items: center;
    justify-content: center; /* Căn giữa nội dung trong nút */
    gap: var(--space-sm);
    padding: var(--space-md) var(--space-xl);
    font-family: var(--font-heading);
    font-size: 16px;
    font-weight: 700; /* Làm đậm chữ trên nút */
    border-radius: var(--radius-lg);
    transition: all var(--duration-fast) var(--ease-out);
    cursor: pointer;
    text-decoration: none;
    width: 100%; /* Mỗi nút chiếm 1 hàng */
}

.tp-btn-call {
    background: linear-gradient(135deg, #B8956C, #D4B896);
    color: var(--white);
    box-shadow: 0 4px 15px rgba(184, 149, 108, 0.3);
    width: 100%;
}

.tp-btn-call i {
    font-size: 18px;
    animation: phone-ring 1.5s ease-in-out infinite;
}

.tp-btn-call:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 25px rgba(184, 149, 108, 0.4);
    color: var(--white);
}

.tp-btn-zalo {
    background: #0068ff;
    color: var(--white);
    box-shadow: 0 4px 15px rgba(0, 104, 255, 0.3);
    width: 100%;
}

.tp-btn-zalo .zalo-icon {
    font-family: var(--font-heading);
    font-size: 20px;
    font-weight: 700;
}

.tp-btn-zalo:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 25px rgba(0, 104, 255, 0.4);
    color: var(--white);
}

@keyframes phone-ring {
    0%, 100% { transform: rotate(0deg); }
    10% { transform: rotate(-15deg); }
    20% { transform: rotate(15deg); }
    30% { transform: rotate(-10deg); }
    40% { transform: rotate(10deg); }
    50% { transform: rotate(0deg); }
}

/* Short Description */
.tp-short-description {
    color: var(--gray-700);
    font-size: 15px;
    line-height: 1.7;
    margin-bottom: var(--space-lg);
    padding-bottom: var(--space-lg);
    border-bottom: 1px solid var(--gray-200);
}

.tp-short-description p {
    margin-bottom: var(--space-sm);
}

.tp-short-description ul {
    padding-left: var(--space-lg);
}

.tp-short-description li {
    margin-bottom: var(--space-xs);
}

/* Add to Cart */
.tp-add-to-cart-wrapper {
    margin-bottom: var(--space-xl);
    width: 100%;
    max-width: 100%;
}

.tp-add-to-cart-wrapper .cart {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    flex-wrap: wrap;
    width: 100%;
    max-width: 100%;
}

.tp-add-to-cart-wrapper .quantity {
    display: flex;
    align-items: center;
    border: 2px solid var(--gray-200);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.tp-add-to-cart-wrapper .quantity input.qty {
    width: 70px;
    height: 54px;
    border: none;
    text-align: center;
    font-size: 18px;
    font-weight: 600;
    font-family: var(--font-heading);
}

.tp-add-to-cart-wrapper .single_add_to_cart_button {
    flex: 1;
    min-width: 200px;
    height: 54px;
    font-size: 16px !important;
}

/* Product Features */
.tp-product-features {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-md);
    margin-bottom: var(--space-xl);
    padding: var(--space-lg);
    background: var(--gray-50);
    border-radius: var(--radius-lg);
}

.tp-feature-item {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}

.tp-feature-item i {
    width: 40px;
    height: 40px;
    background: linear-gradient(135deg, #B8956C, #D4B896);
    color: var(--white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
}

.tp-feature-text {
    display: flex;
    flex-direction: column;
}

.tp-feature-text strong {
    font-size: 13px;
    color: var(--gray-800);
}

.tp-feature-text span {
    font-size: 12px;
    color: var(--gray-500);
}

/* Share */
.tp-product-share {
    display: none !important;
    align-items: center;
    gap: var(--space-sm);
}

.tp-share-label {
    color: var(--gray-600);
    font-size: 14px;
    margin-right: var(--space-sm);
}

.tp-share-btn {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    font-size: 16px;
    transition: all var(--duration-fast) var(--ease-out);
    border: none;
    cursor: pointer;
}

.tp-share-btn.facebook { background: #1877f2; }
.tp-share-btn.twitter { background: #1da1f2; }
.tp-share-btn.pinterest { background: #e60023; }
.tp-share-btn.copy-link { background: var(--gray-600); }

.tp-share-btn:hover {
    transform: translateY(-3px) scale(1.1);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

/* ========== PRODUCT DESCRIPTION & REVIEWS SECTIONS ========== */
.tp-product-description-section,
.tp-product-reviews-section {
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08), 0 2px 8px rgba(0, 0, 0, 0.04);
    border: 1px solid rgba(0, 0, 0, 0.06);
    overflow: hidden;
    margin-bottom: var(--space-2xl);
}

.tp-product-description-section .tp-section-header,
.tp-product-reviews-section .tp-section-header {
    background: linear-gradient(135deg, #2766AB 0%, #0d233a 100%);
    padding: var(--space-lg) var(--space-xl);
    border-bottom: 3px solid #D4B896;
}

.tp-product-description-section .tp-section-header h2,
.tp-product-reviews-section .tp-section-header h2 {
    color: var(--white);
    font-size: 18px;
    font-weight: 600;
    margin: 0;
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}

.tp-product-description-section .tp-section-header h2 i,
.tp-product-reviews-section .tp-section-header h2 i {
    color: #D4B896;
}

.tp-description-content,
.tp-reviews-content {
    padding: 10px !important;
}

.tp-description-content {
    color: var(--gray-700);
    font-size: 15px;
    line-height: 1.8;
}

.tp-description-content h2,
.tp-description-content h3,
.tp-description-content h4 {
    color: var(--gray-900);
    margin-top: var(--space-lg);
    margin-bottom: var(--space-md);
}

.tp-description-content p {
    margin-bottom: var(--space-md);
}

.tp-description-content ul,
.tp-description-content ol {
    padding-left: var(--space-xl);
    margin-bottom: var(--space-md);
}

.tp-description-content li {
    margin-bottom: var(--space-sm);
}

.tp-description-content img {
    max-width: 100%;
    height: auto;
    border-radius: var(--radius-md);
    margin: var(--space-md) 0;
}

.tp-description-content iframe {
    width: 100%;
    max-width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    border-radius: var(--radius-md);
    margin: var(--space-md) 0;
}

.tp-description-content table {
    width: 100%;
    border-collapse: collapse;
    margin: var(--space-lg) 0;
}

.tp-description-content table th,
.tp-description-content table td {
    padding: var(--space-sm) var(--space-md);
    border: 1px solid var(--gray-200);
    text-align: left;
}

.tp-description-content table th {
    background: var(--gray-100);
    font-weight: 600;
}

/* ========== PRODUCT TABS (Legacy - keeping for compatibility) ========== */
.tp-product-tabs {
    background: var(--white);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md);
    overflow: hidden;
    margin-bottom: var(--space-2xl);
}

.tp-tabs-nav {
    display: flex;
    background: var(--gray-100);
    border-bottom: 3px solid;
    border-image: linear-gradient(90deg, #B8956C, #D4B896, #E8CDB0, #D4B896, #B8956C) 1;
}

.tp-tab-btn {
    flex: 1;
    padding: var(--space-lg) var(--space-xl);
    background: none;
    border: none;
    font-family: var(--font-heading);
    font-size: 15px;
    font-weight: 600;
    color: var(--gray-600);
    cursor: pointer;
    transition: all var(--duration-fast) var(--ease-out);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
    position: relative;
}

.tp-tab-btn::after {
    content: '';
    position: absolute;
    bottom: -3px;
    left: 0;
    right: 0;
    height: 3px;
    background: transparent;
    transition: background var(--duration-fast) var(--ease-out);
}

.tp-tab-btn:hover {
    color: var(--gray-800);
    background: rgba(255, 255, 255, 0.5);
}

.tp-tab-btn.active {
    color: white;
    background: var(--white);
}

.tp-tab-btn.active::after {
    background: linear-gradient(90deg, #B8956C, #D4B896, #E8CDB0);
}

.tp-tab-btn i {
    font-size: 18px;
}

/* Tab Content */
.tp-tabs-content {
    padding: var(--space-2xl);
}

.tp-tab-panel {
    display: none;
    animation: fadeIn 0.3s ease;
}

.tp-tab-panel.active {
    display: block;
}

.tp-tab-inner {
    color: var(--gray-700);
    font-size: 15px;
    line-height: 1.8;
}

.tp-tab-inner h2,
.tp-tab-inner h3,
.tp-tab-inner h4 {
    color: var(--gray-900);
    margin-top: var(--space-lg);
    margin-bottom: var(--space-md);
}

.tp-tab-inner p {
    margin-bottom: var(--space-md);
}

.tp-tab-inner ul,
.tp-tab-inner ol {
    padding-left: var(--space-xl);
    margin-bottom: var(--space-md);
}

.tp-tab-inner li {
    margin-bottom: var(--space-sm);
}

.tp-tab-inner img {
    max-width: 100%;
    height: auto;
    border-radius: var(--radius-md);
    margin: var(--space-md) 0;
}

/* Specs Table */
.tp-specs-table {
    width: 100%;
    border-collapse: collapse;
}

.tp-specs-table tr:nth-child(even) {
    background: var(--gray-50);
}

.tp-specs-table th,
.tp-specs-table td {
    padding: var(--space-md) var(--space-lg);
    text-align: left;
    border-bottom: 1px solid var(--gray-200);
}

.tp-specs-table th {
    width: 35%;
    color: var(--gray-800);
    font-weight: 600;
    background: var(--gold-50);
}

.tp-specs-table td {
    color: var(--gray-700);
}

.tp-no-specs {
    text-align: center;
    color: var(--gray-500);
    padding: var(--space-2xl);
}

/* ========== REVIEWS SECTION ========== */
.tp-reviews-summary {
    display: flex;
    gap: var(--space-2xl);
    padding: var(--space-xl);
    background: var(--gray-50);
    border-radius: var(--radius-lg);
    margin-bottom: var(--space-xl);
    flex-wrap: wrap;
}

.tp-rating-overview {
    text-align: center;
    min-width: 150px;
}

.tp-rating-score {
    font-family: var(--font-heading);
    font-size: 48px;
    font-weight: 700;
    color: var(--gold-600);
    line-height: 1;
}

.tp-rating-stars {
    color: #ffc107;
    font-size: 18px;
    margin: var(--space-sm) 0;
}

.tp-rating-count {
    font-size: 14px;
    color: var(--gray-600);
}

.tp-rating-bars {
    flex: 1;
    min-width: 250px;
}

.tp-rating-bar {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    margin-bottom: var(--space-xs);
}

.tp-bar-label {
    width: 45px;
    font-size: 13px;
    color: var(--gray-600);
    display: flex;
    align-items: center;
    gap: 4px;
}

.tp-bar-label i {
    color: #ffc107;
    font-size: 11px;
}

.tp-bar-track {
    flex: 1;
    height: 8px;
    background: var(--gray-200);
    border-radius: var(--radius-full);
    overflow: hidden;
}

.tp-bar-fill {
    height: 100%;
    background: linear-gradient(90deg, #ffc107, #ffca2c);
    border-radius: var(--radius-full);
}

.tp-bar-count {
    width: 30px;
    font-size: 13px;
    color: var(--gray-600);
    text-align: right;
}

/* Reviews List */
.tp-reviews-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-lg);
}

.tp-review-item {
    display: flex;
    gap: var(--space-md);
    padding: var(--space-lg);
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    transition: all var(--duration-fast) var(--ease-out);
}

.tp-review-item:hover {
    border-color: var(--gold-300);
    box-shadow: var(--shadow-sm);
}

.tp-review-avatar {
    width: 48px;
    height: 48px;
    background: linear-gradient(135deg, #B8956C, #D4B896);
    color: var(--white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 700;
    flex-shrink: 0;
}

.tp-review-content {
    flex: 1;
}

.tp-review-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: var(--space-sm);
    margin-bottom: var(--space-xs);
}

.tp-review-author strong {
    font-family: var(--font-heading);
    font-size: 15px;
    color: var(--gray-900);
}

.tp-review-location {
    display: block;
    font-size: 12px;
    color: var(--gray-500);
    margin-top: 2px;
}

.tp-review-location i {
    margin-right: 4px;
}

.tp-review-meta {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}

.tp-review-stars {
    color: #ffc107;
    font-size: 12px;
}

.tp-review-date {
    font-size: 12px;
    color: var(--gray-500);
}

.tp-review-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    color: var(--success);
    background: rgba(34, 197, 94, 0.1);
    padding: 4px 10px;
    border-radius: var(--radius-full);
    margin-bottom: var(--space-sm);
}

.tp-review-badge i {
    font-size: 10px;
}

.tp-review-text {
    font-size: 14px;
    line-height: 1.6;
    color: var(--gray-700);
    margin: 0;
}

/* Responsive Reviews */
@media (max-width: 576px) {
    .tp-reviews-summary {
        flex-direction: column;
        text-align: center;
    }

    .tp-rating-overview {
        width: 100%;
    }

    .tp-review-item {
        flex-direction: column;
    }

    .tp-review-avatar {
        width: 40px;
        height: 40px;
        font-size: 16px;
    }

    .tp-review-header {
        flex-direction: column;
    }
}

/* ========== RELATED PRODUCTS ========== */
.tp-related-products {
    margin-top: var(--space-2xl);
}

.tp-related-products .tp-section-header {
    margin-bottom: var(--space-xl);
}

.tp-related-products .tp-section-header h2 {
    font-family: var(--font-heading);
    font-size: 24px;
    font-weight: 700;
    color: var(--gold-400);
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}

.tp-related-products .tp-section-header h2 i {
    color: #D4B896;
}

.tp-related-products .tp-section-header h2::after {
    content: '';
    flex: 1;
    height: 2px;
    margin-left: var(--space-lg);
}

/* ========== RESPONSIVE ========== */
@media (max-width: 1200px) {
    .tp-product-top {
        grid-template-columns: 1fr 1fr;
        gap: var(--space-lg);
    }

    .tp-product-sidebar {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-md);
    }

    .tp-product-info {
        padding: var(--space-lg);
    }
}

@media (max-width: 992px) {
    .tp-product-top {
        grid-template-columns: 1fr;
        gap: var(--space-xl);
    }

    .tp-product-sidebar {
        grid-column: auto;
        display: flex;
        flex-direction: column;
    }

    .tp-product-info {
        padding: var(--space-lg);
    }

    .tp-product-gallery {
        position: static;
        max-width: 100%;
        overflow: hidden;
    }

    .tp-gallery-main {
        max-width: 100%;
        overflow: hidden;
    }

    .tp-gallery-main img {
        max-width: 100%;
        height: auto;
    }

    .tp-product-features {
        grid-template-columns: 1fr;
    }

    .tp-tabs-nav {
        flex-wrap: wrap;
    }

    .tp-tab-btn {
        flex: 1 1 auto;
        min-width: 50%;
    }
}

@media (max-width: 768px) {
    .tp-product-price,
    .tp-product-price .price,
    .tp-product-price .amount,
    .tp-product-price bdi,
    .tp-product-price ins,
    .tp-contact-price {
        font-size: 22px !important;
    }
}

@media (max-width: 576px) {
    .tp-single-product-wrapper {
        overflow-x: hidden;
    }

    .tp-product-gallery {
        width: 100%;
        max-width: 100%;
    }

    .tp-gallery-main {
        width: 100%;
        border-radius: var(--radius-md);
    }

    .tp-gallery-slide img {
        width: 100%;
        height: auto;
        object-fit: contain;
    }

    .tp-thumbs-wrapper {
        max-width: 100%;
        overflow: hidden;
    }

    .tp-product-info {
        padding: var(--space-md);
        border-radius: var(--radius-lg);
    }

    .tp-product-title {
        font-size: 20px;
        margin-bottom: var(--space-sm);
    }

    .tp-product-price {
        gap: 2px 6px;
    }

    .tp-product-price,
    .tp-product-price .price,
    .tp-product-price .amount,
    .tp-product-price bdi,
    .tp-product-price ins,
    .tp-contact-price {
        font-size: 20px !important;
    }

    .tp-product-price .woocommerce-Price-currencySymbol {
        font-size: 15px !important;
    }

    .tp-product-price span[aria-hidden="true"] {
        font-size: 16px !important;
        margin: 0 2px;
    }

    .tp-product-meta-row {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-sm);
    }

    .tp-thumb-item {
        width: 60px;
        height: 60px;
    }

    .tp-tab-btn {
        min-width: 100%;
        padding: var(--space-md);
        font-size: 13px;
    }

    .tp-tabs-content {
        padding: var(--space-lg);
    }

    /* Description & Reviews sections mobile */
    .tp-product-description-section,
    .tp-product-reviews-section {
        border-radius: 12px;
        margin-bottom: var(--space-lg);
    }

    .tp-product-description-section .tp-section-header,
    .tp-product-reviews-section .tp-section-header {
        padding: var(--space-md) var(--space-lg);
    }

    .tp-product-description-section .tp-section-header h2,
    .tp-product-reviews-section .tp-section-header h2 {
        font-size: 15px;
    }

    .tp-description-content,
    .tp-reviews-content {
        padding: var(--space-md);
    }

    .tp-description-content {
        font-size: 14px;
    }

    .tp-reviews-summary {
        flex-direction: column;
        gap: var(--space-md);
    }

    .tp-review-item {
        padding: var(--space-md);
    }

    /* CTA Buttons - Full width on mobile */
    .tp-cta-buttons {
        flex-direction: column;
        gap: var(--space-sm);
    }

    .tp-btn-call,
    .tp-btn-zalo {
        width: 100%;
        min-width: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        flex: none;
        height: 50px;
        padding: 0 var(--space-md);
        font-size: 15px;
    }

    .tp-product-share {
        display: none !important;
    }
}

/* ========== REVIEW FORM STYLES ========== */
.tp-review-form-wrapper {
    margin-top: var(--space-2xl);
    border-top: 1px solid var(--gray-200);
    padding: 20px !important;
}

.tp-form-title {
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 600;
    color: var(--gray-900);
    margin-bottom: var(--space-lg);
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}

.tp-form-title i {
    color: #D4B896;
}

.tp-review-form .comment-form {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-md);
}

.tp-form-group {
    width: 100%;
}

.tp-form-group.tp-form-half {
    width: calc(50% - var(--space-sm));
}

.tp-form-group label {
    display: block;
    font-weight: 500;
    color: var(--gray-700);
    margin-bottom: var(--space-xs);
    font-size: 14px;
}

.tp-form-group label .required {
    color: #e53935;
}

.tp-form-group input[type="text"],
.tp-form-group input[type="email"],
.tp-form-group textarea {
    width: 100%;
    padding: 12px var(--space-md);
    border: 1px solid var(--gray-300);
    border-radius: var(--radius-md);
    font-size: 15px;
    font-family: var(--font-body);
    transition: all var(--duration-fast) var(--ease-out);
    background: var(--white);
}

.tp-form-group input:focus,
.tp-form-group textarea:focus {
    border-color: #D4B896;
    box-shadow: 0 0 0 3px rgba(212, 184, 150, 0.15);
    outline: none;
}

.tp-form-group textarea {
    resize: vertical;
    min-height: 120px;
}

/* Star Rating Input */
.tp-rating-field {
    margin-bottom: var(--space-md);
}

.tp-star-rating-input {
    display: flex;
    flex-direction: row-reverse;
    justify-content: flex-end;
    gap: 4px;
}

.tp-star-rating-input input[type="radio"] {
    display: none;
}

.tp-star-rating-input label {
    cursor: pointer;
    font-size: 28px;
    color: var(--gray-300);
    transition: color var(--duration-fast) var(--ease-out);
    margin-bottom: 0;
}

.tp-star-rating-input label:hover,
.tp-star-rating-input label:hover ~ label,
.tp-star-rating-input input[type="radio"]:checked ~ label {
    color: #ffc107;
}

.tp-star-rating-input label:hover {
    transform: scale(1.1);
}

/* Submit Button */
.tp-submit-review {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    padding: 14px var(--space-2xl) !important;
    background: linear-gradient(135deg, #B8956C, #D4B896) !important;
    color: var(--white) !important;
    border: none !important;
    border-radius: var(--radius-lg) !important;
    font-family: var(--font-heading) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    cursor: pointer;
    transition: all var(--duration-fast) var(--ease-out) !important;
    box-shadow: 0 4px 15px rgba(184, 149, 108, 0.3);
    margin-top: var(--space-md);
}

.tp-submit-review:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 20px rgba(184, 149, 108, 0.4) !important;
}

/* Checkbox lưu thông tin - cùng hàng với label */
.tp-review-form .comment-form-cookies-consent {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 8px;
    margin: var(--space-md) 0;
}

.tp-review-form .comment-form-cookies-consent input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0;
    cursor: pointer;
    accent-color: #D4B896;
}

.tp-review-form .comment-form-cookies-consent label {
    display: inline;
    margin: 0;
    font-size: 14px;
    color: var(--gray-600);
    cursor: pointer;
}

/* Nút submit ở hàng riêng */
.tp-review-form .form-submit {
    width: 100%;
    margin-top: var(--space-md);
}

/* Comment form fields wrapper */
.tp-review-form .comment-form-author,
.tp-review-form .comment-form-email {
    width: calc(50% - var(--space-sm));
    display: inline-block;
}

.tp-review-form .comment-form-comment {
    width: 100%;
}

/* Must log in message */
.tp-must-log-in {
    padding: var(--space-md) var(--space-lg);
    background: var(--gold-50);
    border-radius: var(--radius-md);
    color: var(--gray-700);
    font-size: 14px;
    margin-top: var(--space-lg);
}

.tp-must-log-in i {
    color: #D4B896;
    margin-right: var(--space-xs);
}

.tp-must-log-in a {
    color: #B8956C;
    font-weight: 600;
}

.tp-must-log-in a:hover {
    text-decoration: underline;
}

/* Verification required message */
.tp-verification-required {
    padding: var(--space-lg);
    background: var(--gray-100);
    border-radius: var(--radius-md);
    color: var(--gray-600);
    font-size: 14px;
    text-align: center;
    margin-top: var(--space-xl);
}

.tp-verification-required i {
    margin-right: var(--space-xs);
}

/* ========== ADMIN REPLY STYLES ========== */
.tp-review-reply {
    margin-top: var(--space-md);
    padding: var(--space-md) var(--space-lg);
    background: linear-gradient(135deg, #f8f6f3 0%, #faf9f7 100%);
    border-left: 3px solid #D4B896;
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
}

.tp-reply-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--space-sm);
    margin-bottom: var(--space-sm);
}

.tp-reply-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: linear-gradient(135deg, #B8956C, #D4B896);
    color: var(--white);
    font-size: 12px;
    font-weight: 600;
    padding: 4px 12px;
    border-radius: var(--radius-full);
}

.tp-reply-badge i {
    font-size: 11px;
}

.tp-reply-author {
    font-weight: 600;
    color: var(--gray-800);
    font-size: 13px;
}

.tp-reply-date {
    font-size: 12px;
    color: var(--gray-500);
}

.tp-reply-content {
    font-size: 14px;
    line-height: 1.6;
    color: var(--gray-700);
}

.tp-reply-content p {
    margin: 0;
}

/* ========== NO REVIEWS STATE ========== */
.tp-no-reviews {
    text-align: center;
    padding: var(--space-3xl) var(--space-xl);
}

.tp-no-reviews i {
    font-size: 64px;
    color: var(--gray-300);
    margin-bottom: var(--space-lg);
    display: block;
}

.tp-no-reviews h3 {
    font-family: var(--font-heading);
    font-size: 20px;
    color: var(--gray-700);
    margin-bottom: var(--space-sm);
}

.tp-no-reviews p {
    color: var(--gray-500);
    font-size: 15px;
    margin: 0;
}

/* ========== REVIEWS PAGINATION ========== */
.tp-reviews-pagination {
    margin-top: var(--space-xl);
}

/* ========== RESPONSIVE REVIEW FORM ========== */
@media (max-width: 576px) {
    .tp-form-group.tp-form-half {
        width: 100%;
    }

    .tp-review-form .comment-form-author,
    .tp-review-form .comment-form-email {
        width: 100%;
        display: block;
    }

    .tp-star-rating-input label {
        font-size: 24px;
    }

    .tp-review-reply {
        padding: var(--space-sm) var(--space-md);
    }

    .tp-reply-header {
        flex-direction: column;
        align-items: flex-start;
    }

    .tp-no-reviews {
        padding: var(--space-2xl) var(--space-md);
    }

    .tp-no-reviews i {
        font-size: 48px;
    }

    .tp-no-reviews h3 {
        font-size: 18px;
    }
}

/* ========== REAL REVIEWS SECTION (Below Fake Reviews) ========== */
.tp-real-reviews-section {
    margin-top: 0;
}

.tp-real-reviews-section .tp-review-form-wrapper {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}

.tp-form-intro {
    color: var(--gray-600);
    font-size: 15px;
    margin-bottom: var(--space-lg);
    line-height: 1.6;
}

.tp-real-reviews-wrapper {
    margin-top: var(--space-2xl);
    padding-top: var(--space-2xl);
    border-top: 1px solid var(--gray-200);
}

.tp-real-reviews-title {
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 600;
    color: var(--gray-900);
    margin-bottom: var(--space-lg);
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    margin-bottom: 30px !important;
}

.tp-real-reviews-title i {
    color: #D4B896;
}

/* ========== FIX REVIEWS & RELATED PRODUCTS ========== */
/* Margin bottom giữa các review items */
.tp-reviews-list .tp-review-item {
    margin-bottom: 20px;
}

.tp-reviews-list .tp-review-item:last-child {
    margin-bottom: 20px;

}

/* Fix form viết đánh giá */
.tp-review-form-wrapper {
    margin-top: 30px;
    padding: 25px;
    background: var(--gray-50);
    border-radius: var(--radius-lg);
    border: 1px solid var(--gray-200);
}

/* ========== RELATED PRODUCTS - SLICK SLIDER ========== */
.tp-related-products.tp-product-description-section {
    margin-top: var(--space-2xl);
    max-width: 100%;
}

/* Related Content */
.tp-related-content {
    padding: 30px 24px 40px !important;
}

/* Slide Item Wrapper */
.tp-related-slider .tp-slide-item {
    padding: 0 10px;
    box-sizing: border-box;
}

/* Clean, minimal card style for slider */
.tp-related-slider .product-card,
.tp-related-slider .tp-slide-item .product-card {
    margin: 0;
    display: block !important;
    width: 100% !important;
    height: auto !important;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.tp-related-slider .product-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}

.tp-related-slider .product-card .product-img {
    width: 100% !important;
    aspect-ratio: 1 / 1;
    display: block !important;
    overflow: hidden;
    background: #fff;
    margin: 0;
    padding: 0;
}

.tp-related-slider .product-card .product-img a {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
}

.tp-related-slider .product-card .product-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
    display: block;
    margin: 0;
    padding: 0;
}

.tp-related-slider .product-card:hover .product-img img {
    transform: scale(1.05);
}

.tp-related-slider .product-card .product-title {
    display: block !important;
    width: 100% !important;
    padding: 12px 14px 6px;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.4;
    color: #333;
    margin: 0;
    background: #fff;
}

.tp-related-slider .product-card .product-title a {
    color: inherit;
    text-decoration: none;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.tp-related-slider .product-card .product-title a:hover {
    color: #B8956C;
}

.tp-related-slider .product-card .product-meta {
    display: block !important;
    width: 100% !important;
    padding: 0 14px 14px;
    margin: 0;
    background: #fff;
}

.tp-related-slider .product-card .contact-price {
    font-size: 13px;
    font-weight: 600;
    color: #B8956C;
}

/* Slick Slider Customization */
.tp-related-slider.slick-initialized {
    margin: 0 -10px;
}

.tp-related-slider .slick-list {
    overflow: hidden;
    padding: 10px 0 !important;
}

.tp-related-slider .slick-track {
    display: flex !important;
    align-items: stretch;
}

.tp-related-slider .slick-slide {
    height: auto !important;
    float: none !important;
}

.tp-related-slider .slick-slide > div {
    width: 100%;
    height: 100%;
}

/* Slick Arrows - Nổi lên trên cards */
.tp-related-slider .slick-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 20;
    width: 40px;
    height: 40px;
    border: none;
    border-radius: 50%;
    background: linear-gradient(135deg, #B8956C, #D4B896);
    color: #fff;
    cursor: pointer;
    display: flex !important;
    align-items: center;
    justify-content: center;
    font-size: 0;
    transition: all 0.3s ease;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}

.tp-related-slider .slick-arrow:before {
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    font-size: 14px;
    color: #fff;
    opacity: 1;
}

.tp-related-slider .slick-prev {
    left: 10px;
}

.tp-related-slider .slick-prev:before {
    content: '\f053';
}

.tp-related-slider .slick-next {
    right: 10px;
}

.tp-related-slider .slick-next:before {
    content: '\f054';
}

.tp-related-slider .slick-arrow:hover {
    background: linear-gradient(135deg, #a07850, #B8956C);
    transform: translateY(-50%) scale(1.1);
    box-shadow: 0 4px 15px rgba(184, 149, 108, 0.5);
}

.tp-related-slider .slick-arrow.slick-disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.tp-related-slider .slick-arrow.slick-disabled:hover {
    transform: translateY(-50%);
    background: linear-gradient(135deg, #B8956C, #D4B896);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}

/* Slick Dots */
.tp-related-slider .slick-dots {
    bottom: -30px;
    display: flex !important;
    justify-content: center;
    gap: 8px;
    padding: 0;
    margin: 0;
    list-style: none;
}

.tp-related-slider .slick-dots li {
    width: auto;
    height: auto;
    margin: 0;
}

.tp-related-slider .slick-dots li button {
    width: 10px;
    height: 10px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: var(--gray-300);
    font-size: 0;
    cursor: pointer;
    transition: all 0.3s ease;
}

.tp-related-slider .slick-dots li button:before {
    display: none;
}

.tp-related-slider .slick-dots li.slick-active button {
    background: linear-gradient(135deg, #B8956C, #D4B896);
    transform: scale(1.2);
}

.tp-related-slider .slick-dots li button:hover {
    background: #D4B896;
}

/* Responsive */
@media (max-width: 992px) {
    .tp-related-slider .slick-prev {
        left: 8px;
    }
    .tp-related-slider .slick-next {
        right: 8px;
    }
}

@media (max-width: 768px) {
    .tp-related-content {
        padding: 20px 16px 45px !important;
    }

    .tp-related-slider .slick-arrow {
        width: 36px;
        height: 36px;
        display: flex !important;
    }

    .tp-related-slider .slick-arrow:before {
        font-size: 12px;
    }

    .tp-related-slider .slick-prev {
        left: 5px;
    }

    .tp-related-slider .slick-next {
        right: 5px;
    }

    .tp-related-slider .tp-slide-item {
        padding: 0 8px;
    }

    .tp-related-slider.slick-initialized {
        margin: 0 -8px;
    }
}

@media (max-width: 480px) {
    .tp-related-content {
        padding: 16px 12px 45px !important;
    }

    .tp-related-slider .slick-arrow {
        width: 32px;
        height: 32px;
    }

    .tp-related-slider .slick-arrow:before {
        font-size: 11px;
    }

    .tp-related-slider .slick-prev {
        left: 3px;
    }

    .tp-related-slider .slick-next {
        right: 3px;
    }

    .tp-related-slider .tp-slide-item {
        padding: 0 6px;
    }

    .tp-related-slider.slick-initialized {
        margin: 0 -6px;
    }
}

@media (max-width: 480px) {
    .tp-related-content {
        padding: 16px 12px 45px !important;
    }

    .tp-related-slider .tp-slide-item {
        padding: 0 6px;
    }

    .tp-related-slider.slick-initialized {
        margin: 0 -6px;
    }

    .tp-related-slider .slick-prev {
        left: -5px;
    }

    .tp-related-slider .slick-next {
        right: -5px;
    }
}

/* Override to remove divider after "Sản phẩm liên quan" */
.tp-related-products .tp-section-header h2::after {
    content: none !important;
    flex: initial !important;
    height: initial !important;
    background: initial !important;
    margin-left: initial !important;
}

/* Force tp-review-item to always take full width and prevent shrinking/growing */
.tp-reviews-list .tp-review-item {
    width: 100%;
    box-sizing: border-box; /* Ensure padding and border are included in the width */
    flex-shrink: 0;
    flex-grow: 1;
    flex-basis: auto;
}

/* Premium Variation Form Styling */
.tp-add-to-cart-wrapper {
    margin: var(--space-xl) 0;
    padding: var(--space-md) 0;
    border-top: 1px dashed var(--gray-200);
    border-bottom: 1px dashed var(--gray-200);
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.tp-add-to-cart-wrapper form.variations_form {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-md);
    width: 100%;
    max-width: 100%;
}

.tp-add-to-cart-wrapper table.variations {
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
    margin-bottom: var(--space-md);
    border: none !important;
}

.tp-add-to-cart-wrapper table.variations tbody {
    display: block !important;
    width: 100% !important;
}

.tp-add-to-cart-wrapper table.variations tr {
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-bottom: var(--space-sm);
}

.tp-add-to-cart-wrapper table.variations th.label,
.tp-add-to-cart-wrapper table.variations td.label {
    width: 100% !important;
    max-width: 100% !important;
    text-align: left !important;
    padding: 0 !important;
    font-weight: 600;
    color: var(--gray-800);
    font-size: 14px;
    display: block !important;
}

.tp-add-to-cart-wrapper table.variations td.value {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center;
    gap: var(--space-sm);
    flex-wrap: wrap;
}

.tp-add-to-cart-wrapper table.variations select {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    height: 42px;
    padding: 0 var(--space-md);
    border: 1px solid var(--gray-300);
    border-radius: var(--radius-sm);
    background-color: var(--white);
    font-size: 14px;
    color: var(--gray-700);
    outline: none;
    transition: all 0.3s ease;
}

.tp-add-to-cart-wrapper table.variations select:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(184, 149, 108, 0.15);
}

.tp-add-to-cart-wrapper table.variations .reset_variations {
    display: inline-block;
    font-size: 13px;
    color: var(--danger);
    text-decoration: underline;
    margin-top: 4px;
    white-space: nowrap;
}

.tp-add-to-cart-wrapper .single_variation_wrap {
    width: 100%;
    max-width: 100%;
    margin-top: var(--space-xs);
}

/* Style the dynamic variation price beautifully */
.woocommerce-variation-price .price {
    font-size: 26px !important;
    font-weight: 800 !important;
    color: var(--accent-500) !important;
    margin-bottom: var(--space-md) !important;
    display: inline-block;
    max-width: 100%;
    word-break: break-word;
}

.woocommerce-variation-add-to-cart {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    flex-wrap: wrap;
    width: 100%;
    max-width: 100%;
}

/* Style standard add to cart button in variable form */
.tp-add-to-cart-wrapper .single_add_to_cart_button {
    background: linear-gradient(135deg, var(--primary), var(--primary-light)) !important;
    color: var(--white) !important;
    font-weight: 700 !important;
    height: 48px;
    padding: 0 var(--space-xl) !important;
    border-radius: var(--radius-md) !important;
    border: none !important;
    font-size: 15px !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 4px 15px rgba(184, 149, 108, 0.3) !important;
    cursor: pointer;
    flex: 1 1 200px;
    max-width: 100%;
}

.tp-add-to-cart-wrapper .single_add_to_cart_button:hover {
    background: linear-gradient(135deg, var(--primary-dark), var(--primary)) !important;
    box-shadow: 0 6px 20px rgba(184, 149, 108, 0.4) !important;
    transform: translateY(-2px);
}

.tp-add-to-cart-wrapper .quantity input {
    height: 48px !important;
    border-radius: var(--radius-md) !important;
    border: 1px solid var(--gray-300) !important;
    width: 60px !important;
}

/* ==========================================
   PREMIUM CART & CHECKOUT PAGE OVERRIDES
   ========================================== */

/* --- Common Core Styles --- */
.woocommerce-cart,
.woocommerce-checkout {
    background-color: var(--gray-50);
}

.woocommerce-cart .entry-content,
.woocommerce-checkout .entry-content {
    max-width: var(--container-sm);
    margin: 0 auto;
    padding: var(--space-xl) 0 var(--space-3xl);
}

/* Notices & Alert Overrides */
.woocommerce-message, 
.woocommerce-info, 
.woocommerce-error {
    border-top: 3px solid var(--primary-700) !important;
    background-color: var(--white) !important;
    color: var(--gray-800) !important;
    padding: 16px 24px !important;
    border-radius: var(--radius-md) !important;
    box-shadow: var(--shadow-sm) !important;
    margin-bottom: var(--space-xl) !important;
    font-family: var(--font-body);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-md);
    flex-wrap: wrap;
}

.woocommerce-message::before, 
.woocommerce-info::before, 
.woocommerce-error::before {
    color: var(--primary-700) !important;
    font-family: 'Font Awesome 6 Free' !important;
    font-weight: 900 !important;
    font-size: 16px;
}

.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button {
    background: linear-gradient(135deg, var(--secondary-700) 0%, var(--secondary-900) 100%) !important;
    color: var(--white) !important;
    border-radius: var(--radius-md) !important;
    padding: 8px 16px !important;
    font-size: 13px !important;
    text-transform: none !important;
    box-shadow: none !important;
    margin: 0 !important;
}

.woocommerce-message .button:hover,
.woocommerce-info .button:hover,
.woocommerce-error .button:hover {
    background: var(--accent) !important;
    color: var(--white) !important;
    transform: translateY(-1px) !important;
}

/* --- Cart Page Table Styling --- */
.woocommerce-cart-form {
    background: var(--white);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    border: 1px solid var(--gray-200);
}

.shop_table.cart {
    border: none !important;
}

.shop_table.cart th {
    background: linear-gradient(135deg, var(--secondary-800) 0%, var(--secondary-900) 100%) !important;
    color: var(--white) !important;
    text-transform: uppercase;
    font-size: 13px;
    letter-spacing: 0.5px;
    font-weight: 700;
    padding: 16px 20px !important;
    border: none !important;
}

.shop_table.cart td {
    padding: 20px !important;
    border-bottom: 1px solid var(--gray-100) !important;
    color: var(--gray-800);
    font-size: 15px;
}

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

.shop_table.cart .product-remove {
    width: 50px;
    text-align: center;
}

.shop_table.cart .product-remove a.remove {
    font-size: 24px !important;
    color: var(--danger) !important;
    transition: all var(--duration-fast) var(--ease-out);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: var(--radius-full);
}

.shop_table.cart .product-remove a.remove:hover {
    background-color: var(--danger-light) !important;
    color: var(--danger) !important;
    transform: rotate(90deg);
}

.shop_table.cart .product-thumbnail {
    width: 100px;
}

.shop_table.cart .product-thumbnail img {
    border-radius: var(--radius-md) !important;
    border: 1px solid var(--gray-200);
    padding: 4px;
    background-color: var(--white);
}

.shop_table.cart .product-name a {
    font-family: var(--font-heading);
    font-weight: 700;
    color: var(--secondary-900);
    font-size: 16px;
    transition: color var(--duration-fast) var(--ease-out);
}

.shop_table.cart .product-name a:hover {
    color: var(--accent);
}

.shop_table.cart .product-price {
    font-family: var(--font-heading);
    font-weight: 600;
    color: var(--gray-700);
}

.shop_table.cart .product-subtotal {
    font-family: var(--font-heading);
    font-weight: 700;
    color: var(--accent-700);
}

.shop_table.cart .quantity {
    border-color: var(--gray-300);
}

/* Coupon & Actions row */
.woocommerce-cart-form td.actions {
    background-color: var(--gray-50);
    padding: 16px 20px !important;
}

.woocommerce-cart-form td.actions .coupon {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    float: left;
}

.woocommerce-cart-form td.actions .coupon label {
    display: none;
}

.woocommerce-cart-form td.actions .coupon input.input-text {
    width: 200px !important;
    height: 44px !important;
    padding: 0 16px !important;
    border: 1px solid var(--gray-300) !important;
    border-radius: var(--radius-md) !important;
    background-color: var(--white) !important;
    font-size: 14px;
    margin: 0 !important;
}

.woocommerce-cart-form td.actions .coupon input.input-text:focus {
    border-color: var(--primary-700) !important;
    box-shadow: 0 0 0 3px rgba(184, 149, 108, 0.15) !important;
    outline: none;
}

.woocommerce-cart-form td.actions button.button {
    height: 44px !important;
    padding: 0 24px !important;
    font-family: var(--font-heading) !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    text-transform: uppercase !important;
    border-radius: var(--radius-md) !important;
    cursor: pointer;
    line-height: 44px !important;
}

/* Update Cart Button (disabled state styling) */
.woocommerce-cart-form td.actions button.button[name="update_cart"] {
    background: var(--white) !important;
    border: 2px solid var(--secondary-700) !important;
    color: var(--secondary-700) !important;
    float: right;
    box-shadow: none !important;
    transition: all var(--duration-fast) var(--ease-out) !important;
}

.woocommerce-cart-form td.actions button.button[name="update_cart"]:not(:disabled):hover {
    background: var(--secondary-700) !important;
    color: var(--white) !important;
    transform: translateY(-2px);
    box-shadow: var(--shadow-sm) !important;
}

.woocommerce-cart-form td.actions button.button[name="update_cart"]:disabled {
    opacity: 0.5;
    border-color: var(--gray-300) !important;
    color: var(--gray-400) !important;
    cursor: not-allowed;
}

.woocommerce-cart-form td.actions button.button[name="apply_coupon"] {
    background: linear-gradient(135deg, var(--secondary-700) 0%, var(--secondary-900) 100%) !important;
    color: var(--white) !important;
    box-shadow: none !important;
    border: none !important;
}

.woocommerce-cart-form td.actions button.button[name="apply_coupon"]:hover {
    background: var(--accent) !important;
    box-shadow: var(--shadow-accent) !important;
}

/* --- Cart Collaterals & Totals --- */
.cart-collaterals {
    margin-top: var(--space-2xl);
    display: grid;
    grid-template-columns: 1fr 500px;
    gap: var(--space-xl);
    align-items: start;
}

.cart-collaterals .cross-sells {
    width: 100% !important;
}

.cart-collaterals .cart_totals {
    width: 100% !important;
    background: var(--white);
    padding: var(--space-xl);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    border: 1px solid var(--gray-200);
}

.cart_totals h2 {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 20px;
    color: var(--secondary-900);
    border-bottom: 2px solid var(--primary-200);
    padding-bottom: 12px;
    margin-bottom: 20px;
    text-transform: uppercase;
}

.cart_totals table.shop_table {
    border: none !important;
    margin-bottom: var(--space-lg);
}

.cart_totals table.shop_table th {
    font-weight: 600;
    color: var(--gray-700);
    width: 35%;
    padding: 12px 0;
    border-bottom: 1px solid var(--gray-100);
}

.cart_totals table.shop_table td {
    padding: 12px 0;
    border-bottom: 1px solid var(--gray-100);
    color: var(--gray-800);
    text-align: right;
}

.cart_totals table.shop_table .cart-subtotal td {
    font-family: var(--font-heading);
    font-weight: 600;
}

.cart_totals table.shop_table .order-total th,
.cart_totals table.shop_table .order-total td {
    border-bottom: none;
    padding: 16px 0;
}

.cart_totals table.shop_table .order-total th {
    font-size: 18px;
    color: var(--secondary-900);
}

.cart_totals table.shop_table .order-total td {
    font-family: var(--font-heading);
    font-size: 22px;
    font-weight: 800;
    color: var(--accent-700);
}

/* Proceed to Checkout Button */
.wc-proceed-to-checkout {
    padding: 0;
}

.wc-proceed-to-checkout a.checkout-button {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
    background: linear-gradient(135deg, var(--accent) 0%, var(--accent-700) 100%) !important;
    color: var(--white) !important;
    border-radius: var(--radius-lg) !important;
    padding: 16px 24px !important;
    font-family: var(--font-heading) !important;
    font-weight: 700 !important;
    font-size: 16px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    box-shadow: var(--shadow-accent) !important;
    transition: all var(--duration-normal) var(--ease-out) !important;
}

.wc-proceed-to-checkout a.checkout-button:hover {
    background: linear-gradient(135deg, var(--secondary-700) 0%, var(--secondary-900) 100%) !important;
    transform: translateY(-3px) !important;
    box-shadow: var(--shadow-lg) !important;
}

/* --- Checkout Page Layout & Cards --- */
/* --- Checkout Page Layout & Cards --- */
form.woocommerce-checkout {
    display: grid;
    grid-template-columns: 1fr 450px;
    gap: var(--space-xl);
    align-items: start;
    margin-top: var(--space-lg);
}

.tp-checkout-sidebar {
    position: sticky;
    top: 100px;
    display: flex;
    flex-direction: column;
}

.woocommerce-checkout #customer_details {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-xl);
}

.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 {
    width: 100% !important;
    float: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.woocommerce-billing-fields,
.woocommerce-shipping-fields,
.woocommerce-additional-fields {
    background: var(--white) !important;
    padding: var(--space-xl) !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: var(--shadow-md) !important;
    border: 1px solid var(--gray-200) !important;
}

.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3,
#order_review_heading {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 20px;
    color: var(--secondary-900);
    border-bottom: 2px solid var(--primary-300);
    padding-bottom: 10px;
    margin-bottom: 24px;
    text-transform: uppercase;
}

#order_review_heading {
    margin-top: 0;
}

#order_review {
    background: var(--white) !important;
    padding: var(--space-xl) !important;
    border-radius: var(--radius-lg) !important;
    box-shadow: var(--shadow-md) !important;
    border: 1px solid var(--gray-200) !important;
    position: relative !important;
    top: auto !important;
}

/* Checkout Form Input Styling */
.woocommerce form .form-row {
    margin: 0 0 16px !important;
}

.woocommerce form .form-row label {
    font-family: var(--font-body);
    font-weight: 600;
    color: var(--gray-800);
    font-size: 14px;
    margin-bottom: 6px !important;
}

.woocommerce form .form-row label .required {
    color: var(--danger);
    font-weight: 700;
    text-decoration: none;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
    width: 100%;
    height: 46px;
    padding: 10px 16px;
    border: 1px solid var(--gray-300);
    border-radius: var(--radius-md);
    background-color: var(--white);
    color: var(--gray-800);
    font-size: 14px;
    transition: all var(--duration-fast) var(--ease-out);
    box-sizing: border-box;
}

.woocommerce form .form-row textarea {
    height: 100px !important;
    resize: vertical;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
    border-color: var(--primary-700) !important;
    box-shadow: 0 0 0 3px rgba(184, 149, 108, 0.15) !important;
    outline: none !important;
}

/* Select2 Dropdown Styling Overrides (WooCommerce defaults) */
.select2-container--default .select2-selection--single {
    border: 1px solid var(--gray-300) !important;
    border-radius: var(--radius-md) !important;
    height: 46px !important;
    padding: 8px 16px !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 28px !important;
    color: var(--gray-800) !important;
    padding-left: 0 !important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 44px !important;
    right: 12px !important;
}

.select2-container--default .select2-selection--single:focus,
.select2-container--default.select2-container--focus .select2-selection--single {
    border-color: var(--primary-700) !important;
    box-shadow: 0 0 0 3px rgba(184, 149, 108, 0.15) !important;
    outline: none !important;
}

/* --- Checkout Order Review Table --- */
.shop_table.woocommerce-checkout-review-order-table {
    width: 100%;
    border-collapse: collapse;
    border: none !important;
    margin-bottom: var(--space-lg);
}

.shop_table.woocommerce-checkout-review-order-table th,
.shop_table.woocommerce-checkout-review-order-table td {
    padding: 12px 0 !important;
    border-bottom: 1px solid var(--gray-100) !important;
    background: transparent !important;
    color: var(--gray-800);
}

.shop_table.woocommerce-checkout-review-order-table thead th {
    font-family: var(--font-heading);
    font-weight: 700;
    text-transform: uppercase;
    font-size: 13px;
    color: var(--gray-900);
    border-bottom: 2px solid var(--gray-200) !important;
}

.shop_table.woocommerce-checkout-review-order-table .product-name {
    font-size: 14px;
    text-align: left;
    width: 65%;
}

.shop_table.woocommerce-checkout-review-order-table .product-name strong.product-quantity {
    color: var(--accent-700);
    font-weight: 600;
    margin-left: 4px;
}

.shop_table.woocommerce-checkout-review-order-table .product-total {
    font-family: var(--font-heading);
    font-weight: 600;
    text-align: right;
}

.shop_table.woocommerce-checkout-review-order-table .cart-subtotal th,
.shop_table.woocommerce-checkout-review-order-table .cart-subtotal td {
    font-weight: 600;
}

.shop_table.woocommerce-checkout-review-order-table .cart-subtotal td {
    font-family: var(--font-heading);
    text-align: right;
}

.shop_table.woocommerce-checkout-review-order-table .order-total th {
    font-size: 16px;
    font-weight: 700;
    color: var(--secondary-900);
    border-bottom: none !important;
}

.shop_table.woocommerce-checkout-review-order-table .order-total td {
    font-family: var(--font-heading);
    font-size: 20px;
    font-weight: 800;
    color: var(--accent-700);
    text-align: right;
    border-bottom: none !important;
}

/* --- Checkout Payment Gateways --- */
#payment {
    background: var(--gray-50) !important;
    border-radius: var(--radius-md) !important;
    padding: 16px !important;
    border: 1px solid var(--gray-200);
}

#payment ul.payment_methods {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 16px !important;
    border-bottom: 1px solid var(--gray-200);
}

#payment ul.payment_methods li {
    margin-bottom: 12px !important;
    padding-bottom: 12px !important;
    border-bottom: 1px dashed var(--gray-200);
}

#payment ul.payment_methods li:last-child {
    border-bottom: none !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

#payment ul.payment_methods li label {
    font-family: var(--font-body);
    font-weight: 700;
    color: var(--gray-900);
    cursor: pointer;
    font-size: 14px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

#payment ul.payment_methods li input[type="radio"] {
    margin: 0 !important;
    accent-color: var(--accent);
    cursor: pointer;
    transform: scale(1.1);
}

#payment div.payment_box {
    background-color: var(--white) !important;
    border: 1px solid var(--gray-200) !important;
    border-radius: var(--radius-sm) !important;
    color: var(--gray-700) !important;
    font-size: 13px !important;
    line-height: 1.6 !important;
    margin: 8px 0 0 !important;
    padding: 12px 16px !important;
    position: relative;
    box-shadow: var(--shadow-sm);
}

#payment div.payment_box::before {
    border: 1em solid transparent !important;
    border-bottom-color: var(--gray-200) !important;
    content: "" !important;
    display: block !important;
    height: 0 !important;
    position: absolute !important;
    bottom: 100% !important;
    left: 20px !important;
    width: 0 !important;
    margin-left: -1em !important;
}

/* Place Order Button Overrides */
#payment button#place_order {
    display: block !important;
    width: 100% !important;
    height: 52px !important;
    line-height: 52px !important;
    padding: 0 24px !important;
    background: linear-gradient(135deg, var(--accent) 0%, var(--accent-700) 100%) !important;
    color: var(--white) !important;
    font-family: var(--font-heading) !important;
    font-weight: 700 !important;
    font-size: 16px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    border-radius: var(--radius-md) !important;
    border: none !important;
    box-shadow: var(--shadow-accent) !important;
    transition: all var(--duration-normal) var(--ease-out) !important;
    cursor: pointer !important;
    margin-top: 16px !important;
}

#payment button#place_order:hover {
    background: linear-gradient(135deg, var(--secondary-700) 0%, var(--secondary-900) 100%) !important;
    transform: translateY(-2px) !important;
    box-shadow: var(--shadow-lg) !important;
}

/* --- Thank You (Order Received) Page --- */
.woocommerce-order-received .woocommerce-thankyou-order-received {
    font-family: var(--font-heading);
    font-size: 20px;
    font-weight: 700;
    color: var(--success);
    text-align: center;
    background: var(--white);
    padding: 24px;
    border-radius: var(--radius-lg);
    border-left: 5px solid var(--success);
    box-shadow: var(--shadow-md);
    margin-bottom: var(--space-2xl);
}

.woocommerce-thankyou-order-details {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 var(--space-2xl) !important;
    background: var(--white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    border: 1px solid var(--gray-200);
    overflow: hidden;
}

.woocommerce-thankyou-order-details li {
    padding: 20px !important;
    border-right: 1px solid var(--gray-200);
    text-align: center;
    font-size: 14px;
    color: var(--gray-600);
}

.woocommerce-thankyou-order-details li:last-child {
    border-right: none;
}

.woocommerce-thankyou-order-details li strong {
    display: block;
    font-family: var(--font-heading);
    font-size: 16px;
    color: var(--secondary-900);
    margin-top: 6px;
    font-weight: 700;
}

.woocommerce-thankyou-order-details li.total strong {
    color: var(--accent-700);
}

.order_details,
.customer_details {
    background: var(--white);
    padding: var(--space-xl);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    border: 1px solid var(--gray-200);
    margin-bottom: var(--space-2xl);
}

.order_details h2,
.customer_details h2 {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 20px;
    color: var(--secondary-900);
    border-bottom: 2px solid var(--primary-300);
    padding-bottom: 10px;
    margin-bottom: 20px;
    text-transform: uppercase;
}

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

.order_details th,
.order_details td {
    padding: 14px !important;
    border-bottom: 1px solid var(--gray-100);
    text-align: left;
}

.order_details tfoot th,
.order_details tfoot td {
    font-weight: 600;
}

.order_details tfoot tr:last-child th,
.order_details tfoot tr:last-child td {
    font-size: 18px;
    color: var(--accent-700);
    border-bottom: none;
}

.order_details tfoot td {
    text-align: right;
}

/* --- Mobile Responsiveness overrides --- */
@media (max-width: 991px) {
    form.woocommerce-checkout {
        grid-template-columns: 1fr;
        display: flex;
        flex-direction: column;
    }

    .tp-checkout-sidebar {
        position: static !important;
        margin-top: var(--space-xl);
    }

    .cart-collaterals {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    /* Responsive Cart Table */
    .woocommerce-cart-form table.shop_table_responsive thead {
        display: none;
    }

    .woocommerce-cart-form table.shop_table_responsive tr {
        display: block;
        border-bottom: 2px solid var(--gray-200);
        padding: 16px 0;
        position: relative;
    }

    .woocommerce-cart-form table.shop_table_responsive tr td {
        display: block;
        text-align: right !important;
        padding: 8px 16px !important;
        border-bottom: none !important;
    }

    .woocommerce-cart-form table.shop_table_responsive tr td::before {
        content: attr(data-title) ": ";
        font-weight: 700;
        float: left;
        color: var(--gray-700);
    }

    .woocommerce-cart-form table.shop_table_responsive tr td.product-remove {
        position: absolute;
        top: 10px;
        right: 10px;
        padding: 0 !important;
        width: auto;
    }

    .woocommerce-cart-form table.shop_table_responsive tr td.product-remove::before {
        content: none;
    }

    .woocommerce-cart-form table.shop_table_responsive tr td.product-thumbnail {
        text-align: center !important;
        padding: 0 !important;
    }

    .woocommerce-cart-form table.shop_table_responsive tr td.product-thumbnail::before {
        content: none;
    }

    .woocommerce-cart-form table.shop_table_responsive tr td.product-thumbnail img {
        width: 100px;
        height: 100px;
        margin: 0 auto;
    }

    .woocommerce-cart-form td.actions .coupon {
        width: 100%;
        flex-direction: column;
        align-items: stretch;
    }

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

    .woocommerce-cart-form td.actions button.button {
        width: 100% !important;
        margin-top: 10px;
    }

    .woocommerce-thankyou-order-details {
        grid-template-columns: 1fr;
    }

    .woocommerce-thankyou-order-details li {
        border-right: none;
        border-bottom: 1px solid var(--gray-200);
    }

    .woocommerce-thankyou-order-details li:last-child {
        border-bottom: none;
    }
}

/* Fix WooCommerce Dynamic Checkout Errors Layout */
.woocommerce-NoticeGroup-checkout,
.woocommerce-NoticeGroup {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    margin-bottom: var(--space-lg) !important;
}

/* Premium Mobile Add to Cart & Quantity Selector Layout */
@media (max-width: 576px) {
    .woocommerce div.product form.cart:not(.variations_form),
    .woocommerce-variation-add-to-cart {
        display: flex !important;
        gap: var(--space-sm) !important;
        align-items: center !important;
        width: 100% !important;
        max-width: 100% !important;
        flex-wrap: wrap !important;
    }

    .woocommerce div.product form.cart:not(.variations_form) .quantity,
    .woocommerce-variation-add-to-cart .quantity {
        flex-shrink: 0 !important;
        display: inline-flex !important;
        height: 44px !important;
        border-radius: var(--radius-md) !important;
        border: 1px solid var(--gray-300) !important;
        max-width: 100% !important;
    }

    .woocommerce div.product form.cart:not(.variations_form) .quantity .qty-btn,
    .woocommerce-variation-add-to-cart .quantity .qty-btn {
        width: 34px !important;
        height: 100% !important;
        background: var(--gray-50) !important;
        border: none !important;
        cursor: pointer;
    }

    .woocommerce div.product form.cart:not(.variations_form) .quantity input.qty,
    .woocommerce-variation-add-to-cart .quantity input.qty {
        width: 38px !important;
        height: 100% !important;
        font-size: 15px !important;
        border-left: 1px solid var(--gray-200) !important;
        border-right: 1px solid var(--gray-200) !important;
        text-align: center !important;
    }

    .woocommerce div.product form.cart:not(.variations_form) .single_add_to_cart_button,
    .woocommerce-variation-add-to-cart .single_add_to_cart_button {
        flex: 1 1 150px !important;
        min-width: 0 !important;
        max-width: 100% !important;
        height: 44px !important;
        padding: 0 var(--space-sm) !important;
        font-size: 13px !important;
        font-weight: 700 !important;
        text-transform: uppercase !important;
        letter-spacing: 0.3px !important;
        margin: 0 !important;
        white-space: nowrap !important;
        border-radius: var(--radius-md) !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        line-height: 44px !important;
    }
}

@media (max-width: 380px) {
    .woocommerce div.product form.cart:not(.variations_form) .quantity,
    .woocommerce-variation-add-to-cart .quantity {
        width: 100% !important;
        justify-content: center;
    }

    .woocommerce div.product form.cart:not(.variations_form) .quantity input.qty,
    .woocommerce-variation-add-to-cart .quantity input.qty {
        flex: 1;
    }

    .woocommerce div.product form.cart:not(.variations_form) .single_add_to_cart_button,
    .woocommerce-variation-add-to-cart .single_add_to_cart_button {
        width: 100% !important;
        flex: 1 1 100% !important;
    }
}
