:root{--tp-nav-h:64px;--tp-orange:#F36C21;--tp-ease:cubic-bezier(.25,.1,.25,1);--primary-color:var(--tp-orange);--secondary-color:#ff981a;--dark-color:#333;--light-color:#fff;--grey-bg:#f8f9fa;--text-color:#555;--heading-font:'Roboto',sans-serif;--body-font:'Open Sans',sans-serif;--border-radius:8px;--box-shadow:0 5px 20px rgba(0,0,0,.08);--transition-speed:.4s;--transition-easing:var(--tp-ease);--space-1:4px;--space-2:8px;--space-3:16px;--space-4:24px;--space-5:48px;--space-6:96px}html{scroll-behavior:smooth}body{margin:0;padding:0;font-family:var(--body-font);font-size:16px;line-height:1.6;color:var(--text-color);background-color:var(--light-color);overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--heading-font);font-weight:700;color:var(--dark-color);margin-block:0 var(--space-3)}a{color:var(--primary-color);text-decoration:none;transition:all .3s ease}a:hover{color:var(--secondary-color);text-decoration:none}img{max-width:100%;height:auto;display:block}.container{width:90%;max-width:100%;margin-inline:auto;padding-inline:15px}@media (min-width:1200px){.container{max-width:1140px}}section{padding-block:var(--space-6);overflow:hidden}.section-title{font-size:38px;text-align:center;margin-bottom:60px;position:relative;padding-bottom:20px;text-transform:uppercase;letter-spacing:1.5px;font-weight:700}.section-title::after{content:'';display:block;width:70px;height:4px;background:var(--primary-color);position:absolute;left:50%;bottom:0;transform:translateX(-50%);border-radius:2px}.cta-button{display:inline-block;font-family:var(--heading-font);font-size:16px;font-weight:700;padding:14px 35px;background-color:var(--primary-color);color:var(--light-color);border:2px solid var(--primary-color);border-radius:50px;text-decoration:none;text-transform:uppercase;letter-spacing:1px;transition:background-color var(--transition-speed) var(--transition-easing),color var(--transition-speed) var(--transition-easing),transform var(--transition-speed) var(--transition-easing),border-color var(--transition-speed) var(--transition-easing),box-shadow var(--transition-speed) var(--transition-easing);cursor:pointer;box-shadow:0 4px 10px rgba(0,0,0,.1)}.cta-button:hover{background-color:var(--secondary-color);border-color:var(--secondary-color);color:var(--light-color);text-decoration:none;transform:translateY(-4px) scale(1.02);box-shadow:0 8px 15px rgba(0,0,0,.15)}.cta-button:active{transform:translateY(2px);box-shadow:0 4px 10px rgba(0,0,0,.1)}#mainNav.sticky,.site-header{background-color:rgba(255,255,255,.95);padding:0;box-shadow:0 2px 10px rgba(0,0,0,.05);position:sticky;top:0;z-index:100;width:100%;height:var(--tp-nav-h);min-height:var(--tp-nav-h);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);will-change:transform}.site-header .container{display:flex;align-items:center;justify-content:space-between;height:100%}.hamburger-menu{display:none;flex-direction:column;cursor:pointer;width:24px;height:18px;justify-content:space-between}.hamburger-menu span{display:block;height:2px;width:100%;background-color:var(--dark-color);transition:all .3s var(--tp-ease)}.hamburger-menu.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.hamburger-menu.active span:nth-child(2){opacity:0}.hamburger-menu.active span:nth-child(3){transform:rotate(-45deg) translate(7px,-6px)}.logo{margin:0;display:flex;align-items:center}.logo a{display:inline-block;line-height:0}.logo img{max-height:60px;height:auto;width:auto;max-width:100%;vertical-align:middle;transition:transform .3s ease}.logo img:hover{transform:scale(1.05)}.main-nav ul{list-style:none;padding:0;margin:0;display:flex;align-items:center}.main-nav li{margin-left:30px}.main-nav a{font-family:var(--heading-font);font-size:15px;font-weight:500;color:var(--dark-color);text-transform:uppercase;letter-spacing:.5px;padding:8px 0;position:relative;transition:color .3s var(--tp-ease)}.main-nav a::after{content:'';position:absolute;width:0;height:2px;bottom:0;left:50%;background-color:var(--primary-color);transition:all .3s var(--tp-ease)}.main-nav a:hover,.main-nav a.active{color:var(--primary-color);font-weight:700}.main-nav a.active::after{width:100%;left:0}.hero-section{position:relative;min-height:80vh;background-size:cover;background-position:center bottom;background-repeat:no-repeat;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--light-color);padding:150px 0;overflow:hidden}@media (max-width:768px){.hero-section{background-position:center 70%;min-height:70vh}}.hero-section::before{content:'';position:absolute;inset:0;background:linear-gradient(rgba(0,0,0,.35),rgba(0,0,0,.45));z-index:1}@media (max-width:576px){.hero-section::before{background:linear-gradient(rgba(0,0,0,.25),rgba(0,0,0,.35))}}.hero-content{position:relative;z-index:2;max-width:850px;animation:fadeInUp 1s var(--transition-easing) both}.hero-title{font-size:58px;font-weight:700;margin-bottom:25px;text-transform:uppercase;color:var(--light-color);letter-spacing:2px;text-shadow:0 3px 8px rgba(0,0,0,.6),0 1px 3px rgba(0,0,0,.8);line-height:1.2;max-width:60ch;margin-left:auto;margin-right:auto;background:none!important}.hero-tagline{font-size:26px;font-weight:400;margin-bottom:45px;color:rgba(255,255,255,.95);text-shadow:0 2px 6px rgba(0,0,0,.5),0 1px 2px rgba(0,0,0,.7)}.hero-cta{font-size:18px}.services-section{background-color:#fff}.service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:45px}@media (min-width:992px){.service-grid{grid-template-columns:repeat(3,1fr)}}.service-card{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:100%;gap:16px;transition:transform .3s ease,box-shadow .3s ease;background-color:var(--light-color);border-radius:var(--border-radius);padding:40px 35px;box-shadow:var(--box-shadow);text-align:center}.service-card:hover{transform:translateY(-8px);box-shadow:0 12px 24px rgba(0,0,0,.15)}.service-icon{width:64px;height:64px;margin-bottom:20px;background-color:var(--primary-color);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--light-color);font-size:28px;font-weight:700;flex-shrink:0}.service-title{font-size:24px;margin-bottom:15px;color:var(--dark-color)}.service-description{font-size:16px;line-height:1.7;color:var(--text-color);overflow-wrap:break-word;word-wrap:break-word}.cta-section{position:relative;padding:120px 0;text-align:center;color:var(--light-color);background-size:cover;background-position:center;background-repeat:no-repeat;overflow:hidden}.cta-section::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(rgba(0,0,0,.6),rgba(0,0,0,.7));z-index:1}.cta-section .container{position:relative;z-index:2}.cta-section h2{font-size:42px;margin-bottom:25px;text-shadow:0 1px 3px rgba(0,0,0,.2)}.cta-section p{color:rgba(255,255,255,.95);margin-bottom:40px;max-width:750px;margin-left:auto;margin-right:auto;font-size:18px}.cta-section .cta-button{background-color:var(--light-color);color:var(--primary-color);border-color:var(--light-color);box-shadow:0 4px 10px rgba(0,0,0,.2)}.cta-section .cta-button:hover{background-color:var(--primary-color);color:var(--light-color);border-color:var(--primary-color);transform:translateY(-4px) scale(1.02)}.feature-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:35px;margin-top:50px}.feature-item{display:flex;align-items:flex-start;gap:20px;padding:25px;background-color:var(--light-color);border-radius:var(--border-radius);box-shadow:var(--box-shadow);transition:transform .3s ease,box-shadow .3s ease}.feature-item:hover{transform:translateY(-5px);box-shadow:0 8px 20px rgba(0,0,0,.12)}.feature-icon{font-size:32px;font-weight:bold;color:var(--primary-color);margin-top:0;flex-shrink:0;line-height:1}.feature-text-content{flex-grow:1}.feature-item h3{font-size:21px;margin-bottom:12px;color:var(--dark-color)}.feature-item p{font-size:15px;margin-bottom:0;overflow-wrap:break-word;word-wrap:break-word;color:var(--text-color)}.about-section{background-color:var(--grey-bg)}.about-content{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}.about-text{padding-right:20px}.about-text h3{font-size:28px;margin-bottom:20px;color:var(--dark-color)}.about-text p{font-size:17px;margin-bottom:20px;line-height:1.7;color:var(--text-color)}.testimonials h3{font-size:28px;margin-bottom:30px;color:var(--dark-color);text-align:center}.testimonial{background-color:var(--light-color);padding:30px;border-radius:var(--border-radius);box-shadow:var(--box-shadow);margin-bottom:25px;transition:transform .3s ease,box-shadow .3s ease}.testimonial:hover{transform:translateY(-3px);box-shadow:0 8px 20px rgba(0,0,0,.12)}.testimonial p{font-style:italic;font-size:17px;margin-bottom:15px;color:#666;line-height:1.6}.testimonial-author{display:block;font-weight:700;font-size:15px;color:var(--dark-color);text-align:right}.contact-section{background-color:var(--light-color)}.contact-content{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}.contact-form{background-color:var(--grey-bg);padding:40px;border-radius:var(--border-radius);box-shadow:var(--box-shadow)}.contact-form h3{font-size:28px;margin-bottom:25px;color:var(--dark-color)}.form-group{margin-bottom:25px}.form-group label{display:block;font-weight:600;margin-bottom:8px;color:var(--dark-color)}.form-group input,.form-group textarea{width:100%;padding:12px 15px;border:2px solid #e1e5e9;border-radius:var(--border-radius);font-size:16px;font-family:var(--body-font);transition:border-color .3s ease,box-shadow .3s ease}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(243,108,33,.1)}.form-group textarea{min-height:120px;resize:vertical}.contact-info{padding-left:20px}.contact-info h3{font-size:28px;margin-bottom:25px;color:var(--dark-color)}.contact-info-item{display:flex;align-items:flex-start;gap:15px;margin-bottom:25px;padding:20px;background-color:var(--grey-bg);border-radius:var(--border-radius);transition:transform .3s ease,box-shadow .3s ease}.contact-info-item:hover{transform:translateY(-3px);box-shadow:var(--box-shadow)}.contact-info-icon{font-size:24px;color:var(--primary-color);margin-top:2px;flex-shrink:0}.contact-info-text h4{font-size:18px;margin-bottom:5px;color:var(--dark-color)}.contact-info-text p{font-size:16px;color:var(--text-color);margin:0}.site-footer{background-color:var(--dark-color);color:var(--light-color);padding:40px 0;text-align:center}.footer-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px}.footer-content p{margin:0;font-size:14px}.footer-content a{color:var(--primary-color)}.social-links{display:flex;gap:15px}.social-links a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;background-color:var(--primary-color);color:var(--light-color);border-radius:50%;font-size:18px;font-weight:700;transition:all .3s ease}.social-links a:hover{background-color:var(--secondary-color);transform:translateY(-3px);box-shadow:0 5px 15px rgba(0,0,0,.2)}.realisations{padding:80px 0;background-color:var(--light-color)}.realisations .filters{display:flex;justify-content:center;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}.realisations .filters label{padding:0.6rem 1.2rem;background-color:var(--grey-bg);color:var(--text-color);border-radius:25px;cursor:pointer;transition:all .3s var(--tp-ease);font-weight:500;font-size:15px}.realisations .filters input:checked+label,.realisations .filters label:hover{background-color:var(--primary-color);color:var(--light-color)}.realisations .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;max-width:1200px;margin:0 auto}@media (min-width:1200px){.realisations .grid{grid-template-columns:repeat(4,1fr)}}@media (min-width:768px) and (max-width:1199px){.realisations .grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:767px){.realisations .grid{grid-template-columns:repeat(2,1fr);gap:12px}.realisations .card img{height:180px}.realisations .filters{flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.realisations .filters label{font-size:14px;padding:.4rem .8rem}}.realisations .card{background-color:var(--light-color);border-radius:12px;overflow:hidden;box-shadow:var(--box-shadow);transition:transform .4s var(--tp-ease),box-shadow .3s var(--tp-ease),opacity .4s var(--tp-ease);height:auto}.realisations .card:hover{transform:translateY(-8px);box-shadow:0 12px 24px rgba(0,0,0,.15)}.realisations .card figure{position:relative}.realisations .card figcaption{position:absolute;bottom:0;left:0;right:0;padding:12px 16px;background:linear-gradient(transparent,rgba(0,0,0,.8));color:var(--light-color);font-size:14px;font-weight:600;text-align:center;opacity:0;transition:opacity .3s var(--tp-ease);border-radius:0 0 12px 12px}.realisations .card:hover figcaption{opacity:1}.realisations .card img{width:100%;height:250px;object-fit:cover;border-radius:12px 12px 0 0;transition:transform .4s var(--tp-ease),filter .4s var(--tp-ease)}.realisations .card:hover img{transform:scale(1.05);filter:brightness(1.05) saturate(1.15)}[name="cat"]{display:none}@keyframes fadeInUp{from{opacity:0;transform:translate3d(0,40px,0)}to{opacity:1;transform:translate3d(0,0,0)}}.service-card,.feature-item,.about-content>*,.testimonial,.contact-info{animation:fadeInUp .8s var(--transition-easing) both;animation-timeline:view();animation-range:entry 5% cover 30%}@media (max-width:992px){.container{width:95%}.hero-title{font-size:46px}.hero-tagline{font-size:22px}.about-content{grid-template-columns:1fr;gap:40px}.contact-info-wrapper{padding:0 15px}}@media (max-width:768px){section{padding:80px 0}.section-title{font-size:32px;margin-bottom:50px}.site-header{height:var(--tp-nav-h);min-height:var(--tp-nav-h);padding:10px 0}.site-header .container{position:relative;display:flex;align-items:center;justify-content:center}.hamburger-menu{display:flex;position:absolute;left:15px;top:50%;transform:translateY(-50%)}.logo{margin:0;text-align:center;flex:1;display:flex;justify-content:center;align-items:center}.logo img{max-height:45px;margin:0 auto}.main-nav{position:fixed;top:var(--tp-nav-h);left:-100%;width:100%;height:calc(100vh - var(--tp-nav-h));background-color:rgba(255,255,255,.98);backdrop-filter:blur(10px);transition:left .3s var(--tp-ease);z-index:99;padding:20px 0}.main-nav.active{left:0}.main-nav ul{flex-direction:column;align-items:center;gap:20px;margin:0;padding:0;list-style:none}.main-nav li{margin:0;width:100%;text-align:center}.main-nav a{display:block;padding:15px 20px;font-size:18px;color:var(--dark-color);border-bottom:1px solid rgba(0,0,0,.1)}.hero-section{padding:120px 0;min-height:60vh}.hero-title{font-size:38px}.hero-tagline{font-size:20px}.partner-logos img{margin:10px 15px;height:45px}.footer-content{gap:15px}}@media (max-width:576px){body{font-size:15px}.section-title{font-size:28px}.service-grid{grid-template-columns:1fr;gap:20px}.service-card{padding:25px 20px;min-height:auto}.service-icon{width:48px;height:48px;margin-bottom:15px}.service-title{font-size:20px;margin-bottom:10px}.service-description{font-size:14px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.feature-list{grid-template-columns:1fr;gap:25px}.main-nav a{font-size:16px}.hero-title{font-size:32px}.hero-tagline{font-size:18px}.cta-section p{font-size:16px}.cta-button{padding:12px 30px;font-size:15px}.social-links a{width:32px;height:32px;line-height:32px;font-size:16px}}.partner-logos{text-align:center;padding:60px 0;background-color:var(--grey-bg)}.partner-logos h1{margin-bottom:50px}.partner-logos img{display:inline-block;margin:15px 25px;height:60px;width:auto;max-width:180px;object-fit:contain;filter:grayscale(100%) opacity(.7);transition:all .4s var(--tp-ease);border-radius:8px;padding:10px;background-color:var(--light-color);box-shadow:0 2px 8px rgba(0,0,0,.1)}.partner-logos img:hover{filter:grayscale(0%) opacity(1);transform:translateY(-5px) scale(1.05);box-shadow:0 8px 20px rgba(0,0,0,.15)}.cta-devis{background:linear-gradient(135deg,#434343 0%,#000000 100%);background-size:cover;background-position:center}.cta-devis::before{background:linear-gradient(rgba(0,0,0,.6),rgba(0,0,0,.7))}.cta-devis .section-title{color:var(--light-color);font-size:36px;margin-bottom:30px;text-shadow:0 2px 4px rgba(0,0,0,.3)}@media (max-width:768px){.partner-logos img{margin:10px 15px;height:45px;max-width:140px}.cta-devis .section-title{font-size:28px}}@media (max-width:576px){.partner-logos{padding:40px 0}.partner-logos img{margin:8px 10px;height:40px;max-width:120px}.cta-devis .section-title{font-size:24px}}.cta-projects{position:relative;padding:120px 0;text-align:center;color:var(--light-color);background-size:cover;background-position:center;background-repeat:no-repeat;overflow:hidden}.cta-projects::before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(rgba(0,0,0,.6),rgba(0,0,0,.7));z-index:1}.cta-projects .container{position:relative;z-index:2}.cta-projects .section-title{color:var(--light-color)!important;font-size:42px;margin-bottom:25px;text-shadow:0 2px 4px rgba(0,0,0,.3)}.cta-projects p{color:rgba(255,255,255,.95);margin-bottom:40px;max-width:750px;margin-left:auto;margin-right:auto;font-size:18px}.cta-projects .cta-button{background-color:var(--light-color);color:var(--primary-color);border-color:var(--light-color);box-shadow:0 4px 10px rgba(0,0,0,.2)}.cta-projects .cta-button:hover{background-color:var(--primary-color);color:var(--light-color);border-color:var(--primary-color);transform:translateY(-4px) scale(1.02)}@media (max-width:768px){.cta-projects .section-title{font-size:32px}.cta-projects p{font-size:16px}}@media (max-width:576px){.cta-projects .section-title{font-size:28px}}.contact-section{background-color:var(--light-color);padding:80px 0}.contact-content{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}.contact-form{background-color:var(--grey-bg);padding:40px;border-radius:var(--border-radius);box-shadow:var(--box-shadow)}.contact-form h3{font-size:28px;margin-bottom:25px;color:var(--dark-color)}.form-group{margin-bottom:25px}.form-group label{display:block;font-weight:600;margin-bottom:8px;color:var(--dark-color)}.form-group input,.form-group textarea{width:100%;padding:12px 15px;border:2px solid #e1e5e9;border-radius:var(--border-radius);font-size:16px;font-family:var(--body-font);transition:border-color .3s ease,box-shadow .3s ease}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(243,108,33,.1)}.form-group textarea{min-height:120px;resize:vertical}.contact-info{text-align:center;padding:40px;background-color:var(--grey-bg);border-radius:var(--border-radius);box-shadow:var(--box-shadow)}.contact-info h3{font-size:28px;margin-bottom:25px;color:var(--dark-color)}.contact-info p{font-size:16px;margin-bottom:20px;color:var(--text-color);line-height:1.6}.contact-info a{color:var(--primary-color);font-weight:600;text-decoration:none}.contact-info a:hover{color:var(--secondary-color);text-decoration:underline}.contact-cta-text{font-style:italic;background-color:var(--light-color);padding:20px;border-radius:var(--border-radius);border-left:4px solid var(--primary-color);margin-top:30px}@media (max-width:768px){.contact-content{grid-template-columns:1fr;gap:40px}.contact-info{padding:30px 20px}.contact-form{padding:30px 20px}}
