/* ============================================
    ĐẶC SẢN BA MIỀN - HOMEPAGE STYLES
   Thiết kế cho website đặc sản vùng miền
   ============================================ */

@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,400&family=Playfair+Display:wght@400;700&family=Playwrite+IE:wght@100..400&display=swap');

/* ============================================
   CSS VARIABLES
   ============================================ */
:root {
    --bg-green: #9acd66;
    --bg-green-dark: #6b9e3a;
    --bg-green-light: #7CB342;
    --bg-green-lighter: #E6F5B0;
    --bg-orange: #D4763C;
    --bg-orange-dark: #BF5B1A;
    --bg-orange-light: #F0A868;
    --bg-white: #ffffff;
    --bg-gray: #F5F7F2;
    --bg-gray-light: #FAFFF2;
    --bg-gray-border: #D8E8D0;
    --bg-text: #2C3E2D;
    --bg-text-light: #5A6E5C;
    --bg-text-muted: #8A9B8C;
    --bg-font: 'Be Vietnam Pro', 'Roboto', sans-serif;
    --bg-font-script: 'Playfair Display', 'Georgia', serif;
    --bg-font-brand: 'Playwrite IE', cursive;
    --bg-container: 1170px;
    --bg-shadow: 0 2px 8px rgba(44, 62, 45, 0.06);
    --bg-shadow-hover: 0 8px 25px rgba(44, 62, 45, 0.10);
    --bg-transition: all 0.3s ease;
    --bg-radius: 10px;
}

/* ============================================
   GLOBAL RESET
   ============================================ */
.bg-top-banner,
.bg-hero-section,
.bg-categories-section,
.bg-about-section,
.bg-gallery-section,
.bg-products-section,
.bg-promo-section,
.bg-accessories-section,
.bg-testimonial-section,
.bg-news-section,
.bg-services-bar,
.bg-footer {
    font-family: var(--bg-font);
    line-height: 1.6;
    color: var(--bg-text);
}

.container {
    max-width: var(--bg-container);
    margin: 0 auto;
    padding: 0 15px;
}

*, *::before, *::after {
    box-sizing: border-box;
}

/* Remove Astra defaults for homepage */
body.home .entry-header,
body.home .ast-article-post,
body.home .ast-separate-container .ast-article-post,
body.home #primary > .ast-container {
    padding: 0 !important;
    margin: 0 !important;
    max-width: 100% !important;
}

body.home .site-content > .ast-container {
    max-width: 100% !important;
    padding: 0 !important;
}

body.home #content .ast-container {
    display: block !important;
}

body.home .ast-separate-container #primary {
    padding: 0 !important;
    margin: 0 !important;
}

/* ============================================
   TOP BANNER
   ============================================ */
.bg-top-banner {
    background: linear-gradient(90deg, var(--bg-green), var(--bg-green-light));
    padding: 10px 0;
    text-align: center;
    overflow: hidden;
    position: relative;
}

.bg-top-banner::before,
.bg-top-banner::after {
    content: '';
    position: absolute;
    top: 0;
    width: 200px;
    height: 100%;
    z-index: 1;
    pointer-events: none;
}

.bg-top-banner::before {
    left: 0;
    background: linear-gradient(90deg, rgba(46,83,57,0.4), transparent);
}
.bg-top-banner::after {
    right: 0;
    background: linear-gradient(270deg, rgba(46,83,57,0.4), transparent);
}

.bg-top-banner-inner {
    max-width: var(--bg-container);
    margin: 0 auto;
    padding: 0 15px;
}

.top-banner-text {
    color: #fff;
    font-size: 26px;
    font-family: var(--bg-font-script);
    margin: 0;
    letter-spacing: 1px;
}

.top-banner-text em {
    font-style: italic;
    color: rgba(255,255,255,0.9);
}

/* ============================================
   MIDDLE HEADER
   ============================================ */
.bg-middle-header {
    background: #fff;
    padding: 18px 0;
    border-bottom: 1px solid #eee;
    position: relative;
    z-index: 100;
}

.bg-header-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

/* --- Search Bar --- */
.bg-header-search {
    flex: 0 0 280px;
}

.bg-search-form {
    display: flex !important;
    align-items: center !important;
    border: 2px solid #ddd !important;
    border-radius: 50px !important;
    background: #fff !important;
    transition: var(--bg-transition) !important;
    padding: 0 !important;
    box-shadow: none !important;
}

.bg-search-form:focus-within {
    border-color: var(--bg-green) !important;
    box-shadow: 0 0 0 3px rgba(58, 129, 50, 0.1) !important;
}

.bg-middle-header .bg-search-input,
.bg-search-form .bg-search-input {
    flex: 1 !important;
    border: none !important;
    outline: none !important;
    padding: 10px 20px !important;
    font-size: 14px !important;
    font-family: var(--bg-font) !important;
    color: var(--bg-text) !important;
    background: transparent !important;
    border-radius: 50px 0 0 50px !important;
    box-shadow: none !important;
}

.bg-search-input::placeholder {
    color: #bbb;
}

.bg-search-btn {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    border: none !important;
    background: var(--bg-green) !important;
    color: #fff !important;
    border-radius: 50% !important;
    cursor: pointer;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-right: 3px !important;
    transition: var(--bg-transition) !important;
    flex-shrink: 0;
    padding: 0 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    line-height: 1 !important;
    gap: 0 !important;
}



.bg-search-btn:hover {
    background: var(--bg-green-dark) !important;
    transform: scale(1.05) !important;
    box-shadow: none !important;
}

/* --- Logo --- */
.bg-header-logo {
    flex: 0 0 auto;
    text-align: center;
}

.bg-logo-link {
    display: flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    color: var(--bg-text);
}

.bg-logo-link.has-image {
    gap: 0;
    justify-content: center;
}

.bg-logo-image {
    display: block;
    width: clamp(68px, 7vw, 68px);
    height: auto;
    object-fit: contain;
}

.bg-logo-icon {
    font-size: 36px;
    line-height: 1;
}

.bg-logo-text-group {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.bg-logo-name {
    font-size: 32px;
    font-weight: 400;
    color: var(--bg-green-dark);
    line-height: 1.1;
    letter-spacing: 0;
    font-family: var(--bg-font-brand);
    font-optical-sizing: auto;
}

.bg-logo-tagline {
    font-size: 11px;
    font-weight: 600;
    color: var(--bg-text-muted);
    letter-spacing: 3px;
    text-transform: uppercase;
}

/* --- Actions (Hotline + Account + Cart) --- */
.bg-header-actions {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 12px;
}

.bg-hotline-box {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 18px;
    border: 2px solid var(--bg-green);
    border-radius: 50px;
    text-decoration: none;
    color: var(--bg-text);
    transition: var(--bg-transition);
}

.bg-hotline-box:hover {
    background: var(--bg-green-lighter);
    border-color: var(--bg-green-dark);
}

.bg-hotline-icon {
    width: 32px;
    height: 32px;
    background: var(--bg-green);
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.bg-hotline-text {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.bg-hotline-text small {
    font-size: 11px;
    color: var(--bg-text-muted);
}

.bg-hotline-text strong {
    font-size: 16px;
    font-weight: 700;
    color: var(--bg-green-dark);
}

.bg-header-icon-btn {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--bg-green);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: var(--bg-transition);
    position: relative;
}

.bg-header-icon-btn:hover {
    background: var(--bg-green-dark);
    transform: scale(1.08);
}

.bg-header-icon-btn svg {
    stroke: #fff;
}

.bg-cart-count {
    position: absolute;
    top: -4px;
    right: -4px;
    background: #e53935;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    min-width: 20px;
    height: 20px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 5px;
    border: 2px solid #fff;
}

/* ============================================
   GREEN NAVIGATION BAR
   ============================================ */
.bg-main-nav {
    background: var(--bg-green);
    position: relative;
    z-index: 99;
}

.bg-main-nav .container {
    display: flex;
    align-items: center;
    justify-content: center;
}

.bg-nav-menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
}

.bg-nav-menu > li {
    position: relative;
}

.bg-nav-menu > li > a {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 16px 28px;
    color: #fff;
    text-decoration: none;
    font-family: var(--bg-font);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    transition: var(--bg-transition);
    white-space: nowrap;
}

.bg-nav-menu > li > a:hover,
.bg-nav-menu > li > a.active {
    color: var(--bg-orange);
}

.bg-nav-menu > li > a svg {
    fill: #fff;
    transition: var(--bg-transition);
}

.bg-nav-menu > li > a:hover svg,
.bg-nav-menu > li > a.active svg {
    fill: var(--bg-orange);
}

/* Dropdown */
.bg-dropdown {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(10px);
    background: #fff;
    min-width: 200px;
    border-radius: 10px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.15);
    list-style: none;
    margin: 0;
    padding: 10px;
    opacity: 0;
    visibility: hidden;
    transition: all 0.25s ease;
    z-index: 200;
    border: 1px solid rgba(0,0,0,0.06);
}

.bg-dropdown::before {
    content: '';
    position: absolute;
    top: -6px;
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
    width: 12px;
    height: 12px;
    background: #fff;
    border-top: 1px solid rgba(0,0,0,0.06);
    border-left: 1px solid rgba(0,0,0,0.06);
}

.bg-has-dropdown:hover .bg-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
}

.bg-dropdown li a {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 14px;
    color: var(--bg-text);
    text-decoration: none;
    font-size: 13px;
    font-weight: 500;
    transition: all 0.2s ease;
    border-radius: 6px;
    white-space: nowrap;
}

.bg-dropdown li a::before {
    content: '';
    font-size: 12px;
    opacity: 0.7;
}

.bg-dropdown li a:hover {
    background: linear-gradient(135deg, #e8f5e9, #f1f8e9);
    color: var(--bg-green);
    padding-left: 18px;
}

/* Hamburger Menu (Mobile) */
.bg-nav-toggle {
    display: none;
    flex-direction: column;
    gap: 5px;
    cursor: pointer;
    padding: 10px;
    z-index: 101;
}

.bg-nav-toggle span {
    display: block;
    width: 26px;
    height: 3px;
    background: #fff;
    border-radius: 3px;
    transition: var(--bg-transition);
}

.bg-nav-toggle.active span:nth-child(1) {
    transform: rotate(45deg) translate(6px, 6px);
}

.bg-nav-toggle.active span:nth-child(2) {
    opacity: 0;
}

.bg-nav-toggle.active span:nth-child(3) {
    transform: rotate(-45deg) translate(6px, -6px);
}

/* ============================================
   HERO SECTION
   ============================================ */
.bg-hero-section {
    position: relative;
    width: 100%;
    min-height: 550px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: linear-gradient(135deg,
        rgba(30, 80, 30, 0.3),
        rgba(20, 60, 20, 0.5)),
        url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"><rect fill="%232d6a26" width="100" height="100"/></svg>');
    background-size: cover;
    background-position: center;
    background-color: #2d6a26;
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg,
        rgba(30, 80, 30, 0.15),
        rgba(20, 60, 20, 0.3));
    z-index: 1;
}

.hero-content {
    position: relative;
    z-index: 2;
    text-align: center;
    padding: 60px 20px;
}

.hero-title {
    font-family: var(--bg-font-brand);
    font-size: clamp(48px, 8vw, 80px);
    color: #fff;
    font-weight: 400;
    line-height: 1.2;
    text-shadow: 0 2px 20px rgba(0,0,0,0.3);
    margin: 0;
    font-optical-sizing: auto;
}

.hero-title span {
    font-family: var(--bg-font-brand);
    font-size: clamp(24px, 3.8vw, 42px);
    display: block;
    line-height: 1.45;
    margin-top: 16px;
    font-optical-sizing: auto;
}

/* ============================================
   CATEGORIES SECTION
   ============================================ */
.bg-categories-section {
    padding: 60px 0 40px;
    background: var(--bg-white);
}

.bg-cat-grid {
    display: flex;
    justify-content: center;
    gap: 40px;
    flex-wrap: wrap;
}

.bg-cat-item {
    text-align: center;
    text-decoration: none;
    color: var(--bg-text);
    transition: var(--bg-transition);
}

.bg-cat-item:hover {
    transform: translateY(-5px);
}

.bg-cat-item:hover .bg-cat-circle {
    box-shadow: 0 8px 25px rgba(58, 129, 50, 0.25);
    border-color: var(--bg-green);
}

.bg-cat-circle {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    border: 3px solid var(--bg-gray-border);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 12px;
    background: var(--bg-white);
    transition: var(--bg-transition);
}

.bg-cat-circle img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.bg-cat-initial {
    color: var(--bg-green);
    font-size: 34px;
    font-weight: 800;
    line-height: 1;
}

.bg-cat-name {
    font-size: 15px;
    font-weight: 500;
    color: var(--bg-text);
}

/* ============================================
   ABOUT SECTION
   ============================================ */
.bg-about-section {
    padding: 60px 0 40px;
    background: var(--bg-white);
}

.bg-about-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
}

.bg-about-image {
    position: relative;
}

.bg-about-leaf-decor {
    position: absolute;
    top: -30px;
    left: -30px;
    width: 100px;
    height: 100px;
    opacity: 0.3;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><text y="80" font-size="80"></text></svg>') no-repeat;
    background-size: contain;
}

.bg-about-image img {
    width: 100%;
    border-radius: 16px;
    box-shadow: var(--bg-shadow-hover);
}

.bg-script-text {
    font-family: var(--bg-font-script);
    font-size: 42px;
    color: var(--bg-text);
    margin-bottom: 5px;
    line-height: 1;
}

.bg-about-heading {
    font-family: var(--bg-font);
    font-size: 32px;
    font-weight: 700;
    color: var(--bg-green);
    line-height: 1.3;
    margin-bottom: 25px;
    text-transform: uppercase;
}

.bg-about-text p {
    color: var(--bg-text-light);
    font-size: 15px;
    line-height: 1.8;
    margin-bottom: 15px;
}

.bg-about-text strong {
    color: var(--bg-green);
}

/* ============================================
   GALLERY SECTION
   ============================================ */
.bg-gallery-section {
    padding: 20px 0 60px;
    background: var(--bg-white);
}

.bg-gallery-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
    gap: 15px;
}

.bg-gallery-item {
    border-radius: 12px;
    overflow: hidden;
    position: relative;
}

.bg-gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    min-height: 200px;
    transition: transform 0.5s ease;
}

.bg-gallery-item:hover img {
    transform: scale(1.05);
}

/* ============================================
   SECTION HEADER
   ============================================ */
.bg-section-header {
    text-align: center;
    margin-bottom: 35px;
    position: relative;
}

