.projets-hero{background:var(--color-navy);padding:72px 0 64px;text-align:center}.projets-hero .container{max-width:760px}.projets-hero .section-label{color:var(--color-teal);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;display:block;margin-bottom:18px}.projets-hero h1{color:#fff;font-size:44px;font-weight:700;line-height:1.15;margin-bottom:24px}.projets-hero__intro{color:rgba(255,255,255,.85);font-size:18px;line-height:1.7;max-width:640px;margin:0 auto}.filter-section{background:#fff;padding:40px 0 0;border-bottom:1px solid #e8edf2}.filter-bar{max-width:1200px;margin:0 auto;padding:0 24px 24px;display:flex;align-items:flex-start;gap:32px;flex-wrap:wrap}.filter-bar__label{font-size:13px;font-weight:500;color:#555;text-transform:uppercase;letter-spacing:.08em;padding-top:28px;white-space:nowrap;flex-shrink:0}.filter-group{display:flex;flex-direction:column;gap:0}.filter-group__label{font-size:12px;font-weight:500;color:#888;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;display:block}.filter-group__buttons{display:flex;flex-wrap:wrap;gap:8px}.filter-btn{padding:8px 18px;border-radius:20px;border:1px solid #d0d7de;background:#fff;font-family:var(--font-family,'Inter',sans-serif);font-size:13px;font-weight:500;color:#555;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease;line-height:1}.filter-btn:hover:not(.is-active){background:#f4f6f7;border-color:#2e86c1;color:#2e86c1}.filter-btn.is-active{background:var(--color-navy);color:#fff;border-color:var(--color-navy)}.filter-bar__results{margin-left:auto;padding-top:28px;flex-shrink:0;align-self:flex-start}.results-count{font-size:13px;font-weight:400;color:#888;white-space:nowrap}.projects-section{background:#f4f6f7;padding:48px 0 88px}.projects-grid-wrapper{max-width:1200px;margin:0 auto;padding:0 24px}#projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.project-card{background:#fff;border-radius:8px;border:1px solid #e8edf2;box-shadow:0 2px 12px rgba(0,0,0,.06);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease}.project-card:hover{transform:translateY(-4px);box-shadow:0 8px 28px rgba(0,0,0,.11)}.card-top-bar{height:4px}[data-domain=eau-potable] .card-top-bar{background:var(--color-navy)}[data-domain=eaux-usees] .card-top-bar{background:#2e86c1}[data-domain=eaux-pluviales] .card-top-bar{background:var(--color-teal)}[data-domain=rivieres] .card-top-bar{background:#1a7a4a}[data-domain=reutilisation] .card-top-bar{background:#7d3c98}.card-body{padding:28px;flex:1;display:flex;flex-direction:column}.card-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.tag-domain,.tag-service{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;line-height:1.6}[data-domain=eau-potable] .tag-domain{background:var(--color-navy);color:#fff}[data-domain=eaux-usees] .tag-domain{background:#2e86c1;color:#fff}[data-domain=eaux-pluviales] .tag-domain{background:var(--color-teal);color:#fff}[data-domain=rivieres] .tag-domain{background:#1a7a4a;color:#fff}[data-domain=reutilisation] .tag-domain{background:#7d3c98;color:#fff}.tag-service{background:#f4f6f7;color:#555;border:1px solid #d0d7de;font-weight:500}.card-title{font-family:var(--font-family,'Inter',sans-serif);font-size:17px;font-weight:600;color:var(--color-navy);margin-bottom:10px;line-height:1.4}.card-client-row{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:16px}.card-meta-item{display:flex;align-items:center;gap:5px;font-size:13px;color:#888;line-height:1}.card-meta-item svg{width:14px;height:14px;stroke:var(--color-teal);fill:none;flex-shrink:0}.card-description{font-size:14px;color:#555;line-height:1.65;flex:1;margin:0}.card-footer{padding:16px 28px;border-top:1px solid #f0f0f0;background:#fafbfc;display:flex;justify-content:space-between;align-items:center;gap:12px}.card-footer__domain{font-size:12px;font-weight:500;line-height:1.3}[data-domain=eau-potable] .card-footer__domain{color:var(--color-navy)}[data-domain=eaux-usees] .card-footer__domain{color:#2e86c1}[data-domain=eaux-pluviales] .card-footer__domain{color:var(--color-teal)}[data-domain=rivieres] .card-footer__domain{color:#1a7a4a}[data-domain=reutilisation] .card-footer__domain{color:#7d3c98}.card-footer__ref{font-size:11px;color:#aaa;font-style:italic;white-space:nowrap}#empty-state{display:none;padding:80px 0;text-align:center}.empty-state__icon{width:48px;height:48px;stroke:#d0d7de;fill:none;margin:0 auto 20px;display:block}.empty-state h3{font-size:20px;font-weight:600;color:#555;margin-bottom:8px}.empty-state p{font-size:15px;color:#888;margin-bottom:24px}.btn-primary--sm{padding:10px 24px;font-size:14px}.projets-refs-section{background:#fff;padding:64px 0}.projets-refs-inner{max-width:900px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:60fr 40fr;gap:48px;align-items:start}.projets-refs-left h3{font-size:24px;font-weight:700;color:var(--color-navy);margin-bottom:20px;line-height:1.3}.projets-refs-left p{font-size:15px;color:#555;line-height:1.75;margin-bottom:16px}.projets-refs-left p:last-child{margin-bottom:0}.projets-refs-panel{background:#f4f6f7;border-radius:8px;padding:32px;border-left:4px solid var(--color-teal)}.projets-refs-panel__icon{width:28px;height:28px;stroke:var(--color-teal);fill:none;display:block;margin-bottom:16px}.projets-refs-panel__title{font-size:16px;font-weight:600;color:var(--color-navy);margin-bottom:8px;display:block}.projets-refs-panel__note{font-size:14px;color:#555;line-height:1.6}.projets-refs-panel .btn-primary{margin-top:20px;display:block;text-align:center}.projets-cta-section{background:var(--color-teal);padding:72px 0;text-align:center}.projets-cta-section h2{color:#fff;font-size:36px;font-weight:700;margin-bottom:20px}.projets-cta__text{color:rgba(255,255,255,.9);font-size:18px;max-width:560px;margin:0 auto 32px;line-height:1.65}@media (max-width:899px){#projects-grid{grid-template-columns:repeat(2,1fr);gap:24px}.projets-refs-inner{grid-template-columns:1fr;gap:32px}.filter-bar{gap:20px}.filter-bar__label{width:100%;padding-top:0}.filter-bar__results{margin-left:0;padding-top:0}}@media (max-width:599px){#projects-grid{grid-template-columns:1fr;gap:20px}.projets-hero h1{font-size:30px}.projets-hero__intro{font-size:16px}.projets-cta-section h2{font-size:26px}.filter-group{width:100%}.card-footer{flex-direction:column;align-items:flex-start;gap:6px}}