:root{--bleu-logo:#2d4256;--olive-logo:#97a16f;--creme-logo:#fdfcf0;--blanc:#ffffff;--text-muted:#666;--border-light:#e0e0e0;--shadow-sm:0 2px 15px rgba(0, 0, 0, 0.05);--shadow-md:0 5px 20px rgba(0, 0, 0, 0.08);--shadow-lg:0 8px 30px rgba(0, 0, 0, 0.15);--radius-sm:8px;--radius-md:15px;--radius-pill:30px}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Montserrat,sans-serif;background-color:var(--creme-logo);color:var(--bleu-logo);line-height:1.6}header{background-color:var(--blanc);padding:10px 5%;position:sticky;top:0;z-index:1000;box-shadow:var(--shadow-sm);display:flex;justify-content:space-between;align-items:center}.logo-container img{height:75px;width:auto;display:block;transition:all .4s cubic-bezier(.175, .885, .32, 1.275)}.logo-container img:hover{transform:scale(1.15) translateY(-2px);filter:drop-shadow(0 15px 15px rgba(45, 66, 86, .3))}nav ul{display:flex;list-style:none;gap:25px;align-items:center}nav a{text-decoration:none;color:var(--bleu-logo);font-weight:500;transition:.3s;font-size:.95rem}nav a:hover{color:var(--olive-logo)}.btn-devis{background-color:var(--olive-logo);color:#fff!important;padding:10px 20px;border-radius:var(--radius-pill);font-weight:700;box-shadow:0 4px 6px rgba(151,161,111,.3);text-decoration:none;display:inline-block;transition:all .3s ease}.btn-devis:hover{background-color:var(--bleu-logo);transform:translateY(-2px)}.hero-section{background:linear-gradient(135deg,var(--bleu-logo) 0,#3a5472 100%);color:#fff;padding:100px 10% 80px;text-align:center}.hero-content h1{font-size:3rem;margin-bottom:20px;line-height:1.2;animation:fadeInUp .8s ease-out}.hero-subtitle{font-size:1.3rem;margin-bottom:40px;opacity:.95;max-width:800px;margin-left:auto;margin-right:auto;animation:fadeInUp .8s ease-out .2s both}.hero-cta{display:flex;gap:20px;justify-content:center;margin-bottom:50px;flex-wrap:wrap;animation:fadeInUp .8s ease-out .4s both}.btn-large{padding:15px 35px;font-size:1.1rem}.btn-secondary{background-color:transparent;color:#fff;border:2px solid #fff;padding:13px 33px;border-radius:var(--radius-pill);font-weight:700;text-decoration:none;transition:all .3s ease}.btn-secondary:hover{background-color:#fff;color:var(--bleu-logo)}.hero-badges{display:flex;gap:40px;justify-content:center;flex-wrap:wrap;animation:fadeInUp .8s ease-out .6s both}.badge{display:flex;align-items:center;gap:10px;font-size:1rem}.badge .icon{font-size:1.6rem;color:var(--olive-logo);display:flex;align-items:center}@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.section-container{padding:80px 10%;text-align:center}h2{font-size:2.5rem;margin-bottom:20px;color:var(--bleu-logo)}.subtitle{max-width:800px;margin:0 auto 50px;font-size:1.1rem;color:var(--text-muted)}.services-intro{max-width:800px;margin:0 auto 30px;font-size:1.1rem;color:var(--text-muted);text-align:center}.services-intro p{margin-bottom:20px}.checklist{list-style:none;padding:0;display:inline-block;text-align:left;margin:20px auto 30px}.checklist li{padding:8px 0;font-size:1.05rem;color:var(--bleu-logo);display:flex;align-items:center;gap:12px}.checklist li .check-icon{color:var(--olive-logo);font-size:1.2rem;flex-shrink:0}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;margin-top:40px}.gallery-item{position:relative;overflow:hidden;border-radius:10px;height:250px;background-color:var(--blanc);box-shadow:0 4px 15px rgba(0,0,0,.1);display:flex;align-items:center;justify-content:center}.gallery-item img{width:100%;height:100%;object-fit:contain;transition:transform .5s ease;cursor:pointer}.gallery-item:hover img{transform:scale(1.05)}.gallery-overlay{position:absolute;bottom:0;left:0;right:0;background:rgba(45,66,86,.9);color:#fff;padding:15px;transform:translateY(100%);transition:transform .3s ease;pointer-events:none}.gallery-item:hover .gallery-overlay{transform:translateY(0)}.why-choose-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:30px;margin-top:50px}.why-item{background:#fff;padding:35px 25px;border-radius:var(--radius-md);box-shadow:var(--shadow-md);transition:all .3s ease;text-align:center}.why-item:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}.why-item .icon-circle{width:64px;height:64px;margin:0 auto 20px;background:rgba(151,161,111,.12);border-radius:50%;display:flex;align-items:center;justify-content:center}.why-item .icon-circle svg{width:28px;height:28px;color:var(--olive-logo)}.why-item h3{font-size:1.3rem;color:var(--bleu-logo);margin-bottom:12px}.why-item p{color:var(--text-muted);font-size:.95rem;line-height:1.6}.modal{display:none;position:fixed;z-index:2000;padding-top:50px;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgba(0,0,0,.9);backdrop-filter:blur(5px)}.modal-content{margin:auto;display:block;width:80%;max-width:1200px;max-height:90vh;object-fit:contain;border-radius:var(--radius-sm);animation:zoom .4s ease}@keyframes zoom{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.close-modal{position:absolute;top:20px;right:35px;color:#f1f1f1;font-size:40px;font-weight:700;transition:.3s;cursor:pointer;z-index:2001}.close-modal:hover{color:var(--olive-logo)}.pricing-section{background:var(--blanc)}table{width:100%;border-collapse:separate;border-spacing:0;margin-top:30px;background:var(--blanc);border-radius:var(--radius-md);overflow:hidden;box-shadow:0 5px 25px rgba(0,0,0,.05)}td,th{padding:20px;text-align:left;border-bottom:1px solid #eee}th{background:var(--bleu-logo);color:#fff;text-transform:uppercase;font-size:.9rem;letter-spacing:1px}tr:last-child td{border-bottom:none}.promo{color:var(--olive-logo);font-weight:700;background-color:rgba(151,161,111,.1)}.extra-projects{margin:40px auto 0;max-width:900px;padding:30px;background-color:rgba(45,66,86,.03);border-left:5px solid var(--olive-logo);border-radius:10px;text-align:left}.extra-projects h3{color:var(--bleu-logo);margin-bottom:15px;display:flex;align-items:center;gap:10px}#devis{background:var(--bleu-logo);color:#fff}#devis h2{color:var(--creme-logo)}.valoris-container{max-width:1100px;margin:0 auto;padding:0 20px}.valoris-grid{display:flex;gap:60px;flex-wrap:wrap;align-items:flex-start}.valoris-col{flex:1;min-width:320px}.v-form{background:#fff;padding:40px;border-radius:var(--radius-md);box-shadow:0 10px 30px rgba(0,0,0,.2);color:var(--bleu-logo)}.v-group{margin-bottom:20px}.v-group label{display:block;margin-bottom:8px;font-weight:700;font-size:.9rem}.v-group input,.v-group select,.v-group textarea{width:100%;padding:12px;border:2px solid var(--border-light);border-radius:var(--radius-sm);box-sizing:border-box;font-family:inherit;transition:.3s}.v-group input:focus,.v-group select:focus,.v-group textarea:focus{border-color:var(--olive-logo);outline:0}.v-step{display:flex;margin-bottom:35px;position:relative}.v-step:not(:last-child)::after{content:'';position:absolute;left:22px;top:45px;bottom:-25px;width:2px;background:var(--olive-logo);opacity:.5}.v-icon{width:45px;height:45px;background:var(--olive-logo);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;margin-right:25px;flex-shrink:0;z-index:1;font-size:1.2rem}.v-text strong{display:block;font-size:1.2rem;color:var(--creme-logo);margin-bottom:5px}.v-text p{margin:0;font-size:1rem;color:rgba(253,252,240,.8);line-height:1.5}.reviews-section{background:var(--blanc)}.reviews-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px;margin-top:40px}.review-card{background:var(--creme-logo);padding:30px;border-radius:var(--radius-md);position:relative;box-shadow:0 4px 15px rgba(0,0,0,.05);transition:.3s}.review-card:hover{transform:translateY(-5px);box-shadow:0 8px 25px rgba(0,0,0,.1)}.quote-icon{position:absolute;top:20px;right:20px;color:var(--olive-logo);opacity:.2}.stars{color:gold;margin:15px 0;font-size:1.1rem;display:flex;gap:3px}.review-text{font-style:italic;margin:20px 0;color:#555;line-height:1.7}.review-author h4{color:var(--bleu-logo);margin-bottom:5px}.review-author span{color:var(--olive-logo);font-size:.9rem}.cta-center{text-align:center;padding:40px 0}.faq-list{max-width:900px;margin:40px auto 0;text-align:left}.faq-item{background:rgba(45,66,86,.03);border-left:5px solid var(--olive-logo);border-radius:10px;padding:25px 30px;margin-bottom:15px;cursor:pointer;transition:all .3s ease}.faq-item:hover{background:rgba(45,66,86,.06)}.faq-question{display:flex;justify-content:space-between;align-items:center;font-weight:700;color:var(--bleu-logo);font-size:1.05rem;background:0 0;border:none;cursor:pointer;width:100%;text-align:left;padding:0;font-family:inherit}.faq-question .faq-toggle{font-size:1.4rem;color:var(--olive-logo);transition:transform .3s ease;flex-shrink:0;margin-left:15px}.faq-item.open .faq-toggle{transform:rotate(45deg)}.faq-answer{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease;color:var(--text-muted);line-height:1.7}.faq-item.open .faq-answer{max-height:200px;padding-top:15px}.floating-insta{position:fixed;bottom:25px;right:25px;z-index:1500;width:60px;height:60px;border-radius:50%;box-shadow:0 4px 15px rgba(0,0,0,.3);transition:.3s}.floating-insta:hover{transform:scale(1.1)}.floating-insta img{width:100%;height:100%;border-radius:50%}footer{background:var(--bleu-logo);color:#fff;padding:50px 10% 30px}.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:40px;text-align:left}.footer-col h4{color:var(--olive-logo);font-size:1rem;margin-bottom:15px;text-transform:uppercase;letter-spacing:1px}.footer-col a{display:block;color:rgba(255,255,255,.75);text-decoration:none;margin-bottom:8px;font-size:.9rem;transition:.3s}.footer-col a:hover{color:var(--olive-logo)}.footer-bottom{margin-top:40px;padding-top:25px;border-top:1px solid rgba(255,255,255,.1);text-align:center;display:flex;justify-content:center;align-items:center;gap:20px;flex-wrap:wrap;font-size:.9rem}.footer-bottom a{color:var(--olive-logo);text-decoration:none;font-size:.85rem;transition:.3s}.footer-bottom a:hover{color:#fff}.burger-btn{display:none;background:0 0;border:none;cursor:pointer;padding:8px;z-index:1100;flex-direction:column;gap:5px}.burger-btn span{display:block;width:26px;height:3px;background-color:var(--bleu-logo);border-radius:3px;transition:all .3s ease}.burger-btn.active span:first-child{transform:rotate(45deg) translate(5px,6px)}.burger-btn.active span:nth-child(2){opacity:0}.burger-btn.active span:nth-child(3){transform:rotate(-45deg) translate(5px,-6px)}.v-group input.invalid,.v-group textarea.invalid{border-color:#e74c3c}.field-error{color:#e74c3c;font-size:.8rem;margin-top:4px;display:none}.field-error.visible{display:block}.btn-submit{width:100%;padding:18px;background:var(--olive-logo);color:#fff;border:none;border-radius:var(--radius-pill);font-weight:700;cursor:pointer;font-size:1.1rem;transition:.3s;box-shadow:0 4px 10px rgba(0,0,0,.2)}.btn-submit:hover:not(:disabled){background-color:var(--bleu-logo)}.btn-submit:disabled{opacity:.7;cursor:not-allowed}.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%) translateY(100px);padding:16px 30px;border-radius:var(--radius-sm);color:#fff;font-weight:600;font-size:.95rem;z-index:3000;opacity:0;transition:all .4s ease;box-shadow:0 8px 25px rgba(0,0,0,.25)}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.toast.success{background:#27ae60}.toast.error{background:#e74c3c}@media (max-width:768px){.hero-content h1{font-size:2rem}.hero-subtitle{font-size:1.1rem}.hero-cta{flex-direction:column;align-items:center}.hero-badges{gap:20px}h2{font-size:2rem}.why-choose-grid{grid-template-columns:1fr}.floating-insta{bottom:15px;right:15px;width:50px;height:50px}.burger-btn{display:flex}header{flex-wrap:wrap;padding:15px 5%}nav#mainNav{display:none;width:100%;padding-top:15px}nav#mainNav.open{display:block}nav#mainNav ul{flex-direction:column;gap:0;width:100%}nav#mainNav ul li{width:100%;border-top:1px solid rgba(45,66,86,.08)}nav#mainNav ul li a{display:block;padding:14px 10px;font-size:1rem}nav#mainNav ul li a.btn-devis{text-align:center;margin:10px 0;border-radius:var(--radius-pill)}table{font-size:.85rem}td,th{padding:12px 8px}.valoris-grid{flex-direction:column}.valoris-col{width:100%}}