.bg-leaf-icon {
    font-size: 32px;
    margin-bottom: 5px;
    opacity: 0.6;
}

.bg-section-title {
    font-family: var(--bg-font);
    font-size: 32px;
    font-weight: 700;
    color: var(--bg-text);
    text-transform: uppercase;
    letter-spacing: 2px;
    margin: 0;
}

/* ============================================
   PRODUCTS SECTION
   ============================================ */
.bg-products-section,
.bg-accessories-section {
    padding: 60px 0;
    background: var(--bg-gray-light);
    position: relative;
    overflow: hidden;
}

.bg-leaf-decor-left,
.bg-leaf-decor-right {
    position: absolute;
    width: 200px;
    height: 400px;
    opacity: 0.04;
    background-repeat: no-repeat;
    background-size: contain;
}

.bg-leaf-decor-left {
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 400"><circle cx="100" cy="200" r="180" fill="%233a8132" opacity="0.3"/></svg>');
}

.bg-leaf-decor-right {
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 400"><circle cx="100" cy="200" r="180" fill="%233a8132" opacity="0.3"/></svg>');
}

/* Filter Tabs */
.bg-filter-tabs {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-bottom: 35px;
    flex-wrap: wrap;
}

.bg-filter-tab {
    padding: 10px 28px;
    border: 2px solid var(--bg-green);
    background: var(--bg-white);
    color: var(--bg-text);
    font-family: var(--bg-font);
    font-size: 14px;
    font-weight: 500;
    border-radius: 30px;
    cursor: pointer;
    transition: var(--bg-transition);
}

.bg-filter-tab:hover,
.bg-filter-tab.active {
    background: var(--bg-green);
    color: var(--bg-white);
}

/* Product Grid */
.bg-product-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 25px;
}

/* Product Card */
.bg-product-card {
    background: var(--bg-white);
    border-radius: var(--bg-radius);
    overflow: hidden;
    position: relative;
    transition: var(--bg-transition);
    border: 1px solid var(--bg-gray-border);
    animation: fadeInUp 0.5s ease forwards;
}

.bg-product-card:nth-child(1) { animation-delay: 0.05s; }
.bg-product-card:nth-child(2) { animation-delay: 0.1s; }
.bg-product-card:nth-child(3) { animation-delay: 0.15s; }
.bg-product-card:nth-child(4) { animation-delay: 0.2s; }
.bg-product-card:nth-child(5) { animation-delay: 0.25s; }
.bg-product-card:nth-child(6) { animation-delay: 0.3s; }
.bg-product-card:nth-child(7) { animation-delay: 0.35s; }
.bg-product-card:nth-child(8) { animation-delay: 0.4s; }

.bg-product-card:hover {
    box-shadow: var(--bg-shadow-hover);
    transform: translateY(-3px);
}

/* Badges */
.bg-discount-badge {
    position: absolute;
    top: 10px;
    right: 10px;
    background: var(--bg-orange);
    color: #fff;
    padding: 4px 12px;
    font-size: 13px;
    font-weight: 700;
    z-index: 5;
    border-radius: 4px;
    clip-path: polygon(0 0, 100% 0, 100% 70%, 85% 100%, 0 100%);
    padding-bottom: 10px;
}

.bg-new-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    background: var(--bg-green);
    color: #fff;
    padding: 4px 12px;
    font-size: 12px;
    font-weight: 700;
    z-index: 5;
    border-radius: 20px;
}

/* Product Image */
.bg-product-image {
    display: block;
    overflow: hidden;
}

.bg-product-image img,
.bg-product-image > div {
    width: 100%;
    height: 250px;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.bg-product-image-placeholder {
    align-items: center;
    background: linear-gradient(135deg, #FAFFF2, #E6F5B0);
    color: var(--bg-green-dark);
    display: flex;
    font-size: 16px;
    font-weight: 700;
    justify-content: center;
    line-height: 1.35;
    padding: 20px;
    text-align: center;
}

.bg-product-card:hover .bg-product-image img {
    transform: scale(1.05);
}

/* Product Info */
.bg-product-info {
    padding: 15px 20px 20px;
    text-align: center;
}

.bg-product-name {
    font-size: 15px;
    font-weight: 500;
    margin: 0 0 8px;
    line-height: 1.4;
}

.bg-product-name a {
    color: var(--bg-text);
    text-decoration: none;
    transition: var(--bg-transition);
}

.bg-product-name a:hover {
    color: var(--bg-green);
}

.bg-product-price {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 10px;
}

.bg-price-current {
    font-size: 17px;
    font-weight: 700;
    color: var(--bg-orange);
}

.bg-price-old {
    font-size: 14px;
    color: var(--bg-text-muted);
    text-decoration: line-through;
}

/* ============================================
   PROMO BANNERS
   ============================================ */
.bg-promo-section {
    padding: 50px 0;
    background: var(--bg-white);
}

.bg-promo-grid {
    display: grid;
    grid-template-columns: 1fr 1.5fr 1fr;
    gap: 20px;
}

.bg-promo-card {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    min-height: 280px;
    display: flex;
    align-items: flex-end;
    padding: 25px;
    cursor: pointer;
    transition: var(--bg-transition);
}

.bg-promo-card:hover {
    transform: scale(1.02);
}

.bg-promo-vegs {
    background: linear-gradient(135deg, rgba(139,195,74,0.7), rgba(76,175,80,0.7)),
                url('../images/promo-mien-mi.png') center/cover no-repeat;
}

.bg-promo-sale {
    background: linear-gradient(135deg, rgba(67,160,71,0.7), rgba(46,125,50,0.7)),
                url('../images/promo-dac-san.png') center/cover no-repeat;
}

.bg-promo-fruits {
    background: linear-gradient(135deg, rgba(102,187,106,0.7), rgba(56,142,60,0.7)),
                url('../images/promo-nong-san.png') center/cover no-repeat;
}

.bg-promo-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.4), transparent);
}

.bg-promo-overlay-green {
    background: linear-gradient(to top, rgba(0,0,0,0.3), rgba(46,125,50,0.2));
}

.bg-promo-content {
    position: relative;
    z-index: 2;
    color: #fff;
}

.bg-promo-script {
    font-family: var(--bg-font-script);
    font-size: 36px;
    margin: 0 0 5px;
}

.bg-promo-bold {
    font-size: 32px;
    font-weight: 700;
    font-family: var(--bg-font-script);
    margin: 0;
}

.bg-promo-highlight {
    font-size: 24px;
    font-weight: 700;
    margin: 5px 0;
    color: #ffeb3b;
}

.bg-promo-big {
    font-size: 60px;
    font-weight: 900;
}

.bg-promo-sub {
    font-size: 16px;
    font-weight: 600;
    margin: 0;
    color: #ffeb3b;
}

/* ============================================
   TESTIMONIALS
   ============================================ */
.bg-testimonial-section {
    position: relative;
    padding: 100px 0;
    overflow: hidden;
    min-height: 500px;
}

/* Ảnh bìa nền */
.bg-testimonial-cover {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 0;
}

.bg-testimonial-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(77,130,40,0.88), rgba(107,158,58,0.85));
    z-index: 1;
}

.bg-testimonial-overlay::before,
.bg-testimonial-overlay::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 40px;
    z-index: 2;
}

.bg-testimonial-overlay::before {
    top: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 40"><path fill="%23fafafa" d="M0,0 C480,40 960,40 1440,0 L1440,0 L0,0 Z"/></svg>') no-repeat;
    background-size: 100%;
}

.bg-testimonial-overlay::after {
    bottom: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 40"><path fill="%23fafafa" d="M0,40 C480,0 960,0 1440,40 L1440,40 L0,40 Z"/></svg>') no-repeat;
    background-size: 100%;
}

.bg-testimonial-content {
    position: relative;
    z-index: 3;
    text-align: center;
    max-width: 700px;
    margin: 0 auto;
}





.bg-star {
    color: #FFD700;
    font-size: 22px;
    text-shadow: 0 0 10px rgba(255,215,0,0.4);
    animation: starPulse 2s ease-in-out infinite;
}

.bg-star:nth-child(2) { animation-delay: 0.1s; }
.bg-star:nth-child(3) { animation-delay: 0.2s; }
.bg-star:nth-child(4) { animation-delay: 0.3s; }
.bg-star:nth-child(5) { animation-delay: 0.4s; }

@keyframes starPulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.15); }
}

.bg-testimonial-quote {
    color: rgba(255,255,255,0.92);
    font-size: 17px;
    line-height: 2;
    font-style: italic;
    margin: 0 0 25px;
    transition: opacity 0.35s ease, transform 0.35s ease;
}

.bg-testimonial-author {
    margin-bottom: 35px;
}

.bg-testimonial-author strong {
    display: block;
    color: #fff;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: 2px;
    margin-bottom: 4px;
}

.bg-testimonial-author span {
    color: rgba(255,255,255,0.6);
    font-size: 14px;
    font-style: italic;
}

/* Avatars with real photos */
.bg-testimonial-avatars {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
}

.bg-avatar-list {
    display: flex;
    gap: 12px;
    align-items: center;
}

.bg-avatar {
    width: 72px;
    height: 72px;
    padding: 0;
    appearance: none;
    border-radius: 999px;
    -webkit-border-radius: 999px;
    border: 3px solid rgba(255,255,255,0.3);
    cursor: pointer;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    overflow: hidden;
    position: relative;
    background: rgba(255,255,255,0.1);
    flex: 0 0 auto;
    clip-path: circle(50% at 50% 50%);
}

.bg-avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 999px;
    -webkit-border-radius: 999px;
    clip-path: circle(50% at 50% 50%);
    transition: transform 0.3s ease;
}

.bg-avatar-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    font-size: 28px;
}

.bg-avatar.active {
    width: 96px;
    height: 96px;
    border-color: #FFD700;
    box-shadow: 0 0 20px rgba(255,215,0,0.4), 0 0 40px rgba(255,215,0,0.15);
}

.bg-avatar.active img {
    transform: scale(1.05);
}

.bg-avatar:hover {
    border-color: rgba(255,255,255,0.8);
    transform: translateY(-3px);
}

.bg-avatar:hover img {
    transform: scale(1.1);
}

.bg-avatar:focus-visible,
.bg-testimonial-nav:focus-visible {
    outline: 3px solid rgba(255,255,255,0.85);
    outline-offset: 3px;
}

.bg-testimonial-nav {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 2px solid rgba(255,255,255,0.4);
    background: rgba(255,255,255,0.05);
    color: #fff;
    font-size: 20px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--bg-transition);
    backdrop-filter: blur(4px);
}

.bg-testimonial-nav:hover {
    background: rgba(255,255,255,0.2);
    border-color: #fff;
    transform: scale(1.1);
}

.bg-testimonial-nav:disabled {
    opacity: 0.4;
    cursor: default;
    transform: none;
}

.bg-testimonial-nav:disabled:hover {
    background: rgba(255,255,255,0.05);
    border-color: rgba(255,255,255,0.4);
}

/* ============================================
   NEWS SECTION
   ============================================ */
.bg-news-section {
    padding: 60px 0;
    background: var(--bg-gray-light);
}

.bg-news-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

.bg-news-card {
    background: var(--bg-white);
    border-radius: var(--bg-radius);
    overflow: hidden;
    transition: var(--bg-transition);
    box-shadow: var(--bg-shadow);
}

.bg-news-card:hover {
    box-shadow: var(--bg-shadow-hover);
    transform: translateY(-3px);
}

.bg-news-image {
    display: block;
    overflow: hidden;
}

