/*
Theme Name: DDSupply Green
Theme URI: https://ddsupply.com
Author: Antigravity
Author URI: https://ddsupply.com
Description: A responsive WordPress theme designed for industrial tools and equipment imports. Optimized for Elementor Pro and the Block Editor, featuring a bright green and white color scheme.
Version: 1.0.4
Text Domain: ddsupply-green
*/

/* ==========================================================
   Global Reset & Box Model
   ========================================================== */
*, *::before, *::after {
    box-sizing: border-box;
}

:root {
    --color-primary: #0071e3; /* Apple Blue */
    --color-primary-hover: #0077ed;
    --color-secondary: #1d1d1f; /* Apple Dark Gray */
    --color-white: #ffffff;
    --color-background: #ffffff;
    --color-text: #1d1d1f;
    --font-primary: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

:where(body) {
    font-family: var(--font-primary);
    background-color: var(--color-background);
    color: var(--color-text);
    margin: 0;
    padding: 0;
    overflow-x: hidden; /* Prevent horizontal scroll on mobile */
}

/* Typography */
h1, h2, h3, h4, h5, h6 { color: var(--color-secondary); margin-top: 0; }
a { color: var(--color-primary); text-decoration: none; transition: color 0.3s ease; }
a:hover { color: var(--color-primary-hover); }

/* Top Bar */
.top-bar {
    background-color: var(--color-secondary);
    color: var(--color-white);
    padding: 10px 0;
    font-size: 14px;
}
.top-bar .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}
.top-bar a { color: var(--color-white); margin-left: 15px; }

/* Header */
.site-header {
    background-color: var(--color-white);
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
    padding: 20px 0;
    position: sticky;
    top: 0;
    z-index: 100;
}
.site-header .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}
.site-title { margin: 0; }
.site-title a { font-size: 28px; font-weight: 700; color: var(--color-primary); }
.main-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; }
.main-navigation li { margin-left: 30px; }
.main-navigation a { font-weight: 600; color: var(--color-text); }
.main-navigation a:hover { color: var(--color-primary); }

/* Hamburger Menu Button */
.menu-toggle {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    flex-direction: column;
    gap: 5px;
    z-index: 200;
}
.menu-toggle span {
    display: block;
    width: 24px;
    height: 2px;
    background-color: var(--color-secondary);
    transition: all 0.3s ease;
    border-radius: 2px;
}
.menu-toggle.is-active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle.is-active span:nth-child(2) { opacity: 0; }
.menu-toggle.is-active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Hero Section */
.hero-section {
    background: linear-gradient(135deg, var(--color-primary) 0%, #010630 100%);
    color: var(--color-white);
    padding: 100px 20px;
    text-align: center;
}
.hero-title { font-size: clamp(28px, 5vw, 48px); margin-bottom: 20px; color: var(--color-white); }
.hero-subtitle { font-size: clamp(16px, 2.5vw, 20px); margin-bottom: 40px; font-weight: 300; }
.btn-primary {
    background-color: var(--color-white);
    color: var(--color-primary);
    padding: 15px 30px;
    border-radius: 30px;
    font-weight: bold;
    display: inline-block;
}
.btn-primary:hover {
    background-color: var(--color-background);
    color: var(--color-primary-hover);
}

/* Categories Grid */
.categories-section { padding: 80px 20px; max-width: 1200px; margin: 0 auto; text-align: center; }
.section-title { font-size: clamp(22px, 3vw, 32px); margin-bottom: 50px; }
.category-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 30px;
}
.category-card {
    background: var(--color-white);
    padding: 40px 20px;
    border-radius: 10px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.05);
    transition: transform 0.3s ease;
}
.category-card:hover { transform: translateY(-10px); }
.category-icon { font-size: 40px; color: var(--color-primary); margin-bottom: 20px; display: block; }
.category-title { font-size: 20px; margin-bottom: 0; }

/* Footer */
.site-footer {
    background-color: var(--color-secondary);
    color: var(--color-white);
    padding: 40px 20px;
    text-align: center;
    margin-top: 50px;
}

/* Utilities */
.container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
img { max-width: 100%; height: auto; }

