:root{--red:#f00;--black:#000;--charcoal:#1a1a1a;--gray:#8a8a8a;--light:#f2f2f2;--white:#fff;--sans:'Montserrat',Arial,sans-serif;--display:Georgia,'Times New Roman',serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--white);color:var(--black);font-family:var(--sans);line-height:1.6}.skip-link{position:fixed;left:1rem;top:-5rem;background:#fff;padding:.75rem;z-index:20;color:#000}.skip-link:focus{top:1rem}.site-header{align-items:center;display:flex;justify-content:space-between;padding:1.35rem 5vw;position:relative;z-index:5}.logo{color:#000;font-size:1.65rem;font-weight:800;letter-spacing:-.1em;text-decoration:none}.logo-i,.logo-apostrophe{color:var(--red)}nav{align-items:center;display:flex;gap:2rem}nav a,footer a{color:var(--black);font-size:.8rem;font-weight:700;text-decoration:none}.menu-toggle{background:transparent;border:0;font:700 .8rem var(--sans);display:none}.button{background:var(--red);color:#fff;display:inline-block;font-size:.78rem;font-weight:700;padding:1rem 1.3rem;text-decoration:none}.button:hover,.button:focus{background:#c00}.button-small{padding:.75rem 1rem}.hero{background:var(--black);color:#fff;display:grid;grid-template-columns:1.25fr .75fr;min-height:72vh;padding:10vh 10vw;overflow:hidden}.eyebrow{color:var(--gray);font-size:.7rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;margin:0 0 1rem}.hero .eyebrow{color:#bbb}.hero h1,h2,h3{line-height:1.02;margin:0}.hero h1,h2{font-family:var(--display);font-weight:400;letter-spacing:-.06em}.hero h1{font-size:clamp(3.8rem,9vw,8.5rem)}em{font-style:italic}.lead{font-size:1rem;max-width:35rem;margin:2rem 0}.hero-mark{align-items:center;border:1px solid #333;border-radius:50%;color:var(--red);display:flex;height:min(32vw,26rem);justify-content:center;justify-self:end;margin-top:4rem;width:min(32vw,26rem)}.hero-mark span{font:italic 20rem/1 var(--display);transform:translateY(-1rem)}.section{padding:7.5rem 10vw}.section-intro{max-width:41rem}.section h2{font-size:clamp(2.7rem,6vw,5.6rem)}.section-intro>p:last-child{color:#444;max-width:34rem}.service-grid{border-top:1px solid #ddd;display:grid;grid-template-columns:repeat(4,1fr);margin-top:4rem}.service-grid article{border-right:1px solid #ddd;padding:1.4rem 1.2rem 1rem 0;margin-right:1.2rem}.service-grid article:last-child{border:0}.service-grid span{color:var(--red);font-size:.75rem;font-weight:700}.service-grid h3{font-size:1.15rem;margin-top:4rem}.service-grid p{color:#555;font-size:.82rem}.work{background:var(--light)}.section-heading{align-items:end;display:flex;justify-content:space-between}.section-heading>p{color:#555;font-size:.85rem;max-width:18rem}.filters{display:flex;flex-wrap:wrap;gap:.4rem;margin:3rem 0 1.5rem}.filters button{background:transparent;border:1px solid #bbb;border-radius:100px;color:#333;cursor:pointer;font:600 .72rem var(--sans);padding:.6rem .9rem}.filters button.active,.filters button:hover{background:#000;border-color:#000;color:#fff}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.empty-state{border:1px dashed #bbb;color:#555;grid-column:1/-1;margin:0;padding:2rem}.project-card{background:#fff}.project-card img{aspect-ratio:4/3;display:block;object-fit:cover;width:100%}.project-card div{padding:1rem}.project-card h3{font-size:1rem}.project-card p{font-size:.75rem;color:#666}.case-studies{background:var(--red);color:#fff}.case-studies .eyebrow{color:#fff}.case-copy{max-width:30rem}.agency{display:grid;grid-template-columns:1fr 1fr;gap:10vw}.agency>div:last-child{color:#444;max-width:35rem}.text-link{color:#000;font-size:.8rem;font-weight:700}.contact{background:#000;color:#fff;padding:7.5rem 10vw}.contact .eyebrow{color:#aaa}.contact h2{font-family:var(--display);font-size:clamp(3rem,7vw,6.5rem);font-weight:400;letter-spacing:-.06em}.contact-grid{border-top:1px solid #444;display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem;margin-top:4rem;padding-top:1.5rem}.contact a{color:#fff;display:block;font-size:.85rem;margin-bottom:.5rem}.contact-grid>a{font-size:1rem;font-weight:600}footer{align-items:center;display:flex;gap:2rem;justify-content:space-between;padding:2rem 5vw}footer p{color:#666;font-size:.7rem;margin:0}@media(max-width:760px){.site-header{padding:1.1rem 6vw}.menu-toggle{display:block}nav{background:#fff;box-shadow:0 8px 16px #0002;display:none;flex-direction:column;gap:1rem;left:0;padding:1.5rem 6vw;position:absolute;top:100%;width:100%;align-items:flex-start}nav.open{display:flex}.hero{display:block;padding:14vh 7vw 7vh;min-height:75vh}.hero-mark{height:12rem;margin:3rem 0 0 auto;width:12rem}.hero-mark span{font-size:9rem}.section,.contact{padding:5rem 7vw}.service-grid{grid-template-columns:1fr 1fr}.service-grid article:nth-child(2){border-right:0}.service-grid article:nth-child(n+3){border-top:1px solid #ddd}.service-grid h3{margin-top:2rem}.section-heading,.agency{display:block}.section-heading>p{margin-top:1.5rem}.project-grid{grid-template-columns:1fr}.contact-grid{grid-template-columns:1fr;border-top:0;margin-top:2.5rem}.contact-grid>*{border-top:1px solid #444;padding-top:1rem}footer{align-items:flex-start;flex-direction:column;gap:.6rem}.filters{margin-top:2rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Galeries événementielles */
.event-hero{min-height:48vh}.event-section h2,.day-heading{font-family:var(--display);font-size:clamp(2.2rem,4vw,3.5rem);margin:.6rem 0 2rem}.event-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:2rem}.event-card,.day-card{background:#fff;border:1px solid #ddd}.event-card>img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.event-card-body,.day-card{padding:1.4rem}.event-date,.event-organizer,.event-credit,.photo-credit{color:#666;font-size:.78rem}.event-title{font-family:var(--display);font-size:1.6rem;margin:.5rem 0}.event-title-large{font-family:var(--display);font-size:clamp(2.5rem,6vw,5rem);margin:1rem 0}.event-copy,.event-partner{color:#444;max-width:52rem}.event-status{color:#666;font-size:.85rem}.event-detail,.gallery-detail{max-width:1100px;margin:auto}.event-detail>.button{margin-top:1rem}.day-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.5rem 0 0}.day-title{font-size:1.3rem;margin:.6rem 0}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:2rem}.photo-card{margin:0;background:#fff;border:1px solid #ddd}.photo-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.photo-card figcaption{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.8rem;flex-wrap:wrap}.download-button{border:0;cursor:pointer;font-family:var(--sans)}.event-card .button,.day-card .button{margin-top:1rem}.event-detail>.text-link,.gallery-detail>.text-link{display:inline-block;margin-bottom:1rem}.event-promo .button{margin-top:1rem}
@media(max-width:760px){.event-grid,.day-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.event-hero{min-height:auto}}
@media(max-width:480px){.gallery-grid{grid-template-columns:1fr}.photo-card figcaption{align-items:flex-start}.event-card-body,.day-card{padding:1.1rem}}

/* Étude de cas Jinkasan */
.project-card{color:#111;text-decoration:none}
.project-card-link{display:inline-flex;align-items:center;gap:.35rem;margin-top:.4rem;color:#111;font-size:.74rem;font-weight:800}
.project-card:hover .project-card-link,.project-card:focus-visible .project-card-link{color:#c90000}
.case-link{margin-top:1.2rem}
.jinkasan-case{--case-orange:#e54a2f;--case-green:#31995d;--case-yellow:#f4c52f;--case-ink:#111;background:#fff;color:var(--case-ink)}
.case-hero{padding:clamp(3rem,7vw,6rem) clamp(1.4rem,10vw,9rem) clamp(3rem,6vw,5rem);background:#0b0b0b;color:#fff}
.case-back{display:inline-block;margin-bottom:3rem;color:#d5d5d5;font-size:.8rem;font-weight:700;text-decoration:none}
.case-back:hover,.case-back:focus-visible{color:#fff;text-decoration:underline}
.case-hero .eyebrow,.jinkasan-case .eyebrow{color:var(--case-orange)}
.case-hero h1{max-width:17ch;margin:.5rem 0 1.5rem;font-size:clamp(2.6rem,5.4vw,4.7rem);line-height:1.04;letter-spacing:-.055em;overflow-wrap:anywhere}
.case-intro{max-width:760px;color:#d5d5d5;font-size:clamp(1rem,1.5vw,1.18rem);line-height:1.8}
.case-meta{display:flex;flex-wrap:wrap;gap:1rem 3rem;margin-top:3rem;padding-top:1.3rem;border-top:1px solid #343434}
.case-meta span{display:grid;gap:.3rem;color:#aaa;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.case-meta strong{color:#fff;font-size:.83rem;letter-spacing:0;text-transform:none}
.case-results,.case-gallery,.case-videos,.case-team{padding:clamp(4rem,7vw,6rem) clamp(1.4rem,10vw,9rem)}
.case-results{background:#f3f1ee}
.case-section-heading{max-width:900px;margin:0 auto 2rem}
.case-section-heading h2,.case-about h2,.case-team h2,.case-cta h2{max-width:16ch;font-size:clamp(2.1rem,4.8vw,4rem);line-height:1.08}
.result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;max-width:1200px;margin:2rem auto 0}
.result-card{min-height:230px;padding:clamp(1.3rem,3vw,2rem);background:#fff;border:1px solid #dedbd7;border-top:3px solid var(--case-orange)}
.result-number{margin:0;color:#111;font-size:clamp(2rem,4vw,3.3rem);font-weight:800;letter-spacing:-.06em;line-height:1.05}
.result-number span{color:var(--case-orange)}
.result-card h3{margin:.9rem 0 .45rem;font-size:1rem;line-height:1.3}
.result-card>p:last-child{margin:.5rem 0 0;color:#565656;font-size:.82rem;line-height:1.7}
.result-card .eyebrow{margin:0 0 1.4rem;font-size:.65rem}
.result-context{background:#111;color:#fff;border-color:#333;border-top-color:var(--case-green)}
.result-context h3{color:#fff}
.result-context>p:last-child{color:#c5c5c5}
.case-about{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,8vw,8rem);padding:clamp(4rem,7vw,6rem) clamp(1.4rem,10vw,9rem);align-items:start}
.case-about-copy{max-width:620px;color:#444;line-height:1.8}
.case-about-copy p{margin-top:0}
.case-about-copy .text-link{display:inline-block;margin-top:.5rem}
.case-gallery{background:#101010;color:#fff}
.case-gallery .case-section-heading h2,.case-videos .case-section-heading h2{max-width:19ch}
.case-lead{max-width:620px;color:#c5c5c5;line-height:1.7}
.case-image-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;max-width:1400px;margin:2.5rem auto 0}
.case-image-grid figure{overflow:hidden;margin:0;background:#1c1c1c;border:1px solid #333;border-radius:3px}
.case-image-grid img{display:block;width:100%;aspect-ratio:1;object-fit:cover;background:#242424;transition:transform .25s}
.case-image-grid figure:hover img{transform:scale(1.025)}
.case-image-grid figcaption{min-height:62px;padding:.8rem;color:#ddd;font-size:.74rem;line-height:1.5}
.case-videos{background:#f3f1ee}
.case-videos .case-lead{color:#555}
.video-list{max-width:1000px;margin:2rem auto 0;border-top:1px solid #d5d2ce}
.video-list>a{display:grid;grid-template-columns:3rem 1fr auto;align-items:center;gap:1rem;min-height:82px;padding:1rem .5rem;border-bottom:1px solid #d5d2ce;color:#111;text-decoration:none;transition:padding .18s,background .18s}
.video-list>a:hover,.video-list>a:focus-visible{padding-right:1rem;padding-left:1rem;background:#fff}
.video-index{color:var(--case-orange);font-size:.7rem;font-weight:800;letter-spacing:.1em}
.video-list strong,.video-list small{display:block}
.video-list strong{font-size:.9rem;line-height:1.45}
.video-list small{margin-top:.2rem;color:#666;font-size:.74rem}
.video-arrow{color:#c93623;font-size:1.25rem;font-weight:700}
.external-note{max-width:1000px;margin:1rem auto 0;color:#666;font-size:.72rem;line-height:1.6}
.case-team{background:#fff}
.contribution-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;max-width:1200px;margin:2rem auto 0}
.contribution-grid article{padding:1.6rem 0;border-top:2px solid var(--case-orange)}
.contribution-grid article>span{color:var(--case-orange);font-size:.7rem;font-weight:800}
.contribution-grid h3{margin:.8rem 0;font-size:1.15rem}
.contribution-grid p{max-width:460px;color:#555;font-size:.85rem;line-height:1.75}
.case-cta{padding:clamp(4rem,8vw,7rem) clamp(1.4rem,10vw,9rem);background:#111;color:#fff}
.case-cta .eyebrow{color:#ff5b45}
.case-cta h2{margin-bottom:1.5rem}
.jinkasan-case footer{border-top:1px solid #e1dfdc}
@media(max-width:900px){.case-image-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.result-context{grid-column:1/-1;min-height:0}}
@media(max-width:760px){.case-hero{padding:2.5rem 7vw 3rem}.case-back{margin-bottom:2rem}.case-meta{gap:1rem 1.5rem}.case-results,.case-gallery,.case-videos,.case-team{padding:4rem 7vw}.result-grid{grid-template-columns:1fr}.result-context{grid-column:auto}.case-about{display:block;padding:4rem 7vw}.case-about-copy{margin-top:1.5rem}.case-image-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.case-image-grid figcaption{font-size:.7rem}.contribution-grid{grid-template-columns:1fr;gap:.5rem}.case-cta{padding:4rem 7vw}}
@media(max-width:460px){.case-image-grid{grid-template-columns:1fr}.case-image-grid img{aspect-ratio:4/3}.video-list>a{grid-template-columns:2rem 1fr auto;gap:.65rem;padding:.9rem .1rem}.video-list strong{font-size:.82rem}.case-meta span{min-width:42%}}

/* Parcours événement : événement > journée > galerie */
.event-hero{min-height:42vh;align-items:center;padding-top:7vh;padding-bottom:7vh}
.event-hero h1{font-size:clamp(3rem,7vw,6.5rem)}
.event-section{background:#f7f5f2}
.event-section h2{margin-bottom:1.2rem}
.event-grid{grid-template-columns:minmax(0,820px);gap:1.5rem;margin-top:2.5rem}
.event-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.9fr);overflow:hidden;border:0}
.event-card>img{height:100%;min-height:300px;aspect-ratio:auto;object-fit:cover}
.event-card-body{align-self:center;padding:clamp(1.4rem,4vw,3rem)}
.event-badge{background:#fff1ec;border:1px solid #e8b5a7;color:#7d2e1d;display:inline-flex;font-size:.72rem;font-weight:700;letter-spacing:.04em;padding:.45rem .65rem}
.event-meta{color:#555;font-size:.8rem;font-weight:700}
.day-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:2rem}
.day-card{border-top:3px solid var(--red);padding:1.5rem;display:flex;flex-direction:column;align-items:flex-start}
.day-card .button{margin-top:auto}
.day-number,.day-number-large{color:var(--red);font-size:.75rem;font-weight:800;letter-spacing:.15em}
.day-number-large{font-size:1rem}
.day-detail,.event-detail{max-width:1100px;margin:auto}
.day-description{color:#333;font-size:clamp(1.05rem,2vw,1.35rem);line-height:1.75;max-width:48rem}
.day-detail>.button{margin-top:1.5rem}
@media(max-width:760px){.event-grid,.day-grid{grid-template-columns:1fr}.event-card{grid-template-columns:1fr}.event-card>img{min-height:0;aspect-ratio:16/9}.event-hero{min-height:auto}}

.event-badge{margin:.35rem 0 1rem}.day-detail>.text-link{display:block;width:fit-content;margin-bottom:.75rem}

.event-badge{display:table}.event-detail>.text-link{display:block;width:fit-content;margin-bottom:.75rem}
/* Impul’s — parcours événements, inspiration TEDx Ouagadougou adaptée à la marque */
.events-shell{--red:#f00000;--ink:#111;--paper:#f4f3f1;--muted:#656565;--line:#dedbd7;background:var(--paper);color:var(--ink);font-family:'Montserrat',Arial,sans-serif}
.events-shell .site-header{position:sticky;top:0;z-index:20;min-height:76px;padding:.7rem clamp(1.1rem,5vw,4.5rem);background:#0b0b0b;color:#fff;border-bottom:1px solid #292929}
.events-shell .logo{display:flex;align-items:baseline;color:#fff;font-size:1.3rem;letter-spacing:-.08em;white-space:nowrap}
.events-shell .logo-i,.events-shell .logo-apostrophe{color:var(--red)}
.events-shell .brand-sub{margin-left:.65rem;color:#aaa;font-size:.55rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.events-shell .site-header nav{display:flex;align-items:center;gap:clamp(.75rem,2vw,2rem)}
.events-shell .site-header nav a{color:#eee;font-size:.75rem;font-weight:700;white-space:nowrap;border-bottom:2px solid transparent;padding:.45rem 0}
.events-shell .site-header nav a:hover,.events-shell .site-header nav a:focus-visible,.events-shell .site-header nav a[aria-current=page]{color:#fff;border-color:var(--red)}
.events-shell .site-header nav a.button{background:var(--red);border:0;border-radius:3px;color:#fff;padding:.7rem 1rem}
.events-shell .menu-toggle{display:none;color:#fff;background:transparent;border:1px solid #555;border-radius:3px;padding:.55rem .7rem;cursor:pointer}
.events-shell .button{background:var(--red);border:0;border-radius:3px;color:#fff;font-size:.82rem;font-weight:700;padding:.9rem 1.2rem;transition:background .18s,transform .18s}
.events-shell .button:hover,.events-shell .button:focus-visible{background:#c90000;transform:translateY(-1px)}
.events-shell .hero.event-hero{display:block;min-height:0;overflow:visible;background:#424344;color:#fff;text-align:center;padding:clamp(3.2rem,8vw,6rem) 1.2rem}
.events-shell .hero-inner{max-width:760px;margin:0 auto}
.events-shell .hero .eyebrow,.events-shell .eyebrow{color:var(--red);font-size:.7rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}
.events-shell .hero h1{max-width:14ch;margin:.6rem auto 1rem;font:700 clamp(2.25rem,5vw,4.25rem)/1.08 'Montserrat',Arial,sans-serif;letter-spacing:-.045em;overflow-wrap:anywhere}
.events-shell .hero h1 span{color:#fff}
.events-shell .lead{max-width:620px;margin:0 auto;color:#e4e4e4;font-size:clamp(.98rem,1.5vw,1.1rem);line-height:1.7}
.events-shell .hero-mark{display:none}
.events-shell .event-section{padding:clamp(3rem,6vw,5rem) clamp(1rem,5vw,4.5rem);background:#111;color:#fff}
.events-shell .section-heading{max-width:1240px;margin:0 auto 1.5rem;align-items:end}
.events-shell .section h2,.events-shell .day-heading{font:700 clamp(1.65rem,3vw,2.3rem)/1.15 'Montserrat',Arial,sans-serif;letter-spacing:-.035em}
.events-shell .section-note{max-width:300px;color:#aaa;font-size:.85rem}
.events-shell .event-grid{display:grid;grid-template-columns:minmax(0,1100px);justify-content:center;gap:1.5rem;max-width:1240px;margin:2rem auto 0}
.events-shell .event-card{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);overflow:hidden;background:#1c1c1c;border:1px solid #303030;border-radius:4px}
.events-shell .event-card>img{display:block;width:100%;height:100%;min-height:320px;aspect-ratio:auto;object-fit:cover}
.events-shell .event-card-body{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:clamp(1.5rem,4vw,3rem)}
.events-shell .event-badge{display:inline-block;margin:0 0 1rem;padding:.4rem .65rem;background:#351b1b;border:1px solid #773535;border-radius:2px;color:#ffd8d8;font-size:.68rem;font-weight:700}
.events-shell .event-date,.events-shell .event-organizer,.events-shell .event-credit,.events-shell .photo-credit{color:#aaa;font-size:.78rem}
.events-shell .event-title{margin:.45rem 0 .8rem;color:#fff;font:700 clamp(1.45rem,3vw,2.25rem)/1.16 'Montserrat',Arial,sans-serif;letter-spacing:-.035em;overflow-wrap:anywhere}
.events-shell .event-title-large{max-width:18ch;margin:.45rem 0 1rem;font:700 clamp(2rem,4.5vw,3.9rem)/1.1 'Montserrat',Arial,sans-serif;letter-spacing:-.04em;overflow-wrap:anywhere}
.events-shell .event-copy,.events-shell .event-partner{max-width:52rem;color:#4c4c4c;line-height:1.7}
.events-shell .event-card .event-copy{color:#d3d3d3}
.events-shell .event-meta{margin:.4rem 0 1.2rem;color:var(--red);font-size:.76rem;font-weight:800;letter-spacing:.04em}
.events-shell .event-card .button{margin-top:1.15rem}
.events-shell .event-detail,.events-shell .day-detail,.events-shell .gallery-detail{width:min(1180px,calc(100% - 2.5rem));max-width:none;margin:0 auto;padding:2rem 0 5rem}
.events-shell .breadcrumb{display:inline-block;margin:.15rem 0 1.25rem;color:#4a4a4a;font-size:.8rem;font-weight:700;text-decoration:none}
.events-shell .breadcrumb:hover,.events-shell .breadcrumb:focus-visible{color:var(--red);text-decoration:underline}
.events-shell .event-feature,.events-shell .day-feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.85fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:center;padding:clamp(1.5rem,4vw,3.5rem);background:#111;color:#fff;border-radius:4px}
.events-shell .event-feature-copy,.events-shell .day-feature-copy{min-width:0}
.events-shell .event-feature .event-copy,.events-shell .day-feature .day-description{color:#e2e2e2}
.events-shell .event-feature .event-availability{color:#c4c4c4;font-size:.8rem}
.events-shell .event-feature-image,.events-shell .day-feature-image{display:block;width:100%;max-height:460px;aspect-ratio:4/3;object-fit:cover;border-radius:3px}
.events-shell .event-program-heading{max-width:none;margin:3.5rem 0 0}
.events-shell .event-program-heading .eyebrow{margin-bottom:.6rem}
.events-shell .event-program-heading .event-copy{margin:.7rem 0 0}
.events-shell .day-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:1.5rem 0 0}
.events-shell .day-card{display:flex;flex-direction:column;align-items:flex-start;min-width:0;min-height:260px;padding:1.5rem;background:#fff;border:1px solid var(--line);border-top:3px solid var(--red);border-radius:3px}
.events-shell .day-number{color:var(--red);font-size:.72rem;font-weight:800;letter-spacing:.14em}
.events-shell .day-title{margin:.3rem 0 .55rem;font:700 clamp(1.1rem,2vw,1.4rem)/1.25 'Montserrat',Arial,sans-serif;letter-spacing:-.02em;overflow-wrap:anywhere}
.events-shell .day-card .event-copy{flex:1;margin:.45rem 0 1.15rem;font-size:.88rem}
.events-shell .day-card-link{margin-top:auto;color:#151515;font-size:.8rem;font-weight:800;text-decoration:none}
.events-shell .day-card-link::after{content:' ↗';color:var(--red)}
.events-shell .day-card-link:hover,.events-shell .day-card-link:focus-visible{color:var(--red)}
.events-shell .day-feature{grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);margin-bottom:2.5rem}
.events-shell .day-feature .event-title-large{max-width:15ch}
.events-shell .day-feature .day-description{max-width:54ch;font-size:clamp(1rem,1.6vw,1.15rem)}
.events-shell .day-feature .event-meta{color:#d6d6d6}
.events-shell .day-feature .event-meta::before{content:'';display:inline-block;width:1.2rem;height:2px;margin:0 .55rem .22rem 0;background:var(--red)}
.events-shell .day-nav{display:flex;flex-wrap:wrap;gap:.65rem;margin:1rem 0 0}
.events-shell .day-nav-link{display:inline-flex;min-height:44px;min-width:84px;align-items:center;justify-content:center;padding:.65rem .9rem;border:1px solid #ccc;border-radius:3px;color:#222;font-size:.78rem;font-weight:700;text-decoration:none}
.events-shell .day-nav-link:hover,.events-shell .day-nav-link:focus-visible,.events-shell .day-nav-link.is-current{background:#111;border-color:#111;color:#fff}
.events-shell .day-nav-link.is-current{box-shadow:inset 0 -3px var(--red)}
.events-shell .gallery-heading{margin:0 0 2rem;padding:clamp(1.5rem,4vw,3rem);background:#111;color:#fff;border-radius:4px}
.events-shell .gallery-heading .event-title-large{margin:.4rem 0;font-size:clamp(1.9rem,4vw,3.2rem)}
.events-shell .gallery-heading .eyebrow{color:#ddd}
.events-shell .gallery-heading .event-meta{margin:0;color:#ccc}
.events-shell .gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.5rem}
.events-shell .photo-card{overflow:hidden;margin:0;background:#fff;border:1px solid var(--line);border-radius:3px}
.events-shell .photo-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.events-shell .photo-card figcaption{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:1rem}
.events-shell .photo-card .download-button{cursor:pointer}
.events-shell .text-link{color:#171717}
.events-shell .empty-state{max-width:1100px;margin:1rem auto;padding:1.4rem;background:#fff;border:1px solid var(--line);border-left:3px solid var(--red);color:#444}
.events-shell .event-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.5rem clamp(1.1rem,5vw,4.5rem);background:#0b0b0b;color:#aaa}
.events-shell .event-footer .logo{color:#fff}
.events-shell .event-footer p{margin:0;font-size:.72rem}
.events-shell .event-footer>a:last-child{color:#fff;font-size:.78rem;font-weight:700}
.events-shell a:focus-visible,.events-shell button:focus-visible{outline:3px solid #f00000;outline-offset:3px}
@media(max-width:900px){.events-shell .site-header nav{gap:.8rem}.events-shell .site-header nav a{font-size:.68rem}.events-shell .brand-sub{display:none}.events-shell .event-card{grid-template-columns:1fr 1fr}}
@media(max-width:760px){
 .events-shell .site-header{min-height:68px;padding:.65rem 1rem}
 .events-shell .brand-sub{display:inline}
 .events-shell .menu-toggle{display:inline-flex;align-items:center;gap:.5rem}
 .events-shell .site-header nav{display:none;position:absolute;top:100%;left:0;right:0;align-items:stretch;gap:.1rem;padding:.6rem 1rem 1rem;background:#101010;border-top:1px solid #333;box-shadow:0 12px 20px #0003}
 .events-shell .site-header nav.open{display:flex;flex-direction:column}
 .events-shell .site-header nav a{padding:.8rem .5rem;font-size:.83rem}
 .events-shell .site-header nav a.button{align-self:flex-start;margin-top:.4rem;padding:.7rem 1rem}
 .events-shell .hero.event-hero{padding:3.5rem 1rem}
 .events-shell .hero h1{max-width:15ch;font-size:clamp(2rem,8vw,3.2rem)}
 .events-shell .event-section{padding:3rem 1rem}
 .events-shell .section-heading{display:block}
 .events-shell .section-note{margin:.65rem 0 0}
 .events-shell .event-card,.events-shell .event-feature,.events-shell .day-feature{grid-template-columns:1fr}
 .events-shell .event-card>img{min-height:0;aspect-ratio:16/9}
 .events-shell .event-card-body{padding:1.35rem}
 .events-shell .event-detail,.events-shell .day-detail,.events-shell .gallery-detail{width:calc(100% - 2rem);padding-top:1.1rem}
 .events-shell .event-feature,.events-shell .day-feature{gap:1.2rem;padding:1.25rem}
 .events-shell .event-feature-image,.events-shell .day-feature-image{max-height:none;aspect-ratio:16/10}
 .events-shell .day-grid{grid-template-columns:1fr}
 .events-shell .day-card{min-height:0}
 .events-shell .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .events-shell .event-footer{align-items:flex-start;flex-direction:column;gap:.55rem}
}
@media(max-width:460px){.events-shell .gallery-grid{grid-template-columns:1fr}.events-shell .event-title-large{font-size:clamp(1.8rem,8vw,2.6rem)}}
@media(prefers-reduced-motion:reduce){.events-shell *{scroll-behavior:auto;transition:none!important}}

/* Identité commune Impul’s — accueil, portfolio et futurs projets */
:root{--red:#f00000;--black:#0b0b0b;--charcoal:#171717;--gray:#777;--light:#f2f1ef;--white:#fff;--line:#dedbd7;--focus:#ff4b4b;--sans:'Montserrat',Arial,sans-serif;--display:Georgia,'Times New Roman',serif}
html{scroll-padding-top:5.5rem}
body{background:#fff;color:#111}
.site-header{position:sticky;top:0;min-height:76px;padding:.7rem clamp(1.1rem,5vw,4.5rem);background:#0b0b0b;color:#fff;border-bottom:1px solid #292929}
.site-header .logo{color:#fff;font-size:1.3rem;letter-spacing:-.08em;white-space:nowrap}
.site-header .menu-toggle{color:#fff;background:transparent;border:1px solid #555;border-radius:3px;padding:.55rem .7rem;cursor:pointer}
.site-header nav{gap:clamp(.75rem,2vw,2rem)}
.site-header nav a{color:#eee;font-size:.75rem;font-weight:700;white-space:nowrap;border-bottom:2px solid transparent;padding:.45rem 0}
.site-header nav a:hover,.site-header nav a:focus-visible{color:#fff;border-color:var(--red)}
.site-header nav a.button{background:var(--red);border:0;border-radius:3px;color:#fff;padding:.7rem 1rem}
.button{background:var(--red);border-radius:3px;transition:background .18s,transform .18s}
.button:hover,.button:focus-visible{background:#c90000;transform:translateY(-1px)}
.hero{min-height:0;min-height:clamp(520px,68vh,760px);align-items:center;gap:clamp(2rem,6vw,7rem);padding:clamp(4.5rem,9vh,7rem) clamp(1.4rem,10vw,9rem)}
.hero h1{max-width:10ch;font-size:clamp(3.4rem,7.4vw,6.4rem);line-height:.98;overflow-wrap:anywhere}
.hero .lead{max-width:34rem;color:#dedede;font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.75}
.hero-mark{position:relative;height:min(31vw,25rem);width:min(31vw,25rem);min-width:15rem;min-height:15rem;margin:0;border:1px solid #444;border-radius:3px;background:linear-gradient(145deg,#1c1c1c,#090909);color:var(--red)}
.hero-mark::before,.hero-mark::after{position:absolute;content:'';background:var(--red)}
.hero-mark::before{width:4px;height:72%;left:18%;top:14%}
.hero-mark::after{height:4px;width:64%;right:0;bottom:18%}
.hero-mark span{font-size:clamp(10rem,22vw,18rem);line-height:1;transform:translateY(-.05em)}
.section{scroll-margin-top:5rem;padding:clamp(4.5rem,8vw,7.5rem) clamp(1.4rem,10vw,9rem)}
.section h2{font-size:clamp(2.3rem,5vw,4.8rem);line-height:1.08;letter-spacing:-.045em;overflow-wrap:anywhere}
.section-intro>p:last-child,.section-heading>p{line-height:1.75}
.service-grid{border-color:#d6d3cf}
.service-grid article{border-color:#d6d3cf}
.service-grid h3{line-height:1.2}
.work{background:#f2f1ef}
.filters button{min-height:42px;transition:background .18s,border-color .18s,color .18s}
.filters button.active,.filters button:hover,.filters button:focus-visible{background:#111;border-color:#111;color:#fff;box-shadow:inset 0 -3px var(--red)}
.project-grid{gap:1.25rem}
.project-card{overflow:hidden;border:1px solid #dedbd7;border-radius:3px;transition:transform .2s,box-shadow .2s,border-color .2s}
.project-card:hover{transform:translateY(-3px);border-color:#bdb9b5;box-shadow:0 12px 28px #00000012}
.project-card img{background:#e8e6e3}
.project-card div{padding:1.2rem}
.project-card div>p:first-child{margin:0 0 .5rem;color:#d00000;font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.project-card h3{line-height:1.25}
.empty-state{border-color:#c9c5c1;border-left:3px solid var(--red);background:#fff}
.case-studies{background:#c90000}
.case-studies h2{max-width:13ch}
.agency{gap:clamp(2rem,8vw,8rem)}
.agency h2{max-width:13ch}
.contact{scroll-margin-top:5rem;padding:clamp(4.5rem,8vw,7.5rem) clamp(1.4rem,10vw,9rem)}
.contact h2{font-size:clamp(3rem,6vw,5.8rem);line-height:1.02;overflow-wrap:anywhere}
.contact a:hover,.contact a:focus-visible,footer a:hover,footer a:focus-visible{color:#ff5959}
body:not(.events-shell) footer{border-top:1px solid #e1dfdc}
body:not(.events-shell) footer .logo{color:#111}
body:not(.events-shell) footer .logo-i,body:not(.events-shell) footer .logo-apostrophe{color:var(--red)}
a:focus-visible,button:focus-visible{outline:3px solid #f00000;outline-offset:3px}
.events-shell .site-header{background:#0b0b0b}
@media(max-width:900px){.site-header nav{gap:.8rem}.site-header nav a{font-size:.68rem}}
@media(max-width:760px){
 .site-header{min-height:68px;padding:.65rem 1rem}
 .site-header .menu-toggle{display:inline-flex;align-items:center;gap:.5rem}
 .site-header nav{display:none;position:absolute;top:100%;left:0;right:0;align-items:stretch;gap:.1rem;padding:.6rem 1rem 1rem;background:#101010;border-top:1px solid #333;box-shadow:0 12px 20px #0003}
 .site-header nav.open{display:flex;flex-direction:column}
 .site-header nav a{padding:.8rem .5rem;font-size:.83rem}
 .site-header nav a.button{align-self:flex-start;margin-top:.4rem;padding:.7rem 1rem}
 .hero{display:block;min-height:0;padding:4.5rem 7vw 3.5rem}
 .hero h1{max-width:11ch;font-size:clamp(3.3rem,13vw,5.5rem)}
 .hero-mark{height:12rem;width:12rem;min-height:0;min-width:0;margin:2.5rem 0 0 auto}
 .hero-mark span{font-size:9rem}
 .section,.contact{padding:4.5rem 7vw}
 .section h2{font-size:clamp(2.2rem,9vw,3.7rem)}
}
@media(max-width:480px){
 .hero h1{font-size:clamp(3rem,14vw,4.2rem)}
 .service-grid{grid-template-columns:1fr}
 .service-grid article,.service-grid article:nth-child(2){margin:0;padding:1.1rem 0;border-right:0;border-bottom:1px solid #ddd}
 .service-grid article:last-child{border-bottom:0}
 .service-grid h3{margin-top:1.2rem}
 .contact-grid{gap:1.25rem}
}

/* Profils de l’équipe Impul’s */
.team-section{background:#101010;color:#fff}.team-intro{max-width:760px;margin-bottom:3rem}.team-intro>p:last-child{max-width:42rem;color:#c8c8c8;line-height:1.75}.team-intro h2{max-width:15ch}.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.team-card{display:grid;grid-template-columns:minmax(125px,.8fr) minmax(0,1.2fr);align-items:stretch;gap:clamp(1rem,2vw,1.6rem);min-width:0;overflow:hidden;background:#1a1a1a;border:1px solid #333;border-top:3px solid var(--red);border-radius:3px}.team-card>img{display:block;width:100%;height:100%;min-height:250px;aspect-ratio:4/5;object-fit:cover;object-position:center 34%;background:#252525}.team-copy{display:flex;flex-direction:column;justify-content:center;padding:1.25rem 1.25rem 1.25rem 0}.team-role{margin:0 0 .8rem;color:#ff4b4b;font-size:.66rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.team-copy h3{font-size:clamp(1.1rem,1.7vw,1.5rem);line-height:1.2;letter-spacing:-.025em}.team-copy>p:last-child{margin:.85rem 0 0;color:#c7c7c7;font-size:.82rem;line-height:1.7}.team-note{margin:1.4rem 0 0;color:#aaa;font-size:.78rem;line-height:1.7}.agency .text-link+.text-link{margin-left:1rem}@media(max-width:900px){.team-grid{grid-template-columns:1fr}.team-card{grid-template-columns:minmax(160px,.7fr) minmax(0,1.3fr)}.team-card>img{min-height:320px}}@media(max-width:480px){.team-card{grid-template-columns:minmax(105px,.72fr) minmax(0,1.28fr);gap:.9rem}.team-card>img{min-height:230px;aspect-ratio:3/4}.team-copy{padding:.9rem .9rem .9rem 0}.team-copy h3{font-size:1.05rem}.team-copy>p:last-child{font-size:.75rem}.agency .text-link+.text-link{margin:.9rem 0 0;display:block}}