.bg-news-image img,
.bg-news-image > div {
    width: 100%;
    height: 220px;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.bg-news-card:hover .bg-news-image img {
    transform: scale(1.05);
}

.bg-news-content {
    padding: 20px;
}

.bg-news-title {
    font-size: 16px;
    font-weight: 600;
    margin: 0 0 10px;
    line-height: 1.5;
}

.bg-news-title a {
    color: var(--bg-text);
    text-decoration: none;
    transition: var(--bg-transition);
}

.bg-news-title a:hover {
    color: var(--bg-green);
}

.bg-news-meta {
    display: flex;
    gap: 15px;
    color: var(--bg-text-muted);
    font-size: 13px;
    margin-bottom: 12px;
}

.bg-news-excerpt {
    color: var(--bg-text-light);
    font-size: 14px;
    line-height: 1.7;
    margin: 0;
}

/* ============================================
   SERVICES BAR
   ============================================ */
.bg-services-bar {
    background: linear-gradient(90deg, var(--bg-orange), var(--bg-orange-light));
    padding: 25px 0;
}

.bg-services-grid {
    display: flex;
    align-items: center;
    justify-content: space-around;
}

.bg-service-item {
    display: flex;
    align-items: center;
    gap: 15px;
    color: #fff;
}

.bg-service-text strong {
    display: block;
    font-size: 16px;
    font-weight: 700;
}

.bg-service-text span {
    font-size: 14px;
    opacity: 0.9;
}

.bg-service-icon {
    font-size: 36px;
}

.bg-service-divider {
    width: 1px;
    height: 40px;
    background: rgba(255,255,255,0.3);
}

/* ============================================
   FOOTER
   ============================================ */
.bg-footer {
    background: var(--bg-white);
    padding: 50px 0 0;
    border-top: 1px solid var(--bg-gray-border);
}

.bg-footer-grid {
    display: grid;
    grid-template-columns: 1.3fr 1fr 1fr 1.3fr;
    gap: 40px;
    padding-bottom: 40px;
}

/* Footer Logo */
.bg-footer-logo {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.bg-footer-logo.has-image {
    gap: 0;
}

.bg-footer-logo-link {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
}

.bg-footer-logo-image {
    display: block;
    width: clamp(132px, 18vw, 172px);
    height: auto;
    object-fit: contain;
}

.bg-footer-logo-icon {
    font-size: 36px;
}

.bg-footer-logo-text {
    font-size: 28px;
    font-weight: 700;
    color: var(--bg-green);
}

.bg-footer-logo-sub {
    font-size: 11px;
    color: var(--bg-text-muted);
    letter-spacing: 3px;
    text-transform: uppercase;
    width: 100%;
    margin-left: 48px;
    margin-top: -8px;
}

.bg-footer-desc {
    color: var(--bg-text-light);
    font-size: 14px;
    line-height: 1.7;
    margin-bottom: 20px;
}

.bg-footer-desc strong {
    color: var(--bg-green);
}

.bg-footer-contact p {
    color: var(--bg-text-light);
    font-size: 14px;
    margin-bottom: 8px;
}

.bg-footer-phone {
    font-size: 20px !important;
    font-weight: 700;
    color: var(--bg-green) !important;
}

/* Footer columns */
.bg-footer-col h4 {
    font-family: var(--bg-font);
    font-size: 16px;
    font-weight: 700;
    color: var(--bg-text);
    margin-bottom: 20px;
}

.bg-footer-col ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.bg-footer-col ul li {
    margin-bottom: 10px;
}

.bg-footer-col ul a {
    color: var(--bg-text-light);
    text-decoration: none;
    font-size: 14px;
    transition: var(--bg-transition);
}

.bg-footer-col ul a:hover {
    color: var(--bg-green);
    padding-left: 5px;
}

/* Subscribe */
.bg-subscribe-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
}

.bg-subscribe-icon {
    font-size: 40px;
    background: var(--bg-green-lighter);
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.bg-subscribe-header strong {
    display: block;
    font-size: 18px;
    color: var(--bg-green);
    font-weight: 700;
}

.bg-subscribe-header span {
    font-size: 13px;
    color: var(--bg-text-muted);
}

.bg-subscribe-form {
    display: flex;
    margin-bottom: 20px;
}

.bg-subscribe-form input {
    flex: 1;
    padding: 12px 16px;
    border: 1px solid var(--bg-gray-border);
    border-right: none;
    border-radius: var(--bg-radius) 0 0 var(--bg-radius);
    font-family: var(--bg-font);
    font-size: 14px;
    outline: none;
    transition: var(--bg-transition);
}

.bg-subscribe-form input:focus {
    border-color: var(--bg-green);
}

.bg-subscribe-form button {
    padding: 12px 24px;
    background: var(--bg-green);
    color: #fff;
    border: none;
    border-radius: 0 var(--bg-radius) var(--bg-radius) 0;
    font-family: var(--bg-font);
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
    transition: var(--bg-transition);
    white-space: nowrap;
}

.bg-subscribe-form button:hover {
    background: var(--bg-green-dark);
}

.bg-payment-icons {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.bg-payment-icons span {
    font-size: 12px;
    color: var(--bg-text-muted);
    background: var(--bg-gray);
    padding: 4px 8px;
    border-radius: 4px;
}

/* Footer Bottom */
.bg-footer-bottom {
    background: var(--bg-green-dark);
    padding: 15px 0;
    text-align: center;
    margin-top: 0;
}

.bg-footer-bottom p {
    color: rgba(255,255,255,0.8);
    font-size: 14px;
    margin: 0;
}

.bg-footer-bottom strong {
    color: #fff;
}

/* ============================================
   SCROLL TO TOP
   ============================================ */
.bg-scroll-top {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 45px;
    height: 45px;
    border-radius: 50%;
    background: var(--bg-green);
    color: #fff;
    border: none;
    font-size: 20px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
    transition: var(--bg-transition);
    box-shadow: 0 4px 15px rgba(58, 129, 50, 0.4);
}

.bg-scroll-top.visible {
    opacity: 1;
    visibility: visible;
}

.bg-scroll-top:hover {
    background: var(--bg-green-dark);
    transform: translateY(-3px);
}

/* Hide Astra's scroll-to-top (we use our own) */
#ast-scroll-top {
    display: none !important;
}

/* ============================================
   ANIMATIONS
   ============================================ */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ============================================
   GLOBAL PAGE STYLES (All Pages)
   ============================================ */

/* --- Page Container --- */
.site-content .ast-container {
    max-width: var(--bg-container) !important;
    margin: 0 auto;
    padding: 30px 15px !important;
}

#primary {
    padding: 0 !important;
}

/* --- Breadcrumbs --- */
.ast-breadcrumbs,
.woocommerce-breadcrumb,
nav.woocommerce-breadcrumb {
    background: linear-gradient(135deg, var(--bg-green-dark), var(--bg-green)) !important;
    color: rgba(255,255,255,0.8) !important;
    padding: 18px 30px !important;
    border-radius: 12px;
    margin-bottom: 30px !important;
    font-size: 14px;
}

.woocommerce-breadcrumb a,
.ast-breadcrumbs a {
    color: #fff !important;
    text-decoration: none;
    font-weight: 500;
}

.woocommerce-breadcrumb a:hover {
    color: var(--bg-orange) !important;
}

/* --- Page Titles --- */
.entry-title,
.page-title,
.woocommerce-products-header__title {
    font-family: var(--bg-font) !important;
    color: var(--bg-green-dark) !important;
    font-weight: 700 !important;
    font-size: 32px !important;
    margin-bottom: 20px !important;
    position: relative;
    padding-bottom: 15px;
}

.entry-title::after,
.woocommerce-products-header__title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 60px;
    height: 3px;
    background: var(--bg-orange);
    border-radius: 2px;
}

/* --- Global Buttons --- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .cart .button,
.woocommerce .checkout-button,
button[type="submit"],
input[type="submit"] {
    background: var(--bg-green) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 8px !important;
    padding: 12px 28px !important;
    font-family: var(--bg-font) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    cursor: pointer;
    transition: var(--bg-transition) !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    line-height: 1.5 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
button[type="submit"]:hover,
input[type="submit"]:hover {
    background: var(--bg-green-dark) !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(58, 129, 50, 0.3);
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce .checkout-button {
    background: var(--bg-orange) !important;
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce .checkout-button:hover {
    background: #e68a00 !important;
    box-shadow: 0 4px 15px rgba(255, 152, 0, 0.3);
}

/* --- Global Price Styling --- */
.woocommerce .price,
.woocommerce .amount,
.woocommerce-Price-amount {
    color: var(--bg-green) !important;
    font-weight: 700 !important;
    font-family: var(--bg-font) !important;
}

.woocommerce .price del {
    color: #999 !important;
    font-weight: 400 !important;
    opacity: 0.7;
}

.woocommerce .price ins {
    text-decoration: none;
    color: #e53935 !important;
    font-weight: 700 !important;
}

/* --- Sale Badge --- */
.woocommerce span.onsale {
    background: var(--bg-orange) !important;
    color: #fff !important;
    border-radius: 50px !important;
    padding: 6px 14px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    min-width: auto !important;
    min-height: auto !important;
    line-height: 1.4 !important;
}

/* --- Global Form Inputs --- */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="password"],
input[type="number"],
textarea,
select {
    border: 2px solid #e0e0e0 !important;
    border-radius: 8px !important;
    padding: 12px 16px !important;
    font-family: var(--bg-font) !important;
    font-size: 14px !important;
    color: var(--bg-text) !important;
    transition: var(--bg-transition) !important;
    background: #fff !important;
    width: 100%;
}

/* Subscribe form override — prevent global form styles from adding borders */
.bg-subscribe-form input,
.bg-subscribe-form input[type="email"] {
    border: 2px solid rgba(255,255,255,0.15) !important;
    border-right: none !important;
    border-radius: 10px 0 0 10px !important;
    background: rgba(255,255,255,0.08) !important;
    color: #fff !important;
}

input:focus,
textarea:focus,
select:focus {
    border-color: var(--bg-green) !important;
    box-shadow: 0 0 0 3px rgba(58, 129, 50, 0.1) !important;
    outline: none !important;
}

.bg-subscribe-form input:focus,
.bg-subscribe-form input[type="email"]:focus {
    border-color: rgba(154,205,102,0.6) !important;
    background: rgba(255,255,255,0.12) !important;
    box-shadow: none !important;
}

/* ============================================
   WOOCOMMERCE: SHOP / ARCHIVE PAGE
   ============================================ */
.woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    gap: 25px !important;
}

.woocommerce ul.products li.product {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0,0,0,0.06);
    transition: var(--bg-transition);
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    float: none !important;
    outline: none !important;
}

/* Prevent green border on focus/focus-within */
.woocommerce ul.products li.product:focus,
.woocommerce ul.products li.product:focus-within {
    border-color: #e8e8e8 !important;
    outline: none !important;
}

.woocommerce ul.products li.product a:focus,
.woocommerce ul.products li.product a:focus-visible {
    outline: none !important;
}

.woocommerce ul.products li.product:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 30px rgba(0,0,0,0.12);
}

.woocommerce ul.products li.product a img {
    border-radius: 12px 12px 0 0;
    margin-bottom: 0 !important;
    transition: var(--bg-transition);
}

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

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2 {
    font-size: 15px !important;
    font-weight: 600 !important;
    color: var(--bg-text) !important;
    padding: 12px 15px 5px !important;
    margin: 0 !important;
    line-height: 1.4;
}

.woocommerce ul.products li.product .price {
    padding: 0 15px 10px !important;
    font-size: 16px !important;
}

.woocommerce ul.products li.product .ns-product-buttons .button,
.woocommerce ul.products li.product .ns-product-buttons a.add_to_cart_button {
    margin: 0 !important;
    width: auto !important;
    text-align: center;
    border-radius: 10px !important;
    padding: 10px 8px !important;
    font-size: 11px !important;
    background: linear-gradient(135deg, #5a8a2d, #7bb83e) !important;
    color: #fff !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    box-shadow: 0 3px 12px rgba(45, 106, 79, 0.25);
    border: none !important;
}

/* Buy Now button override in big-green */
.woocommerce ul.products li.product .ns-buy-now-btn {
    margin: 0 !important;
    width: auto !important;
    border-radius: 10px !important;
    padding: 10px 8px !important;
    font-size: 11px !important;
    background: linear-gradient(135deg, #e67e22, #f39c12) !important;
    color: #fff !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    box-shadow: 0 3px 12px rgba(230, 126, 34, 0.3);
    border: none !important;
}

.woocommerce ul.products li.product .ns-buy-now-btn:hover {
    background: linear-gradient(135deg, #d35400, #e67e22) !important;
    box-shadow: 0 6px 20px rgba(230, 126, 34, 0.4);
}

/* Button wrapper container */
.ns-product-buttons {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px;
    padding: 10px 14px 14px !important;
    margin-top: auto;
}

/* Shop sorting & result count */
.woocommerce-result-count {
    color: var(--bg-text-muted) !important;
    font-size: 14px;
}

.woocommerce-ordering select {
    border-radius: 8px !important;
    padding: 8px 12px !important;
}

/* ============================================
   WOOCOMMERCE: SINGLE PRODUCT PAGE
   ============================================ */
.woocommerce div.product {
    background: #fff;
    border-radius: 16px;
    padding: 30px !important;
    box-shadow: 0 2px 20px rgba(0,0,0,0.06);
    margin-bottom: 30px;
}

.woocommerce div.product div.images {
    border-radius: 12px;
    overflow: hidden;
}

.woocommerce div.product div.images img {
    border-radius: 12px;
}

.woocommerce div.product .product_title {
    font-size: 28px !important;
    font-weight: 700 !important;
    color: var(--bg-green-dark) !important;
    margin-bottom: 15px !important;
    line-height: 1.3;
}

.woocommerce div.product p.price {
    font-size: 26px !important;
    color: var(--bg-green) !important;
    margin-bottom: 20px !important;
    padding: 15px 20px;
    background: var(--bg-green-lighter);
    border-radius: 10px;
    display: inline-block;
}

.woocommerce div.product .woocommerce-product-details__short-description {
    color: var(--bg-text-muted);
    font-size: 15px;
    line-height: 1.7;
    margin-bottom: 25px;
    padding-bottom: 20px;
    border-bottom: 1px solid #eee;
}

/* Add to cart button group */
.woocommerce div.product form.cart {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 25px !important;
    flex-wrap: wrap;
}

.woocommerce div.product form.cart .quantity {
    margin-right: 0 !important;
}

.woocommerce div.product form.cart .quantity .qty {
    width: 70px !important;
    height: 50px;
    text-align: center;
    border-radius: 8px !important;
    border: 2px solid #ddd !important;
    font-size: 16px !important;
    font-weight: 600;
}

.woocommerce div.product form.cart .single_add_to_cart_button {
    height: 50px;
    padding: 0 35px !important;
    font-size: 15px !important;
    border-radius: 8px !important;
    background: var(--bg-orange) !important;
}

.woocommerce div.product form.cart .single_add_to_cart_button:hover {
    background: #e68a00 !important;
}

/* Product meta (categories, tags) */
.woocommerce div.product .product_meta {
    padding-top: 20px;
    border-top: 1px solid #eee;
    margin-top: 20px;
    font-size: 14px;
    color: var(--bg-text-muted);
}

.woocommerce div.product .product_meta a {
    color: var(--bg-green);
    text-decoration: none;
    font-weight: 500;
}

.woocommerce div.product .product_meta a:hover {
    color: var(--bg-orange);
}

/* Product tabs */
.woocommerce div.product .woocommerce-tabs {
    margin-top: 40px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
    padding: 0 !important;
    margin: 0 0 30px !important;
    border-bottom: 2px solid #eee !important;
    display: flex;
    gap: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before {
    display: none !important;
}

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

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    padding: 14px 25px !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    color: var(--bg-text-muted) !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 3px solid transparent;
    transition: var(--bg-transition);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
    color: var(--bg-green) !important;
    border-bottom-color: var(--bg-green);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
    color: var(--bg-green) !important;
}

.woocommerce div.product .woocommerce-tabs .panel {
    padding: 25px 0 !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* Related products */
.woocommerce div.product .related.products {
    margin-top: 50px;
    padding-top: 40px;
    border-top: 2px solid #f0f0f0;
}

.woocommerce div.product .related.products > h2 {
    font-size: 24px !important;
    color: var(--bg-green-dark) !important;
    margin-bottom: 25px !important;
}

/* ============================================
   WOOCOMMERCE: CART PAGE
   ============================================ */
.woocommerce-cart .woocommerce {
    padding: 20px 0;
}

.woocommerce table.shop_table {
    border: none !important;
    border-radius: 12px !important;
    overflow: hidden;
    box-shadow: 0 2px 15px rgba(0,0,0,0.06);
}

.woocommerce table.shop_table thead {
    background: var(--bg-green) !important;
}

.woocommerce table.shop_table thead th {
    color: #fff !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    padding: 14px 18px !important;
    border: none !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.woocommerce table.shop_table td {
    padding: 18px !important;
    border-bottom: 1px solid #f0f0f0 !important;
    border-right: none !important;
    border-left: none !important;
    vertical-align: middle !important;
    font-size: 14px;
}

.woocommerce table.shop_table tbody tr:hover {
    background: #fafffe;
}

.woocommerce table.shop_table img {
    width: 70px !important;
    height: 70px !important;
    object-fit: cover;
    border-radius: 8px !important;
}

.woocommerce td.product-name a {
    color: var(--bg-text) !important;
    font-weight: 600;
    text-decoration: none;
}

.woocommerce td.product-name a:hover {
    color: var(--bg-green) !important;
}

.woocommerce a.remove {
    color: #e53935 !important;
    font-size: 20px !important;
    width: 30px !important;
    height: 30px !important;
    line-height: 28px !important;
    border-radius: 50% !important;
    background: #fff5f5 !important;
    text-align: center;
    transition: var(--bg-transition);
}

.woocommerce a.remove:hover {
    background: #e53935 !important;
    color: #fff !important;
}

/* Cart totals */
.woocommerce .cart_totals {
    background: #fff;
    border-radius: 12px;
    padding: 25px !important;
    box-shadow: 0 2px 15px rgba(0,0,0,0.06);
}

.woocommerce .cart_totals h2 {
    font-size: 20px !important;
    color: var(--bg-green-dark) !important;
    margin-bottom: 20px !important;
    font-weight: 700 !important;
}

.woocommerce .cart_totals table {
    border: none !important;
}

.woocommerce .cart_totals table td,
.woocommerce .cart_totals table th {
    border: none !important;
    padding: 12px 0 !important;
    border-bottom: 1px solid #f0f0f0 !important;
}

.woocommerce .cart_totals .order-total .amount {
    font-size: 22px !important;
    color: var(--bg-orange) !important;
}

/* Coupon */
.woocommerce .coupon {
    display: flex;
    gap: 10px;
    align-items: center;
}

.woocommerce .coupon #coupon_code {
    max-width: 200px !important;
}

/* ============================================
   WOOCOMMERCE: CHECKOUT PAGE
   ============================================ */
.woocommerce-checkout .woocommerce {
    padding: 20px 0;
}

/* Checkout layout moved to CHECKOUT REDESIGN section below */


.woocommerce form.checkout .col2-set .col-1,
.woocommerce form.checkout .col2-set .col-2 {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    padding: 0 !important;
}

.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
#order_review_heading {
    font-size: 20px !important;
    color: var(--bg-green-dark) !important;
    font-weight: 700 !important;
    padding-bottom: 15px;
    border-bottom: 2px solid var(--bg-green-lighter);
    margin-bottom: 25px !important;
}

.woocommerce form .form-row label {
    font-weight: 600 !important;
    font-size: 13px !important;
    color: var(--bg-text) !important;
    margin-bottom: 5px !important;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.woocommerce #order_review {
    background: #fff;
    border-radius: 12px;
    padding: 25px !important;
    box-shadow: 0 2px 15px rgba(0,0,0,0.06);
}

.woocommerce #payment {
    background: #f9faf8 !important;
    border-radius: 12px !important;
    padding: 20px !important;
    border: 1px solid #e8ede6 !important;
}

.woocommerce #payment ul.payment_methods {
    border-bottom: 1px solid #e0e0e0 !important;
    padding-bottom: 15px !important;
}

.woocommerce #payment .place-order {
    padding-top: 20px !important;
}

