/**
 * Uniwork Theme Stylesheet
 * Design: Artisan Italien Moderne (Bottega Contemporanea)
 * 
 * @package Uniwork
 * @version 1.0.0
 */

/* ============================================
   VARIABLES & RESET
   ============================================ */

:root {
    /* Colors */
    --color-terracotta: #D84315;
    --color-terracotta-dark: #BF360C;
    --color-white: #FFFFFF;
    --color-black: #1A1A1A;
    --color-grey-light: #F8F8F8;
    --color-grey: #757575;
    --color-gold: #C19A6B;
    
    /* Typography */
    --font-display: 'Playfair Display', serif;
    --font-body: 'Inter', sans-serif;
    
    /* Spacing */
    --container-max: 1400px;
    --container-wide: 1600px;
    --spacing-sm: 20px;
    --spacing-md: 40px;
    --spacing-lg: 80px;
    --spacing-xl: 120px;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-body);
    background: var(--color-white);
    color: var(--color-black);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    text-decoration: none;
    color: inherit;
    transition: all 0.3s ease;
}

ul {
    list-style: none;
}

/* ============================================
   CONTAINER SYSTEM
   ============================================ */

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

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

/* ============================================
   NAVIGATION
   ============================================ */

.nav {
    position: sticky;
    top: 0;
    width: 100%;
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    z-index: 1000;
    padding: 20px 0;
    transition: all 0.3s ease;
}

.nav.scrolled {
    padding: 15px 0;
    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.05);
}

.nav-container {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 60px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logo {
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: 700;
    color: var(--color-black);
}

.logo a {
    color: var(--color-black);
}

.logo img {
    height: auto;
    width: 200px;
}

.nav-links {
    display: flex;
    align-items: center;
    gap: 30px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.nav-links li {
    position: relative;
}

.nav-links > li > a {
    color: var(--color-black);
    text-decoration: none;
    font-weight: 500;
    font-size: 13px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    transition: color 0.3s;
    padding: 10px 0;
    display: block;
    white-space: nowrap;
}

.nav-links > li > a:hover {
    color: var(--color-terracotta);
}

/* Sous-menus déroulants */
.nav-links .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    background: white;
    min-width: 220px;
    box-shadow: 0 8px 30px rgba(0,0,0,0.12);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-15px);
    transition: all 0.3s ease;
    padding: 15px 0;
    list-style: none;
    z-index: 1000;
    border-top: 3px solid var(--color-terracotta);
    margin: 0;
}

.nav-links li:hover > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.nav-links .sub-menu li {
    padding: 0;
}

.nav-links .sub-menu a {
    padding: 12px 25px;
    font-size: 13px;
    color: var(--color-black);
    text-decoration: none;
    display: block;
    transition: all 0.3s;
    text-transform: none;
    font-weight: 400;
}

.nav-links .sub-menu a:hover {
    background: #F8F8F8;
    color: var(--color-terracotta);
    padding-left: 30px;
}

/* Indicateur de sous-menu */
.nav-links .menu-item-has-children > a::after {
    content: ' ▾';
    font-size: 10px;
    margin-left: 5px;
}

.nav-cta {
    padding: 12px 30px;
    background: var(--color-terracotta);
    color: white;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

.nav-cta:hover {
    background: var(--color-terracotta-dark);
}

.mobile-menu-toggle {
    display: none;
    flex-direction: column;
    gap: 5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 10px;
}

.mobile-menu-toggle span {
    width: 25px;
    height: 2px;
    background: var(--color-black);
    transition: all 0.3s;
}

/* ============================================
   HERO SECTION
   ============================================ */

.hero {
    min-height: 85vh;
    display: flex;
    align-items: center;
    padding: 80px 0 60px;
    background: var(--color-white);
    position: relative;
}

.hero-container {
    max-width: var(--container-wide);
    margin: 0 auto;
    padding: 0 80px;
    display: grid;
    grid-template-columns: 45% 55%;
    gap: 100px;
    align-items: center;
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 20px;
    background: rgba(216, 67, 21, 0.08);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--color-terracotta);
    margin-bottom: 30px;
}

.hero-title {
    font-family: var(--font-display);
    font-size: 88px;
    font-weight: 800;
    line-height: 0.95;
    letter-spacing: -2px;
    margin-bottom: 30px;
}

.hero-title .accent {
    color: var(--color-terracotta);
    font-style: italic;
}

.hero-subtitle {
    font-size: 20px;
    line-height: 1.6;
    color: var(--color-grey);
    margin-bottom: 40px;
    max-width: 500px;
}

.hero-cta {
    display: flex;
    gap: 20px;
}

.btn-primary {
    padding: 20px 50px;
    background: var(--color-terracotta);
    color: white;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    display: inline-block;
}

.btn-primary:hover {
    background: var(--color-terracotta-dark);
}

.btn-secondary {
    padding: 20px 50px;
    background: transparent;
    color: var(--color-black);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    border: 2px solid var(--color-black);
    border-radius: 0; /* Coins carrés, sobre */
    display: inline-block;
    transition: all 0.3s ease;
}

.btn-secondary:hover {
    background: var(--color-black);
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
}

.hero-visual {
    position: relative;
    height: 700px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero-product-img {
    width: 110%;
    height: auto;
    filter: drop-shadow(0 30px 60px rgba(0, 0, 0, 0.15));
}

.hero-badge-year {
    position: absolute;
    bottom: 40px;
    right: -40px;
    background: white;
    padding: 30px 40px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.1);
}

.badge-label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--color-grey);
    margin-bottom: 8px;
}

.badge-value {
    font-family: var(--font-display);
    font-size: 48px;
    font-weight: 800;
    color: var(--color-terracotta);
    line-height: 1;
}

/* ============================================
   SECTION HEADERS
   ============================================ */

.section-header {
    text-align: center;
    margin-bottom: 80px;
}

.section-title {
    font-family: var(--font-display);
    font-size: 56px;
    font-weight: 700;
    margin-bottom: 20px;
}

.section-subtitle {
    font-size: 20px;
    color: var(--color-grey);
    max-width: 600px;
    margin: 0 auto;
}

/* ============================================
   DIFFERENTIATION SECTION
   ============================================ */

.differentiation {
    padding: 120px 0;
    background: var(--color-grey-light);
}

.diff-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 60px;
}

.diff-card {
    background: white;
    padding: 50px;
    text-align: center;
}

.diff-icon {
    width: 80px;
    height: 80px;
    background: var(--color-terracotta);
    color: white;
    font-size: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 30px;
}

.diff-title {
    font-family: var(--font-display);
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 15px;
}

.diff-text {
    color: var(--color-grey);
    line-height: 1.7;
}

/* ============================================
   COLLECTIONS SECTION
   ============================================ */

.collections {
    padding: 120px 0;
}

.collections-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    margin-top: 60px;
}

.collection-card {
    position: relative;
    overflow: hidden;
    cursor: pointer;
}

.collection-img {
    width: 100%;
    height: 400px;
    object-fit: cover;
    transition: transform 0.6s;
}

.collection-card:hover .collection-img {
    transform: scale(1.05);
}

.collection-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 40px;
    background: linear-gradient(to top, rgba(0,0,0,0.8), transparent);
    color: white;
}

.collection-name {
    font-family: var(--font-display);
    font-size: 32px;
    font-weight: 700;
}

.collection-desc {
    font-size: 14px;
    opacity: 0.9;
    margin-top: 5px;
}

.collection-link {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* ============================================
   FOURNISSEURS SECTION
   ============================================ */

.fournisseurs {
    padding: 120px 0;
    background: var(--color-grey-light);
}

.fournisseurs-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 40px;
    margin-top: 60px;
}

.fournisseur-card {
    background: white;
    padding: 40px;
    text-align: center;
    transition: transform 0.3s;
}

.fournisseur-card:hover {
    transform: translateY(-5px);
}

.fournisseur-logo {
    width: 120px;
    height: 120px;
    background: var(--color-grey-light);
    margin: 0 auto 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 48px;
}

.fournisseur-name {
    font-weight: 600;
    margin-bottom: 5px;
}

.fournisseur-specialty {
    font-size: 13px;
    color: var(--color-grey);
}

.fournisseur-location {
    font-size: 12px;
    color: var(--color-terracotta);
    margin-top: 10px;
}

/* ============================================
   STATS SECTION
   ============================================ */

.stats {
    padding: 100px 0;
    background: var(--color-terracotta);
    color: white;
}

.stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 60px;
    text-align: center;
    align-items: start;
}

.stat-number {
    font-family: var(--font-display);
    font-size: 72px;
    font-weight: 800;
    line-height: 1;
    margin-bottom: 10px;
}

.stat-label {
    font-size: 14px;
    letter-spacing: 1px;
    text-transform: uppercase;
    opacity: 0.9;
}

/* ============================================
   CTA DISTRIBUTEUR SECTION
   ============================================ */

.cta-distributeur {
    padding: 120px 0;
    text-align: center;
}

.cta-content {
    max-width: 800px;
    margin: 0 auto;
}

.cta-title {
    font-family: var(--font-display);
    font-size: 56px;
    font-weight: 700;
    margin-bottom: 20px;
}