/* WooCommerce Apple-Style Overrides */
.woocommerce-products-header__title.page-title {
    text-align: center;
    font-size: clamp(28px, 4vw, 48px);
    font-weight: 600;
    color: var(--color-secondary);
    margin-bottom: 50px;
    letter-spacing: -0.003em;
}
.woocommerce ul.products {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.woocommerce ul.products::before, .woocommerce ul.products::after {
    display: none;
}
.woocommerce ul.products li.product {
    background-color: #fbfbfd;
    border-radius: 18px;
    padding: 40px 30px;
    text-align: center;
    transition: transform 0.3s ease;
    margin: 0 !important;
    width: 100% !important;
    box-sizing: border-box;
}
.woocommerce ul.products li.product:hover {
    transform: scale(1.02);
}
.woocommerce ul.products li.product a img {
    margin: 0 auto 30px auto;
    display: block;
    max-height: 220px;
    object-fit: contain;
    mix-blend-mode: multiply; /* Helps blend images with white backgrounds into the light gray card */
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    padding: 0;
    margin-bottom: 12px;
}
.woocommerce ul.products li.product .price {
    margin-bottom: 25px;
    display: block;
}
.woocommerce ul.products li.product .button {
    border-radius: 980px;
    padding: 10px 22px;
    display: inline-block;
    transition: background-color 0.2s ease;
    text-align: center;
}
:where(.woocommerce ul.products li.product .button:hover) {
    background-color: var(--color-primary-hover);
    color: var(--color-white);
}

/* Hide WooCommerce result count and ordering dropdown for a cleaner look */
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
    display: none;
}

/* Responsive Media Queries Moved to Bottom */
/* ==========================================================
   Comprehensive WooCommerce Apple-Style Overrides
   ========================================================== */

/* 1. Global Inputs & Forms */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
    border: 1px solid #d2d2d7;
    border-radius: 12px;
    padding: 14px 16px;
    font-size: 16px;
    background-color: #ffffff;
    color: var(--color-secondary);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    width: 100%;
    box-sizing: border-box;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(0, 113, 227, 0.2);
    outline: none;
}

/* 2. Global Buttons */
:where(.woocommerce a.button, .woocommerce button.button, .woocommerce input.button) {
    background-color: var(--color-primary);
    color: var(--color-white);
    border-radius: 980px;
    padding: 12px 24px;
    font-size: 15px;
    font-weight: 500;
    border: none;
    transition: background-color 0.2s ease;
    text-align: center;
    cursor: pointer;
}
:where(.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover) {
    background-color: var(--color-primary-hover);
    color: var(--color-white);
}

/* ==========================================================
   Custom Datasheet Buttons (Multiple Files)
   ========================================================== */
.ddsupply-datasheets-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    margin-top: 30px;
    margin-bottom: 30px;
}
.ddsupply-datasheets-wrapper .ddsupply-datasheet-btn {
    background-color: #fbfbfd;
    color: var(--color-secondary);
    border: 1px solid #d2d2d7;
    border-radius: 980px;
    padding: 12px 24px;
    font-size: 14px;
    font-weight: 500;
    transition: all 0.2s ease;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.ddsupply-datasheets-wrapper .ddsupply-datasheet-btn:hover {
    background-color: var(--color-primary) !important;
    color: var(--color-white) !important;
    border-color: var(--color-primary) !important;
}

/* ==========================================================
   3D Model Viewer
   ========================================================== */
.ddsupply-3d-viewer-section {
    margin-top: 60px;
    margin-bottom: 60px;
    width: 100%;
    clear: both;
}
.ddsupply-3d-viewer-header {
    text-align: center;
    margin-bottom: 30px;
}
.ddsupply-3d-viewer-header h2 {
    font-size: 32px;
    font-weight: 600;
    color: var(--color-secondary);
    margin-bottom: 8px;
}
.ddsupply-3d-viewer-header p {
    font-size: 16px;
    color: #86868b;
}
.ddsupply-3d-viewer-container {
    background-color: #fbfbfd;
    border-radius: 24px;
    overflow: hidden;
    padding: 20px;
    box-sizing: border-box;
}
.ddsupply-3d-viewer-container model-viewer {
    width: 100%;
    height: 500px;
    background-color: transparent;
    --poster-color: transparent;
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
    background-color: var(--color-secondary);
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
    background-color: #000000;
}

/* 3. Notifications & Alerts */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
    background-color: #fbfbfd !important;
    border: 1px solid #d2d2d7 !important;
    border-radius: 16px;
    padding: 20px 30px !important;
    color: var(--color-secondary) !important;
    font-size: 16px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.03);
    margin-bottom: 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
}
.woocommerce-message::before,
.woocommerce-error::before,
.woocommerce-info::before {
    display: none !important; /* Hide default icons */
}
.woocommerce-error li {
    list-style: none;
    margin: 0;
}
.woocommerce-message a.button,
.woocommerce-error a.button,
.woocommerce-info a.button {
    margin-left: 20px;
    padding: 8px 16px;
    font-size: 13px;
    background: transparent;
    color: var(--color-primary);
    border: 1px solid var(--color-primary);
}
.woocommerce-message a.button:hover,
.woocommerce-error a.button:hover,
.woocommerce-info a.button:hover {
    background: var(--color-primary);
    color: var(--color-white);
}