.woocommerce #payment #place_order {
    width: 100%;
    padding: 16px !important;
    font-size: 16px !important;
    background: var(--bg-orange) !important;
    border-radius: 10px !important;
}

.woocommerce #payment #place_order:hover {
    background: #e68a00 !important;
}

/* ============================================
   WOOCOMMERCE: MY ACCOUNT PAGE
   ============================================ */
.woocommerce-account .woocommerce {
    padding: 20px 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 15px rgba(0,0,0,0.06);
    overflow: hidden;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li {
    border-bottom: 1px solid #f0f0f0;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child {
    border-bottom: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
    display: block;
    padding: 14px 20px;
    color: var(--bg-text);
    text-decoration: none;
    font-weight: 500;
    font-size: 14px;
    transition: var(--bg-transition);
    border-left: 3px solid transparent;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
    background: var(--bg-green-lighter);
    color: var(--bg-green);
    border-left-color: var(--bg-green);
    font-weight: 600;
}

.woocommerce-account .woocommerce-MyAccount-content {
    background: #fff;
    border-radius: 12px;
    padding: 30px !important;
    box-shadow: 0 2px 15px rgba(0,0,0,0.06);
}

/* Login/Register form */
.woocommerce form.login,
.woocommerce form.register {
    background: #fff !important;
    border: none !important;
    border-radius: 12px !important;
    padding: 30px !important;
    box-shadow: 0 2px 15px rgba(0,0,0,0.06) !important;
}

.woocommerce form.login h2,
.woocommerce form.register h2 {
    font-size: 22px !important;
    color: var(--bg-green-dark) !important;
    margin-bottom: 20px !important;
}

/* ============================================
   BLOG / POST PAGES
   ============================================ */
.blog article.post,
.archive article.post,
.search-results article.post {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0,0,0,0.06);
    margin-bottom: 30px;
    transition: var(--bg-transition);
}

.blog article.post:hover,
.archive article.post:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.1);
}

article .post-thumb-img-content img,
article .ast-blog-featured-section img {
    border-radius: 12px 12px 0 0;
    width: 100%;
    height: auto;
}

article .entry-header,
article .entry-content {
    padding: 20px 25px !important;
}

article .entry-header .entry-title a {
    color: var(--bg-text) !important;
    text-decoration: none;
    font-weight: 700;
    transition: var(--bg-transition);
}

article .entry-header .entry-title a:hover {
    color: var(--bg-green) !important;
}

.entry-meta,
.entry-footer {
    color: var(--bg-text-muted) !important;
    font-size: 13px;
}

.entry-meta a {
    color: var(--bg-green) !important;
    text-decoration: none;
}

/* Single post */
.single-post article.post {
    background: #fff;
    border-radius: 16px;
    padding: 40px !important;
    box-shadow: 0 2px 20px rgba(0,0,0,0.06);
    margin-bottom: 30px;
}

.single-post .entry-content {
    font-size: 16px;
    line-height: 1.8;
    color: var(--bg-text);
}

.single-post .entry-content h2,
.single-post .entry-content h3,
.single-post .entry-content h4 {
    color: var(--bg-green-dark);
    margin-top: 30px;
    margin-bottom: 15px;
}

.single-post .entry-content img {
    border-radius: 10px;
    margin: 20px 0;
}

.single-post .entry-content blockquote {
    border-left: 4px solid var(--bg-green);
    background: var(--bg-green-lighter);
    padding: 20px 25px;
    border-radius: 0 10px 10px 0;
    margin: 25px 0;
    font-style: italic;
    color: var(--bg-green-dark);
}

/* Comments */
.comments-area {
    background: #fff;
    border-radius: 12px;
    padding: 30px !important;
    box-shadow: 0 2px 15px rgba(0,0,0,0.06);
    margin-top: 30px;
}

.comments-area .comment-reply-title,
.comments-area h3 {
    font-size: 22px !important;
    color: var(--bg-green-dark) !important;
    margin-bottom: 20px !important;
}

.comment-list .comment {
    padding: 20px 0;
    border-bottom: 1px solid #f0f0f0;
}

.comment-author img {
    border-radius: 50% !important;
}

/* Pagination */
.ast-pagination,
.woocommerce nav.woocommerce-pagination {
    margin-top: 30px;
    text-align: center;
}

.ast-pagination a,
.ast-pagination span,
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 42px !important;
    height: 42px !important;
    border-radius: 10px !important;
    border: 2px solid #e0e0e0 !important;
    color: var(--bg-text) !important;
    font-weight: 600 !important;
    transition: var(--bg-transition) !important;
    text-decoration: none;
    margin: 0 3px;
}

.ast-pagination .current,
.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--bg-green) !important;
    color: #fff !important;
    border-color: var(--bg-green) !important;
}

.ast-pagination a:hover,
.woocommerce nav.woocommerce-pagination ul li a:hover {
    background: var(--bg-green-lighter) !important;
    border-color: var(--bg-green) !important;
    color: var(--bg-green) !important;
}

/* ============================================
   SIDEBAR / WIDGETS
   ============================================ */
.widget {
    background: #fff;
    border-radius: 12px;
    padding: 25px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.06);
    margin-bottom: 25px;
}

.widget-title,
.widget h2 {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: var(--bg-green-dark) !important;
    margin-bottom: 18px !important;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--bg-green-lighter);
    position: relative;
}

.widget ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.widget ul li {
    padding: 8px 0;
    border-bottom: 1px solid #f5f5f5;
}

.widget ul li:last-child {
    border-bottom: none;
}

.widget ul li a {
    color: var(--bg-text);
    text-decoration: none;
    font-size: 14px;
    transition: var(--bg-transition);
}

.widget ul li a:hover {
    color: var(--bg-green);
    padding-left: 5px;
}

/* WooCommerce Filter Widgets */
.woocommerce .widget_price_filter .price_slider_wrapper .ui-slider {
    background: #e0e0e0 !important;
    border-radius: 4px;
}

.woocommerce .widget_price_filter .price_slider_wrapper .ui-slider .ui-slider-range {
    background: var(--bg-green) !important;
}

.woocommerce .widget_price_filter .price_slider_wrapper .ui-slider .ui-slider-handle {
    background: var(--bg-green) !important;
    border: 2px solid #fff !important;
    box-shadow: 0 2px 5px rgba(0,0,0,0.15);
}

/* ============================================
   SEARCH PAGE
   ============================================ */
.search-results .page-title {
    font-size: 28px !important;
    color: var(--bg-green-dark) !important;
}

.search-no-results {
    text-align: center;
    padding: 60px 20px;
}

.search-no-results .page-title {
    text-align: center;
}

.search-no-results .search-form {
    max-width: 500px;
    margin: 30px auto;
}

.search-form .search-field {
    border-radius: 50px !important;
    padding: 14px 25px !important;
}

.search-form .search-submit {
    border-radius: 50px !important;
    background: var(--bg-green) !important;
    padding: 14px 30px !important;
}

/* ============================================
   404 PAGE
   ============================================ */
.error-404 {
    text-align: center;
    padding: 80px 20px;
}

.error-404 .page-title {
    font-size: 100px !important;
    color: var(--bg-green) !important;
    margin-bottom: 10px !important;
    text-align: center;
}

.error-404 .page-title::after {
    display: none;
}

.error-404 .page-sub-title,
.error-404 p {
    font-size: 18px;
    color: var(--bg-text-muted);
    margin-bottom: 30px;
}

/* ============================================
   WOOCOMMERCE BLOCKS (Gutenberg Blocks)
   ============================================ */
/* Cart page "New in store" block buttons */
.wc-block-grid .wp-block-button__link,
.wc-block-grid__product .wp-block-button__link,
.wp-block-button .wp-block-button__link,
.wc-block-grid__product-add-to-cart .wp-block-button__link,
.wp-block-woocommerce-product-button .wp-block-button__link,
.wc-block-components-product-button__button {
    background-color: var(--bg-green) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 8px !important;
    padding: 10px 24px !important;
    font-family: var(--bg-font) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    transition: var(--bg-transition) !important;
}

.wc-block-grid .wp-block-button__link:hover,
.wc-block-grid__product .wp-block-button__link:hover,
.wp-block-button .wp-block-button__link:hover {
    background-color: var(--bg-green-dark) !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(58, 129, 50, 0.3);
}

/* Block product grid styling */
.wc-block-grid__product {
    background: #fff !important;
    border-radius: 12px !important;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0,0,0,0.06) !important;
    transition: var(--bg-transition);
    padding: 0 !important;
}

.wc-block-grid__product:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.1) !important;
}

.wc-block-grid__product-image {
    border-radius: 12px 12px 0 0;
    overflow: hidden;
}

.wc-block-grid__product-title {
    font-size: 15px !important;
    font-weight: 600 !important;
    color: var(--bg-text) !important;
    padding: 12px 15px 5px !important;
}

.wc-block-grid__product-title a {
    color: var(--bg-text) !important;
    text-decoration: none !important;
}

.wc-block-grid__product-title a:hover {
    color: var(--bg-green) !important;
}

.wc-block-grid__product-price {
    color: var(--bg-green) !important;
    font-weight: 700 !important;
    padding: 0 15px 10px !important;
}

.wc-block-grid__product-add-to-cart {
    padding: 0 15px 15px !important;
}

/* Empty cart styling */
.cart-empty.woocommerce-info {
    text-align: center;
    font-size: 16px;
    padding: 30px !important;
    border-radius: 12px !important;
}

/* ============================================
   WOOCOMMERCE: NOTICES & MESSAGES
   ============================================ */
.woocommerce-message {
    border-top-color: var(--bg-green) !important;
    background: #f0f9ee !important;
    border-radius: 8px !important;
    padding: 15px 18px !important;
}

.woocommerce-message::before {
    color: var(--bg-green) !important;
}

.woocommerce-info {
    border-top-color: #2196f3 !important;
    background: #e8f4fd !important;
    border-radius: 8px !important;
    padding: 15px 18px !important;
}

.woocommerce-error {
    border-top-color: #e53935 !important;
    background: #fde8e8 !important;
    border-radius: 8px !important;
    padding: 15px 18px !important;
}

/* Star ratings */
.woocommerce .star-rating {
    color: #ffb300 !important;
}

/* ============================================
   ASTRA OVERRIDES (Global)
   ============================================ */
/* Hide Astra default header/footer since we use custom */
#masthead,
.site-header,
header.site-header,
.main-header-bar-wrap,
.ast-primary-header-bar,
footer.site-footer:not(.bg-footer),
.site-footer:not(.bg-footer),
.ast-small-footer,
.ast-footer-overlay {
    display: none !important;
}

#page {
    padding-top: 0 !important;
}

.ast-separate-container #primary {
    padding: 0 !important;
    margin: 0 !important;
}

/* Ensure full-width on homepage */
.home #content > .ast-container {
    max-width: 100% !important;
    padding: 0 !important;
}

/* Non-homepage pages get proper spacing */
body:not(.home) .site-content > .ast-container {
    padding-top: 20px !important;
    padding-bottom: 40px !important;
}

/* ============================================
   RESPONSIVE
   ============================================ */
@media (max-width: 991px) {
    /* Header responsive */
    .bg-header-row {
        gap: 15px;
    }

    .bg-header-search {
        flex: 0 0 200px;
    }

    .bg-logo-name {
        font-size: 26px;
    }

    .bg-hotline-box {
        padding: 6px 12px;
    }

    .bg-hotline-text strong {
        font-size: 14px;
    }

    .bg-nav-menu > li > a {
        padding: 14px 18px;
        font-size: 13px;
    }

    .bg-about-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .bg-product-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .bg-gallery-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .bg-promo-grid {
        grid-template-columns: 1fr;
    }

    .bg-testimonial-section {
        padding: 80px 0;
        min-height: auto;
    }

    .bg-avatar-list {
        flex-wrap: wrap;
        justify-content: center;
    }

    .bg-footer-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    /* WooCommerce Tablet */
    .woocommerce ul.products {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 20px !important;
    }

    /* Checkout responsive moved to CHECKOUT REDESIGN section */
}