.cta-text {
    font-size: 20px;
    color: var(--color-grey);
    margin-bottom: 40px;
}

.cta-buttons {
    display: flex;
    gap: 20px;
    justify-content: center;
}

/* ============================================
   FOOTER
   ============================================ */

.footer {
    padding: 80px 0 40px;
    background: var(--color-black);
    color: white;
}

.footer-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 60px;
    margin-bottom: 60px;
}

.footer-title {
    font-family: var(--font-display);
    font-size: 32px;
    margin-bottom: 20px;
}

.footer-desc {
    color: rgba(255, 255, 255, 0.7);
    line-height: 1.7;
}

.footer-heading {
    font-weight: 600;
    margin-bottom: 20px;
    letter-spacing: 1px;
    text-transform: uppercase;
    font-size: 13px;
}

.footer-links li {
    margin-bottom: 12px;
}

.footer-links a {
    color: rgba(255, 255, 255, 0.7);
}

.footer-links a:hover {
    color: white;
}

.footer-bottom {
    padding-top: 40px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    text-align: center;
    color: rgba(255, 255, 255, 0.5);
    font-size: 13px;
}

.footer-bottom a {
    color: rgba(255, 255, 255, 0.5);
}

.footer-bottom a:hover {
    color: white;
}

/* ============================================
   RESPONSIVE
   ============================================ */

@media (max-width: 1200px) {
    .hero-container {
        gap: 60px;
        padding: 0 60px;
    }
    
    .hero-title {
        font-size: 64px;
    }
    
    .collections-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .fournisseurs-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 968px) {
    .container,
    .nav-container {
        padding: 0 40px;
    }
    
    .container-wide,
    .hero-container {
        padding: 0 40px;
    }
    
    .nav-links {
        display: none;
    }
    
    .mobile-menu-toggle {
        display: flex;
    }
    
    .hero-container {
        grid-template-columns: 1fr;
        padding-top: 100px;
    }
    
    .hero-title {
        font-size: 48px;
    }
    
    .hero-visual {
        height: 400px;
    }
    
    .hero-badge-year {
        right: 20px;
        bottom: 20px;
        padding: 20px 30px;
    }
    
    .badge-value {
        font-size: 36px;
    }
    
    .diff-grid,
    .collections-grid,
    .stats-grid {
        grid-template-columns: 1fr;
    }
    
    .section-title {
        font-size: 42px;
    }
    
    .cta-title {
        font-size: 42px;
    }
    
    .cta-buttons {
        flex-direction: column;
    }
    
    .footer-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    .container,
    .container-wide,
    .nav-container {
        padding: 0 20px;
    }
    
    .hero-title {
        font-size: 36px;
    }
    
    .hero-subtitle {
        font-size: 16px;
    }
    
    .hero-cta {
        flex-direction: column;
    }
    
    .btn-primary,
    .btn-secondary {
        text-align: center;
        width: 100%;
    }
    
    .section-title {
        font-size: 32px;
    }
    
    .section-subtitle {
        font-size: 16px;
    }
}

/* ============================================
   PRODUCT PAGE
   ============================================ */

.product-page {
    max-width: 1600px;
    margin: 0 auto;
    padding: 120px 60px 80px;
    display: grid;
    grid-template-columns: 50% 50%;
    gap: 60px;
}

/* GALERIE PHOTOS */
.product-gallery {
    position: sticky;
    top: 120px;
    height: fit-content;
    padding-right: 20px;
}

.main-image-container {
    width: 100%;
    aspect-ratio: 1;
    background: var(--color-grey-light);
    margin-bottom: 20px;
    overflow: hidden;
    cursor: zoom-in;
    position: relative;
}

.main-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s;
}

.main-image-container:hover .main-image {
    transform: scale(1.05);
}

.zoom-indicator {
    position: absolute;
    bottom: 20px;
    right: 20px;
    background: rgba(0, 0, 0, 0.7);
    color: white;
    padding: 8px 15px;
    font-size: 12px;
    border-radius: 4px;
}

.thumbnail-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 15px;
}

.thumbnail {
    aspect-ratio: 1;
    background: var(--color-grey-light);
    cursor: pointer;
    border: 2px solid transparent;
    transition: all 0.3s;
    overflow: hidden;
}

.thumbnail.active {
    border-color: var(--color-terracotta);
}

.thumbnail:hover {
    border-color: var(--color-grey);
}

.thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* INFOS PRODUIT */
.product-info {
    padding-top: 20px;
}

.product-collection {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--color-terracotta);
    margin-bottom: 15px;
    display: inline-block;
    text-decoration: none;
    transition: opacity 0.3s;
}

.product-collection:hover {
    opacity: 0.7;
}

.product-name {
    font-family: var(--font-display);
    font-size: 48px;
    font-weight: 700;
    line-height: 1.1;
    margin-bottom: 15px;
}

.product-ref {
    font-size: 14px;
    color: var(--color-grey);
    margin-bottom: 30px;
}

.product-tagline {
    font-size: 18px;
    line-height: 1.6;
    margin-bottom: 30px;
    color: var(--color-grey);
}

/* Badges Normes */
.product-badges {
    display: flex;
    gap: 10px;
    margin-bottom: 40px;
    flex-wrap: wrap;
}

.badge {
    padding: 8px 16px;
    background: var(--color-grey-light);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.5px;
    border-radius: 4px;
}

.badge.primary {
    background: var(--color-terracotta);
    color: white;
}

.badge-large {
    padding: 12px 24px;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: 1px;
}