/* 4. Cart Page */
.woocommerce-cart table.cart {
    border: none;
    border-collapse: collapse;
    width: 100%;
}
.woocommerce-cart table.cart th {
    border: none;
    border-bottom: 1px solid #d2d2d7;
    padding: 20px 10px;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 13px;
    letter-spacing: 0.5px;
    color: #86868b;
}
.woocommerce-cart table.cart td {
    border: none;
    border-bottom: 1px solid #eee;
    padding: 20px 10px;
    vertical-align: middle;
}
.woocommerce-cart table.cart img {
    border-radius: 12px;
    width: 80px;
    mix-blend-mode: multiply;
}
.cart-collaterals {
    margin-top: 40px;
}
.cart_totals {
    background: #fbfbfd;
    padding: 40px;
    border-radius: 24px;
    float: right;
    width: 100%;
    max-width: 450px;
    box-sizing: border-box;
}
.cart_totals h2 {
    font-size: 24px;
    margin-bottom: 20px;
    font-weight: 600;
}
.cart_totals table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 30px;
}
.cart_totals table th, .cart_totals table td {
    padding: 15px 0;
    border-bottom: 1px solid #eee;
}

/* 5. Checkout Page */
.woocommerce-checkout .col2-set {
    display: flex;
    gap: 40px;
    flex-wrap: wrap;
}
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
    width: calc(50% - 20px);
    float: none;
}
#order_review_heading,
#order_review {
    background: #fbfbfd;
    padding: 40px;
    border-radius: 24px;
    margin-top: 40px;
}
#order_review_heading {
    margin-bottom: 0;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
    padding-bottom: 20px;
}
#order_review {
    margin-top: 0;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    padding-top: 20px;
}

/* 6. My Account Page */
.woocommerce-account .woocommerce-MyAccount-navigation {
    width: 25%;
    float: left;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a {
    display: block;
    padding: 15px 20px;
    border-radius: 12px;
    color: var(--color-secondary);
    font-weight: 500;
    margin-bottom: 5px;
    transition: background 0.2s;
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
    background: #fbfbfd;
    color: var(--color-primary);
}
.woocommerce-account .woocommerce-MyAccount-content {
    width: 70%;
    float: right;
    background: #fbfbfd;
    padding: 40px;
    border-radius: 24px;
    box-sizing: border-box;
}

/* 7. Product Tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs {
    border: none;
    padding: 0;
    margin: 50px 0 30px 0;
    display: flex;
    gap: 30px;
    justify-content: center;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
    border: none;
    background: transparent;
    margin: 0;
    padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
    display: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    font-size: 18px;
    font-weight: 500;
    color: #86868b;
    padding-bottom: 10px;
    border-bottom: 2px solid transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
    color: var(--color-secondary);
    border-bottom-color: var(--color-secondary);
}

/* 8. Pagination */
.woocommerce nav.woocommerce-pagination {
    margin-top: 50px;
}
.woocommerce nav.woocommerce-pagination ul {
    border: none;
    display: flex;
    justify-content: center;
    gap: 10px;
}
.woocommerce nav.woocommerce-pagination ul li {
    border: none;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span.current {
    display: inline-block;
    padding: 10px 18px;
    border-radius: 50px;
    background: #fbfbfd;
    color: var(--color-secondary);
    font-weight: 500;
    transition: background 0.2s;
}
.woocommerce nav.woocommerce-pagination ul li a:hover {
    background: #ebebeb;
}
.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--color-primary);
    color: var(--color-white);
}

/* WooCommerce Single Product Apple-Style */
.woocommerce div.product {
    display: flex;
    flex-wrap: wrap;
    gap: 50px;
    margin-top: 40px;
}
.woocommerce div.product div.images {
    width: calc(50% - 25px);
    background: #fbfbfd;
    border-radius: 24px;
    padding: 40px;
    box-sizing: border-box;
}
.woocommerce div.product div.summary {
    width: calc(50% - 25px);
}
.woocommerce div.product .product_title {
    font-size: 40px;
    font-weight: 600;
    color: var(--color-secondary);
    letter-spacing: -0.003em;
    margin-bottom: 15px;
    line-height: 1.1;
}
.woocommerce div.product .price {
    font-size: 24px;
    color: var(--color-secondary);
    font-weight: 500;
    margin-bottom: 30px;
}
.woocommerce div.product .woocommerce-product-details__short-description {
    font-size: 17px;
    line-height: 1.6;
    color: #555;
    margin-bottom: 30px;
}
.woocommerce div.product form.cart .button {
    background-color: var(--color-primary);
    color: var(--color-white);
    border-radius: 980px;
    padding: 14px 28px;
    font-size: 16px;
    font-weight: 400;
    border: none;
    transition: background-color 0.2s ease;
}
.woocommerce div.product form.cart .button:hover {
    background-color: var(--color-primary-hover);
}