@media (max-width: 768px) {
    /* Mobile Header */
    .bg-header-row {
        flex-wrap: wrap;
        gap: 10px;
    }

    .bg-header-search {
        order: 3;
        flex: 1 1 100%;
    }

    .bg-header-logo {
        order: 1;
    }

    .bg-header-actions {
        order: 2;
        margin-left: auto;
    }

    .bg-hotline-box {
        display: none;
    }

    .bg-logo-name {
        font-size: 22px;
    }

    .bg-logo-tagline {
        font-size: 9px;
        letter-spacing: 2px;
    }

    .bg-logo-image {
        width: 52px;
    }

    .bg-logo-icon {
        font-size: 28px;
    }

    .bg-testimonial-section {
        padding: 72px 0;
    }

    .bg-testimonial-content {
        max-width: 100%;
        padding: 0 20px;
    }

    .bg-testimonial-quote {
        font-size: 16px;
        line-height: 1.8;
    }

    .bg-testimonial-author {
        margin-bottom: 28px;
    }

    .bg-testimonial-avatars {
        gap: 10px;
    }

    .bg-avatar-list {
        gap: 10px;
        max-width: 280px;
    }

    .bg-avatar {
        width: 60px;
        height: 60px;
    }

    .bg-avatar.active {
        width: 78px;
        height: 78px;
    }

    .bg-testimonial-nav {
        width: 38px;
        height: 38px;
    }

    /* Mobile Navigation */
    .bg-nav-toggle {
        display: flex;
    }

    .bg-main-nav .container {
        justify-content: flex-start;
    }

    .bg-nav-menu {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: var(--bg-green-dark);
        flex-direction: column;
        align-items: stretch;
        box-shadow: 0 8px 20px rgba(0,0,0,0.15);
        z-index: 200;
    }

    .bg-nav-menu.show {
        display: flex;
    }

    .bg-nav-menu > li > a {
        padding: 14px 20px;
        border-bottom: 1px solid rgba(255,255,255,0.1);
    }

    .bg-dropdown {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        display: none;
        background: rgba(0,0,0,0.15);
        box-shadow: none;
        border-radius: 0;
        min-width: 100%;
    }

    .bg-has-dropdown.open .bg-dropdown {
        display: block;
    }

    .bg-dropdown li a {
        color: #fff;
        padding: 10px 30px;
    }

    .bg-dropdown li a:hover {
        background: rgba(255,255,255,0.1);
        color: var(--bg-orange);
        padding-left: 35px;
    }

    .bg-product-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 15px;
    }

    .bg-news-grid {
        grid-template-columns: 1fr;
    }

    .bg-cat-grid {
        gap: 20px;
    }

    .bg-cat-circle {
        width: 90px;
        height: 90px;
    }

    .bg-services-grid {
        flex-direction: column;
        gap: 20px;
    }

    .bg-service-divider {
        width: 60%;
        height: 1px;
    }

    .bg-footer-grid {
        grid-template-columns: 1fr;
    }

    .hero-title {
        font-size: 40px !important;
    }

    .hero-title span {
        font-size: 24px !important;
    }

    .bg-about-heading {
        font-size: 24px;
    }

    .bg-gallery-grid {
        grid-template-columns: 1fr 1fr;
    }

    /* WooCommerce Mobile */
    .woocommerce ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 15px !important;
    }

    .woocommerce div.product {
        padding: 20px !important;
        border-radius: 12px;
    }

    .woocommerce div.product .product_title {
        font-size: 22px !important;
    }

    .woocommerce div.product p.price {
        font-size: 22px !important;
    }

    .woocommerce div.product form.cart {
        flex-direction: column;
        align-items: stretch;
    }

    .woocommerce div.product form.cart .quantity {
        width: 100% !important;
    }

    .woocommerce div.product form.cart .quantity .qty {
        width: 100% !important;
    }

    .woocommerce div.product form.cart .single_add_to_cart_button {
        width: 100%;
    }

    .woocommerce div.product .woocommerce-tabs ul.tabs {
        flex-wrap: wrap;
    }

    .woocommerce div.product .woocommerce-tabs ul.tabs li a {
        padding: 10px 15px !important;
        font-size: 12px !important;
    }

    /* Cart Mobile */
    .woocommerce table.shop_table {
        font-size: 13px;
    }

    .woocommerce table.shop_table td {
        padding: 12px 10px !important;
    }

    .woocommerce table.shop_table img {
        width: 50px !important;
        height: 50px !important;
    }

    .woocommerce .coupon {
        flex-direction: column;
    }

    .woocommerce .coupon #coupon_code {
        max-width: 100% !important;
    }

    /* Checkout Mobile */
    .woocommerce form.checkout {
        flex-direction: column;
        gap: 20px;
    }

    .woocommerce-checkout #customer_details,
    .woocommerce-checkout #order_review {
        flex: 1 1 100%;
    }

    /* My Account Mobile */
    .woocommerce-account .woocommerce-MyAccount-navigation,
    .woocommerce-account .woocommerce-MyAccount-content {
        width: 100% !important;
        float: none !important;
    }

    .woocommerce-account .woocommerce-MyAccount-navigation {
        margin-bottom: 20px;
    }

    .woocommerce-account .woocommerce-MyAccount-content {
        padding: 20px !important;
    }

    /* Page titles */
    .entry-title,
    .page-title,
    .woocommerce-products-header__title {
        font-size: 24px !important;
    }

    /* Breadcrumbs */
    .woocommerce-breadcrumb {
        padding: 12px 20px !important;
        font-size: 13px;
    }
}

@media (max-width: 480px) {
    .bg-testimonial-content {
        padding: 0 16px;
    }

    

    .bg-testimonial-quote {
        font-size: 15px;
        line-height: 1.75;
    }

    .bg-testimonial-author strong {
        font-size: 15px;
        letter-spacing: 1px;
    }

    .bg-testimonial-avatars {
        gap: 8px;
    }

    .bg-avatar-list {
        gap: 8px;
        max-width: 220px;
    }

    .bg-avatar {
        width: 52px;
        height: 52px;
        border-width: 2px;
    }

    .bg-avatar.active {
        width: 66px;
        height: 66px;
    }

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

    .bg-cat-grid {
        gap: 15px;
    }

    .bg-cat-circle {
        width: 75px;
        height: 75px;
    }

    .bg-cat-initial {
        font-size: 26px;
    }

    .bg-filter-tabs {
        gap: 8px;
    }

    .bg-filter-tab {
        padding: 8px 18px;
        font-size: 13px;
    }

    /* WooCommerce 480px */
    .woocommerce ul.products {
        grid-template-columns: 1fr !important;
    }

    .woocommerce div.product .product_title {
        font-size: 20px !important;
    }

    .woocommerce div.product p.price {
        font-size: 20px !important;
    }

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

    .woocommerce table.shop_table tr {
        display: flex;
        flex-wrap: wrap;
        padding: 15px 10px;
        border-bottom: 1px solid #f0f0f0;
    }

    .woocommerce table.shop_table td {
        border: none !important;
        padding: 5px 8px !important;
    }

    .entry-title,
    .page-title {
        font-size: 20px !important;
    }
}

/* WP Admin bar spacing */
body.admin-bar .bg-top-banner {
    margin-top: 0;
}

/* Fix Astra content area for homepage */
body.home .site-main {
    padding: 0 !important;
    margin: 0 !important;
}

body.home .site-content {
    padding-top: 0 !important;
}

body.home .entry-content {
    margin: 0 !important;
}

/* Global full-width for homepage */
body.home #primary {
    width: 100% !important;
    float: none !important;
}

body.home .ast-separate-container .ast-article-single {
    padding: 0 !important;
    margin: 0 !important;
}

/* ============================================
    REDESIGN V2 — PAGE BANNER HERO
   ============================================ */
.bg-page-banner {
    position: relative;
    background: linear-gradient(135deg, var(--bg-green-dark), var(--bg-green));
    padding: 50px 0 45px;
    text-align: center;
    overflow: hidden;
}

.bg-page-banner::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 200"><path fill="rgba(255,255,255,0.03)" d="M0,128 C360,180 720,60 1080,130 C1260,160 1380,90 1440,128 L1440,200 L0,200 Z"/></svg>') no-repeat bottom;
    background-size: 100%;
}

.bg-page-banner::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 100%;
    height: 40px;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 40"><path fill="%23fafafa" d="M0,40 C480,0 960,0 1440,40 L1440,40 L0,40 Z"/></svg>') no-repeat;
    background-size: 100%;
}

.bg-page-banner .container {
    position: relative;
    z-index: 2;
}

.bg-page-banner-breadcrumb {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-bottom: 12px;
    font-size: 14px;
    color: rgba(255,255,255,0.7);
}

.bg-page-banner-breadcrumb a {
    color: rgba(255,255,255,0.8);
    text-decoration: none;
    transition: var(--bg-transition);
}

.bg-page-banner-breadcrumb a:hover {
    color: #fff;
}

.bg-page-banner-breadcrumb .sep {
    color: rgba(255,255,255,0.4);
    font-size: 12px;
}

.bg-page-banner-title {
    font-family: var(--bg-font);
    font-size: 36px;
    font-weight: 700;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 3px;
    margin: 0;
    text-shadow: 0 2px 15px rgba(0,0,0,0.2);
}

/* Hide default breadcrumbs and titles when banner is active */
body:not(.home) .woocommerce-breadcrumb,
body:not(.home) nav.woocommerce-breadcrumb {
    display: none !important;
}

body:not(.home) .entry-title,
body:not(.home) .woocommerce-products-header__title {
    display: none !important;
}

/* But show for single product */
body.single-product .woocommerce-breadcrumb {
    display: none !important;
}

body.single-product .product_title {
    display: block !important;
}

/* ============================================
    REDESIGN V2 — SHOP / ARCHIVE PAGE
   ============================================ */

/* Enhanced Product Cards */
.woocommerce ul.products li.product {
    background: #fff;
    border-radius: 16px !important;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
    transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    padding: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    float: none !important;
    position: relative;
    border: 1px solid rgba(0,0,0,0.04);
}

.woocommerce ul.products li.product:hover {
    transform: translateY(-8px);
    box-shadow: 0 16px 40px rgba(58, 129, 50, 0.15);
    border-color: rgba(58, 129, 50, 0.1);
}

/* Product Image */
.woocommerce ul.products li.product a img {
    border-radius: 16px 16px 0 0 !important;
    margin-bottom: 0 !important;
    transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    aspect-ratio: 1/1;
    object-fit: cover;
}

.woocommerce ul.products li.product:hover a img {
    transform: scale(1.08);
}

/* Image wrapper overflow for zoom effect */
.woocommerce ul.products li.product .woocommerce-LoopProduct-link {
    display: block;
    overflow: hidden;
    border-radius: 16px 16px 0 0;
}

/* Product Origin Badge */
.ns-product-origin {
    font-size: 12px;
    color: var(--bg-green);
    padding: 4px 15px 0;
    font-weight: 500;
}

.ns-product-cert {
    font-size: 11px;
    color: var(--bg-orange);
    padding: 2px 15px 0;
    font-weight: 600;
}