/* Normes Hiérarchisées */
.product-norms {
    margin-bottom: 40px;
    padding-bottom: 40px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.norm-base {
    font-size: 11px;
    color: var(--color-grey);
    margin-bottom: 15px;
    font-weight: 600;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

.norm-category {
    margin-bottom: 15px;
}

.norm-additionals {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

/* Secteurs */
.product-sectors {
    margin-bottom: 40px;
    padding-bottom: 40px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.sectors-title {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    margin-bottom: 15px;
}

.sectors-list {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
}

.sector-tag {
    padding: 6px 14px;
    border: 1px solid var(--color-black);
    font-size: 13px;
    border-radius: 20px;
    text-decoration: none;
    color: var(--color-black);
    transition: all 0.3s;
    display: inline-block;
}

.sector-tag:hover {
    background: var(--color-terracotta);
    color: white;
    border-color: var(--color-terracotta);
    transform: translateY(-2px);
}

/* CTAs */
.product-ctas {
    margin-bottom: 50px;
    padding-right: 20px;
}

.btn-full {
    width: 100%;
    max-width: 450px;
    padding: 20px;
    margin-bottom: 15px;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    border: none;
    cursor: pointer;
    transition: all 0.3s;
    text-align: center;
    text-decoration: none;
    display: block;
}

.btn-primary-full {
    background: var(--color-terracotta);
    color: white;
}

.btn-primary-full:hover {
    background: var(--color-terracotta-dark);
}

.btn-secondary-full {
    background: transparent;
    color: var(--color-black);
    border: 2px solid var(--color-black);
}

.btn-secondary-full:hover {
    background: var(--color-black);
    color: white;
}

/* Downloads */
.product-downloads {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 50px;
    padding-right: 20px;
}

.download-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 15px;
    background: var(--color-grey-light);
    text-decoration: none;
    color: var(--color-black);
    font-size: 14px;
    font-weight: 500;
    transition: all 0.3s;
}

.download-link:hover {
    background: var(--color-terracotta);
    color: white;
}

.download-icon {
    font-size: 20px;
}

/* ONGLETS */
.product-tabs {
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    padding-top: 40px;
}

.tabs-nav {
    display: flex;
    gap: 40px;
    margin-bottom: 40px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
}

.tab-btn {
    padding: 15px 0;
    background: none;
    border: none;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: var(--color-grey);
    cursor: pointer;
    border-bottom: 3px solid transparent;
    transition: all 0.3s;
}

.tab-btn.active {
    color: var(--color-black);
    border-bottom-color: var(--color-terracotta);
}

.tab-content {
    display: none;
}

.tab-content.active {
    display: block;
}

.tab-content h3 {
    font-family: var(--font-display);
    font-size: 24px;
    margin-bottom: 20px;
}

.tab-content p {
    color: var(--color-grey);
    line-height: 1.8;
    margin-bottom: 15px;
}

.features-list {
    list-style: none;
    margin-top: 30px;
}

.features-list li {
    padding: 15px 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    display: flex;
    align-items: center;
    gap: 15px;
}

.feature-icon {
    color: var(--color-terracotta);
    font-size: 20px;
}

/* Specs Table */
.specs-table {
    width: 100%;
    margin-top: 30px;
}

.specs-table tr {
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.specs-table td {
    padding: 20px 0;
}

.specs-table td:first-child {
    font-weight: 600;
    width: 40%;
}

.specs-table td:last-child {
    color: var(--color-grey);
}
.product-sizes {
    margin: 25px 0;
    padding: 20px;
    background: #F8F8F8;
    border-radius: 8px;
}

.sizes-label {
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--color-grey);
    margin-bottom: 8px;
}

.sizes-range {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 600;
    color: var(--color-black);
}

/* Entretien List Styling */
.entretien-list {
    list-style: none;
    padding: 0;
    margin: 20px 0;
}

/* Traçabilité Tab */
.tracabilite-intro {
    color: var(--color-grey);
    line-height: 1.7;
    margin-bottom: 35px;
}

.tracabilite-chain {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.tracabilite-step {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    padding: 22px 0;
}

.tracabilite-connector {
    width: 2px;
    height: 20px;
    background: rgba(0,0,0,0.08);
    margin-left: 23px;
}

.tracabilite-icon {
    flex-shrink: 0;
    width: 46px;
    height: 46px;
    background: var(--color-grey-light);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(0,0,0,0.07);
}

.tracabilite-icon svg {
    width: 20px;
    height: 20px;
    color: var(--color-terracotta);
}

.tracabilite-info {
    flex: 1;
    padding-top: 2px;
}

.tracabilite-label {
    font-weight: 600;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--color-black);
    margin-bottom: 4px;
}

.tracabilite-country {
    font-size: 15px;
    font-weight: 500;
    color: var(--color-terracotta);
    margin-bottom: 4px;
}

.flag-emoji {
    margin-right: 4px;
}

.tracabilite-detail {
    font-size: 13px;
    color: var(--color-grey);
    line-height: 1.5;
}


.entretien-list li {
    padding: 12px 0 12px 35px;
    position: relative;
    line-height: 1.6;
    border-bottom: 1px solid #F0F0F0;
}

.entretien-list li:last-child {
    border-bottom: none;
}

.entretien-list li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--color-terracotta);
    font-weight: bold;
    font-size: 18px;
}


/* RESPONSIVE PRODUCT PAGE */
@media (max-width: 1200px) {
    .product-page {
        grid-template-columns: 1fr;
        gap: 60px;
        padding: 100px 40px 60px;
    }
    
    .product-gallery {
        position: static;
        padding-right: 0;
    }
    
    .product-name {
        font-size: 36px;
    }
}

@media (max-width: 768px) {
    .product-page {
        padding: 100px 20px 60px;
    }
    
    .thumbnail-grid {
        grid-template-columns: repeat(4, 1fr);
    }
    
    .product-name {
        font-size: 32px;
    }
    
    .tabs-nav {
        gap: 20px;
        overflow-x: auto;
    }
}

/* ============================================
   PRODUCTS ARCHIVE / COLLECTION PAGE
   ============================================ */

.products-archive-container {
    max-width: 1600px;
    margin: 0 auto;
    padding: 120px 60px 80px;
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 60px;
}

/* SIDEBAR FILTERS */
.products-sidebar {
    position: sticky;
    top: 120px;
    height: fit-content;
}

.sidebar-title {
    font-family: var(--font-display);
    font-size: 24px;
    margin-bottom: 30px;
}

.filter-group {
    margin-bottom: 30px;
    padding-bottom: 30px;
    border-bottom: 1px solid rgba(0,0,0,0.1);
}

.filter-label {
    display: block;
    font-weight: 600;
    margin-bottom: 15px;
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 1px;
}

.filter-search {
    width: 100%;
    padding: 12px;
    border: 1px solid rgba(0,0,0,0.2);
    font-size: 14px;
}

.filter-checkbox {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    cursor: pointer;
    font-size: 14px;
}

.filter-checkbox:hover {
    color: var(--color-terracotta);
}

.filter-input {
    cursor: pointer;
}

.filter-count {
    color: var(--color-grey);
    font-size: 12px;
    margin-left: auto;
}

.btn-reset-filters {
    width: 100%;
    padding: 12px;
    background: transparent;
    border: 2px solid var(--color-black);
    cursor: pointer;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 1px;
}

.btn-reset-filters:hover {
    background: var(--color-black);
    color: white;
}

/* PRODUCTS MAIN */
.products-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 40px;
}

.products-title {
    font-family: var(--font-display);
    font-size: 48px;
    margin-bottom: 10px;
}

.products-description {
    color: var(--color-grey);
    font-size: 18px;
}

.products-sort {
    padding: 12px 20px;
    border: 1px solid rgba(0,0,0,0.2);
    font-size: 14px;
    cursor: pointer;
}

.products-count {
    margin-bottom: 30px;
    color: var(--color-grey);
    font-size: 14px;
}

.products-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    margin-bottom: 60px;
}

.product-card {
    position: relative;
    background: white;
    transition: transform 0.3s;
}

.product-card:hover {
    transform: translateY(-5px);
}

.product-card-link {
    text-decoration: none;
    color: inherit;
}

.product-card-image {
    aspect-ratio: 1;
    background: var(--color-grey-light);
    overflow: hidden;
    margin-bottom: 20px;
}

.product-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s;
}

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

.product-card-collection {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--color-terracotta);
    margin-bottom: 8px;
}

.product-card-title {
    font-family: var(--font-display);
    font-size: 20px;
    margin-bottom: 8px;
}

.product-card-ref {
    font-size: 13px;
    color: var(--color-grey);
    margin-bottom: 12px;
}

.product-card-normes {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.product-card-badge {
    padding: 4px 10px;
    background: var(--color-grey-light);
    font-size: 11px;
    font-weight: 600;
}

.products-empty {
    grid-column: 1 / -1;
    text-align: center;
    padding: 80px 20px;
}

.products-pagination {
    display: flex;
    justify-content: center;
    gap: 10px;
}

.products-pagination a,
.products-pagination span {
    padding: 10px 15px;
    border: 1px solid rgba(0,0,0,0.2);
    text-decoration: none;
    color: var(--color-black);
}

.products-pagination .current {
    background: var(--color-terracotta);
    color: white;
    border-color: var(--color-terracotta);
}

/* ============================================
   DISTRIBUTEURS PAGE
   ============================================ */

.distributeurs-hero {
    padding: 140px 0 60px;
    background: var(--color-grey-light);
    text-align: center;
}

.distributeurs-hero-title {
    font-family: var(--font-display);
    font-size: 56px;
    margin-bottom: 20px;
}

.distributeurs-hero-subtitle {
    font-size: 20px;
    color: var(--color-grey);
}

.distributeurs-search-container {
    padding: 40px 0;
    background: white;
    border-bottom: 1px solid rgba(0,0,0,0.1);
}

.distributeurs-search-bar {
    display: flex;
    gap: 15px;
    max-width: 800px;
    margin: 0 auto;
}

.distributeurs-search-input {
    flex: 1;
    padding: 15px 20px;
    border: 2px solid rgba(0,0,0,0.2);
    font-size: 16px;
}

.distributeurs-geoloc-btn {
    padding: 15px 30px;
    background: var(--color-grey-light);
    border: none;
    cursor: pointer;
    font-weight: 600;
}

.distributeurs-search-btn {
    padding: 15px 40px;
    background: var(--color-terracotta);
    color: white;
    border: none;
    cursor: pointer;
    font-weight: 600;
    text-transform: uppercase;
}

.distributeurs-main {
    display: grid;
    grid-template-columns: 400px 1fr;
    height: 600px;
}

.distributeurs-sidebar {
    background: var(--color-grey-light);
    overflow-y: auto;
    padding: 30px;
}

.distributeurs-count {
    font-weight: 600;
    margin-bottom: 20px;
    font-size: 18px;
}

.distributeur-item {
    background: white;
    padding: 20px;
    margin-bottom: 15px;
    cursor: pointer;
}

.distributeur-item:hover {
    background: var(--color-terracotta);
    color: white;
}

.distributeur-name {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 8px;
}

.distributeur-address,
.distributeur-city {
    font-size: 14px;
    color: var(--color-grey);
    margin-bottom: 5px;
}

.distributeur-phone {
    display: inline-block;
    margin-top: 10px;
    font-size: 14px;
    font-weight: 600;
}

.distributeur-view-btn {
    margin-top: 10px;
    padding: 8px 15px;
    background: var(--color-terracotta);
    color: white;
    border: none;
    cursor: pointer;
    font-size: 13px;
}

.distributeurs-map-container {
    position: relative;
}

.distributeurs-map {
    width: 100%;
    height: 100%;
}

.map-instructions {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0,0,0,0.8);
    color: white;
    padding: 10px 20px;
    border-radius: 4px;
    font-size: 13px;
}

.distributeurs-cta {
    padding: 100px 0;
    background: var(--color-grey-light);
    text-align: center;
}

.distributeurs-cta-title {
    font-family: var(--font-display);
    font-size: 48px;
    margin-bottom: 20px;
}

.distributeurs-cta-text {
    font-size: 20px;
    color: var(--color-grey);
    margin-bottom: 40px;
}

/* ============================================
   DEVENIR DISTRIBUTEUR PAGE
   ============================================ */

.devenir-hero {
    padding: 140px 0 80px;
    background: var(--color-grey-light);
    text-align: center;
}

.devenir-hero-title {
    font-family: var(--font-display);
    font-size: 56px;
    margin-bottom: 20px;
}

.devenir-hero-subtitle {
    font-size: 20px;
    color: var(--color-grey);
    max-width: 700px;
    margin: 0 auto;
}

