:root{--promo-h:46px}
.promo-bar{position:fixed;top:var(--nav-h);left:0;right:0;z-index:999;height:var(--promo-h);display:flex;align-items:center;justify-content:center;overflow:hidden;color:#fff;background:linear-gradient(100deg,var(--blue-dark),var(--blue) 45%,var(--blue-light));background-size:220% 100%;animation:promoShift 6s ease-in-out infinite;box-shadow:0 4px 16px rgba(13,71,161,.38);transition:top var(--transition),filter var(--transition)}
#navbar.shrunk ~ .promo-bar{top:58px}
.promo-inner{display:flex;align-items:center;gap:.65rem;padding:0 1rem;font-family:var(--font-body);font-size:.88rem;font-weight:500;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}
.promo-pill{background:#fff;color:var(--blue-dark);font-weight:800;font-size:.92rem;padding:3px 11px;border-radius:999px;animation:promoPulse 1.8s ease-out infinite}
.promo-em{font-weight:800;background:rgba(255,255,255,.22);padding:1px 7px;border-radius:4px;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px}
.promo-arrow{font-weight:700;transition:transform var(--transition)}
.promo-bar:hover{filter:brightness(1.06)}
.promo-bar:hover .promo-arrow{transform:translateX(4px)}
.promo-short{display:none}
@keyframes promoShift{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}
@keyframes promoPulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.6)}70%{box-shadow:0 0 0 9px rgba(255,255,255,0)}100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}}
@media(max-width:600px){.promo-full{display:none}.promo-short{display:inline}.promo-inner{font-size:.78rem;gap:.5rem}.promo-pill{font-size:.82rem;padding:2px 9px}}
@media(prefers-reduced-motion:reduce){.promo-bar,.promo-pill{animation:none}}
.page-hero{padding:calc(var(--nav-h) + var(--promo-h) + 3.5rem) 5vw 3rem;background:var(--dark-2);text-align:center}
[data-theme="dark"] .page-hero{background:#0A0F1E}
.page-hero .section-tag{color:var(--blue-light)}
.page-hero .section-title{color:#fff}
.page-hero p{color:rgba(255,255,255,0.6);font-size:1rem;max-width:560px;margin:0.5rem auto 0}
.filters-bar{position:sticky;top:var(--nav-h);z-index:100;background:var(--white);border-bottom:1px solid rgba(25,118,210,0.1);padding:1rem 5vw;display:flex;gap:0.6rem;flex-wrap:wrap;backdrop-filter:blur(8px)}
[data-theme="dark"] .filters-bar{background:rgba(15,23,42,0.97)}
.filter-btn{padding:7px 16px;border-radius:20px;border:1.5px solid rgba(25,118,210,0.2);font-size:0.78rem;font-weight:500;letter-spacing:0.04em;color:var(--mid);cursor:pointer;transition:all var(--transition);background:var(--white)}
[data-theme="dark"] .filter-btn{background:var(--dark-2);color:var(--mid)}
.filter-btn:hover,.filter-btn.active{background:var(--blue);color:#fff;border-color:var(--blue)}
.count-badge{font-size:0.68rem;background:rgba(255,255,255,0.25);border-radius:10px;padding:1px 6px;margin-left:3px}
.filter-btn:not(.active) .count-badge{background:rgba(25,118,210,0.1);color:var(--blue)}
.catalogue-section{padding:3rem 5vw 5rem;max-width:1400px;margin:0 auto}
.results-info{font-size:0.85rem;color:var(--grey);margin-bottom:1.5rem}
.products-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.product-card{background:var(--white);border-radius:var(--radius);overflow:hidden;border:1px solid rgba(25,118,210,0.08);transition:transform var(--transition),box-shadow var(--transition);display:flex;flex-direction:column}
.product-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.product-card.hidden{display:none}
.card-img-wrap{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--light-grey)}
.card-img-wrap img{width:100%;height:100%;object-fit:cover;transition:transform 0.5s cubic-bezier(0.4,0,0.2,1)}
.product-card:hover .card-img-wrap img{transform:scale(1.06)}
.card-cat-badge{position:absolute;top:10px;left:10px;background:rgba(25,118,210,0.9);color:#fff;font-size:0.65rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;padding:3px 10px;border-radius:2px}
.card-body{padding:1.25rem;display:flex;flex-direction:column;gap:0.75rem;flex:1}
.card-body h3{font-family:var(--font-display);font-size:1.3rem;font-weight:400;color:var(--dark);line-height:1.2}
.card-prix{font-size:1rem;font-weight:600;color:var(--blue)}
.card-prix.sur-devis{color:var(--grey);font-size:0.85rem;font-style:italic;font-weight:400}
.card-btn{margin-top:auto;display:block;padding:9px 18px;background:var(--blue);color:#fff;font-size:0.78rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;border-radius:2px;transition:background var(--transition);text-align:center}
.card-btn:hover{background:var(--blue-dark)}
@media(max-width:1024px){.products-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.products-grid{grid-template-columns:1fr}.filters-bar{gap:0.4rem}.filter-btn{font-size:0.72rem;padding:6px 12px}}