/* Product Title */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2 {
    font-size: 15px !important;
    font-weight: 600 !important;
    color: var(--bg-text) !important;
    padding: 14px 15px 4px !important;
    margin: 0 !important;
    line-height: 1.5;
    transition: var(--bg-transition);
    min-height: 58px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.woocommerce ul.products li.product:hover h2,
.woocommerce ul.products li.product:hover .woocommerce-loop-product__title {
    color: var(--bg-green) !important;
}

/* Product Price */
.woocommerce ul.products li.product .price {
    padding: 8px 15px 12px !important;
    font-size: 17px !important;
    color: var(--bg-orange) !important;
    font-weight: 700 !important;
}

/* Add to Cart Button */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.add_to_cart_button {
    margin: 0 !important;
    width: 100% !important;
    text-align: center;
    border-radius: 0 0 16px 16px !important;
    padding: 14px 20px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: 1px;
    text-transform: uppercase;
    background: var(--bg-green) !important;
    color: #fff !important;
    border: none !important;
    transition: all 0.3s ease !important;
    position: relative;
    overflow: hidden;
}

.woocommerce ul.products li.product .button::before {
    content: '';
    margin-right: 6px;
    font-size: 14px;
}

.woocommerce ul.products li.product .button:hover {
    background: var(--bg-orange) !important;
    transform: none !important;
    letter-spacing: 2px;
}

/* Sale badge on shop */
.woocommerce ul.products li.product span.onsale {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 10;
    background: linear-gradient(135deg, #e53935, #ff1744) !important;
    color: #fff !important;
    padding: 6px 14px !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    border-radius: 6px !important;
    min-width: auto !important;
    min-height: auto !important;
    line-height: 1.3 !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    box-shadow: 0 3px 10px rgba(229, 57, 53, 0.3);
}

/* ============================================
    REDESIGN V2 — SINGLE PRODUCT PAGE
   ============================================ */

.woocommerce div.product {
    background: #fff;
    border-radius: 20px !important;
    padding: 40px !important;
    box-shadow: 0 4px 30px rgba(0,0,0,0.06);
    margin-bottom: 30px;
    position: relative;
}

/* Product Gallery */
.woocommerce div.product div.images {
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
}

.woocommerce div.product div.images img {
    border-radius: 16px;
    transition: transform 0.5s ease;
}

.woocommerce div.product div.images:hover img {
    transform: scale(1.03);
}

/* Product Title */
.woocommerce div.product .product_title {
    font-size: 30px !important;
    font-weight: 800 !important;
    color: var(--bg-text) !important;
    margin-bottom: 10px !important;
    line-height: 1.3;
    letter-spacing: -0.5px;
}

/* Product Price */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    font-size: 28px !important;
    color: var(--bg-orange) !important;
    margin-bottom: 20px !important;
    padding: 16px 24px;
    background: linear-gradient(135deg, #fff8f0, #fff3e0);
    border-radius: 12px;
    display: inline-flex;
    align-items: baseline;
    gap: 12px;
    border: 1px solid rgba(244, 123, 0, 0.15);
}

.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
    font-size: 18px !important;
    color: #aaa !important;
    font-weight: 400 !important;
}

.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins {
    text-decoration: none;
    font-weight: 800 !important;
}

/* Short Description */
.woocommerce div.product .woocommerce-product-details__short-description {
    color: var(--bg-text-light);
    font-size: 15px;
    line-height: 1.8;
    margin-bottom: 25px;
    padding-bottom: 20px;
    border-bottom: 1px solid #f0f0f0;
}

/* Quantity Selector - Enhanced */
.woocommerce div.product form.cart {
    display: flex;
    align-items: stretch;
    gap: 12px;
    margin-bottom: 20px !important;
    flex-wrap: wrap;
}

.woocommerce div.product form.cart .quantity {
    margin-right: 0 !important;
    display: flex;
    align-items: center;
    border: 2px solid #e0e0e0;
    border-radius: 12px;
    overflow: hidden;
    background: #f9f9f9;
}

.woocommerce div.product form.cart .quantity .qty {
    width: 60px !important;
    height: 52px;
    text-align: center;
    border: none !important;
    font-size: 18px !important;
    font-weight: 700;
    background: transparent !important;
    padding: 0 !important;
    -moz-appearance: textfield;
    appearance: textfield;
}

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

/* Custom +/- Buttons */
.ns-qty-btn {
    width: 40px;
    height: 52px;
    border: none;
    background: transparent;
    color: var(--bg-green);
    font-size: 20px;
    font-weight: 700;
    cursor: pointer;
    transition: var(--bg-transition);
    display: flex;
    align-items: center;
    justify-content: center;
}

.ns-qty-btn:hover {
    background: var(--bg-green-lighter);
    color: var(--bg-green-dark);
}

/* Add to Cart Button - Enhanced */
.woocommerce div.product form.cart .single_add_to_cart_button {
    height: 52px;
    padding: 0 40px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    border-radius: 12px !important;
    background: var(--bg-orange) !important;
    color: #fff !important;
    text-transform: uppercase;
    letter-spacing: 1px;
    transition: all 0.3s ease !important;
    box-shadow: 0 4px 15px rgba(244, 123, 0, 0.3);
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
}

.woocommerce div.product form.cart .single_add_to_cart_button:hover {
    background: var(--bg-orange-dark) !important;
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(244, 123, 0, 0.4);
}

/* Trust Badges */
.ns-trust-badges {
    display: flex;
    gap: 20px;
    margin: 25px 0;
    padding: 20px;
    background: linear-gradient(135deg, #f8faf8, #f0f7f0);
    border-radius: 14px;
    border: 1px solid rgba(58, 129, 50, 0.1);
    flex-wrap: wrap;
}

.ns-trust-badge {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1;
    min-width: 160px;
}

.ns-trust-badge-icon {
    width: 42px;
    height: 42px;
    background: var(--bg-green);
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
}

.ns-trust-badge-text strong {
    display: block;
    font-size: 13px;
    color: var(--bg-text);
    font-weight: 700;
}

.ns-trust-badge-text span {
    font-size: 11px;
    color: var(--bg-text-muted);
}

/* Product Meta Pills */
.woocommerce div.product .product_meta {
    padding-top: 20px;
    border-top: 1px solid #f0f0f0;
    margin-top: 15px;
}

.woocommerce div.product .product_meta > span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-right: 15px;
    margin-bottom: 8px;
    font-size: 13px;
    color: var(--bg-text-muted);
}

.woocommerce div.product .product_meta a {
    color: #fff !important;
    background: var(--bg-green);
    padding: 3px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    transition: var(--bg-transition);
}

.woocommerce div.product .product_meta a:hover {
    background: var(--bg-orange);
}

/* Enhanced Product Tabs */
.woocommerce div.product .woocommerce-tabs {
    margin-top: 40px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
    padding: 0 !important;
    margin: 0 0 0 !important;
    border-bottom: 3px solid #f0f0f0 !important;
    display: flex;
    gap: 0;
    background: transparent !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before {
    display: none !important;
}

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

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

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    padding: 16px 30px !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    color: var(--bg-text-muted) !important;
    text-transform: uppercase;
    letter-spacing: 1px;
    border-bottom: 3px solid transparent;
    margin-bottom: -3px;
    transition: all 0.3s ease;
    background: transparent !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
    color: var(--bg-green) !important;
    border-bottom-color: var(--bg-green);
    background: transparent !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
    color: var(--bg-green) !important;
}

.woocommerce div.product .woocommerce-tabs .panel {
    padding: 30px 0 !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    font-size: 15px;
    line-height: 1.8;
    color: var(--bg-text-light);
}

.woocommerce div.product .woocommerce-tabs .panel h2 {
    font-size: 22px !important;
    color: var(--bg-green-dark) !important;
    margin-bottom: 15px !important;
}

/* Related Products */
.woocommerce div.product .related.products {
    margin-top: 50px;
    padding-top: 40px;
    border-top: 2px solid #f0f0f0;
}

.woocommerce div.product .related.products > h2 {
    font-size: 26px !important;
    color: var(--bg-text) !important;
    margin-bottom: 30px !important;
    text-transform: uppercase;
    letter-spacing: 2px;
    text-align: center;
    position: relative;
    padding-bottom: 15px;
}

.woocommerce div.product .related.products > h2::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 3px;
    background: var(--bg-orange);
    border-radius: 2px;
}

/* ============================================
    REDESIGN V2 — CART PAGE (Classic)
   ============================================ */

/* Cart table */
.woocommerce table.shop_table {
    border: none !important;
    border-radius: 16px !important;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,0.06);
}

.woocommerce table.shop_table thead {
    background: linear-gradient(135deg, var(--bg-green-dark), var(--bg-green)) !important;
}

.woocommerce table.shop_table thead th {
    color: #fff !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    padding: 16px 20px !important;
    border: none !important;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.woocommerce table.shop_table td {
    padding: 20px !important;
    border-bottom: 1px solid #f5f5f5 !important;
    border-right: none !important;
    border-left: none !important;
    vertical-align: middle !important;
    font-size: 14px;
    background: #fff;
}

/* ---- Cart Page Quantity Input — FIX VISIBILITY ---- */
.woocommerce table.shop_table .quantity {
    display: inline-flex !important;
    align-items: center !important;
    background: #f8fafb !important;
    border: 2px solid #d1d5db !important;
    border-radius: 10px !important;
    overflow: hidden !important;
    transition: border-color 0.3s;
}

.woocommerce table.shop_table .quantity:hover,
.woocommerce table.shop_table .quantity:focus-within {
    border-color: var(--bg-green) !important;
}

.woocommerce table.shop_table .quantity input.qty,
.woocommerce table.shop_table .quantity input[type="number"] {
    width: 60px !important;
    height: 44px !important;
    text-align: center !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    color: #4d8228 !important;
    border: none !important;
    background: #fff !important;
    outline: none !important;
    -moz-appearance: textfield !important;
    -webkit-appearance: none !important;
    appearance: textfield !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 44px !important;
}

.woocommerce table.shop_table .quantity input.qty::-webkit-outer-spin-button,
.woocommerce table.shop_table .quantity input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
}

.woocommerce table.shop_table tbody tr {
    transition: var(--bg-transition);
}

.woocommerce table.shop_table tbody tr:hover {
    background: #fafffe;
}

.woocommerce table.shop_table img {
    width: 80px !important;
    height: 80px !important;
    object-fit: cover;
    border-radius: 12px !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

/* Cart product name */
.woocommerce td.product-name a {
    color: var(--bg-text) !important;
    font-weight: 700;
    font-size: 15px;
    text-decoration: none;
    transition: var(--bg-transition);
}

.woocommerce td.product-name a:hover {
    color: var(--bg-green) !important;
}

/* Remove button */
.woocommerce a.remove {
    color: #e53935 !important;
    font-size: 18px !important;
    width: 32px !important;
    height: 32px !important;
    line-height: 30px !important;
    border-radius: 8px !important;
    background: #fff5f5 !important;
    text-align: center;
    transition: var(--bg-transition);
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
}

.woocommerce a.remove:hover {
    background: #e53935 !important;
    color: #fff !important;
    transform: scale(1.1);
}

/* Cart Totals */
.woocommerce .cart_totals {
    background: #fff;
    border-radius: 16px;
    padding: 30px !important;
    box-shadow: 0 4px 20px rgba(0,0,0,0.06);
    border: 1px solid rgba(0,0,0,0.04);
}

.woocommerce .cart_totals > h2 {
    font-size: 22px !important;
    color: var(--bg-text) !important;
    margin-bottom: 22px !important;
    font-weight: 800 !important;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.woocommerce .cart_totals table {
    border: none !important;
}

.woocommerce .cart_totals table td,
.woocommerce .cart_totals table th {
    border: none !important;
    padding: 14px 0 !important;
    border-bottom: 1px solid #f5f5f5 !important;
    font-size: 15px;
}

.woocommerce .cart_totals table th {
    color: var(--bg-text-muted);
    font-weight: 600;
}

.woocommerce .cart_totals .order-total .amount {
    font-size: 26px !important;
    color: var(--bg-orange) !important;
    font-weight: 800 !important;
}

/* Checkout button in cart */
.woocommerce .cart_totals .wc-proceed-to-checkout a.checkout-button,
.woocommerce .wc-proceed-to-checkout a.checkout-button {
    background: linear-gradient(135deg, var(--bg-orange), var(--bg-orange-light)) !important;
    color: #fff !important;
    width: 100%;
    padding: 18px 30px !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    border-radius: 14px !important;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    transition: all 0.3s ease !important;
    box-shadow: 0 6px 20px rgba(244, 123, 0, 0.3);
    text-align: center;
    display: block !important;
}

.woocommerce .wc-proceed-to-checkout a.checkout-button:hover {
    background: linear-gradient(135deg, var(--bg-orange-dark), var(--bg-orange)) !important;
    transform: translateY(-3px);
    box-shadow: 0 10px 30px rgba(244, 123, 0, 0.4);
}

/* Coupon section */
.woocommerce .coupon {
    display: flex;
    gap: 10px;
    align-items: center;
}

.woocommerce .coupon #coupon_code {
    max-width: 220px !important;
    border-radius: 10px !important;
    border: 2px solid #e0e0e0 !important;
    padding: 12px 16px !important;
}

.woocommerce .coupon #coupon_code:focus {
    border-color: var(--bg-green) !important;
}

/* ============================================
    REDESIGN V2 — WOOCOMMERCE BLOCK CART
   ============================================ */

/* Block Cart Container */
.wc-block-cart {
    font-family: var(--bg-font) !important;
}

.wc-block-cart .wc-block-components-sidebar-layout {
    gap: 30px;
}

/* Block Cart Items */
.wc-block-cart .wc-block-cart-items {
    border: none !important;
}

.wc-block-cart .wc-block-cart-items__row {
    border-bottom: 1px solid #f5f5f5 !important;
    padding: 20px 0 !important;
}

/* Product image in block cart */
.wc-block-cart .wc-block-cart-item__image img {
    border-radius: 12px !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

/* Product name in block cart */
.wc-block-cart .wc-block-components-product-name {
    font-weight: 700 !important;
    color: var(--bg-text) !important;
    text-decoration: none !important;
    font-size: 15px !important;
    transition: var(--bg-transition);
}

.wc-block-cart .wc-block-components-product-name:hover {
    color: var(--bg-green) !important;
}

/* Quantity selector in block cart */
.wc-block-cart .wc-block-components-quantity-selector {
    border: 2px solid #e0e0e0 !important;
    border-radius: 10px !important;
    overflow: hidden;
    background: #f9f9f9;
}

.wc-block-cart .wc-block-components-quantity-selector input {
    font-weight: 700 !important;
    font-size: 16px !important;
    background: transparent !important;
    border: none !important;
}

.wc-block-cart .wc-block-components-quantity-selector__button {
    background: transparent !important;
    color: var(--bg-green) !important;
    border: none !important;
    font-size: 18px !important;
    transition: var(--bg-transition);
}

.wc-block-cart .wc-block-components-quantity-selector__button:hover {
    background: var(--bg-green-lighter) !important;
    color: var(--bg-green-dark) !important;
}

/* Remove link in block cart */
.wc-block-cart .wc-block-cart-item__remove-link {
    color: #e53935 !important;
    font-size: 13px !important;
    text-decoration: none !important;
    transition: var(--bg-transition);
}

.wc-block-cart .wc-block-cart-item__remove-link:hover {
    color: #b71c1c !important;
}

/* Price in block cart */
.wc-block-cart .wc-block-components-product-price {
    color: var(--bg-orange) !important;
    font-weight: 700 !important;
    font-size: 16px !important;
}

/* Block Cart Sidebar */
.wc-block-cart .wc-block-cart__totals-title {
    font-size: 20px !important;
    font-weight: 800 !important;
    color: var(--bg-text) !important;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Block Cart Totals */
.wc-block-cart .wc-block-components-totals-wrapper {
    border-top: 1px solid #f0f0f0 !important;
}

.wc-block-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-size: 24px !important;
    font-weight: 800 !important;
    color: var(--bg-orange) !important;
}

/* Checkout Button in Block Cart */
.wc-block-cart .wc-block-cart__submit-button,
.wc-block-cart .wc-block-components-checkout-place-order-button,
.wp-block-woocommerce-proceed-to-checkout-block a,
.wc-block-cart__submit-button.wc-block-components-button {
    background: linear-gradient(135deg, var(--bg-orange), var(--bg-orange-light)) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 14px !important;
    padding: 18px 30px !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 1.5px !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 6px 20px rgba(244, 123, 0, 0.3) !important;
    width: 100%;
    text-align: center;
    font-family: var(--bg-font) !important;
}

.wc-block-cart .wc-block-cart__submit-button:hover,
.wc-block-cart .wc-block-components-button:hover {
    background: linear-gradient(135deg, var(--bg-orange-dark), var(--bg-orange)) !important;
    transform: translateY(-3px) !important;
    box-shadow: 0 10px 30px rgba(244, 123, 0, 0.4) !important;
}

/* Coupon toggle in block cart */
.wc-block-cart .wc-block-components-panel__button {
    color: var(--bg-green) !important;
    font-weight: 600 !important;
}

/* ============================================
    REDESIGN V2 — EMPTY CART
   ============================================ */

.woocommerce-cart .cart-empty {
    text-align: center;
    padding: 60px 30px !important;
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.06);
}

.woocommerce-cart .cart-empty::before {
    content: '';
    display: block;
    font-size: 80px;
    margin-bottom: 20px;
    opacity: 0.6;
    animation: cartBounce 2s ease infinite;
}