.devenir-avantages {
    padding: 100px 0;
}

.avantages-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    margin-top: 60px;
}

.avantage-card {
    background: var(--color-grey-light);
    padding: 40px;
    text-align: center;
}

.avantage-icon {
    font-size: 48px;
    margin-bottom: 20px;
}

.avantage-title {
    font-family: var(--font-display);
    font-size: 20px;
    margin-bottom: 15px;
}

.avantage-text {
    color: var(--color-grey);
    line-height: 1.7;
}

.devenir-stats {
    padding: 80px 0;
    background: var(--color-terracotta);
    color: white;
}

.devenir-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 40px;
    text-align: center;
}

.devenir-stat-number {
    font-family: var(--font-display);
    font-size: 64px;
    font-weight: 800;
    margin-bottom: 10px;
}

.devenir-stat-label {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.devenir-form-section {
    padding: 100px 0;
}

.devenir-form-container {
    max-width: 800px;
    margin: 0 auto;
}

.devenir-form-intro {
    text-align: center;
    margin-bottom: 60px;
}

.devenir-form-title {
    font-family: var(--font-display);
    font-size: 42px;
    margin-bottom: 20px;
}

.devenir-faq {
    padding: 100px 0;
    background: var(--color-grey-light);
}

.faq-list {
    max-width: 800px;
    margin: 60px auto 0;
}

.faq-item {
    background: white;
    padding: 30px;
    margin-bottom: 20px;
}

.faq-question {
    font-family: var(--font-display);
    font-size: 20px;
    margin-bottom: 15px;
}

.faq-answer {
    color: var(--color-grey);
    line-height: 1.7;
}

/* ============================================
   CONTACT PAGE
   ============================================ */

.contact-page {
    padding: 120px 0 80px;
}

.contact-grid {
    display: grid;
    grid-template-columns: 40% 60%;
    gap: 80px;
}

.contact-title {
    font-family: var(--font-display);
    font-size: 48px;
    margin-bottom: 15px;
}

.contact-subtitle {
    font-size: 18px;
    color: var(--color-grey);
    margin-bottom: 40px;
}

.contact-details {
    margin-bottom: 40px;
}

.contact-detail-item {
    display: flex;
    gap: 20px;
    margin-bottom: 30px;
}

.contact-detail-icon {
    font-size: 32px;
}

.contact-detail-content h3 {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 8px;
}

.contact-detail-content p {
    color: var(--color-grey);
}

.contact-detail-content a {
    color: var(--color-terracotta);
}

.contact-links {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.contact-link-btn {
    padding: 15px 25px;
    background: var(--color-grey-light);
    text-align: center;
    font-weight: 600;
    transition: all 0.3s;
}

.contact-link-btn:hover {
    background: var(--color-terracotta);
    color: white;
}

/* ============================================
   FORMS (UNIVERSAL)
   ============================================ */

.uniwork-form {
    background: var(--color-grey-light);
    padding: 40px;
}

.form-row {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.form-group {
    margin-bottom: 25px;
}

.form-group label {
    display: block;
    font-weight: 600;
    margin-bottom: 8px;
    font-size: 14px;
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 12px;
    border: 1px solid rgba(0,0,0,0.2);
    font-size: 14px;
    font-family: inherit;
}

.form-checkbox {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
}

.form-checkbox input {
    margin-top: 4px;
}

.form-checkbox span {
    font-size: 13px;
    line-height: 1.5;
}

/* RESPONSIVE NOUVELLES PAGES */
@media (max-width: 1200px) {
    .products-archive-container {
        grid-template-columns: 250px 1fr;
    }
    
    .products-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .distributeurs-main {
        grid-template-columns: 350px 1fr;
    }
}

@media (max-width: 968px) {
    .products-archive-container {
        grid-template-columns: 1fr;
        padding: 100px 40px 60px;
    }
    
    .products-sidebar {
        position: static;
    }
    
    .products-grid {
        grid-template-columns: 1fr;
    }
    
    .distributeurs-main {
        grid-template-columns: 1fr;
        height: auto;
    }
    
    .distributeurs-sidebar {
        height: 400px;
    }
    
    .distributeurs-map-container {
        height: 500px;
    }
    
    .avantages-grid {
        grid-template-columns: 1fr;
    }
    
    .devenir-stats-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .contact-grid {
        grid-template-columns: 1fr;
    }
    
    .form-row {
        grid-template-columns: 1fr;
    }
}


/* ============================================
   LIGHTBOX
============================================ */
.lightbox {
    display: none;
    position: fixed;
    z-index: 9999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.95);
    animation: fadeIn 0.3s;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.lightbox-content {
    margin: auto;
    display: block;
    max-width: 90%;
    max-height: 90vh;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    animation: zoomIn 0.3s;
}

@keyframes zoomIn {
    from { transform: translate(-50%, -50%) scale(0.8); }
    to { transform: translate(-50%, -50%) scale(1); }
}

.lightbox-close {
    position: absolute;
    top: 40px;
    right: 60px;
    color: white;
    font-size: 50px;
    font-weight: bold;
    cursor: pointer;
    z-index: 10000;
    transition: all 0.3s;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.lightbox-close:hover {
    color: var(--color-terracotta);
    transform: rotate(90deg);
}

.main-image-container {
    cursor: zoom-in;
    position: relative;
}

.main-image-container:hover .main-image {
    opacity: 0.9;
}

/* ============================================
   RECHERCHE HEADER
   ============================================ */

.nav-search {
    position: relative;
    flex-shrink: 0;
}

.search-toggle {
    background: none;
    border: none;
    padding: 8px;
    cursor: pointer;
    color: var(--color-black);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: all 0.3s;
}

.search-toggle:hover {
    background: #F8F8F8;
    color: var(--color-terracotta);
}

.search-toggle svg {
    transition: transform 0.3s;
}

.search-toggle:hover svg {
    transform: scale(1.1);
}

.search-popup {
    position: absolute;
    top: calc(100% + 15px);
    right: 0;
    background: white;
    width: 400px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.15);
    border-radius: 12px;
    padding: 25px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-20px);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1001;
}

.search-popup.active {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.search-popup::before {
    content: '';
    position: absolute;
    top: -8px;
    right: 20px;
    width: 16px;
    height: 16px;
    background: white;
    transform: rotate(45deg);
    box-shadow: -2px -2px 5px rgba(0,0,0,0.05);
}

.search-form {
    position: relative;
    margin-bottom: 20px;
}

.search-field {
    width: 100%;
    padding: 14px 50px 14px 20px;
    border: 2px solid #E8E8E8;
    border-radius: 50px;
    font-size: 14px;
    transition: all 0.3s;
    outline: none;
}

.search-field:focus {
    border-color: var(--color-terracotta);
    box-shadow: 0 0 0 3px rgba(216, 67, 21, 0.1);
}

.search-submit {
    position: absolute;
    right: 5px;
    top: 50%;
    transform: translateY(-50%);
    background: var(--color-terracotta);
    border: none;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s;
    color: white;
}

.search-submit:hover {
    background: #c23711;
    transform: translateY(-50%) scale(1.05);
}

.search-suggestions {
    display: grid;
    gap: 20px;
}

.search-category {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.category-label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--color-grey);
    margin-bottom: 5px;
}

.search-category a {
    padding: 8px 12px;
    font-size: 14px;
    color: var(--color-black);
    text-decoration: none;
    border-radius: 6px;
    transition: all 0.3s;
    display: flex;
    align-items: center;
}

.search-category a:hover {
    background: #F8F8F8;
    color: var(--color-terracotta);
    transform: translateX(5px);
}

.search-category a::before {
    content: '→';
    margin-right: 8px;
    opacity: 0;
    transition: opacity 0.3s;
}

.search-category a:hover::before {
    opacity: 1;
}

/* Mobile */
@media (max-width: 768px) {
    .search-popup {
        width: 300px;
        right: -20px;
    }
}
/* ============================================
   HERO - PHOTO SIMPLE SANS ANIMATION
   ============================================ */

.hero-visual {
    position: relative;
    height: 700px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hero-product-img {
    position: relative;
    width: 100%;
    max-width: 500px;
    height: auto;
    object-fit: contain;
    filter: drop-shadow(0 20px 40px rgba(0,0,0,0.15));
    transition: transform 0.6s ease;
}

.hero-product-img:hover {
    transform: scale(1.03);
}

.hero-badge-year {
    position: absolute;
    bottom: 80px;
    right: 50px;
    background: white;
    padding: 20px 30px;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.15);
    text-align: center;
    z-index: 3;
}

.badge-label {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--color-grey);
    margin-bottom: 5px;
}

.badge-value {
    font-family: var(--font-display);
    font-size: 36px;
    font-weight: 700;
    color: var(--color-terracotta);
}

/* ============================================
   SECTIONS CARDS - DESIGN UNIFIÉ
   Fabricant, Secteurs, Partenaires
   ============================================ */

.homepage-cards-section {
    padding: 100px 0;
    background: white;
}

.homepage-cards-section:nth-child(even) {
    background: #F8F8F8;
}

.homepage-cards-section .container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 60px;
}