/* Fix the broken gallery list (hide raw numbers and arrows) */
.woocommerce div.product div.images .flex-control-nav {
    list-style: none;
    padding: 0;
    margin: 30px 0 0 0;
    display: flex;
    gap: 15px;
    justify-content: center;
}
.woocommerce div.product div.images .flex-control-nav li {
    margin: 0;
    list-style: none;
}
.woocommerce div.product div.images .flex-control-nav li img {
    border-radius: 8px;
    width: 60px;
    height: 60px;
    object-fit: cover;
    cursor: pointer;
    border: 2px solid transparent;
    opacity: 0.6;
    transition: opacity 0.2s;
}
.woocommerce div.product div.images .flex-control-nav li img.flex-active,
.woocommerce div.product div.images .flex-control-nav li img:hover {
    opacity: 1;
    border-color: var(--color-primary);
}
.woocommerce div.product div.images .flex-direction-nav {
    display: none !important;
}

/* Ensure images fit well */
.woocommerce div.product div.images .woocommerce-product-gallery__image img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    mix-blend-mode: multiply;
}

/* Hide fallback text if JS completely fails */
.woocommerce div.product div.images .flex-control-nav li:not(:has(img)) {
    display: none !important;
}

/* ==========================================================
   Comprehensive Responsive Overrides
   ========================================================== */

/* Tablet (Under 992px) */
@media (max-width: 991px) {
    .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); }
    .woocommerce div.product div.images, .woocommerce div.product div.summary { width: 100% !important; }
    .woocommerce div.product { gap: 20px; }
}

/* Mobile (Under 768px) */
@media (max-width: 767px) {
    /* Header & Nav */
    .top-bar .container { flex-direction: column; gap: 10px; text-align: center; }
    .top-bar a { margin-left: 10px; margin-right: 10px; }
    .site-header .container { flex-direction: column; gap: 15px; }
    .main-navigation ul { flex-wrap: wrap; justify-content: center; gap: 15px; }
    .main-navigation li { margin-left: 0; }
    
    /* Category Grid */
    .category-grid { grid-template-columns: 1fr; }

    /* Shop Grid & Pagination */
    .woocommerce ul.products { grid-template-columns: 1fr; }
    .woocommerce nav.woocommerce-pagination ul { flex-wrap: wrap; gap: 5px; }

    /* Cart Page */
    .woocommerce-cart table.cart { display: block; overflow-x: auto; white-space: nowrap; }
    .cart_totals { float: none; width: 100%; max-width: 100%; margin-top: 30px; }
    
    /* Checkout Page */
    .woocommerce-checkout .col2-set { flex-direction: column; gap: 30px; }
    .woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2 { width: 100% !important; }
    #order_review_heading, #order_review { padding: 20px; }

    /* My Account Page */
    .woocommerce-account .woocommerce-MyAccount-navigation { width: 100% !important; float: none !important; margin-bottom: 30px; }
    .woocommerce-account .woocommerce-MyAccount-content { width: 100% !important; float: none !important; padding: 25px; }

    /* Single Product Components */
    .woocommerce div.product .product_title { font-size: clamp(24px, 6vw, 32px); }
    .woocommerce div.product div.images { padding: 20px; }
    .woocommerce div.product .woocommerce-tabs ul.tabs { flex-wrap: wrap; gap: 15px; margin-top: 30px; }
    .woocommerce div.product .woocommerce-tabs ul.tabs li a { font-size: 16px; }

    /* Buttons & Notifications */
    .woocommerce-message, .woocommerce-error, .woocommerce-info { flex-direction: column; text-align: center; gap: 15px; padding: 15px !important; }
    .woocommerce-message a.button, .woocommerce-error a.button, .woocommerce-info a.button { margin-left: 0; width: 100%; box-sizing: border-box; }

    /* 3D Viewer */
    .ddsupply-3d-viewer-header h2 { font-size: 26px; }
    .ddsupply-3d-viewer-container model-viewer { height: 350px; }

    /* Hamburger Menu: Show toggle button, hide and stack nav */
    .menu-toggle { display: flex; }
    .main-navigation {
        display: none;
        width: 100%;
        order: 3;
    }
    .main-navigation.is-open {
        display: block;
    }
    .main-navigation ul {
        flex-direction: column;
        gap: 0;
        background-color: var(--color-white);
        border-top: 1px solid #f0f0f0;
        padding: 10px 0;
    }
    .main-navigation li {
        margin-left: 0;
        border-bottom: 1px solid #f5f5f5;
    }
    .main-navigation li:last-child { border-bottom: none; }
    .main-navigation a {
        display: block;
        padding: 14px 20px;
        font-size: 16px;
    }
    .site-header .container { flex-wrap: wrap; }
}
