/*
Theme Name: Nova Services
Theme URI: https://nova-services-34.fr
Author: Nova Services
Author URI: https://nova-services-34.fr
Description: Thème WordPress sur mesure pour Nova Services, entreprise de débarras, pose de bennes, enlèvement de déchets, récupération de métaux et nettoyage à Montpellier et dans tout l'Hérault (34).
Version: 1.0
Requires at least: 5.8
Requires PHP: 7.4
License: Usage privé - Nova Services
Text Domain: nova-services
*/

/* =========================================
   VARIABLES
========================================= */
:root{
    --nova-black:#0c0c0c;
    --nova-black-soft:#141414;
    --nova-gold:#d6ab4e;
    --nova-gold-light:#f0cd82;
    --nova-silver:#d9d9d9;
    --nova-silver-dark:#a7a7a7;
    --nova-white:#ffffff;
    --nova-grey-bg:#f6f5f2;
    --nova-text:#232323;
    --radius:10px;
    --shadow:0 10px 30px rgba(0,0,0,.12);
}

/* =========================================
   RESET / BASE
========================================= */
*{box-sizing:border-box;}
body{
    margin:0;
    font-family:'Montserrat',Arial,Helvetica,sans-serif;
    color:var(--nova-text);
    background:var(--nova-white);
    line-height:1.65;
}
img{max-width:100%;height:auto;display:block;}
a{text-decoration:none;color:inherit;transition:.25s ease;}
ul{margin:0;padding:0;list-style:none;}
h1,h2,h3,h4{
    font-family:'Montserrat',Arial,Helvetica,sans-serif;
    font-weight:800;
    line-height:1.2;
    margin:0 0 18px;
    color:var(--nova-black);
    text-transform:uppercase;
    letter-spacing:.5px;
}
h2{font-size:2.1rem;}
h3{font-size:1.35rem;}
p{margin:0 0 16px;}
.container{
    width:100%;
    max-width:1180px;
    margin:0 auto;
    padding:0 24px;
}
.section{padding:70px 0;}
.section-alt{background:var(--nova-grey-bg);}
.center{text-align:center;}
.gold-text{color:var(--nova-gold);}
.eyebrow{
    display:inline-block;
    color:var(--nova-gold);
    font-weight:700;
    letter-spacing:2px;
    text-transform:uppercase;
    font-size:.8rem;
    margin-bottom:10px;
}
.section-head{max-width:720px;margin:0 auto 46px;text-align:center;}
.section-head p{color:#555;}

/* =========================================
   BOUTONS
========================================= */
.btn{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:15px 32px;
    border-radius:6px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:1px;
    font-size:.85rem;
    cursor:pointer;
    border:2px solid transparent;
}
.btn-gold{
    background:linear-gradient(135deg,var(--nova-gold-light),var(--nova-gold));
    color:var(--nova-black);
}
.btn-gold:hover{background:var(--nova-black);color:var(--nova-gold);border-color:var(--nova-gold);}
.btn-outline{
    background:transparent;
    color:var(--nova-white);
    border-color:var(--nova-gold);
}
.btn-outline:hover{background:var(--nova-gold);color:var(--nova-black);}
.btn-dark{
    background:var(--nova-black);
    color:var(--nova-gold);
}
.btn-dark:hover{background:var(--nova-gold);color:var(--nova-black);}

/* =========================================
   TOPBAR
========================================= */
.topbar{
    background:var(--nova-black);
    color:var(--nova-silver);
    font-size:.82rem;
    border-bottom:1px solid #232323;
}
.topbar .container{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding-top:8px;
    padding-bottom:8px;
    flex-wrap:wrap;
    gap:6px;
}
.topbar a{color:var(--nova-gold);font-weight:700;}
.topbar .topbar-zone{color:var(--nova-silver-dark);}

/* =========================================
   HEADER
========================================= */
.site-header{
    background:var(--nova-black);
    position:sticky;
    top:0;
    z-index:999;
    border-bottom:2px solid var(--nova-gold);
}
.site-header .container{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding-top:10px;
    padding-bottom:10px;
}
.site-logo{display:flex;align-items:center;gap:12px;}
.site-logo img{height:68px;width:auto;border-radius:6px;}
.site-logo .fallback-text{
    color:var(--nova-white);
    font-weight:800;
    font-size:1.4rem;
    text-transform:uppercase;
}
.site-logo .fallback-text span{color:var(--nova-gold);}

.main-nav ul{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.main-nav a{
    display:block;
    padding:12px 16px;
    color:var(--nova-silver);
    font-weight:700;
    text-transform:uppercase;
    font-size:.82rem;
    letter-spacing:.5px;
    border-radius:4px;
}
.main-nav a:hover,
.main-nav .current-menu-item > a{
    color:var(--nova-black);
    background:var(--nova-gold);
}
.header-call{
    display:flex;
    align-items:center;
    gap:10px;
    color:var(--nova-white);
}
.header-call a{
    color:var(--nova-gold);
    font-weight:800;
    font-size:1.1rem;
}
.menu-toggle{
    display:none;
    background:none;
    border:2px solid var(--nova-gold);
    color:var(--nova-gold);
    font-size:1.3rem;
    padding:8px 14px;
    border-radius:6px;
    cursor:pointer;
}

/* =========================================
   HERO
========================================= */
.hero{
    background:
        linear-gradient(180deg,rgba(12,12,12,.88),rgba(12,12,12,.94)),
        radial-gradient(circle at 20% 20%,rgba(214,171,78,.18),transparent 45%);
    color:var(--nova-white);
    padding:100px 0 90px;
    text-align:center;
    position:relative;
    overflow:hidden;
}
.hero:before{
    content:"";
    position:absolute;
    inset:0;
    background:repeating-linear-gradient(135deg,rgba(214,171,78,.04) 0 2px,transparent 2px 40px);
    pointer-events:none;
}
.hero h1{
    color:var(--nova-white);
    font-size:2.9rem;
    max-width:900px;
    margin:0 auto 18px;
}
.hero h1 span{color:var(--nova-gold);}
.hero p.lead{
    max-width:680px;
    margin:0 auto 30px;
    color:var(--nova-silver);
    font-size:1.1rem;
}
.hero-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}
.hero-badges{
    display:flex;
    justify-content:center;
    gap:34px;
    margin-top:50px;
    flex-wrap:wrap;
    color:var(--nova-silver);
    font-weight:700;
    text-transform:uppercase;
    font-size:.78rem;
    letter-spacing:1px;
}
.hero-badges span{color:var(--nova-gold);margin-right:6px;}

.page-hero{
    background:linear-gradient(180deg,rgba(12,12,12,.9),rgba(12,12,12,.96));
    color:var(--nova-white);
    padding:70px 0;
    text-align:center;
}
.page-hero h1{color:var(--nova-white);font-size:2.3rem;margin-bottom:10px;}
.page-hero p{color:var(--nova-silver);max-width:680px;margin:0 auto;}
.breadcrumb{color:var(--nova-gold);font-size:.8rem;text-transform:uppercase;letter-spacing:1px;margin-bottom:14px;}
.breadcrumb a{color:var(--nova-silver);}

/* =========================================
   SERVICES GRID
========================================= */
.services-grid{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:22px;
}
.service-card{
    background:var(--nova-white);
    border:1px solid #ececec;
    border-radius:var(--radius);
    padding:32px 20px;
    text-align:center;
    box-shadow:var(--shadow);
    transition:.25s ease;
}
.service-card:hover{transform:translateY(-6px);border-color:var(--nova-gold);}
.service-icon{
    width:64px;height:64px;
    margin:0 auto 18px;
    display:flex;align-items:center;justify-content:center;
    background:linear-gradient(135deg,var(--nova-gold-light),var(--nova-gold));
    border-radius:50%;
    font-size:1.7rem;
    color:var(--nova-black);
}
.service-card h3{font-size:1.02rem;margin-bottom:8px;}
.service-card p{font-size:.88rem;color:#666;margin-bottom:14px;}
.service-card a{
    font-weight:800;
    color:var(--nova-gold);
    font-size:.78rem;
    text-transform:uppercase;
    letter-spacing:.5px;
}

/* =========================================
   ABOUT / WHY US
========================================= */
.about-flex{display:flex;gap:50px;align-items:center;flex-wrap:wrap;}
.about-flex .about-text{flex:1 1 460px;}
.about-flex .about-visual{
    flex:1 1 380px;
    background:var(--nova-black);
    border-radius:var(--radius);
    padding:40px;
    color:var(--nova-white);
    box-shadow:var(--shadow);
}
.about-visual ul li{
    display:flex;
    gap:14px;
    align-items:flex-start;
    margin-bottom:20px;
    font-weight:600;
}
.about-visual ul li:last-child{margin-bottom:0;}
.about-visual .num{
    color:var(--nova-black);
    background:var(--nova-gold);
    min-width:36px;height:36px;
    border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    font-weight:800;
}
.checklist li{
    position:relative;
    padding-left:30px;
    margin-bottom:12px;
    font-weight:600;
}
.checklist li:before{
    content:"✓";
    position:absolute;left:0;top:0;
    color:var(--nova-gold);
    font-weight:900;
    font-size:1.1rem;
}

/* =========================================
   ZONES / VILLES
========================================= */
.zones-grid{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:12px 20px;
}
.zones-grid a{
    display:block;
    padding:10px 6px;
    text-align:center;
    background:var(--nova-white);
    border:1px solid #eee;
    border-radius:6px;
    font-weight:700;
    font-size:.85rem;
    color:var(--nova-text);
}
.zones-grid a:hover{background:var(--nova-black);color:var(--nova-gold);border-color:var(--nova-black);}

/* =========================================
   PROCESS STEPS
========================================= */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;}
.step{text-align:center;position:relative;}
.step .step-num{
    width:54px;height:54px;
    border-radius:50%;
    background:var(--nova-black);
    color:var(--nova-gold);
    display:flex;align-items:center;justify-content:center;
    margin:0 auto 16px;
    font-weight:800;
    font-size:1.2rem;
    border:2px solid var(--nova-gold);
}
.step h3{font-size:1rem;}
.step p{font-size:.86rem;color:#666;}

/* =========================================
   CTA BAND
========================================= */
.cta-band{
    background:linear-gradient(135deg,var(--nova-gold-light),var(--nova-gold));
    color:var(--nova-black);
    padding:50px 0;
    text-align:center;
}
.cta-band h2{color:var(--nova-black);margin-bottom:10px;}
.cta-band .btn-dark{margin-top:10px;}

/* =========================================
   TESTIMONIALS
========================================= */
.testimonials{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.testimonial{
    background:var(--nova-white);
    border:1px solid #ececec;
    border-radius:var(--radius);
    padding:28px;
    box-shadow:var(--shadow);
}
.testimonial .stars{color:var(--nova-gold);margin-bottom:12px;letter-spacing:2px;}
.testimonial .author{font-weight:800;margin-top:14px;text-transform:uppercase;font-size:.8rem;color:var(--nova-gold);}

/* =========================================
   CONTACT
========================================= */
.contact-wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;}
.contact-info-card{
    background:var(--nova-black);
    color:var(--nova-white);
    border-radius:var(--radius);
    padding:40px;
}
.contact-info-card h3{color:var(--nova-gold);}
.contact-info-card .row{
    display:flex;
    gap:14px;
    margin-bottom:22px;
    align-items:flex-start;
}
.contact-info-card .icon{color:var(--nova-gold);font-size:1.2rem;}
.contact-form{
    background:var(--nova-white);
    border:1px solid #eee;
    border-radius:var(--radius);
    padding:36px;
    box-shadow:var(--shadow);
}
.contact-form label{
    display:block;
    font-weight:700;
    font-size:.82rem;
    text-transform:uppercase;
    margin-bottom:6px;
    color:#555;
}
.contact-form input,
.contact-form select,
.contact-form textarea{
    width:100%;
    padding:13px 14px;
    border:1px solid #ddd;
    border-radius:6px;
    margin-bottom:18px;
    font-family:inherit;
    font-size:.95rem;
}
.contact-form textarea{min-height:130px;resize:vertical;}
.contact-form button{width:100%;justify-content:center;}
.map-embed{border-radius:var(--radius);overflow:hidden;margin-top:28px;box-shadow:var(--shadow);}
.map-embed iframe{width:100%;height:320px;border:0;display:block;}

/* =========================================
   CITY / SEO PAGE
========================================= */
.city-content{max-width:900px;margin:0 auto;}
.city-content h2{margin-top:36px;}
.city-services-list{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:14px;
    margin:24px 0 30px;
}
.city-services-list li{
    background:var(--nova-grey-bg);
    padding:14px 16px;
    border-left:4px solid var(--nova-gold);
    border-radius:4px;
    font-weight:700;
    font-size:.92rem;
}
.city-cta{
    background:var(--nova-black);
    color:var(--nova-white);
    border-radius:var(--radius);
    padding:34px;
    text-align:center;
    margin-top:40px;
}
.city-cta h3{color:var(--nova-gold);}

/* =========================================
   FOOTER
========================================= */
.site-footer{background:var(--nova-black);color:var(--nova-silver);padding-top:60px;}
.footer-top{
    display:grid;
    grid-template-columns:1.3fr 1fr 1fr 1.4fr;
    gap:40px;
    padding-bottom:40px;
    border-bottom:1px solid #262626;
}
.footer-col h4{
    color:var(--nova-gold);
    font-size:.95rem;
    margin-bottom:18px;
    text-transform:uppercase;
    letter-spacing:1px;
}
.footer-col ul li{margin-bottom:10px;font-size:.88rem;}
.footer-col ul li a:hover{color:var(--nova-gold);}
.footer-logo img{height:56px;margin-bottom:16px;}
.footer-col p{font-size:.88rem;color:var(--nova-silver-dark);}
.footer-zones{padding:40px 0;border-bottom:1px solid #262626;}
.footer-zones h4{
    color:var(--nova-gold);
    font-size:.95rem;
    margin-bottom:20px;
    text-transform:uppercase;
    letter-spacing:1px;
    text-align:center;
}
.footer-zones-grid{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:8px 18px;
}
.footer-zones-grid a{
    font-size:.8rem;
    color:var(--nova-silver-dark);
    display:block;
    padding:4px 0;
}
.footer-zones-grid a:hover{color:var(--nova-gold);}
.footer-bottom{
    padding:22px 0;
    text-align:center;
    font-size:.8rem;
    color:var(--nova-silver-dark);
}
.footer-bottom a{color:var(--nova-gold);}
.footer-phone-cta{
    background:var(--nova-gold);
    color:var(--nova-black);
    text-align:center;
    padding:22px;
    font-weight:800;
    font-size:1.2rem;
    letter-spacing:1px;
}
.footer-phone-cta a{color:var(--nova-black);}

/* =========================================
   GALERIE
========================================= */
.gallery-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px;
}
.gallery-item{
    border-radius:10px;
    overflow:hidden;
    aspect-ratio:4/3;
    border:1px solid #232323;
}
.gallery-item img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .35s ease;
}
.gallery-item:hover img{
    transform:scale(1.06);
}

/* =========================================
   RESPONSIVE
========================================= */
@media(max-width:1024px){
    .services-grid{grid-template-columns:repeat(3,1fr);}
    .zones-grid{grid-template-columns:repeat(3,1fr);}
    .footer-zones-grid{grid-template-columns:repeat(3,1fr);}
    .footer-top{grid-template-columns:1fr 1fr;}
    .steps{grid-template-columns:repeat(2,1fr);}
    .testimonials{grid-template-columns:1fr;}
    .contact-wrap{grid-template-columns:1fr;}
    .gallery-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:782px){
    .main-nav{
        display:none;
        position:absolute;
        top:100%;left:0;right:0;
        background:var(--nova-black);
        border-top:1px solid #232323;
    }
    .main-nav.is-open{display:block;}
    .main-nav ul{flex-direction:column;align-items:stretch;padding:10px 20px;}
    .main-nav a{padding:14px 6px;border-bottom:1px solid #1f1f1f;}
    .menu-toggle{display:block;}
    .header-call{display:none;}
    .hero h1{font-size:2.1rem;}
    .services-grid{grid-template-columns:repeat(2,1fr);}
    .zones-grid{grid-template-columns:repeat(2,1fr);}
    .footer-zones-grid{grid-template-columns:repeat(2,1fr);}
    .footer-top{grid-template-columns:1fr;}
    .about-flex{flex-direction:column;}
    .city-services-list{grid-template-columns:1fr;}
    h2{font-size:1.6rem;}
    .gallery-grid{grid-template-columns:1fr 1fr;gap:10px;}

    /* Logo centré et agrandi en mobile */
    .site-header .container{
        position:relative;
        justify-content:center;
    }
    .site-logo{
        margin:0 auto;
    }
    .site-logo img{
        height:110px;
    }
    .menu-toggle{
        position:absolute;
        right:20px;
        top:50%;
        transform:translateY(-50%);
    }
}

@media(max-width:480px){
    .site-logo img{
        height:90px;
    }
}