.section-header {
    text-align: center;
    margin-bottom: 60px;
}

.section-title {
    font-family: var(--font-display);
    font-size: 48px;
    margin-bottom: 15px;
    font-weight: 700;
    color: var(--color-black);
}

.section-subtitle {
    font-size: 18px;
    color: var(--color-grey);
    max-width: 700px;
    margin: 0 auto;
}

.cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: 30px;
    margin-bottom: 50px;
    justify-content: center;
}

/* Card Universelle */
.homepage-card {
    position: relative;
    background: white;
    border-radius: 12px;
    overflow: hidden;
    text-decoration: none;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
    display: flex;
    flex-direction: column;
}

.homepage-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 40px rgba(0,0,0,0.15);
}

/* Photo de la Card */
.card-photo {
    position: relative;
    width: 100%;
    height: 280px;
    overflow: hidden;
    background: #F8F8F8;
}

.card-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease, filter 0.4s ease;
}

.homepage-card:hover .card-photo img {
    transform: scale(1.08);
}

/* Overlay Subtil */
.card-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(to bottom, 
        transparent 0%, 
        transparent 60%, 
        rgba(0,0,0,0.4) 100%);
    transition: background 0.4s ease;
}

.homepage-card:hover .card-overlay {
    background: linear-gradient(to bottom, 
        transparent 0%, 
        transparent 50%, 
        rgba(0,0,0,0.6) 100%);
}

/* Placeholder si pas d'image */
.card-photo-placeholder {
    background: linear-gradient(135deg, #E8E8E8 0%, #D8D8D8 100%);
}

.placeholder-gradient {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, 
        rgba(216, 67, 21, 0.08) 0%, 
        rgba(216, 67, 21, 0.03) 100%);
}

/* Badge (pour secteurs) */
.card-badge {
    position: absolute;
    top: 15px;
    right: 15px;
    background: var(--color-terracotta);
    color: white;
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
    z-index: 2;
    box-shadow: 0 4px 12px rgba(216, 67, 21, 0.3);
    transition: transform 0.3s ease;
}

.homepage-card:hover .card-badge {
    transform: scale(1.05);
}

/* Info de la Card */
.card-info {
    padding: 22px 28px 26px;
    background: white;
    z-index: 2;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    border-top: 3px solid var(--color-terracotta);
}

.card-title {
    font-family: var(--font-display);
    font-size: 22px;
    color: var(--color-black);
    margin-bottom: 0;
    font-weight: 700;
    transition: color 0.3s ease;
    text-align: center;
    letter-spacing: 0.3px;
}

.homepage-card-link:hover .card-title {
    color: var(--color-terracotta);
}

/* Flèche sur les cards secteurs (cliquables) */
.homepage-card-link .card-info::after {
    content: '→';
    font-size: 16px;
    color: var(--color-terracotta);
    margin-top: 10px;
    opacity: 0;
    transform: translateX(-6px);
    transition: all 0.3s ease;
    display: block;
}

.homepage-card-link:hover .card-info::after {
    opacity: 1;
    transform: translateX(0);
}

.card-description {
    font-size: 15px;
    color: var(--color-grey);
    line-height: 1.6;
    margin: 0 0 10px 0;
    flex-grow: 1;
}

.card-location {
    font-size: 14px;
    color: var(--color-terracotta);
    font-weight: 500;
    margin: 10px 0 0 0;
}

/* CTA Section */
.section-cta {
    text-align: center;
    margin-top: 40px;
}

/* Masquer la description sous les titres dans la section secteurs */
.secteurs-section .card-description {
    display: none;
}

/* Responsive */
@media (max-width: 1024px) {
    .hero-product-img {
        max-width: 400px;
    }
    
    .cards-grid {
        grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    }
}

@media (max-width: 768px) {
    .homepage-cards-section {
        padding: 60px 0;
    }
    
    .homepage-cards-section .container {
        padding: 0 20px;
    }
    
    .section-title {
        font-size: 36px;
    }
    
    .cards-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    
    .card-photo {
        height: 240px;
    }
    
    .hero-visual {
        height: 500px;
    }
    
    .hero-product-img {
        max-width: 320px;
    }
    
    .hero-badge-year {
        bottom: 40px;
        right: 20px;
        padding: 15px 20px;
    }
    
    .badge-value {
        font-size: 28px;
    }
}

/* ============================================
   ANIMATIONS SUBTILES AU HOVER UNIQUEMENT
   ============================================ */

/* Effet de brillance subtile au survol */
.card-photo::after {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: linear-gradient(
        45deg,
        transparent 30%,
        rgba(255, 255, 255, 0.1) 50%,
        transparent 70%
    );
    transform: translateX(-100%);
    transition: transform 0.6s ease;
}

.homepage-card:hover .card-photo::after {
    transform: translateX(100%);
}

/* Léger effet de focus sur la photo au hover */
.homepage-card:hover .card-photo img {
    filter: brightness(1.05) contrast(1.02);
}
/* ============================================
   FIX HEADER OVERLAP - Pages Produits
   ============================================ */

.single-product .product-single {
    padding-top: 40px !important;
}

.archive .archive-header,
.tax-secteur .archive-header,
.tax-collection .archive-header {
    padding-top: 40px !important;
}

/* ============================================
   RECHERCHE LIVE - Suggestions Intelligentes
   ============================================ */

.search-results-live {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: white;
    border-radius: 0 0 12px 12px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.15);
    max-height: 400px;
    overflow-y: auto;
    display: none;
    z-index: 10;
}

.search-results-live.active {
    display: block;
}

.search-results-group {
    padding: 15px 0;
    border-bottom: 1px solid #F0F0F0;
}

.search-results-group:last-child {
    border-bottom: none;
}

.search-group-title {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--color-grey);
    padding: 0 20px 10px;
}

.search-result-item {
    padding: 12px 20px;
    cursor: pointer;
    transition: background 0.2s ease;
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    color: var(--color-black);
}

.search-result-item:hover {
    background: #F8F8F8;
}

.search-result-icon {
    width: 40px;
    height: 40px;
    background: #F8F8F8;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
}

.search-result-info {
    flex: 1;
}

.search-result-title {
    font-weight: 600;
    font-size: 14px;
    margin-bottom: 2px;
}

.search-result-meta {
    font-size: 12px;
    color: var(--color-grey);
}

.search-result-ref {
    color: var(--color-terracotta);
    font-weight: 500;
}

.search-no-results {
    padding: 30px 20px;
    text-align: center;
    color: var(--color-grey);
    font-size: 14px;
}

.search-loading {
    padding: 20px;
    text-align: center;
    color: var(--color-grey);
    font-size: 13px;
}

/* Highlight du terme recherché */
.search-highlight {
    background: rgba(216, 67, 21, 0.1);
    color: var(--color-terracotta);
    font-weight: 600;
}
/* ============================================
   FOOTER - Version Finale Uniwork
   ============================================ */

.footer {
    background: #1A1A1A;
    color: rgba(255, 255, 255, 0.8);
    padding: 80px 0 0;
    margin-top: 100px;
}

.footer-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 60px;
}

/* Grid Principal */
.footer-main {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr 1.5fr;
    gap: 60px;
    padding-bottom: 60px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

/* Colonne À Propos */
.footer-about {
    max-width: 320px;
}

.footer-logo {
    margin-bottom: 25px;
}

.footer-logo-img {
    max-width: 180px;
    height: auto;
}

.footer-desc {
    font-size: 14px;
    line-height: 1.8;
    color: rgba(255, 255, 255, 0.7);
    margin: 0;
}

/* Headings */
.footer-heading {
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: white;
    margin-bottom: 20px;
}

/* Links */
.footer-links {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-links li {
    margin-bottom: 12px;
}

.footer-links a {
    color: rgba(255, 255, 255, 0.7);
    font-size: 14px;
    text-decoration: none;
    transition: all 0.3s ease;
    display: inline-block;
}

.footer-links a:hover {
    color: var(--color-terracotta);
    transform: translateX(3px);
}

.footer-link-all {
    color: var(--color-terracotta) !important;
    font-weight: 600;
    margin-top: 8px;
}

.footer-link-all:hover {
    transform: translateX(5px);
}

/* Contact */
.footer-contact-list {
    list-style: none;
    padding: 0;
    margin: 0 0 25px 0;
}

.footer-contact-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 15px;
    font-size: 14px;
}

.footer-icon {
    font-size: 16px;
    flex-shrink: 0;
}

.footer-contact-item a {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    transition: color 0.3s ease;
}

.footer-contact-item a:hover {
    color: var(--color-terracotta);
}

.footer-address {
    line-height: 1.6;
}

/* Réseaux Sociaux */
.footer-social {
    display: flex;
    gap: 12px;
    margin-top: 20px;
}

.footer-social-link {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255, 255, 255, 0.7);
    transition: all 0.3s ease;
}

.footer-social-link:hover {
    background: var(--color-terracotta);
    color: white;
    transform: translateY(-3px);
}

/* Footer Bottom */
.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 30px 0;
    flex-wrap: wrap;
    gap: 20px;
}

.footer-bottom-left {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}

.footer-copyright {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.5);
    margin: 0;
}

