/* ============================================
   VARIABLES & RESET
   ============================================ */
:root{--navy:#193159;--sky:#6EA7D1;--white:#FFFFFF;--light-bg:#F8FAFC;--text:#2D3436;--radius:12px;--transition:all 0.5s cubic-bezier(0.165,0.84,0.44,1);}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Montserrat',sans-serif;color:var(--text);line-height:1.7;}
h1,h2,h3{font-family:'Marcellus',serif;color:var(--navy);text-transform:uppercase;letter-spacing:2px;}
.container{max-width:1200px;margin:0 auto;padding:0 40px;}
.section-padding{padding:90px 0;}

/* ============================================
   BOUTONS
   ============================================ */
.btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 30px;border-radius:var(--radius);font-weight:700;text-transform:uppercase;text-decoration:none;transition:var(--transition);letter-spacing:1px;font-size:0.78rem;border:none;cursor:pointer;text-align:center;line-height:1;}
.btn-sky{background:var(--sky);color:var(--white);box-shadow:0 8px 22px rgba(110,167,209,0.3);border:2px solid transparent;}
.btn-sky:hover{background:var(--navy);transform:translateY(-3px);}
.btn-white{background:var(--white);color:var(--navy);font-weight:700;}
.btn-white:hover{background:var(--sky);color:var(--white);transform:translateY(-3px);}
.btn-ghost{border:2px solid rgba(255,255,255,0.7);color:var(--white);background:transparent;}
.btn-ghost:hover{background:var(--white);color:var(--navy);transform:translateY(-3px);}

/* ============================================
   PAGES SERVICE - HERO
   ============================================ */
.hero-service{min-height:65vh;background:linear-gradient(rgba(25,49,89,0.72),rgba(25,49,89,0.5)),var(--hero-bg) center/cover no-repeat;display:flex;align-items:center;color:var(--white);text-align:center;position:relative;padding-top:108px;padding-bottom:50px;}
.hero-service .eyebrow{text-transform:uppercase;letter-spacing:4px;color:var(--sky);margin-bottom:16px;font-weight:700;font-size:0.8rem;display:block;}
.hero-service h1{color:var(--white);font-size:3rem;margin-bottom:20px;line-height:1.15;}
.hero-service .hero-sub{font-size:1.05rem;opacity:0.85;max-width:640px;margin:0 auto 35px;}
.hero-ctas{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;}

/* ============================================
   PAGES SERVICE - INTRO
   ============================================ */