@keyframes cartBounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

.woocommerce-cart .return-to-shop {
    margin-top: 25px !important;
}

.woocommerce-cart .return-to-shop a.button {
    background: linear-gradient(135deg, var(--bg-green), var(--bg-green-light)) !important;
    color: #fff !important;
    padding: 16px 40px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    border-radius: 50px !important;
    text-transform: uppercase;
    letter-spacing: 1px;
    box-shadow: 0 4px 15px rgba(58, 129, 50, 0.3);
    transition: all 0.3s ease !important;
}

.woocommerce-cart .return-to-shop a.button:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(58, 129, 50, 0.4);
}

/* ============================================
    REDESIGN V2 — FREE SHIPPING PROGRESS
   ============================================ */
.ns-free-shipping-bar {
    background: linear-gradient(135deg, #f0f7f0, #e8f5e9);
    border: 1px solid rgba(58, 129, 50, 0.15);
    border-radius: 14px;
    padding: 20px 24px;
    margin-bottom: 25px;
    position: relative;
    overflow: hidden;
}

.ns-free-shipping-bar::before {
    content: '';
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 40px;
    opacity: 0.15;
}

.ns-shipping-text {
    font-size: 14px;
    color: var(--bg-green-dark);
    font-weight: 600;
    margin-bottom: 10px;
}

.ns-shipping-text strong {
    color: var(--bg-orange);
}

.ns-shipping-progress {
    height: 8px;
    background: #ddd;
    border-radius: 10px;
    overflow: hidden;
    position: relative;
}

.ns-shipping-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--bg-green), var(--bg-green-light));
    border-radius: 10px;
    transition: width 0.5s ease;
    position: relative;
}

.ns-shipping-progress-fill::after {
    content: '';
    position: absolute;
    right: 0;
    top: 0;
    width: 20px;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4));
    animation: shimmer 1.5s infinite;
}

@keyframes shimmer {
    0% { opacity: 0; }
    50% { opacity: 1; }
    100% { opacity: 0; }
}

.ns-shipping-success {
    background: linear-gradient(135deg, #e8f5e9, #c8e6c9);
    border-color: var(--bg-green);
}

.ns-shipping-success .ns-shipping-text {
    color: var(--bg-green);
}

/* ============================================
    REDESIGN V2 — MINI CART SIDEBAR
   ============================================ */

.ns-mini-cart-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.5);
    z-index: 9998;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    backdrop-filter: blur(3px);
}

.ns-mini-cart-overlay.active {
    opacity: 1;
    visibility: visible;
}

.ns-mini-cart-sidebar {
    position: fixed;
    top: 0;
    right: -420px;
    width: 400px;
    max-width: 90vw;
    height: 100vh;
    background: #fff;
    z-index: 9999;
    transition: right 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    display: flex;
    flex-direction: column;
    box-shadow: -10px 0 40px rgba(0,0,0,0.1);
}

.ns-mini-cart-sidebar.active {
    right: 0;
}

.ns-mini-cart-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 24px;
    border-bottom: 2px solid #f0f0f0;
    background: linear-gradient(135deg, var(--bg-green-dark), var(--bg-green));
}

.ns-mini-cart-header h3 {
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    margin: 0;
    font-family: var(--bg-font);
    display: flex;
    align-items: center;
    gap: 8px;
}

.ns-mini-cart-close {
    width: 36px;
    height: 36px;
    border: 2px solid rgba(255,255,255,0.3);
    background: transparent;
    color: #fff;
    font-size: 20px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
   
}

.ns-mini-cart-body {
    flex: 1;
    overflow-y: auto;
    padding: 16px 24px;
}

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

.ns-mini-cart-body .woocommerce-mini-cart-item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 0;
    border-bottom: 1px solid #f5f5f5;
}

.ns-mini-cart-body .woocommerce-mini-cart-item img {
    width: 70px;
    height: 70px;
    border-radius: 10px;
    object-fit: cover;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.ns-mini-cart-body .woocommerce-mini-cart-item a:not(.remove) {
    color: var(--bg-text);
    text-decoration: none;
    font-weight: 600;
    font-size: 14px;
    line-height: 1.4;
}

.ns-mini-cart-body .woocommerce-mini-cart-item .quantity {
    font-size: 13px;
    color: var(--bg-text-muted);
}

.ns-mini-cart-body .woocommerce-mini-cart-item .amount {
    color: var(--bg-orange) !important;
    font-weight: 700 !important;
}

.ns-mini-cart-body .woocommerce-mini-cart-item a.remove {
    width: 24px !important;
    height: 24px !important;
    font-size: 14px !important;
    line-height: 22px !important;
    margin-left: auto;
    flex-shrink: 0;
}

.ns-mini-cart-empty {
    text-align: center;
    padding: 60px 20px;
    color: var(--bg-text-muted);
}

.ns-mini-cart-empty::before {
    content: '';
    display: block;
    font-size: 50px;
    margin-bottom: 15px;
    opacity: 0.5;
}

.ns-mini-cart-footer {
    padding: 20px 24px;
    border-top: 2px solid #f0f0f0;
    background: #fafafa;
}

.ns-mini-cart-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
    font-size: 16px;
    font-weight: 700;
}

.ns-mini-cart-total .amount {
    font-size: 22px !important;
    color: var(--bg-orange) !important;
    font-weight: 800 !important;
}

.ns-mini-cart-actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ns-mini-cart-actions a {
    display: block;
    text-align: center;
    padding: 14px 20px;
    border-radius: 12px;
    font-weight: 700;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    text-decoration: none;
    transition: var(--bg-transition);
    font-family: var(--bg-font);
}

.ns-mini-cart-checkout {
    background: linear-gradient(135deg, var(--bg-orange), var(--bg-orange-light)) !important;
    color: #fff !important;
    box-shadow: 0 4px 15px rgba(244, 123, 0, 0.3);
}

.ns-mini-cart-checkout:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(244, 123, 0, 0.4);
}

.ns-mini-cart-view-cart {
    background: transparent !important;
    color: var(--bg-green) !important;
    border: 2px solid var(--bg-green);
}

.ns-mini-cart-view-cart:hover {
    background: var(--bg-green) !important;
    color: #fff !important;
}

/* ============================================
    REDESIGN V2 — RESPONSIVE ADJUSTMENTS
   ============================================ */
@media (max-width: 991px) {
    .bg-page-banner-title {
        font-size: 28px;
        letter-spacing: 2px;
    }

    .ns-trust-badges {
        flex-direction: column;
        gap: 12px;
    }
}

@media (max-width: 768px) {
    .bg-page-banner {
        padding: 35px 0 30px;
    }

    .bg-page-banner-title {
        font-size: 22px;
        letter-spacing: 1px;
    }

    .woocommerce div.product {
        padding: 20px !important;
        border-radius: 14px !important;
    }

    .woocommerce div.product .product_title {
        font-size: 22px !important;
    }

    .woocommerce div.product p.price,
    .woocommerce div.product span.price {
        font-size: 22px !important;
    }

    .woocommerce div.product form.cart {
        flex-direction: column;
        align-items: stretch;
    }

    .woocommerce div.product form.cart .quantity {
        justify-content: center;
    }

    .woocommerce div.product form.cart .single_add_to_cart_button {
        width: 100%;
        justify-content: center;
    }

    .ns-mini-cart-sidebar {
        width: 100%;
        max-width: 100%;
    }

    .ns-trust-badges {
        gap: 10px;
        padding: 15px;
    }

    .ns-trust-badge {
        min-width: auto;
    }
}

@media (max-width: 480px) {
    .bg-page-banner-title {
        font-size: 18px;
        letter-spacing: 0.5px;
    }
}

/* ============================================
    REDESIGN V2 — MICRO-ANIMATIONS
   ============================================ */
@keyframes slideInRight {
    from {
        transform: translateX(100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

@keyframes scaleIn {
    from {
        transform: scale(0.9);
        opacity: 0;
    }
    to {
        transform: scale(1);
        opacity: 1;
    }
}

/* Product cards stagger animation */
.woocommerce ul.products li.product {
    animation: fadeInUp 0.5s ease forwards;
    opacity: 0;
}

.woocommerce ul.products li.product:nth-child(1) { animation-delay: 0.05s; }
.woocommerce ul.products li.product:nth-child(2) { animation-delay: 0.1s; }
.woocommerce ul.products li.product:nth-child(3) { animation-delay: 0.15s; }
.woocommerce ul.products li.product:nth-child(4) { animation-delay: 0.2s; }
.woocommerce ul.products li.product:nth-child(5) { animation-delay: 0.25s; }
.woocommerce ul.products li.product:nth-child(6) { animation-delay: 0.3s; }
.woocommerce ul.products li.product:nth-child(7) { animation-delay: 0.35s; }
.woocommerce ul.products li.product:nth-child(8) { animation-delay: 0.4s; }

/* WooCommerce Block override - ensure green buttons for all blocks */
.wc-block-grid .wp-block-button__link,
.wc-block-components-product-button__button,
.wp-block-button .wp-block-button__link,
.add_to_cart_button:not(.ns-buy-now-btn) {
    background: var(--bg-green) !important;
    color: #fff !important;
    border-radius: 10px !important;
    font-family: var(--bg-font) !important;
    font-weight: 700 !important;
    transition: var(--bg-transition) !important;
}

.wc-block-grid .wp-block-button__link:hover,
.wc-block-components-product-button__button:hover,
.wp-block-button .wp-block-button__link:hover {
    background: var(--bg-green-dark) !important;
    transform: translateY(-2px);
}

/* ============================================
    CHECKOUT REDESIGN — STEP PROGRESS BAR
   ============================================ */

.nsp-checkout-steps {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    max-width: 500px;
    margin: 0 auto 30px;
    padding: 25px 0;
}

.nsp-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    position: relative;
    z-index: 2;
}

.nsp-step-icon {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #e0e0e0;
    color: #999;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: 800;
    transition: all 0.3s ease;
    border: 3px solid #e0e0e0;
    font-family: var(--bg-font);
}

.nsp-step.active .nsp-step-icon {
    background: var(--bg-green);
    color: #fff;
    border-color: var(--bg-green);
    box-shadow: 0 4px 15px rgba(58, 129, 50, 0.3);
}

.nsp-step.completed .nsp-step-icon {
    background: var(--bg-green);
    color: #fff;
    border-color: var(--bg-green);
}

.nsp-step-label {
    font-size: 12px;
    font-weight: 700;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    white-space: nowrap;
}

.nsp-step.active .nsp-step-label {
    color: var(--bg-green-dark);
}

.nsp-step.completed .nsp-step-label {
    color: var(--bg-green);
}

.nsp-step-line {
    flex: 1;
    height: 3px;
    background: #e0e0e0;
    min-width: 60px;
    margin: 0 -5px;
    margin-bottom: 28px;
    transition: background 0.3s ease;
}

.nsp-step-line.active {
    background: linear-gradient(90deg, var(--bg-green), var(--bg-green-light));
}

/* ============================================
    CHECKOUT REDESIGN — TRUST BADGES
   ============================================ */

.nsp-checkout-trust {
    display: flex;
    justify-content: center;
    gap: 24px;
    margin-bottom: 30px;
    flex-wrap: wrap;
}

.nsp-ct-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    color: var(--bg-text-light);
    padding: 8px 16px;
    background: #fff;
    border-radius: 50px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
    transition: all 0.2s ease;
}

.nsp-ct-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
}

.nsp-ct-icon {
    font-size: 18px;
}

/* ============================================
    CHECKOUT REDESIGN — CLASSIC CHECKOUT FORM
   ============================================ */

/* Overall checkout container */
.woocommerce-checkout .woocommerce {
    padding: 0 0 40px;
}

/* Widen checkout container for 2-column layout */
.woocommerce-checkout .site-content > .ast-container,
.woocommerce-checkout .ast-container {
    max-width: 1280px !important;
}

.woocommerce-checkout .entry-content,
.woocommerce-checkout #primary {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
}

.woocommerce form.checkout {
    display: grid !important;
    grid-template-columns: 1fr 420px !important;
    gap: 30px !important;
    align-items: start;
    width: 100% !important;
    max-width: 100% !important;
}

/* Kill Astra/WooCommerce clearfix pseudo-elements on form.checkout */
.woocommerce form.checkout::before,
.woocommerce form.checkout::after {
    display: none !important;
    content: none !important;
}

.woocommerce-checkout #customer_details {
    grid-column: 1 !important;
    grid-row: 1 !important;
    min-width: 0;
    float: none !important;
    clear: none !important;
}

/* Hide the separate heading — we'll recreate it inside #order_review */
.woocommerce-checkout #order_review_heading {
    display: none !important;
}

.woocommerce-checkout #order_review {
    grid-column: 2 !important;
    grid-row: 1 !important;
    min-width: 0;
    width: 100% !important;
    float: none !important;
    clear: none !important;
    background: #fff;
    border-radius: 16px;
    padding: 24px !important;
    box-shadow: 0 4px 20px rgba(0,0,0,0.06);
    position: sticky;
    top: 100px;
    margin-top: 0 !important;
    align-self: start;
}

/* Recreate heading inside #order_review */
.woocommerce-checkout #order_review::before {
    content: ' Đơn hàng của bạn' !important;
    display: block !important;
    font-size: 18px !important;
    color: var(--bg-green-dark) !important;
    font-weight: 700 !important;
    padding-bottom: 16px;
    margin-bottom: 16px;
    border-bottom: 2px solid var(--bg-green-lighter, #e8f0e4);
}

/* Kill clearfix inside order_review (but NOT ::before — used for heading) */
.woocommerce-checkout #order_review::after,
.woocommerce-checkout #order_review .woocommerce-checkout-review-order-table::before,
.woocommerce-checkout #order_review .woocommerce-checkout-review-order-table::after,
.woocommerce-checkout #payment::before,
.woocommerce-checkout #payment::after {
    display: none !important;
    content: none !important;
}

/* Remove all clear/float properties from all children inside order_review */
.woocommerce-checkout #order_review *,
.woocommerce-checkout #payment * {
    clear: none !important;
    float: none !important;
}

/* Restore specific floats needed for form-row-first/last inside billing */
.woocommerce-checkout #customer_details .form-row-first {
    float: left !important;
    clear: none !important;
}
.woocommerce-checkout #customer_details .form-row-last {
    float: right !important;
    clear: none !important;
}

/* Billing/Shipping sections */
.woocommerce-checkout .col2-set {
    margin-bottom: 0;
}