.footer-legal {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 13px;
}

.footer-legal a {
    color: rgba(255, 255, 255, 0.5);
    text-decoration: none;
    transition: color 0.3s ease;
}

.footer-legal a:hover {
    color: var(--color-terracotta);
}

.footer-separator {
    color: rgba(255, 255, 255, 0.3);
}

/* Badges Certifications */
.footer-badges {
    display: flex;
    gap: 20px;
    align-items: center;
}

.footer-badge {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 50px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: all 0.3s ease;
}

.footer-badge:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: var(--color-terracotta);
}

.badge-icon {
    font-size: 18px;
}

.badge-text {
    font-size: 12px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.8);
}

/* Responsive */
@media (max-width: 1024px) {
    .footer-main {
        grid-template-columns: 1fr 1fr;
        gap: 40px;
    }
    
    .footer-about {
        grid-column: 1 / -1;
        max-width: 100%;
    }
}

@media (max-width: 768px) {
    .footer {
        padding: 60px 0 0;
        margin-top: 60px;
    }
    
    .footer-container {
        padding: 0 20px;
    }
    
    .footer-main {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    
    .footer-bottom {
        flex-direction: column;
        align-items: flex-start;
        padding: 20px 0;
    }
    
    .footer-bottom-left {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
    
    .footer-badges {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
}
<?php
/**
 * Uniwork Theme Functions
 * 
 * @package Uniwork
 * @since 1.0.0
 */

// Suppress PHP 8.0 deprecation warnings (temporaire - upgrader à PHP 8.1+ recommandé)
error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT);

// Exit if accessed directly
if (!defined('ABSPATH')) {
    exit;
}

/**
 * Theme Setup
 */
function uniwork_theme_setup() {
    // Add theme support
    add_theme_support('title-tag');
    add_theme_support('post-thumbnails');
    add_theme_support('html5', array('search-form', 'comment-form', 'comment-list', 'gallery', 'caption'));
    add_theme_support('custom-logo');
    
    // Register navigation menus
    register_nav_menus(array(
        'primary' => __('Menu Principal', 'uniwork'),
        'footer' => __('Menu Footer', 'uniwork'),
    ));
    
    // Add image sizes
    add_image_size('uniwork-product-thumb', 200, 200, true);
    add_image_size('uniwork-product-large', 1200, 1200, true);
    add_image_size('uniwork-collection', 600, 400, true);
}
add_action('after_setup_theme', 'uniwork_theme_setup');

/**
 * Enqueue Scripts and Styles
 */
function uniwork_scripts() {
    // Google Fonts
    wp_enqueue_style('uniwork-fonts', 'https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700;800&family=Inter:wght@300;400;500;600;700&display=swap', array(), null);
    
    // Main stylesheet
    wp_enqueue_style('uniwork-style', get_template_directory_uri() . '/assets/css/uniwork-style.css', array(), '1.0.0');
    
    // Main JavaScript
    wp_enqueue_script('uniwork-main', get_template_directory_uri() . '/assets/js/main.js', array('jquery'), '1.0.0', true);
    
    // Localize script for AJAX
    wp_localize_script('uniwork-main', 'uniwork_ajax', array(
        'ajax_url' => admin_url('admin-ajax.php'),
        'nonce' => wp_create_nonce('uniwork_nonce')
    ));
}
add_action('wp_enqueue_scripts', 'uniwork_scripts');

/**
 * Register Custom Post Type: Products
 */
function uniwork_register_products() {
    $labels = array(
        'name' => 'Produits',
        'singular_name' => 'Produit',
        'menu_name' => 'Produits Uniwork',
        'add_new' => 'Ajouter',
        'add_new_item' => 'Ajouter un Produit',
        'edit_item' => 'Modifier le Produit',
        'new_item' => 'Nouveau Produit',
        'view_item' => 'Voir le Produit',
        'search_items' => 'Rechercher',
        'not_found' => 'Aucun produit trouvé',
    );
    
    $args = array(
        'labels' => $labels,
        'public' => true,
        'has_archive' => true,
        'menu_icon' => 'dashicons-products',
        'supports' => array('title', 'editor', 'thumbnail', 'excerpt'),
        'rewrite' => array('slug' => 'produits'),
        'show_in_rest' => true,
    );
    
    register_post_type('product', $args);
}
add_action('init', 'uniwork_register_products');

/**
 * Register Taxonomies for Products
 */
function uniwork_register_taxonomies() {
    // Collection
    register_taxonomy('collection', 'product', array(
        'label' => 'Collections',
        'labels' => array(
            'name' => 'Collections',
            'singular_name' => 'Collection',
            'search_items' => 'Rechercher une collection',
            'all_items' => 'Toutes les collections',
            'edit_item' => 'Modifier la collection',
            'add_new_item' => 'Ajouter une collection',
        ),
        'rewrite' => array('slug' => 'collection'),
        'hierarchical' => true,
        'show_in_rest' => true,
        'show_admin_column' => true,
    ));
    
    // Secteur
    register_taxonomy('secteur', 'product', array(
        'label' => 'Secteurs',
        'labels' => array(
            'name' => 'Secteurs d\'Activité',
            'singular_name' => 'Secteur',
            'search_items' => 'Rechercher un secteur',
            'all_items' => 'Tous les secteurs',
            'edit_item' => 'Modifier le secteur',
            'add_new_item' => 'Ajouter un secteur',
        ),
        'rewrite' => array('slug' => 'secteur'),
        'hierarchical' => true,
        'show_in_rest' => true,
        'show_admin_column' => true,
    ));
    
    // Base Normative (année de la norme)
    register_taxonomy('base_normative', 'product', array(
        'label' => 'Base Normative',
        'labels' => array(
            'name' => 'Base Normative',
            'singular_name' => 'Base Normative',
            'search_items' => 'Rechercher',
            'all_items' => 'Toutes',
            'edit_item' => 'Modifier',
            'add_new_item' => 'Ajouter',
        ),
        'rewrite' => array('slug' => 'norme-base'),
        'hierarchical' => false,
        'show_in_rest' => true,
        'show_admin_column' => true,
    ));
    
    // Norme (catégorie S3, S1P, etc.)
    register_taxonomy('norme', 'product', array(
        'label' => 'Catégorie de Sécurité',
        'labels' => array(
            'name' => 'Catégorie de Sécurité',
            'singular_name' => 'Catégorie',
            'search_items' => 'Rechercher une catégorie',
            'all_items' => 'Toutes les catégories',
            'edit_item' => 'Modifier la catégorie',
            'add_new_item' => 'Ajouter une catégorie',
        ),
        'rewrite' => array('slug' => 'categorie-securite'),
        'hierarchical' => false,
        'show_in_rest' => true,
        'show_admin_column' => true,
    ));
    
    // Norme Additionnelle (CI, FO, SR, HRO, etc.)
    register_taxonomy('norme_additionnelle', 'product', array(
        'label' => 'Normes Additionnelles',
        'labels' => array(
            'name' => 'Normes Additionnelles',
            'singular_name' => 'Norme Additionnelle',
            'search_items' => 'Rechercher',
            'all_items' => 'Toutes',
            'edit_item' => 'Modifier',
            'add_new_item' => 'Ajouter',
        ),
        'rewrite' => array('slug' => 'norme-additionnelle'),
        'hierarchical' => false,
        'show_in_rest' => true,
        'show_admin_column' => true,
    ));
}
add_action('init', 'uniwork_register_taxonomies');

/**
 * Custom Post Type: Distributeurs
 */
function uniwork_register_distributeurs() {
    $labels = array(
        'name' => 'Distributeurs',
        'singular_name' => 'Distributeur',
        'menu_name' => 'Distributeurs',
        'add_new' => 'Ajouter',
        'add_new_item' => 'Ajouter un Distributeur',
    );
    
    $args = array(
        'labels' => $labels,
        'public' => true,
        'menu_icon' => 'dashicons-location',
        'supports' => array('title'),
        'show_in_rest' => true,
    );
    
    register_post_type('distributeur', $args);
}
add_action('init', 'uniwork_register_distributeurs');

/**
 * Add ACF Options Page (requires ACF Pro)
 */
if (function_exists('acf_add_options_page')) {
    acf_add_options_page(array(
        'page_title' => 'Options Uniwork',
        'menu_title' => 'Options Thème',
        'menu_slug' => 'uniwork-options',
        'capability' => 'edit_posts',
        'icon_url' => 'dashicons-admin-generic',
    ));
}

/**
 * Breadcrumb Function
 */
function uniwork_breadcrumb() {
    if (!is_front_page()) {
        echo '<div class="breadcrumb">';
        echo '<a href="' . home_url() . '">Accueil</a> / ';
        
        if (is_singular('product')) {
            echo '<a href="' . get_post_type_archive_link('product') . '">Produits</a> / ';
            $terms = get_the_terms(get_the_ID(), 'collection');
            if ($terms && !is_wp_error($terms)) {
                $term = array_shift($terms);
                echo '<a href="' . get_term_link($term) . '">' . $term->name . '</a> / ';
            }
            echo '<span>' . get_the_title() . '</span>';
        } elseif (is_post_type_archive('product')) {
            echo '<span>Produits</span>';
        } elseif (is_tax()) {
            $term = get_queried_object();
            echo '<a href="' . get_post_type_archive_link('product') . '">Produits</a> / ';
            echo '<span>' . $term->name . '</span>';
        } else {
            echo '<span>' . get_the_title() . '</span>';
        }
        
        echo '</div>';
    }
}

/**
 * Custom Excerpt Length
 */
function uniwork_excerpt_length($length) {
    return 25;
}
add_filter('excerpt_length', 'uniwork_excerpt_length');

/**
 * Clean up WordPress head
 */
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'rsd_link');

/**
 * Disable Gutenberg for specific post types (optionnel)
 */
// add_filter('use_block_editor_for_post_type', function($use_block_editor, $post_type) {
//     if ($post_type === 'product') return false;
//     return $use_block_editor;
// }, 10, 2);

/**
 * AJAX: Get Distributeurs for Map
 */
function uniwork_get_distributeurs() {
    $distributeurs = get_posts(array(
        'post_type' => 'distributeur',
        'posts_per_page' => -1,
        'post_status' => 'publish'
    ));
    
    $data = array();
    
    foreach ($distributeurs as $dist) {
        // Récupérer les champs ACF - adaptez les noms selon votre configuration ACF
        $lat = get_field('latitude', $dist->ID);
        $lng = get_field('longitude', $dist->ID);
        
        // Ignorer les distributeurs sans coordonnées
        if (!$lat || !$lng) continue;
        
        $data[] = array(
            'id' => $dist->ID,
            'name' => $dist->post_title,
            'address' => get_field('address', $dist->ID),
            'postal_code' => get_field('postal_code', $dist->ID),
            'city' => get_field('city', $dist->ID),
            'country' => get_field('country', $dist->ID),
            'phone' => get_field('phone', $dist->ID),
            'email' => get_field('email', $dist->ID),
            'lat' => floatval($lat),
            'lng' => floatval($lng),
        );
    }
    
    // Retourner directement le tableau JSON (pas wp_send_json_success)
    wp_send_json($data);
}
add_action('wp_ajax_get_distributeurs', 'uniwork_get_distributeurs');
add_action('wp_ajax_nopriv_get_distributeurs', 'uniwork_get_distributeurs');

/**
 * AJAX: Submit Contact Form
 */
function uniwork_submit_contact_form() {
    check_ajax_referer('contact_form', 'nonce');
    
    $data = array(
        'type' => sanitize_text_field($_POST['contact_type']),
        'nom' => sanitize_text_field($_POST['nom']),
        'prenom' => sanitize_text_field($_POST['prenom']),
        'email' => sanitize_email($_POST['email']),
        'phone' => sanitize_text_field($_POST['phone']),
        'company' => sanitize_text_field($_POST['company']),
        'message' => sanitize_textarea_field($_POST['message']),
    );
    
    // Send email
    $to = get_option('admin_email');
    $subject = 'Nouveau message de contact - ' . $data['type'];
    $message = "Nom: {$data['nom']} {$data['prenom']}\n";
    $message .= "Email: {$data['email']}\n";
    $message .= "Téléphone: {$data['phone']}\n";
    $message .= "Entreprise: {$data['company']}\n\n";
    $message .= "Message:\n{$data['message']}";
    
    wp_mail($to, $subject, $message);
    
    // If HubSpot plugin active, send to HubSpot too
    if (function_exists('hs_create_contact')) {
        // Integration HubSpot
    }
    
    wp_send_json_success();
}
add_action('wp_ajax_submit_contact_form', 'uniwork_submit_contact_form');
add_action('wp_ajax_nopriv_submit_contact_form', 'uniwork_submit_contact_form');

/**
 * AJAX: Submit Distributor Form
 */
function uniwork_submit_distributor_form() {
    check_ajax_referer('distributor_form', 'nonce');
    
    $data = array(
        'company_name' => sanitize_text_field($_POST['company_name']),
        'siret' => sanitize_text_field($_POST['siret']),
        'contact_name' => sanitize_text_field($_POST['contact_name']),
        'function' => sanitize_text_field($_POST['function']),
        'email' => sanitize_email($_POST['email']),
        'phone' => sanitize_text_field($_POST['phone']),
        'address' => sanitize_text_field($_POST['address']),
        'postal_code' => sanitize_text_field($_POST['postal_code']),
        'city' => sanitize_text_field($_POST['city']),
        'activity' => sanitize_text_field($_POST['activity']),
        'turnover' => sanitize_text_field($_POST['turnover']),
        'message' => sanitize_textarea_field($_POST['message']),
    );
    
    // Send email to admin
    $to = get_option('admin_email');
    $subject = 'Nouvelle candidature distributeur - ' . $data['company_name'];
    $message = "Entreprise: {$data['company_name']}\n";
    $message .= "SIRET: {$data['siret']}\n";
    $message .= "Contact: {$data['contact_name']} ({$data['function']})\n";
    $message .= "Email: {$data['email']}\n";
    $message .= "Téléphone: {$data['phone']}\n";
    $message .= "Adresse: {$data['address']}, {$data['postal_code']} {$data['city']}\n";
    $message .= "Activité: {$data['activity']}\n";
    $message .= "CA: {$data['turnover']}\n\n";
    $message .= "Message:\n{$data['message']}";
    
    wp_mail($to, $subject, $message);
    
    wp_send_json_success();
}
add_action('wp_ajax_submit_distributor_form', 'uniwork_submit_distributor_form');
add_action('wp_ajax_nopriv_submit_distributor_form', 'uniwork_submit_distributor_form');

/**
 * Add Google Maps API Key Option
 */
function uniwork_settings_init() {
    register_setting('general', 'uniwork_google_maps_api_key');
    
    add_settings_field(
        'uniwork_google_maps_api_key',
        'Google Maps API Key',
        'uniwork_google_maps_field',
        'general'
    );
}
add_action('admin_init', 'uniwork_settings_init');

function uniwork_google_maps_field() {
    $value = get_option('uniwork_google_maps_api_key', '');
    echo '<input type="text" id="uniwork_google_maps_api_key" name="uniwork_google_maps_api_key" value="' . esc_attr($value) . '" class="regular-text" />';
    echo '<p class="description">Clé API Google Maps pour la carte des distributeurs</p>';
}

/**
 * SHORTCODES UNIWORK
 */

// [uniwork_products limit="4" collection="flowmax"]
function uniwork_products_shortcode($atts) {
    $atts = shortcode_atts(array(
        'limit' => 4,
        'collection' => '',
        'secteur' => '',
        'orderby' => 'date',
    ), $atts);
    
    $args = array(
        'post_type' => 'product',
        'posts_per_page' => intval($atts['limit']),
        'orderby' => $atts['orderby'],
    );
    
    if (!empty($atts['collection'])) {
        $args['tax_query'] = array(
            array(
                'taxonomy' => 'collection',
                'field' => 'slug',
                'terms' => $atts['collection'],
            ),
        );
    }
    
    $query = new WP_Query($args);
    
    ob_start();
    if ($query->have_posts()) :
        echo '<div class="products-grid" style="display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 30px;">';
        while ($query->have_posts()) : $query->the_post();
            ?>
            <div class="product-card-shortcode" style="background: #F8F8F8; padding: 20px;">
                <?php if (has_post_thumbnail()) : ?>
                    <a href="<?php the_permalink(); ?>">
                        <?php the_post_thumbnail('medium', array('style' => 'width: 100%; height: auto; margin-bottom: 15px;')); ?>
                    </a>
                <?php endif; ?>
                <h3 style="font-size: 18px; margin-bottom: 10px;">
                    <a href="<?php the_permalink(); ?>" style="color: #1A1A1A; text-decoration: none;">
                        <?php the_title(); ?>
                    </a>
                </h3>
                <a href="<?php the_permalink(); ?>" style="display: inline-block; padding: 10px 20px; background: #D84315; color: white; text-decoration: none; font-size: 14px; margin-top: 10px;">
                    Voir le produit
                </a>
            </div>
            <?php
        endwhile;
        echo '</div>';
    endif;
    wp_reset_postdata();
    
    return ob_get_clean();
}
add_shortcode('uniwork_products', 'uniwork_products_shortcode');

// [uniwork_cta_distributeur]
function uniwork_cta_distributeur_shortcode() {
    ob_start();
    ?>
    <div style="background: #F8F8F8; padding: 60px 40px; text-align: center; margin: 40px 0;">
        <h2 style="font-family: var(--font-display); font-size: 36px; margin-bottom: 15px;">
            Trouvez un Distributeur Près de Chez Vous
        </h2>
        <p style="font-size: 18px; color: #757575; margin-bottom: 30px;">
            150+ distributeurs en France pour vous accompagner
        </p>
        <a href="<?php echo home_url('/distributeurs'); ?>" class="btn-primary" style="display: inline-block; padding: 20px 40px; background: #D84315; color: white; text-decoration: none; font-weight: 600;">
            Voir la Carte
        </a>
    </div>
    <?php
    return ob_get_clean();
}
add_shortcode('uniwork_cta_distributeur', 'uniwork_cta_distributeur_shortcode');

// [uniwork_collections]
function uniwork_collections_shortcode() {
    $collections = get_terms(array('taxonomy' => 'collection', 'hide_empty' => false));
    
    ob_start();
    if ($collections && !is_wp_error($collections)) :
        echo '<div style="display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 20px; margin: 40px 0;">';
        foreach ($collections as $collection) :
            ?>
            <a href="<?php echo get_term_link($collection); ?>" style="background: #F8F8F8; padding: 30px 20px; text-align: center; text-decoration: none; color: #1A1A1A; transition: all 0.3s;">
                <h3 style="font-size: 20px; margin-bottom: 5px;"><?php echo esc_html($collection->name); ?></h3>
                <span style="color: #757575; font-size: 14px;"><?php echo $collection->count; ?> produits</span>
            </a>
            <?php
        endforeach;
        echo '</div>';
    endif;
    
    return ob_get_clean();
}
add_shortcode('uniwork_collections', 'uniwork_collections_shortcode');

// [uniwork_download_catalog title="Catalogue 2026" url="..."]
function uniwork_download_catalog_shortcode($atts) {
    $atts = shortcode_atts(array(
        'title' => 'Télécharger le Catalogue',
        'url' => '',
    ), $atts);
    
    ob_start();
    ?>
    <div style="background: #D84315; color: white; padding: 40px; text-align: center; margin: 40px 0;">
        <h3 style="font-size: 28px; margin-bottom: 15px;"><?php echo esc_html($atts['title']); ?></h3>
        <a href="<?php echo esc_url($atts['url']); ?>" download style="display: inline-block; padding: 15px 40px; background: white; color: #D84315; text-decoration: none; font-weight: 600; margin-top: 10px;">
            📄 Télécharger PDF
        </a>
    </div>
    <?php
    return ob_get_clean();
}
add_shortcode('uniwork_download_catalog', 'uniwork_download_catalog_shortcode');

/**
 * Widget: Contact Commercial
 */
class Uniwork_Contact_Widget extends WP_Widget {
    function __construct() {
        parent::__construct('uniwork_contact', 'Uniwork - Contact Commercial', array(
            'description' => 'Affiche les infos de contact commercial'
        ));
    }
    
    public function widget($args, $instance) {
        echo $args['before_widget'];
        ?>
        <div style="background: #F8F8F8; padding: 30px;">
            <h3 style="font-size: 20px; margin-bottom: 15px;">Une Question ?</h3>
            <p style="margin-bottom: 15px;">Contactez notre équipe commerciale</p>
            <p><strong>📞</strong> +33 1 23 45 67 89</p>
            <p><strong>✉️</strong> commercial@uniwork.fr</p>
            <a href="<?php echo home_url('/contact'); ?>" style="display: block; margin-top: 20px; padding: 12px; background: #D84315; color: white; text-align: center; text-decoration: none;">
                Formulaire de Contact
            </a>
        </div>
        <?php
        echo $args['after_widget'];
    }
}

function uniwork_register_widgets() {
    register_widget('Uniwork_Contact_Widget');
}
add_action('widgets_init', 'uniwork_register_widgets');
/* ============================================
   RESTRICTION DE LA RECHERCHE
   ============================================ */

// Restreindre la recherche native WordPress aux produits et secteurs.
// Protège aussi contre la manipulation directe de l'URL.
add_action('pre_get_posts', function($query) {
    if ($query->is_search() && !is_admin() && $query->is_main_query()) {
        $allowed  = array('product', 'secteur');
        $requested = (array) $query->get('post_type');
        // Ne garder que les types autorisés ; si aucun, tout autoriser (fallback propre)
        $filtered = array_filter($requested, function($t) use ($allowed) {
            return in_array($t, $allowed);
        });
        $query->set('post_type', !empty($filtered) ? array_values($filtered) : $allowed);
    }
});

/* ============================================
   RECHERCHE LIVE AJAX
   ============================================ */

// Enqueue le script de recherche live
function uniwork_enqueue_live_search() {
    wp_enqueue_script(
        'uniwork-live-search',
        get_template_directory_uri() . '/assets/js/live-search.js',
        array('jquery'),
        '1.0.0',
        true
    );
    
    // Passer les variables Ajax à JavaScript
    wp_localize_script('uniwork-live-search', 'uniwork_ajax', array(
        'ajax_url' => admin_url('admin-ajax.php'),
        'nonce' => wp_create_nonce('uniwork_search_nonce')
    ));
}
add_action('wp_enqueue_scripts', 'uniwork_enqueue_live_search');

// Handler AJAX pour la recherche live
function uniwork_live_search_handler() {
    // Vérification nonce
    check_ajax_referer('uniwork_search_nonce', 'nonce');
    
    $query = sanitize_text_field($_POST['query']);
    
    if (empty($query) || strlen($query) < 2) {
        wp_send_json_error('Query too short');
    }
    
    $results = array(
        'products' => array(),
        'secteurs' => array(),
        'collections' => array()
    );
    
    // 1. RECHERCHE PRODUITS (nom + référence)
    $product_args = array(
        'post_type' => 'product',
        'posts_per_page' => 5,
        'post_status' => 'publish',
        's' => $query,
    );
    
    $product_query = new WP_Query($product_args);
    
    if ($product_query->have_posts()) {
        while ($product_query->have_posts()) {
            $product_query->the_post();
            $product_id = get_the_ID();
            
            // Récupérer la référence produit
            $ref = get_field('product_reference', $product_id);
            
            // Récupérer la collection
            $collections = get_the_terms($product_id, 'collection');
            $collection_name = $collections && !is_wp_error($collections) ? $collections[0]->name : '';
            
            $results['products'][] = array(
                'title' => get_the_title(),
                'url' => get_permalink(),
                'ref' => $ref,
                'collection' => $collection_name
            );
        }
        wp_reset_postdata();
    }
    
    // Recherche aussi par référence dans les meta
    $meta_query_args = array(
        'post_type' => 'product',
        'posts_per_page' => 3,
        'post_status' => 'publish',
        'meta_query' => array(
            array(
                'key' => 'product_reference',
                'value' => $query,
                'compare' => 'LIKE'
            )
        )
    );
    
    $meta_query = new WP_Query($meta_query_args);
    
    if ($meta_query->have_posts()) {
        while ($meta_query->have_posts()) {
            $meta_query->the_post();
            $product_id = get_the_ID();
            
            // Vérifier si pas déjà dans les résultats
            $already_exists = false;
            foreach ($results['products'] as $existing) {
                if ($existing['url'] === get_permalink()) {
                    $already_exists = true;
                    break;
                }
            }
            
            if (!$already_exists) {
                $ref = get_field('product_reference', $product_id);
                $collections = get_the_terms($product_id, 'collection');
                $collection_name = $collections && !is_wp_error($collections) ? $collections[0]->name : '';
                
                $results['products'][] = array(
                    'title' => get_the_title(),
                    'url' => get_permalink(),
                    'ref' => $ref,
                    'collection' => $collection_name
                );
            }
        }
        wp_reset_postdata();
    }
    
    // Limiter à 5 produits max
    $results['products'] = array_slice($results['products'], 0, 5);
    
    // 2. RECHERCHE SECTEURS
    $secteurs = get_terms(array(
        'taxonomy' => 'secteur',
        'hide_empty' => false,
        'name__like' => $query,
        'number' => 3
    ));
    
    if ($secteurs && !is_wp_error($secteurs)) {
        $secteur_icons = array(
            'logistique' => '📦',
            'industrie' => '🏭',
            'maintenance' => '🔧',
            'gros-oeuvre' => '🏗️',
            'second-oeuvre' => '🔨',
            'btp' => '👷',
            'agro-alimentaire' => '🥗',
            'transport' => '🚚',
        );
        
        foreach ($secteurs as $secteur) {
            $results['secteurs'][] = array(
                'name' => $secteur->name,
                'url' => get_term_link($secteur),
                'count' => $secteur->count,
                'icon' => isset($secteur_icons[$secteur->slug]) ? $secteur_icons[$secteur->slug] : '📦'
            );
        }
    }
    
    // 3. RECHERCHE COLLECTIONS
    $collections = get_terms(array(
        'taxonomy' => 'collection',
        'hide_empty' => false,
        'name__like' => $query,
        'number' => 3
    ));
    
    if ($collections && !is_wp_error($collections)) {
        foreach ($collections as $collection) {
            $results['collections'][] = array(
                'name' => $collection->name,
                'url' => get_term_link($collection),
                'count' => $collection->count
            );
        }
    }
    
    // Vérifier si on a des résultats
    $has_results = !empty($results['products']) || 
                   !empty($results['secteurs']) || 
                   !empty($results['collections']);
    
    if ($has_results) {
        wp_send_json_success($results);
    } else {
        wp_send_json_error('No results found');
    }
}

// Pour les utilisateurs connectés et non connectés
add_action('wp_ajax_uniwork_live_search', 'uniwork_live_search_handler');
add_action('wp_ajax_nopriv_uniwork_live_search', 'uniwork_live_search_handler');