.intro-section{padding:90px 0 70px;}
.intro-inner{max-width:780px;margin:0 auto;text-align:center;}
.intro-inner h2{font-size:1.9rem;margin-bottom:20px;}
.intro-inner p{font-size:1.05rem;color:#555;}
.intro-badges{display:flex;justify-content:center;gap:30px;margin-top:50px;flex-wrap:wrap;}
.intro-badge{display:flex;align-items:center;gap:12px;background:var(--light-bg);padding:16px 24px;border-radius:50px;font-size:0.82rem;font-weight:600;color:var(--navy);border:1px solid #e0e8f0;}
.intro-badge i{color:var(--sky);font-size:1rem;}

/* ============================================
   PAGES SERVICE - FEATURE CARDS
   ============================================ */
.features-section{padding:80px 0 90px;}
.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:32px;}
.feature-card{background:#fafcff;padding:38px 34px;border-radius:var(--radius);border:1px solid #eaeff5;box-shadow:0 2px 12px rgba(0,0,0,0.04);transition:var(--transition);}
.feature-card:hover{transform:translateY(-5px);box-shadow:0 12px 38px rgba(0,0,0,0.09);border-color:#c8ddef;background:var(--white);}
.feature-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;background:#e8f2fa;margin-bottom:24px;}
.feature-icon i{font-size:1.15rem;color:var(--sky);}
.feature-card h3{margin-bottom:12px;font-size:1rem;}
.feature-card p{color:#666;font-size:0.88rem;line-height:1.7;}

/* ============================================
   PAGES SERVICE - PROCESS
   ============================================ */
.process-section{background:var(--navy);color:var(--white);padding:90px 0;}
.process-section h2{color:var(--white);text-align:center;margin-bottom:65px;font-size:1.9rem;}
.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:40px;}
.step-card{text-align:center;padding:40px 30px;border:1px solid rgba(110,167,209,0.2);border-radius:var(--radius);transition:var(--transition);}
.step-card:hover{background:rgba(110,167,209,0.08);transform:translateY(-4px);}
.step-num{font-family:'Marcellus',serif;font-size:3.5rem;color:var(--sky);opacity:0.35;line-height:1;margin-bottom:16px;}
.step-card h4{font-size:1rem;color:var(--white);margin-bottom:12px;letter-spacing:1px;}
.step-card p{font-size:0.85rem;color:rgba(255,255,255,0.6);line-height:1.7;}

/* ============================================
   PAGES SERVICE - IMAGE STRIP
   ============================================ */
.img-strip{padding:0 0 90px;}
.img-strip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;}
.img-strip-grid img{width:100%;height:280px;object-fit:cover;border-radius:var(--radius);display:block;}

/* INTRO SPLIT - text left / image right */
.intro-split-section{padding:90px 0 70px;}
.intro-split-section--alt{background:var(--light-bg);}
.intro-split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;}
.intro-split--reverse .intro-split-img{order:-1;}
.intro-split-text h2{font-size:1.9rem;margin-bottom:20px;}
.intro-split-text p{font-size:1.05rem;color:#555;line-height:1.75;}
.intro-split-text .intro-badges{justify-content:flex-start;margin-top:40px;}
.intro-split-img img{width:100%;height:480px;object-fit:cover;display:block;}

/* LANDSCAPE SINGLE - one full-width image separator */
.landscape-single{line-height:0;}
.landscape-single img{width:100%;height:420px;object-fit:cover;display:block;}

/* FINAL CTA with image background */
.final-cta-img{background:linear-gradient(rgba(10,35,66,0.82),rgba(10,35,66,0.82)),var(--cta-bg) center/cover no-repeat;}

/* ============================================
   FAQ / ACCORDEON (shared)
   ============================================ */
.faq-section{padding:90px 0;background:var(--light-bg);}
.faq-section h2{text-align:center;margin-bottom:55px;font-size:1.9rem;}
.accordion-item{background:var(--white);margin-bottom:14px;border-radius:var(--radius);border:1px solid #e8eef3;overflow:hidden;transition:var(--transition);}
.accordion-header{padding:26px 32px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;color:var(--navy);font-weight:700;font-size:0.9rem;text-transform:uppercase;letter-spacing:1px;}
.accordion-header i{color:var(--sky);transition:transform 0.3s;flex-shrink:0;margin-left:15px;}
.accordion-item.active .accordion-header i{transform:rotate(45deg);}
.accordion-content{max-height:0;padding:0 32px;overflow:hidden;transition:all 0.4s ease;color:#555;}
.accordion-item.active .accordion-content{max-height:300px;padding:0 32px 28px;}

/* ============================================
   PAGES SERVICE - ZONE LOCALE
   ============================================ */
.local-section{padding:80px 0;border-top:1px solid #eee;background:var(--white);}
.local-section h2{text-align:center;margin-bottom:10px;font-size:1.9rem;}
.local-section .local-intro{text-align:center;color:#666;margin-bottom:55px;font-size:0.95rem;}
.zone-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:40px;}
.zone-group h4{font-size:0.65rem;letter-spacing:3px;text-transform:uppercase;color:var(--sky);font-weight:700;margin-bottom:16px;padding-bottom:10px;border-bottom:2px solid #e8eef3;}
.city-tags{display:flex;flex-wrap:wrap;gap:8px;}
.city-tag{background:var(--light-bg);padding:7px 16px;border-radius:30px;font-size:0.78rem;font-weight:600;color:var(--navy);border:1px solid #dde6ef;transition:0.25s;}
.city-tag:hover{background:rgba(110,167,209,0.18);border-color:rgba(110,167,209,0.5);}

/* ============================================
   PAGES SERVICE - FINAL CTA
   ============================================ */
.final-cta{padding:100px 0;text-align:center;background:var(--navy);}
.final-cta h2{color:var(--white);font-size:2rem;margin-bottom:16px;}
.final-cta p{color:rgba(255,255,255,0.65);margin-bottom:45px;font-size:1rem;}
.cta-block{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;}

/* ============================================
   HOME - HERO KEN BURNS
   ============================================ */
.hero-home{height:100vh;position:relative;overflow:hidden;display:flex;align-items:center;color:var(--white);}
.hero-bg-wrapper{position:absolute;inset:0;z-index:1;}
.hero-bg-img{width:100%;height:100%;background-size:cover;background-position:0% 30%;animation:kenburns 9s ease-out forwards;}
@keyframes kenburns{from{transform:scale(1.3);}to{transform:scale(1.1);}}
.hero-home .hero-overlay{position:absolute;inset:0;z-index:2;background:rgba(25,49,89,0.55);}
.hero-content{position:relative;z-index:3;width:100%;text-align:center;padding-top:40px;}
.hero-home h1{font-size:3.2rem;line-height:1.1;margin-bottom:20px;color:var(--white);}
.hero-home h1 span{color:var(--sky);}
.hero-eyebrow{letter-spacing:4px;text-transform:uppercase;color:rgba(255,255,255,0.7);margin-bottom:14px;font-weight:600;font-size:0.7rem;display:block;}
.hero-sub{font-size:1rem;font-weight:300;max-width:560px;margin:0 auto 36px;color:rgba(255,255,255,0.88);}
.hero-home .hero-ctas{justify-content:center;}
.hero-cta-btn{width:200px;text-align:center;}

/* ============================================
   HOME - TRUST BAR
   ============================================ */
.trust-bar{background:var(--white);padding:65px 0;border-bottom:1px solid #eee;}
.trust-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:40px;text-align:center;}
.trust-item h4{font-size:2.4rem;color:var(--sky);font-family:'Marcellus',serif;line-height:1;}
.trust-item p{text-transform:uppercase;font-size:0.72rem;letter-spacing:3px;font-weight:600;color:#999;margin-top:8px;}

/* ============================================
   HOME - SERVICE CARDS (gradient permanent, hover zoom)
   ============================================ */
.mySwiper .swiper-slide{padding:8px 0;}
.service-card{height:460px;border-radius:var(--radius);clip-path:inset(0 round var(--radius));position:relative;cursor:pointer;transform:translateZ(0);}
.service-bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform 0.7s cubic-bezier(0.4,0,0.2,1);}
.service-card:hover .service-bg{transform:scale(1.05);}
/* gradient permanent du bas */
.service-content{
    position:absolute;bottom:0;left:0;right:0;
    background:linear-gradient(to bottom,transparent 0%,rgba(11,22,41,0.55) 40%,rgba(11,22,41,0.92) 100%);
    padding:80px 26px 28px;
    z-index:5;
}
.service-content h3{
    font-size:0.78rem;letter-spacing:2.5px;color:var(--white);
    margin:0 0 8px;text-transform:uppercase;font-weight:700;
}
.service-content p{
    font-size:0.8rem;color:rgba(255,255,255,0.72);
    line-height:1.6;margin:0 0 14px;
}
.service-link{
    color:var(--white);font-weight:700;text-decoration:none;
    font-size:0.68rem;letter-spacing:2px;display:inline-flex;align-items:center;gap:6px;
    transition:color 0.2s,gap 0.2s;
}
.service-link span{display:inline-block;transition:transform 0.25s ease;}
.service-card:hover .service-link{color:var(--sky);}
.service-card:hover .service-link span{transform:translateX(5px);}
/* lien overlay toute la card */
.service-card-link{position:absolute;inset:0;z-index:6;}
.swiper-nav-wrapper{display:flex;justify-content:flex-end;gap:12px;margin-top:26px;}
.nav-btn{width:48px;height:48px;border:1px solid #ddd;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:0.3s;color:var(--navy);background:var(--white);user-select:none;}
.nav-btn:hover{background:var(--navy);color:var(--white);border-color:var(--navy);}

/* ============================================
   HOME - EXPERTISE
   ============================================ */
.why-flex{display:flex;gap:80px;align-items:center;flex-wrap:wrap;}
.why-img{flex:1.2;border-radius:var(--radius);overflow:hidden;height:580px;min-width:280px;}
.why-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.6s ease;}
.why-img:hover img{transform:scale(1.04);}
.why-text{flex:1;min-width:320px;}
.why-text>p{color:#666;margin:14px 0 30px;font-size:0.95rem;}
.modern-list{list-style:none;}
.modern-list li{padding:22px 0;border-bottom:1px solid #f0f0f0;display:flex;align-items:flex-start;gap:18px;}
.modern-list li:last-child{border-bottom:none;}
.list-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:rgba(110,167,209,0.1);border:1px solid rgba(110,167,209,0.2);flex-shrink:0;margin-top:2px;}
.list-icon i{font-size:0.9rem;color:var(--navy);}
.list-content h4{font-family:'Montserrat',sans-serif;font-size:0.98rem;color:var(--navy);margin-bottom:5px;text-transform:none;letter-spacing:0;}
.list-content p{font-size:0.83rem;color:#666;line-height:1.6;}

/* ============================================
   HOME - ZONE D'INTERVENTION
   ============================================ */
.zone-box{display:flex;background:var(--navy);border-radius:20px;overflow:hidden;color:var(--white);min-height:640px;margin:0 20px;}
.zone-map-side{flex:0 0 50%;position:relative;overflow:hidden;}

.zone-map-side iframe{width:100%;height:100%;border:none;display:block;}
.zone-map-side img{width:100%;height:100%;object-fit:cover;display:block;}
.zone-info-side{flex:0 0 50%;padding:65px 50px;box-sizing:border-box;}
.zone-info-side h2{color:var(--white);}
.zone-info-side>p{color:rgba(255,255,255,0.7);margin:12px 0;}
.zone-sub-title{font-size:0.6rem;letter-spacing:4px;text-transform:uppercase;color:var(--sky);font-weight:700;margin:26px 0 12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,0.1);}
.city-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:6px;}
.city-item{font-size:0.7rem;padding:8px 6px;border:1px solid rgba(110,167,209,0.2);border-radius:6px;text-align:center;transition:0.25s;}
.city-item:hover{background:rgba(110,167,209,0.15);border-color:rgba(110,167,209,0.5);}

/* ============================================
   HOME - AVIS
   ============================================ */
.reviews-section{background:var(--navy);}
.reviews-section h2{color:var(--white);text-align:center;margin-bottom:14px;}
.reviews-intro{color:rgba(255,255,255,0.55);max-width:540px;margin:0 auto 55px;text-align:center;font-size:0.88rem;}
.reviews-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px;}
.review-card{background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.08);border-radius:var(--radius);padding:34px;transition:var(--transition);}
.review-card:hover{background:rgba(255,255,255,0.09);transform:translateY(-4px);}
.review-stars{color:#D4AF37;font-size:0.75rem;letter-spacing:3px;margin-bottom:16px;}
.review-text{font-family:'Marcellus',serif;font-size:1rem;color:var(--white);line-height:1.7;margin-bottom:20px;}
.review-author{display:flex;align-items:center;gap:13px;}
.review-avatar{width:38px;height:38px;border-radius:50%;background:var(--sky);display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--white);font-size:0.82rem;flex-shrink:0;}
.review-meta strong{display:block;color:var(--white);font-size:0.82rem;}
.review-meta span{color:rgba(255,255,255,0.4);font-size:0.7rem;}
.review-source{display:flex;align-items:center;gap:7px;margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,0.07);font-size:0.67rem;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.3);}
.review-source i{color:#4285F4;}
.reviews-cta{text-align:center;margin-top:44px;}
.btn-google-review{display:inline-flex;align-items:center;gap:10px;background:#fff;color:#3c4043;font-weight:600;font-size:0.88rem;padding:13px 26px;border-radius:50px;text-decoration:none;transition:var(--transition);box-shadow:0 2px 8px rgba(0,0,0,0.18);}
.btn-google-review:hover{background:#f1f3f4;transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,0.25);}

/* ============================================
   HOME - CONTACT
   ============================================ */
.contact-box{display:flex;background:var(--white);border-radius:20px;overflow:hidden;box-shadow:0 30px 80px rgba(25,49,89,0.08);}
.contact-info-side{flex:1;background:var(--navy);padding:75px 55px;color:var(--white);display:flex;flex-direction:column;justify-content:center;}
.contact-info-side h2{color:var(--white);margin-bottom:32px;font-size:1.9rem;}
.contact-item{display:flex;align-items:center;gap:20px;margin-bottom:26px;transition:transform 0.3s ease;cursor:default;}
.contact-item:hover{transform:translateX(4px);}
.contact-item i{width:48px;height:48px;background:rgba(110,167,209,0.15);border:1px solid rgba(110,167,209,0.3);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--sky);font-size:1.1rem;flex-shrink:0;transition:background 0.3s ease,border-color 0.3s ease,color 0.3s ease;}
.contact-item:hover i{background:rgba(110,167,209,0.38);border-color:rgba(110,167,209,0.6);color:var(--white);}
.contact-form-side{flex:1.5;padding:75px 65px;}
.contact-form-side h3{margin-bottom:20px;font-size:1.3rem;}
.form-group{margin-bottom:20px;position:relative;}
.contact-form-side .form-row{display:flex;gap:16px;}
.contact-form-side .form-row .form-group{flex:1;}
/* Contact & devis pages form grid */
.contact-form-wrap .form-row,.devis-form-wrap .form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;}
.contact-form-wrap .form-group input,
.contact-form-wrap .form-group select,
.contact-form-wrap .form-group textarea,
.devis-form-wrap .form-group input,
.devis-form-wrap .form-group select,
.devis-form-wrap .form-group textarea{width:100%;padding:16px 20px;border:1px solid #e0e8f0;border-radius:var(--radius);font-family:'Montserrat',sans-serif;font-size:0.9rem;color:var(--text);background:var(--white);transition:border-color 0.3s;outline:none;}
.contact-form-wrap .form-group input:focus,
.contact-form-wrap .form-group select:focus,
.contact-form-wrap .form-group textarea:focus,
.devis-form-wrap .form-group input:focus,
.devis-form-wrap .form-group select:focus,
.devis-form-wrap .form-group textarea:focus{border-color:rgba(110,167,209,0.5);}
.contact-form-wrap .form-group textarea,.devis-form-wrap .form-group textarea{resize:vertical;min-height:120px;}
.contact-form-wrap .form-group select,.devis-form-wrap .form-group select{appearance:none;cursor:pointer;}
.form-group label{position:absolute;left:18px;top:17px;font-size:0.88rem;font-weight:400;color:#aaa;pointer-events:none;transition:all 0.18s ease;background:var(--white);padding:0 4px;text-transform:none;letter-spacing:0;margin:0;z-index:1;}
.form-group textarea~label{top:18px;}
.form-group input:focus~label,.form-group input:not(:placeholder-shown)~label,.form-group textarea:focus~label,.form-group textarea:not(:placeholder-shown)~label,.form-group select:focus~label,.form-group select.has-value~label{top:-9px;font-size:0.62rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--navy);}
.form-check{display:flex;align-items:flex-start;gap:14px;margin-bottom:28px;}
.form-check input[type="checkbox"]{width:20px;height:20px;flex-shrink:0;margin-top:2px;accent-color:var(--sky);}
.form-check label{font-size:0.8rem;color:#666;line-height:1.5;position:static;background:none;padding:0;pointer-events:auto;}
.form-check label a{color:var(--sky);}
.btn-submit{width:100%;padding:20px;font-size:0.9rem;border:none;cursor:pointer;background:var(--sky);color:var(--white);border-radius:var(--radius);font-weight:700;text-transform:uppercase;letter-spacing:2px;font-family:'Montserrat',sans-serif;transition:var(--transition);box-shadow:0 10px 30px rgba(110,167,209,0.35);}
.btn-submit:hover{background:var(--navy);transform:translateY(-3px);}
.form-message{padding:16px 22px;border-radius:var(--radius);font-size:0.88rem;font-weight:600;margin-bottom:20px;display:none;}
.form-message.success{background:#e8f5e9;border-left:4px solid #2e7d32;color:#1b5e20;}
.form-message.error{background:#fdecea;border-left:4px solid #c62828;color:#7f0000;}
/* Info cards (contact & devis) */
.info-card{display:flex;gap:20px;margin-bottom:32px;align-items:flex-start;}
.info-icon{width:48px;height:48px;border-radius:50%;background:rgba(110,167,209,0.15);border:1px solid rgba(110,167,209,0.3);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.info-icon i{color:var(--sky);font-size:1.1rem;}
.info-content h4{font-size:0.68rem;letter-spacing:2px;margin-bottom:5px;color:var(--sky);text-transform:uppercase;}
.info-content p,.info-content a{font-size:0.88rem;color:rgba(255,255,255,0.7);text-decoration:none;line-height:1.7;display:block;}
.info-content a:hover{color:var(--white);}
.hours-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:4px;}
.hours-row{font-size:0.82rem;color:#555;}.hours-row span:first-child{font-weight:600;color:var(--navy);}
.urgency-card{background:linear-gradient(135deg,var(--navy),#2a4a80);border-radius:var(--radius);padding:30px;margin-top:40px;text-align:center;}
.urgency-card p{color:rgba(255,255,255,0.7);font-size:0.8rem;margin-bottom:10px;text-transform:uppercase;letter-spacing:2px;}
.urgency-card a{color:var(--white);font-family:'Marcellus',serif;font-size:1.6rem;text-decoration:none;letter-spacing:2px;display:block;transition:0.3s;}
.urgency-card a:hover{color:var(--sky);}
.urgency-card small{color:rgba(255,255,255,0.5);font-size:0.72rem;margin-top:6px;display:block;}
.services-list{margin-top:10px;}
.services-list li{list-style:none;font-size:0.82rem;color:#555;padding:5px 0;border-bottom:1px solid #f0f0f0;display:flex;align-items:center;gap:8px;}
.services-list li:last-child{border-bottom:none;}
.services-list i{color:var(--sky);font-size:0.7rem;flex-shrink:0;}
/* Contact page layout */
.contact-section,.devis-section{padding:90px 0;}
.contact-grid,.devis-grid{display:grid;grid-template-columns:1fr 1.6fr;gap:80px;align-items:start;}
/* Map */
.map-section{padding:80px 0 0;background:var(--light-bg);}
.map-section h2{text-align:center;margin-bottom:10px;}
.map-section .map-intro{text-align:center;color:#666;font-size:0.9rem;margin-bottom:40px;}
.map-embed{width:100%;height:400px;border:none;border-radius:var(--radius);display:block;}
/* Urgency banner (debouchage) */
.urgency-banner{background:linear-gradient(135deg,#c0392b,#e74c3c);color:var(--white);text-align:center;padding:20px 40px;font-size:0.9rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;}
.urgency-banner a{color:var(--white);text-decoration:underline;}
/* Nuisibles section (desinsectisation) */
.nuisibles-section{background:var(--navy);padding:80px 0;}
.nuisibles-inner{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;}
.nuisibles-icon-wrap{width:80px;height:80px;background:rgba(110,167,209,0.15);border:1px solid rgba(110,167,209,0.3);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:24px;}
.nuisibles-icon-wrap i{color:var(--sky);font-size:2rem;}
.nuisibles-intro h2{color:var(--white);font-size:1.8rem;margin-bottom:16px;}
.nuisibles-intro p{color:rgba(255,255,255,0.6);font-size:0.92rem;line-height:1.7;}
.nuisibles-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:0;}
.nuisibles-list li{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,0.07);color:var(--white);}
.nuisibles-list li:last-child{border-bottom:none;}
.nuisibles-list li i{color:var(--sky);font-size:0.65rem;flex-shrink:0;}
.nuisibles-list li strong{font-size:0.88rem;font-weight:600;letter-spacing:0.5px;}
@media(max-width:768px){.nuisibles-inner{grid-template-columns:1fr;gap:40px;}.nuisibles-list{grid-template-columns:1fr;}}
.form-control{width:100%;padding:12px 16px;border:1.5px solid #e0e8f0;border-radius:8px;font-family:inherit;font-size:0.92rem;transition:0.3s;background:var(--white);color:var(--text);}
.form-control:focus{outline:none;border-color:var(--sky);}
textarea.form-control{resize:vertical;min-height:90px;}
.rgpd-check{display:flex;gap:12px;align-items:flex-start;margin:24px 0;}
.rgpd-check input{width:17px;height:17px;margin-top:3px;accent-color:var(--sky);flex-shrink:0;}
.rgpd-check label{font-size:0.78rem;color:#888;line-height:1.5;}

/* ============================================
   PAGE HERO - DEVIS & CONTACT
   ============================================ */
.hero-devis,.hero-contact{min-height:72vh;display:flex;align-items:center;color:var(--white);text-align:center;padding-top:108px;}
.hero-devis{background:linear-gradient(rgba(25,49,89,0.72),rgba(25,49,89,0.45)),url('media/paysages/port-audenge-bassin-arcachon.webp') center 20%/cover no-repeat;}
.hero-contact{background:linear-gradient(rgba(25,49,89,0.72),rgba(25,49,89,0.45)),url('media/paysages/andernos-les-bains-bassin-arcachon.webp') center 50%/cover no-repeat;}
.hero-devis .eyebrow,.hero-contact .eyebrow{text-transform:uppercase;letter-spacing:4px;color:var(--sky);margin-bottom:16px;font-weight:700;font-size:0.8rem;display:block;}
.hero-devis h1,.hero-contact h1{color:var(--white);font-size:3rem;margin-bottom:18px;line-height:1.15;}
.hero-devis p,.hero-contact p{font-size:1.05rem;opacity:0.85;max-width:580px;margin:0 auto;}

/* ============================================
   INFO CARDS (devis + contact)
   ============================================ */
.info-card{display:flex;gap:20px;margin-bottom:32px;align-items:flex-start;}
.info-icon{width:48px;height:48px;border-radius:50%;background:rgba(110,167,209,0.15);border:1px solid rgba(110,167,209,0.3);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.info-icon i{color:var(--sky);font-size:1.1rem;}
.info-content h4{font-size:0.68rem;letter-spacing:2px;margin-bottom:5px;color:var(--sky);text-transform:uppercase;}
.info-content p,.info-content a{font-size:0.88rem;color:rgba(255,255,255,0.7);text-decoration:none;line-height:1.7;display:block;}
.info-content a:hover{color:var(--white);}
.urgency-card{background:linear-gradient(135deg,var(--navy),#2a4a80);border-radius:var(--radius);padding:30px;margin-top:40px;text-align:center;}
.urgency-card p{color:rgba(255,255,255,0.7);font-size:0.8rem;margin-bottom:10px;text-transform:uppercase;letter-spacing:2px;}
.urgency-card a{color:var(--white);font-family:'Marcellus',serif;font-size:1.6rem;text-decoration:none;letter-spacing:2px;display:block;transition:0.3s;}
.urgency-card a:hover{color:var(--sky);}
.urgency-card small{color:rgba(255,255,255,0.5);font-size:0.72rem;margin-top:6px;display:block;}

/* ============================================
   FORMULAIRES PAGES (devis + contact)
   ============================================ */
.devis-section,.contact-section{padding:100px 0;}
.devis-grid,.contact-grid{display:grid;grid-template-columns:1fr 1.6fr;gap:0;align-items:stretch;}
.devis-infos,.contact-infos{background:var(--navy);border-radius:var(--radius);padding:60px 45px;}
.devis-form-wrap,.contact-form-wrap{padding:60px 55px 60px 70px;}
.devis-infos h2,.contact-infos h2{font-size:1.5rem;margin-bottom:35px;color:var(--white);}
.devis-form-wrap h2,.contact-form-wrap h2{font-size:1.5rem;margin-bottom:10px;}
.form-intro{font-size:0.9rem;color:#666;margin-bottom:35px;}
.services-list{margin-top:10px;}
.services-list li{list-style:none;font-size:0.82rem;color:rgba(255,255,255,0.65);padding:5px 0;border-bottom:1px solid rgba(255,255,255,0.1);display:flex;align-items:center;gap:8px;}
.services-list li:last-child{border-bottom:none;}
.services-list i{color:var(--sky);font-size:0.7rem;flex-shrink:0;}
.hours-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:4px;}
.hours-row{font-size:0.82rem;color:rgba(255,255,255,0.65);}
.hours-row span:first-child{font-weight:600;color:var(--white);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;}
.form-group{margin-bottom:28px;position:relative;}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:16px 20px;border:1px solid #e0e8f0;border-radius:var(--radius);font-family:'Montserrat',sans-serif;font-size:0.9rem;color:var(--text);background:var(--white);transition:border-color 0.3s;outline:none;}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:rgba(110,167,209,0.5);}
.form-group textarea{resize:vertical;min-height:130px;}
.form-group select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='%236EA7D1' d='M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:20px;cursor:pointer;}
.form-check{display:flex;align-items:flex-start;gap:14px;margin-bottom:28px;}
.form-check input[type="checkbox"]{width:20px;height:20px;flex-shrink:0;margin-top:2px;accent-color:var(--sky);}
.form-check label{font-size:0.8rem;color:#666;line-height:1.5;}
.form-check label a{color:var(--sky);}
.btn-submit{width:100%;padding:20px;font-size:0.9rem;border:none;cursor:pointer;background:var(--sky);color:var(--white);border-radius:var(--radius);font-weight:700;text-transform:uppercase;letter-spacing:2px;font-family:'Montserrat',sans-serif;transition:var(--transition);box-shadow:0 10px 30px rgba(110,167,209,0.35);}
.btn-submit:hover{background:var(--navy);transform:translateY(-3px);}
.btn-submit i{margin-right:10px;}
.form-message{padding:16px 22px;border-radius:var(--radius);font-size:0.88rem;font-weight:600;margin-bottom:20px;display:none;}
.form-message.success{background:#e8f5e9;border-left:4px solid #2e7d32;color:#1b5e20;}
.form-message.error{background:#fdecea;border-left:4px solid #c62828;color:#7f0000;}

/* ============================================
   CONTACT - MAP
   ============================================ */
.map-section{padding:80px 0 0;background:var(--light-bg);}
.map-section h2{text-align:center;margin-bottom:10px;font-size:1.6rem;}
.map-section .map-intro{text-align:center;color:#666;font-size:0.9rem;margin-bottom:40px;}
.map-embed{width:100%;height:400px;border:none;border-radius:var(--radius);overflow:hidden;display:block;}

/* ============================================
   RESPONSIVE
   ============================================ */
/* ---- TABLETTE ≤ 1024px ---- */
@media(max-width:1024px){
    .container{padding:0 25px;}
    .section-padding{padding:80px 0;}
    /* Hero */
    .hero-home h1{font-size:2.4rem;}
    .hero-service h1{font-size:2.2rem;}
    .hero-devis h1,.hero-contact h1{font-size:2.2rem;}
    .hero-devis,.hero-contact{min-height:60vh;}
    /* Layouts */
    .why-flex,.zone-box,.contact-box{flex-direction:column;}
    .why-img{height:360px;}
    .zone-map-side{height:340px;}
    .city-grid{grid-template-columns:repeat(2,1fr);}
    .contact-info-side,.contact-form-side{padding:50px 40px;}
    /* Steps */
    .steps-grid{grid-template-columns:1fr 1fr;}
    /* Devis / Contact */
    .devis-grid,.contact-grid{grid-template-columns:1fr;gap:0;}
    .devis-infos,.contact-infos{border-radius:var(--radius) var(--radius) 0 0;}
    .devis-form-wrap,.contact-form-wrap{border-radius:0 0 var(--radius) var(--radius);padding:50px 40px;}
    /* Form */
    .form-row{grid-template-columns:1fr 1fr;}
    /* Services pages */
    .intro-split{gap:50px;}
    .intro-split-img img{height:400px;}
    /* Reviews */
    .reviews-grid{grid-template-columns:1fr 1fr;gap:20px;}
}

/* ---- MOBILE ≤ 768px ---- */
@media(max-width:768px){
    .container{padding:0 20px;}
    .section-padding{padding:60px 0;}
    /* Hero */
    .hero-home{min-height:90vh;}
    .hero-home h1{font-size:2rem;}
    .hero-home p.hero-sub{font-size:0.9rem;}
    .hero-service h1{font-size:1.8rem;}
    .hero-devis h1,.hero-contact h1{font-size:1.7rem;}
    .hero-devis,.hero-contact{min-height:55vh;}
    .hero-devis p,.hero-contact p{font-size:0.9rem;}
    /* Layouts */
    .why-img{height:280px;}
    .zone-map-side{height:260px;}
    .city-grid{grid-template-columns:repeat(2,1fr);}
    /* Steps */
    .steps-grid{grid-template-columns:1fr;}
    /* Form */
    .form-row{grid-template-columns:1fr;}
    .devis-form-wrap,.contact-form-wrap{padding:40px 28px;}
    /* Services pages */
    .intro-split{grid-template-columns:1fr;}
    .intro-split-img{order:-1;}
    .intro-split-img img{height:260px;}
    .landscape-single img{height:240px;}
    .landscape-strip{grid-template-columns:1fr;height:auto;}
    .landscape-strip .ls-panel{height:200px;}
    /* Badges */
    .intro-badges{flex-wrap:wrap;gap:10px;}
    .intro-badge{flex:0 0 calc(50% - 5px);padding:12px 16px;font-size:0.78rem;}
    /* Reviews - carrousel scroll-snap */
    .reviews-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;padding-bottom:12px;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
    .reviews-grid::-webkit-scrollbar{display:none;}
    .review-card{flex-shrink:0;width:82vw;scroll-snap-align:center;}
    /* Contact home */
    .contact-form-side{padding:40px 24px;}
    .contact-form-side .form-row{flex-direction:column;gap:0;}
    /* Hero CTA */
    .hero-ctas{justify-content:center;}
    /* Zone */
    .zone-box{margin:0 -10px;}
    /* Images strip */
    .img-strip-grid img{height:200px;}
    /* Counters */
    .counters-grid{grid-template-columns:repeat(2,1fr);}
}

/* ---- PETIT MOBILE ≤ 480px ---- */
@media(max-width:480px){
    .container{padding:0 16px;}
    .section-padding{padding:50px 0;}
    .hero-home h1{font-size:1.7rem;}
    .hero-content{padding-top:20px;}
    .hero-service h1{font-size:1.5rem;}
    .hero-devis h1,.hero-contact h1{font-size:1.5rem;}
    .hero-ctas{flex-direction:column;align-items:center;}
    .hero-ctas .ag-btn{text-align:center;}
    .intro-badge{flex:0 0 calc(50% - 5px);justify-content:flex-start;padding:10px 14px;font-size:0.75rem;}
    .devis-form-wrap,.contact-form-wrap{padding:32px 20px;}
    .zone-box{gap:0;}
    .city-grid{grid-template-columns:1fr 1fr;}
    .reviews-grid{grid-template-columns:1fr;}
    .counters-grid{grid-template-columns:1fr 1fr;}
    .ag-footer-certs-list{gap:10px;}
}

/* ============================================
   HOVER - MICRO-INTERACTIONS
   ============================================ */

/* Info cards (contact / devis) */
.info-card { transition: transform 0.3s ease; cursor: default; }
.info-card:hover { transform: translateY(-3px); }
.info-icon { transition: background 0.3s ease, border-color 0.3s ease; }
.info-icon i { transition: color 0.3s ease; }
.info-card:hover .info-icon { background: rgba(110,167,209,0.38); border-color: rgba(110,167,209,0.6); }
.info-card:hover .info-icon i { color: var(--white); }

/* Related services */
.related-services{padding:70px 0;background:var(--light-bg);text-align:center;}
.related-services .section-title{margin-bottom:12px;}
.related-desc{font-family:'Montserrat',sans-serif;font-size:0.88rem;color:#666;margin-bottom:36px;max-width:620px;margin-left:auto;margin-right:auto;line-height:1.7;}
.related-card{text-align:left;}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.related-card{display:flex;align-items:center;gap:16px;background:var(--white);border-radius:var(--radius);padding:24px 20px;text-decoration:none;color:var(--navy);border:1px solid rgba(110,167,209,0.15);transition:transform 0.3s ease,box-shadow 0.3s ease,border-color 0.3s ease;}
.related-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(11,22,41,0.1);border-color:rgba(110,167,209,0.4);}
.related-card-icon{width:48px;height:48px;border-radius:50%;background:rgba(110,167,209,0.12);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background 0.3s ease;}
.related-card:hover .related-card-icon{background:rgba(110,167,209,0.28);}
.related-card-icon i{color:var(--sky);font-size:1.1rem;}
.related-card-name{font-family:'Montserrat',sans-serif;font-weight:700;font-size:0.88rem;flex:1;line-height:1.3;}
.related-card-arrow{color:var(--sky);transition:transform 0.3s ease;}
.related-card:hover .related-card-arrow{transform:translateX(4px);}
@media(max-width:768px){.related-grid{grid-template-columns:1fr;gap:12px;}}

/* Badges service */
.intro-badge { transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease, border-color 0.25s ease; }
.intro-badge:hover { background: rgba(110,167,209,0.18); border-color: rgba(110,167,209,0.5); transform: translateY(-2px); }

/* List icons (section engagement) */
.list-icon { transition: background 0.3s ease, border-color 0.3s ease; }
.modern-list li:hover .list-icon { background: rgba(110,167,209,0.22); border-color: rgba(110,167,209,0.5); }

/* Feature card icons */
.feature-icon { transition: background 0.3s ease; }
.feature-icon i { transition: color 0.3s ease; }
.feature-card:hover .feature-icon { background: rgba(110,167,209,0.28); }
.feature-card:hover .feature-icon i { color: rgba(110,167,209,0.8); }

/* Images — zoom doux au hover */
.intro-split-img { overflow: hidden; border-radius: var(--radius); transform: translateZ(0); }
.intro-split-img img { transition: transform 0.7s cubic-bezier(0.4,0,0.2,1); }
.intro-split-img:hover img { transform: scale(1.04); }
.zone-map-side img { transition: transform 0.7s cubic-bezier(0.4,0,0.2,1); }
.zone-map-side:hover img { transform: scale(1.04); }

/* ============================================
   ANIMATIONS - HERO (chargement page)
   ============================================ */
@keyframes heroFadeUp {
    from { opacity: 0; transform: translateY(28px); }
    to   { opacity: 1; transform: none; }
}
.hero-eyebrow, .eyebrow { animation: heroFadeUp 0.7s ease 0.15s both; }
.hero-home h1, .hero-service h1, .hero-devis h1, .hero-contact h1 { animation: heroFadeUp 0.7s ease 0.35s both; }
.hero-sub      { animation: heroFadeUp 0.7s ease 0.55s both; }
.hero-ctas     { animation: heroFadeUp 0.7s ease 0.75s both; }

/* ============================================
   ANIMATIONS - SCROLL REVEAL
   ============================================ */
[data-anim] {
    opacity: 0;
    transition: opacity 0.65s ease, transform 0.65s ease;
}
[data-anim="up"]    { transform: translateY(32px); }
[data-anim="left"]  { transform: translateX(-40px); }
[data-anim="right"] { transform: translateX(40px); }
[data-anim="scale"] { transform: scale(0.93); }

[data-anim].anim-in { opacity: 1; transform: none; }

[data-anim][data-delay="1"] { transition-delay: 0.12s; }
[data-anim][data-delay="2"] { transition-delay: 0.24s; }
[data-anim][data-delay="3"] { transition-delay: 0.36s; }
[data-anim][data-delay="4"] { transition-delay: 0.48s; }
[data-anim][data-delay="5"] { transition-delay: 0.60s; }

@media (prefers-reduced-motion: reduce) {
    [data-anim], .hero-eyebrow, .hero-home h1, .hero-sub, .hero-ctas {
        animation: none; opacity: 1; transform: none; transition: none;
    }
}