.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3 {
    font-size: 18px !important;
    color: var(--bg-green-dark) !important;
    font-weight: 700 !important;
    margin-bottom: 20px !important;
    padding-bottom: 12px;
    border-bottom: 2px solid #e8f5e9;
    display: flex;
    align-items: center;
    gap: 8px;
}

.woocommerce-billing-fields h3::before {
    content: '';
}

/* Form fields premium styling */
.woocommerce form .form-row {
    margin-bottom: 16px !important;
}

.woocommerce form .form-row label {
    font-weight: 600 !important;
    font-size: 13px !important;
    color: var(--bg-text) !important;
    margin-bottom: 6px !important;
    display: block;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-checkout .select2-container--default .select2-selection--single {
    border: 2px solid #e0e0e0 !important;
    border-radius: 10px !important;
    padding: 12px 16px !important;
    font-size: 14px !important;
    font-family: var(--bg-font) !important;
    transition: all 0.2s ease !important;
    background: #fff !important;
    color: var(--bg-text) !important;
    width: 100% !important;
    height: auto !important;
    min-height: 48px !important;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
    border-color: var(--bg-green) !important;
    box-shadow: 0 0 0 3px rgba(58, 129, 50, 0.1) !important;
    outline: none !important;
}

.woocommerce form .form-row input.input-text::placeholder {
    color: #bbb;
}

/* Select2 overrides */
.woocommerce-checkout .select2-container--default .select2-selection--single {
    min-height: 48px !important;
    display: flex !important;
    align-items: center !important;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
    padding: 0 !important;
    line-height: normal !important;
    color: var(--bg-text) !important;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 100% !important;
    right: 12px !important;
}

/* Payment methods */
.woocommerce #payment {
    background: #f9faf8 !important;
    border-radius: 14px !important;
    padding: 20px !important;
    border: 1px solid #e8ede6 !important;
    margin-top: 15px;
}

.woocommerce #payment ul.payment_methods {
    border-bottom: none !important;
    padding: 0 !important;
    margin: 0 !important;
    list-style: none !important;
}

.woocommerce #payment ul.payment_methods li {
    background: #fff;
    border: 2px solid #e8ede6;
    border-radius: 12px;
    margin-bottom: 10px !important;
    padding: 16px 18px !important;
    transition: all 0.2s ease;
    cursor: pointer;
}

.woocommerce #payment ul.payment_methods li:hover {
    border-color: var(--bg-green-light);
    box-shadow: 0 2px 10px rgba(58, 129, 50, 0.08);
}

.woocommerce #payment ul.payment_methods li.wc_payment_method input[type="radio"] {
    accent-color: var(--bg-green);
    width: 18px;
    height: 18px;
    margin-right: 10px;
}

.woocommerce #payment ul.payment_methods li label {
    font-weight: 700 !important;
    font-size: 15px !important;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
}

.woocommerce #payment ul.payment_methods li .payment_box {
    padding: 12px 0 0 28px !important;
    margin: 0 !important;
    background: transparent !important;
    color: var(--bg-text-light);
    font-size: 13px;
}

.woocommerce #payment ul.payment_methods li .payment_box::before {
    display: none !important;
}

/* Place order button */
.woocommerce #payment .place-order {
    padding-top: 20px !important;
}

.woocommerce #payment #place_order {
    width: 100%;
    padding: 18px !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    background: linear-gradient(135deg, var(--bg-orange), var(--bg-orange-light)) !important;
    border-radius: 14px !important;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    box-shadow: 0 6px 20px rgba(244, 123, 0, 0.3) !important;
    transition: all 0.3s ease !important;
    font-family: var(--bg-font) !important;
}

.woocommerce #payment #place_order:hover {
    background: linear-gradient(135deg, var(--bg-orange-dark), var(--bg-orange)) !important;
    transform: translateY(-3px) !important;
    box-shadow: 0 10px 30px rgba(244, 123, 0, 0.4) !important;
}

/* Coupon form on checkout */
.woocommerce-form-coupon-toggle .woocommerce-info {
    background: #f0f7f0 !important;
    border: 1px solid rgba(58, 129, 50, 0.15) !important;
    border-radius: 12px !important;
    color: var(--bg-green-dark) !important;
    font-size: 14px;
    padding: 14px 18px !important;
    margin-bottom: 20px;
    border-top: none !important;
}

.woocommerce-form-coupon-toggle .woocommerce-info::before {
    color: var(--bg-green) !important;
}

.woocommerce-form-coupon-toggle .woocommerce-info a {
    color: var(--bg-green) !important;
    font-weight: 700;
}

.checkout_coupon {
    border: 2px solid #e8ede6 !important;
    border-radius: 12px !important;
    padding: 20px !important;
    background: #fff !important;
}

/* Login form on checkout */
.woocommerce-form-login-toggle .woocommerce-info {
    background: #fff8e1 !important;
    border: 1px solid #ffcc80 !important;
    border-radius: 12px !important;
    border-top: none !important;
    padding: 14px 18px !important;
    margin-bottom: 20px;
}

/* Order review table */
.woocommerce-checkout #order_review .shop_table {
    border: none !important;
    margin: 0 !important;
}

.woocommerce-checkout #order_review .shop_table th {
    font-weight: 700;
    color: var(--bg-text);
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 12px 0 !important;
    border-bottom: 2px solid #f0f0f0 !important;
}

.woocommerce-checkout #order_review .shop_table td {
    padding: 12px 0 !important;
    border-bottom: 1px solid #f5f5f5 !important;
    font-size: 14px;
}

.woocommerce-checkout #order_review .shop_table .order-total th,
.woocommerce-checkout #order_review .shop_table .order-total td {
    border-top: 2px solid #e8f5e9 !important;
    border-bottom: none !important;
    padding-top: 16px !important;
    font-size: 18px !important;
    font-weight: 800 !important;
}

.woocommerce-checkout #order_review .shop_table .order-total .amount {
    color: var(--bg-orange) !important;
    font-size: 22px !important;
}

/* ============================================
    CHECKOUT — RESPONSIVE
   ============================================ */

@media (max-width: 991px) {
    .woocommerce form.checkout {
        grid-template-columns: 1fr !important;
    }

    .woocommerce-checkout #order_review_heading,
    .woocommerce-checkout #order_review {
        grid-column: 1;
        position: static;
    }

    .nsp-checkout-trust {
        gap: 10px;
    }

    .nsp-ct-item {
        font-size: 11px;
        padding: 6px 12px;
    }
}

@media (max-width: 768px) {
    .nsp-checkout-steps {
        max-width: 100%;
        padding: 15px 0;
    }

    .nsp-step-icon {
        width: 36px;
        height: 36px;
        font-size: 14px;
    }

    .nsp-step-label {
        font-size: 10px;
    }

    .nsp-step-line {
        min-width: 30px;
    }

    .nsp-checkout-trust {
        flex-direction: column;
        align-items: center;
    }
}

/* ============================================
    MY ACCOUNT — LOGIN / REGISTER REDESIGN
   ============================================ */

/* Container for login + register side by side */
.woocommerce-account:not(.logged-in) .woocommerce {
    padding: 30px 0 60px;
}

/* Force 2-column grid for login + register */
.woocommerce-account .u-columns,
.woocommerce-account .col2-set,
.woocommerce-account:not(.logged-in) .woocommerce > .u-columns,
.woocommerce-account .woocommerce .col2-set {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 30px !important;
    max-width: 960px !important;
    margin: 0 auto !important;
    float: none !important;
    width: 100% !important;
    zoom: unset !important;
}

/* Kill Astra clearfix pseudo-elements (they become grid items!) */
.woocommerce-account .col2-set::before,
.woocommerce-account .col2-set::after,
.woocommerce-account .u-columns::before,
.woocommerce-account .u-columns::after {
    display: none !important;
    content: none !important;
}

/* Override ALL default col classes */
.woocommerce-account .u-columns .u-column1,
.woocommerce-account .u-columns .u-column2,
.woocommerce .col2-set .col-1,
.woocommerce .col2-set .col-2,
.woocommerce-page .col2-set .col-1,
.woocommerce-page .col2-set .col-2 {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    padding: 0 !important;
    flex: none !important;
}

/* Login & Register Form Cards */
.woocommerce form.woocommerce-form-login,
.woocommerce form.woocommerce-form-register {
    background: #fff !important;
    border: none !important;
    border-radius: 16px !important;
    padding: 32px !important;
    box-shadow: 0 4px 20px rgba(0,0,0,0.06) !important;
    margin: 0 !important;
    position: relative;
    overflow: hidden;
}

.woocommerce form.woocommerce-form-login::before,
.woocommerce form.woocommerce-form-register::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--bg-green), var(--bg-green-light));
}

.woocommerce form.woocommerce-form-register::before {
    background: linear-gradient(90deg, var(--bg-orange), var(--bg-orange-light));
}

/* Form headings */
.woocommerce form.woocommerce-form-login h2,
.woocommerce form.woocommerce-form-register h2,
.woocommerce .u-column1 h2,
.woocommerce .u-column2 h2 {
    font-size: 22px !important;
    font-weight: 700 !important;
    color: var(--bg-green-dark) !important;
    margin-bottom: 24px !important;
    font-family: var(--bg-font) !important;
    display: flex;
    align-items: center;
    gap: 10px;
}

.woocommerce .u-column1 h2::before {
    content: '';
}

.woocommerce .u-column2 h2::before {
    content: '';
}

/* Form fields in account page */
.woocommerce-account .woocommerce-form .form-row input.input-text,
.woocommerce-account .woocommerce-form .form-row input[type="email"],
.woocommerce-account .woocommerce-form .form-row input[type="password"],
.woocommerce-account .woocommerce-form .form-row input[type="tel"],
.woocommerce-account .woocommerce-form .form-row input[type="text"] {
    border: 2px solid #e0e0e0 !important;
    border-radius: 10px !important;
    padding: 12px 16px !important;
    font-size: 14px !important;
    font-family: var(--bg-font) !important;
    transition: all 0.2s ease !important;
    background: #fff !important;
    width: 100% !important;
    min-height: 48px !important;
}

.woocommerce-account .woocommerce-form .form-row input:focus {
    border-color: var(--bg-green) !important;
    box-shadow: 0 0 0 3px rgba(58, 129, 50, 0.1) !important;
    outline: none !important;
}

.woocommerce-account .woocommerce-form .form-row label {
    font-weight: 600 !important;
    font-size: 13px !important;
    color: var(--bg-text) !important;
    margin-bottom: 6px !important;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

/* Login button */
.woocommerce-account .woocommerce-form-login .woocommerce-button,
.woocommerce-account .woocommerce-form-login button[type="submit"] {
    width: 100% !important;
    padding: 14px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    background: linear-gradient(135deg, var(--bg-green), var(--bg-green-light)) !important;
    border-radius: 12px !important;
    color: #fff !important;
    text-transform: uppercase;
    letter-spacing: 1px;
    box-shadow: 0 4px 15px rgba(58, 129, 50, 0.3) !important;
    transition: all 0.3s ease !important;
    font-family: var(--bg-font) !important;
    margin-top: 10px !important;
}

.woocommerce-account .woocommerce-form-login .woocommerce-button:hover,
.woocommerce-account .woocommerce-form-login button[type="submit"]:hover {
    background: linear-gradient(135deg, var(--bg-green-dark), var(--bg-green)) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 20px rgba(58, 129, 50, 0.4) !important;
}

/* Register button */
.woocommerce-account .woocommerce-form-register .woocommerce-button,
.woocommerce-account .woocommerce-form-register button[type="submit"] {
    width: 100% !important;
    padding: 14px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    background: linear-gradient(135deg, var(--bg-orange), var(--bg-orange-light)) !important;
    border-radius: 12px !important;
    color: #fff !important;
    text-transform: uppercase;
    letter-spacing: 1px;
    box-shadow: 0 4px 15px rgba(244, 123, 0, 0.3) !important;
    transition: all 0.3s ease !important;
    font-family: var(--bg-font) !important;
    margin-top: 10px !important;
}

.woocommerce-account .woocommerce-form-register .woocommerce-button:hover,
.woocommerce-account .woocommerce-form-register button[type="submit"]:hover {
    background: linear-gradient(135deg, var(--bg-orange-dark), var(--bg-orange)) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 20px rgba(244, 123, 0, 0.4) !important;
}

/* Remember me checkbox */
.woocommerce-form-login .woocommerce-form__label-for-checkbox {
    display: flex !important;
    align-items: center !important;
    gap: 8px;
    font-size: 13px;
    color: var(--bg-text-light);
    margin: 12px 0 !important;
}

.woocommerce-form-login .woocommerce-form__label-for-checkbox input[type="checkbox"] {
    accent-color: var(--bg-green);
    width: 16px;
    height: 16px;
}

/* Lost password link */
.woocommerce-LostPassword a {
    color: var(--bg-green) !important;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none !important;
}

.woocommerce-LostPassword a:hover {
    color: var(--bg-green-dark) !important;
    text-decoration: underline !important;
}

/* Password visibility toggle */
.woocommerce form .show-password-input {
    top: 14px !important;
}

/* Account page responsive */
@media (max-width: 768px) {
    .woocommerce-account .u-columns {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    
    .woocommerce form.woocommerce-form-login,
    .woocommerce form.woocommerce-form-register {
        padding: 24px !important;
    }
}

/* ============================================
    THANK YOU PAGE REDESIGN
   ============================================ */

.nsp-thankyou-msg {
    text-align: center;
    padding: 30px;
    border-radius: 16px;
    margin-bottom: 30px;
}

.nsp-thankyou-bacs {
    background: linear-gradient(135deg, #e8f5e9, #c8e6c9);
    border: 1px solid rgba(58, 129, 50, 0.2);
}

.nsp-thankyou-cod {
    background: linear-gradient(135deg, #fff8e1, #ffecb3);
    border: 1px solid rgba(255, 152, 0, 0.2);
}

.nsp-ty-icon {
    font-size: 50px;
    display: block;
    margin-bottom: 10px;
}

.nsp-thankyou-msg h3 {
    font-size: 24px;
    font-weight: 700;
    color: var(--bg-green-dark);
    margin: 0 0 8px;
}

.nsp-thankyou-msg p {
    font-size: 15px;
    color: var(--bg-text-light);
    margin: 0;
}

/* WooCommerce notices on checkout */
.woocommerce-checkout .woocommerce-error,
.woocommerce-checkout .woocommerce-message,
.woocommerce-checkout .woocommerce-info {
    border-radius: 12px !important;
    border-top: none !important;
}
