:root { --black:#1f1f21; --deep:#141415; --panel:#29292c; --line:#4a4a4d; --white:#f7f7f5; --muted:#c4c4c4; --green:#c4d600; --red:#d70808; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--black); color:var(--white); font-family:Arial, Helvetica, sans-serif; line-height:1.5; }
a { color:inherit; text-decoration:none; }
.site-header { min-height:164px; display:flex; align-items:center; justify-content:space-between; gap:36px; padding:27px clamp(28px, 5vw, 76px); border-top:5px solid var(--green); border-bottom:1px solid #424245; background:#212123; }
.brand { display:block; width:145px; flex:0 0 auto; }
.brand img { display:block; width:100%; height:auto; }
.main-nav { display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:center; gap:7px 15px; text-transform:uppercase; font-size:.78rem; font-weight:800; letter-spacing:.025em; }
.main-nav a { padding:13px 10px; transition:background-color .2s ease, color .2s ease; }
.main-nav a:hover, .main-nav a:focus-visible, .main-nav .is-active { background:var(--red); color:#fff; outline:none; }
.home-hero { position:relative; min-height:490px; display:grid; grid-template-columns:minmax(0, 1.25fr) minmax(280px, .75fr); gap:clamp(24px, 4vw, 64px); align-items:stretch; overflow:hidden; padding:55px clamp(28px, 5vw, 76px); background:linear-gradient(90deg, rgba(0,0,0,.82), rgba(0,0,0,.22)), url('assets/images/home-hero.jpg') center/cover; }
.home-hero__veil { position:absolute; inset:0; background:linear-gradient(90deg, rgba(0,0,0,.63) 0%, transparent 67%); }
.home-hero__content { position:relative; z-index:1; width:min(850px, 100%); display:grid; align-content:center; }
.eyebrow { margin:0 0 9px; color:var(--green); text-transform:uppercase; font-size:.78rem; font-weight:800; letter-spacing:.12em; }
h1, h2, h3, p { margin-top:0; }
h1 { margin-bottom:12px; font-size:clamp(3.2rem, 7vw, 6.5rem); line-height:.88; letter-spacing:-.055em; }
h2 { margin-bottom:18px; font-size:clamp(2rem, 4vw, 3.55rem); line-height:1; letter-spacing:-.035em; }
.home-hero__intro { max-width:650px; margin-bottom:30px; font-size:clamp(1.05rem, 2vw, 1.5rem); font-weight:700; }
.hero-actions { display:flex; flex-wrap:wrap; gap:18px; }
.button { display:inline-flex; justify-content:center; align-items:center; min-height:53px; padding:12px 26px; border:2px solid transparent; text-transform:uppercase; font-size:.85rem; font-weight:800; letter-spacing:.035em; transition:transform .2s ease, background-color .2s ease, border-color .2s ease; }
.button:hover, .button:focus-visible { transform:translateY(-2px); outline:none; }
.button--red { background:var(--red); }
.button--outline { border-color:#fff; background:rgba(25,25,27,.35); }
.button--outline:hover, .button--outline:focus-visible { background:#fff; color:var(--black); }
.three-facets, .partners, .selection { width:100%; padding:clamp(2rem, 4.5vw, 4rem) clamp(1rem, 5vw, 6rem); }
.three-facets > *, .partners > *, .selection > * { width:100%; max-width:1180px; margin-inline:auto; }
.section-heading { max-width:800px; margin-bottom:27px; }
.section-heading h2 { margin-bottom:0; }
.three-facets .section-heading, .partners .section-heading, .selection .section-heading { display:grid; max-width:1180px; gap:.35rem; margin-bottom:1.5rem; }
.three-facets .section-heading h2, .partners .section-heading h2, .selection .section-heading h2 { max-width:760px; font-size:clamp(1.7rem, 3vw, 2.75rem); line-height:1.05; letter-spacing:.01em; text-transform:uppercase; }
.text-link { color:var(--green); text-decoration:underline; text-underline-offset:4px; font-size:.88rem; font-weight:800; }
.text-link:hover, .text-link:focus-visible { color:#fff; outline:none; }
.hero-panel { position:relative; z-index:1; isolation:isolate; overflow:hidden; display:grid; align-content:center; min-height:310px; padding:clamp(22px, 3vw, 32px); border-top:3px solid var(--green); border-bottom:1px solid var(--line); background:#29292c; }
.hero-panel::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(rgba(20,20,21,.76), rgba(20,20,21,.9)), var(--featured-image, url('assets/images/home-current.jpg')) center/cover; opacity:.9; transform:scale(1.02); transition:transform 1400ms cubic-bezier(.2,.7,0,1); }
.hero-panel:hover::after { transform:scale(1.07); }
.featured-link { display:block; color:inherit; text-decoration:none; }
.featured-link:focus-visible { outline:3px solid var(--green); outline-offset:5px; }
.panel-label { margin:0 0 8px; color:var(--green); text-transform:uppercase; font-size:.75rem; font-weight:800; letter-spacing:.12em; }
.hero-panel [data-featured].is-switching { animation:featured-fade 700ms cubic-bezier(.2,.7,0,1); }
@keyframes featured-fade { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:translateY(0); } }
.hero-panel h2 { margin:0 0 12px; font-size:clamp(1.55rem, 3vw, 2.25rem); line-height:1.08; }
.featured-image { display:block; width:100%; aspect-ratio:16 / 9; object-fit:cover; margin:0 0 16px; border:5px solid #454548; transition:opacity 450ms ease, transform 900ms cubic-bezier(.2,.7,0,1); }
.hero-panel [data-featured] p:not(.panel-label) { margin-bottom:19px; color:#e0e0e0; font-size:1rem; }
.hero-panel .button { min-height:40px; padding:9px 14px; border-color:var(--green); background:rgba(20,20,21,.72); font-size:.74rem; }
.hero-panel .button:hover, .hero-panel .button:focus-visible { background:var(--green); color:var(--deep); }
.hero-dots { display:flex; gap:7px; margin-top:18px; }
.hero-dots button { width:28px; height:4px; padding:0; border:0; background:rgba(255,255,255,.35); cursor:pointer; }
.hero-dots button.is-active, .hero-dots button:hover { background:var(--green); }
.video-dialog { width:min(92vw, 960px); padding:0; border:0; background:#080808; color:#fff; }
.video-dialog::backdrop { background:rgba(0,0,0,.82); }
.video-dialog-frame { aspect-ratio:16 / 9; }
.video-dialog-frame iframe { display:block; width:100%; height:100%; border:0; }
.video-dialog-close { position:absolute; z-index:1; top:-43px; right:0; width:34px; height:34px; border:1px solid #fff; background:#242427; color:#fff; font-size:1.6rem; line-height:1; cursor:pointer; }
.video-dialog-close:hover, .video-dialog-close:focus-visible { border-color:var(--green); background:var(--green); color:var(--deep); outline:none; }
.facets-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:1rem; }
.facet-card { display:grid; gap:.75rem; align-content:start; min-width:0; padding:1.25rem; overflow:hidden; border:1px solid #353535; background:#252326; transition:border-color .2s ease, transform .2s ease; }
.facet-card img { display:block; width:calc(100% + 2.5rem); aspect-ratio:3 / 2; margin:-1.25rem -1.25rem 0; object-fit:cover; border:1px solid var(--green); transition:transform .4s ease, filter .4s ease; }
.facet-card__body { display:grid; gap:.75rem; }
.facet-number { margin:0; color:var(--green); font-size:1.15rem; font-weight:850; line-height:1; }
.facet-card h3 { margin:0; color:#fff; font-size:1.45rem; line-height:1.1; text-transform:uppercase; }
.facet-card p { margin:0; color:#c8c8c8; font-size:1rem; line-height:1.5; }
.facet-link { color:var(--green); font-size:1rem; font-weight:800; text-decoration:underline; text-underline-offset:4px; }
.facet-card:hover, .facet-card:focus-visible { border-color:var(--green); transform:translateY(-2px); outline:none; }
.facet-card:hover img, .facet-card:focus-visible img { transform:scale(1.035); filter:brightness(1.06); }
.home-agenda { padding:clamp(2rem,4.5vw,4rem) clamp(1rem,5vw,6rem); border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--deep); }
.home-agenda__inner { width:100%; max-width:1180px; margin:0 auto; }
.home-agenda__heading { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:1.5rem; }
.home-agenda__heading h2 { margin:0; font-size:clamp(1.7rem,3vw,2.75rem); line-height:1.05; letter-spacing:.01em; text-transform:uppercase; }
.home-agenda__heading .button { flex:0 0 auto; }
.home-agenda__heading .button:hover,.home-agenda__heading .button:focus-visible { border-color:var(--red); background:var(--red); color:#fff; }
.home-agenda__layout { display:grid; grid-template-columns:minmax(0,1.75fr) minmax(290px,.75fr); gap:clamp(28px,4vw,52px); align-items:start; }
.home-concert-card { display:grid; grid-template-columns:minmax(210px,280px) 116px minmax(0,1fr); align-items:stretch; border:1px solid #3f3f42; background:#29292c; color:inherit; text-decoration:none; transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease; }
.home-concert-card > img { display:block; width:100%; height:100%; min-height:250px; object-fit:cover; border-right:1px solid var(--green); }
.home-concert-card__date { display:grid; align-content:start; justify-items:center; gap:8px; padding:24px 12px; background:#242427; color:var(--green); font-weight:900; text-align:center; }
.home-concert-card__date strong { font-size:2.35rem; line-height:.9; }
.home-concert-card__date span { font-size:.84rem; letter-spacing:.08em; line-height:1.55; }
.home-concert-card__content { display:grid; align-content:center; justify-items:start; padding:clamp(23px,3.2vw,42px); }
.home-concert-card__content .eyebrow { margin-bottom:11px; }
.home-concert-card h3 { margin:0 0 7px; color:#fff; font-size:clamp(1.35rem,2.3vw,2rem); line-height:1.1; }
.home-concert-card__content p:not(.eyebrow) { max-width:680px; margin:0 0 8px; color:#d2d2d4; line-height:1.47; }
.home-concert-card__content .home-concert-card__place { color:#0499ee; font-weight:700; }
.home-concert-card__content span { margin-top:14px; color:var(--green); font-size:1rem; font-weight:800; text-decoration:underline; text-underline-offset:4px; }
.home-concert-card:hover,.home-concert-card:focus-visible { border-color:var(--green); box-shadow:0 8px 18px rgba(0,0,0,.3); outline:none; transform:translateY(-2px); }
.home-concert-card:hover > img,.home-concert-card:focus-visible > img { filter:brightness(1.08); }
.newsletter-panel { padding-top:24px; border-top:3px solid var(--red); }
.newsletter-panel h3 { max-width:360px; margin:0 0 20px; color:#fff; font-size:clamp(1.6rem,2.7vw,2.35rem); line-height:1.05; }
.newsletter-form { display:grid; gap:12px; }
.newsletter-form label:not(.newsletter-consent) { display:grid; gap:5px; }
.newsletter-form label > span { color:#d4d4d6; font-size:.84rem; font-weight:700; }
.newsletter-form input[type="text"],.newsletter-form input[type="email"] { width:100%; min-height:44px; padding:9px 11px; border:1px solid #77777a; border-radius:0; background:#f3f3f3; color:#181819; font:inherit; }
.newsletter-form input:focus-visible { outline:3px solid var(--green); outline-offset:2px; }
.newsletter-consent { display:grid; grid-template-columns:auto 1fr; align-items:start; gap:9px; margin-top:4px; cursor:pointer; }
.newsletter-consent input { width:17px; height:17px; margin:2px 0 0; accent-color:var(--green); }
.newsletter-consent span { font-size:.82rem !important; font-weight:400 !important; line-height:1.4; }
.newsletter-legal { margin:0; color:#bfc0c2; font-size:.77rem; line-height:1.4; }
.newsletter-legal a { color:var(--green); text-decoration:underline; text-underline-offset:3px; }
.newsletter-form .button { justify-self:end; margin-top:4px; }
.newsletter-signup[hidden],.newsletter-confirmation[hidden] { display:none; }
.newsletter-confirmation { padding:22px; border:1px solid var(--green); background:#29292c; }
.newsletter-confirmation h4 { margin:0 0 9px; color:var(--green); font-size:1.35rem; }
.newsletter-confirmation p { margin:0; color:#e4e4e5; line-height:1.5; }
.partners { background:#242426; }
.partners .section-heading > p:not(.eyebrow) { max-width:760px; margin:0; color:#d1d1d3; font-size:1.05rem; font-weight:700; line-height:1.5; }
.partners__action { margin:1.5rem auto 0; }
.partners-grid { display:flex; flex-wrap:wrap; align-items:center; gap:18px; }
.partner-logo { width:210px; height:210px; display:grid; place-items:center; padding:9px; border:1px solid #515155; background:#080808; transition:transform .2s ease, border-color .2s ease, filter .2s ease; }
.partner-logo img { display:block; max-width:100%; max-height:100%; object-fit:contain; }
.partner-logo:hover, .partner-logo:focus-visible { border-color:var(--green); filter:brightness(1.16); transform:translateY(-2px); outline:none; }
.selection { background:#181819; }
.selection-layout { display:grid; grid-template-columns:minmax(280px, .95fr) minmax(0, 1.05fr); align-items:center; gap:1.5rem; }
.selection-video { position:relative; display:block; overflow:hidden; }
.selection-video { border:5px solid #353535; }
.selection-video img { display:block; width:100%; aspect-ratio:16 / 9; object-fit:cover; transition:transform .22s ease, filter .22s ease; }
.selection-video::after { position:absolute; inset:0; content:""; background:linear-gradient(0deg,rgba(0,0,0,.32),transparent 58%); pointer-events:none; }
.media-play { position:absolute; z-index:1; top:50%; left:50%; width:58px; height:40px; border-radius:10px; background:#f00; box-shadow:0 4px 12px rgba(0,0,0,.42); transform:translate(-50%,-50%); }
.media-play::after { position:absolute; top:10px; left:23px; width:0; height:0; border-top:10px solid transparent; border-bottom:10px solid transparent; border-left:15px solid #fff; content:""; }
.selection-video:hover img, .selection-video:focus-visible img { filter:brightness(.75); transform:scale(1.035); }
.selection-video:focus-visible { outline:3px solid var(--green); outline-offset:4px; }
.selection-content h3 { margin:0 0 .5rem; color:#fff; font-size:clamp(1.7rem, 4vw, 3rem); line-height:1; }
.selection-content p { max-width:760px; margin-bottom:30px; color:#efefef; font-size:1.05rem; font-weight:700; line-height:1.55; }
.selection-content .button { border-color:#fff; background:transparent; }
.selection-content .button:hover, .selection-content .button:focus-visible { border-color:var(--red); background:var(--red); color:#fff; }
.site-footer { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:28px clamp(28px, 5vw, 76px); border-top:1px solid #48484b; background:#171718; }
.footer-credit { margin:0; color:#999; font-size:.78rem !important; white-space:nowrap; transform:scale(.72); transform-origin:left center; }
.footer-credit a { color:#a7b108; font-weight:800; }
.site-footer nav { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:11px 22px; color:#a7b108; text-transform:uppercase; font-size:.72rem; font-weight:800; letter-spacing:.025em; }
.site-footer nav a:hover, .site-footer nav a:focus-visible { color:#fff; outline:none; }
.pending-page { min-height:calc(100vh - 220px); display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:80px clamp(28px, 12vw, 15%); background:linear-gradient(120deg, #111 0%, #242426 100%); }
.pending-page h1 { margin-bottom:18px; }
.pending-page > p:not(.eyebrow) { max-width:620px; margin-bottom:28px; color:var(--muted); font-size:clamp(1.05rem, 2vw, 1.35rem); }
.contact-hero { min-height:350px; display:grid; align-content:end; padding:clamp(55px,8vw,115px) clamp(28px,9vw,150px); border-bottom:1px solid #454548; background:linear-gradient(90deg,rgba(17,17,17,.74) 0%,rgba(26,26,28,.42) 70%,rgba(17,17,17,.25) 100%),url("assets/images/contact/contact-hero.jpg") center / cover; }
.contact-hero > div { width:100%; max-width:760px; }
.contact-hero h1 { margin:0 0 15px; text-transform:uppercase; }
.contact-hero > div > p:not(.eyebrow) { margin:0; color:#d4d4d6; font-size:clamp(1.08rem,2vw,1.45rem); font-weight:700; line-height:1.48; }
.contact-hero > div > p.hero-lead,.agenda-hero p.hero-lead,.partner-catalogue-hero > p.hero-lead { max-width:760px; margin:0; color:#f0f0f1; font-size:clamp(1.08rem,2vw,1.45rem); font-weight:800; line-height:1.35; }
.contact-hero > div > p.hero-description,.agenda-hero p.hero-description,.partner-catalogue-hero > p.hero-description { max-width:680px; margin:12px 0 0; color:#d4d4d6; font-size:1.05rem; font-weight:400; line-height:1.5; }
.contact-section { width:min(1180px,calc(100% - 2rem)); margin:0 auto; padding:clamp(44px,7vw,84px) 0; }
.contact-section--details { width:100%; padding:clamp(44px,7vw,84px) max(1rem,5vw); background:#242426; }
.contact-layout { width:100%; max-width:1180px; display:grid; grid-template-columns:minmax(0,1.35fr) minmax(270px,.65fr); gap:18px; margin:0 auto; }
.contact-card { padding:clamp(26px,4vw,48px); border:1px solid #454548; background:#29292c; }
.contact-card h2 { margin:0 0 18px; font-size:clamp(1.8rem,3.5vw,3rem); }
.contact-card > p:not(.eyebrow) { max-width:690px; margin-bottom:26px; color:#d8d8da; line-height:1.58; }
.contact-card--aside { border-top:3px solid var(--green); }
.contact-facts { display:grid; gap:15px; margin:0 0 28px; }
.contact-facts div { display:grid; grid-template-columns:130px 1fr; gap:16px; padding-bottom:14px; border-bottom:1px solid #46464a; }
.contact-facts dt { color:var(--green); font-size:.72rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.contact-facts dd { margin:0; color:#e6e6e7; }
.contact-facts a { color:#e6e6e7; text-decoration:underline; text-decoration-color:var(--green); text-underline-offset:4px; }
.contact-facts a:hover,.contact-facts a:focus-visible { color:var(--green); outline:none; }
.contact-actions { display:flex; flex-wrap:wrap; gap:12px; }
.contact-shortcuts { display:grid; gap:0; border-top:1px solid #4a4a4d; }
.contact-shortcuts a { padding:14px 0; border-bottom:1px solid #4a4a4d; color:var(--green); font-weight:800; text-decoration:underline; text-underline-offset:4px; }
.contact-shortcuts a:hover,.contact-shortcuts a:focus-visible { color:#fff; outline:none; }
.contact-section .section-heading > p:not(.eyebrow) { margin:0; color:#d4d4d6; font-size:1.05rem; font-weight:700; }
.contact-request-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.contact-request { display:flex; flex-direction:column; align-items:flex-start; min-height:265px; padding:28px; border:1px solid #454548; background:#29292c; }
.contact-request > span { color:var(--green); font-size:1.3rem; font-weight:900; }
.contact-request h3 { margin:24px 0 12px; color:#fff; font-size:1.45rem; line-height:1.1; text-transform:uppercase; }
.contact-request p { margin:0 0 22px; color:#d2d2d4; line-height:1.5; }
.contact-request .text-link { margin-top:auto; }
.contact-request:hover { border-color:var(--green); }
.contact-cta { padding:0 max(1rem,5vw) clamp(48px,7vw,84px); }
.contact-cta > div { width:100%; max-width:1180px; margin:0 auto; padding:clamp(28px,4vw,52px); border:1px solid #49494c; background:#29292c; }
.contact-cta h2 { margin-bottom:12px; font-size:clamp(1.7rem,3vw,2.75rem); line-height:1.05; }
.contact-cta > div > p:not(.eyebrow) { max-width:650px; margin-bottom:24px; color:#d4d4d5; font-size:1.08rem; font-weight:700; }
.agenda-hero { min-height:350px; display:grid; align-content:end; padding:clamp(55px,8vw,115px) clamp(28px,9vw,150px); border-bottom:1px solid #454548; background:linear-gradient(90deg,rgba(12,12,13,.88) 0%,rgba(12,12,13,.62) 48%,rgba(12,12,13,.18) 100%),url('assets/images/agenda-concerts-bandeau.jpg') center/cover; }
.agenda-hero > div { width:100%; max-width:760px; }
.agenda-hero h1 { margin:0; font-size:clamp(2.5rem,5.5vw,5.25rem); line-height:.9; letter-spacing:-.035em; text-transform:uppercase; }
.agenda-page { padding:clamp(3rem,7vw,6.5rem) clamp(1rem,5vw,6rem); background:#1f1f21; }
.agenda-page__inner { width:100%; max-width:1180px; margin:0 auto; }
.agenda-page__heading { margin-bottom:1.6rem; }
.agenda-page__heading h1 { margin:0; font-size:clamp(2.2rem,5vw,4.5rem); line-height:.95; letter-spacing:-.035em; text-transform:uppercase; }
.agenda-list { animation:agenda-list-in .28s ease both; }
.agenda-list[hidden] { display:none; }
.agenda-concert-card { width:100%; }
.agenda-concert-card + .agenda-concert-card { margin-top:16px; }
.agenda-list-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.agenda-list-actions button { min-height:48px; padding:10px 19px; border:2px solid #e5e5e6; background:transparent; color:#fff; cursor:pointer; font:inherit; font-size:.85rem; font-weight:800; letter-spacing:.02em; text-transform:uppercase; transition:background-color .2s ease,border-color .2s ease,transform .2s ease; }
.agenda-list-actions button:hover,.agenda-list-actions button:focus-visible { border-color:var(--red); background:var(--red); outline:none; transform:translateY(-2px); }
.agenda-empty { margin:0; padding:32px; border:1px solid #424246; background:#29292c; color:#c8c8ca; font-size:1rem; line-height:1.5; }
@keyframes agenda-list-in { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0, 0, 0, 0); white-space:nowrap; border:0; }
.partner-catalogue-hero { min-height:350px; display:grid; align-content:center; padding:clamp(55px, 8vw, 115px) clamp(28px, 9vw, 150px); border-bottom:1px solid #454548; background:linear-gradient(90deg, rgba(12,12,13,.88) 0%, rgba(12,12,13,.65) 46%, rgba(12,12,13,.2) 100%), url('assets/images/partenaires-bandeau.jpg') center/cover; }
.partner-catalogue-hero h1 { margin-bottom:16px; }
.partner-catalogue-hero > p:not(.eyebrow) { max-width:680px; margin-bottom:0; color:#d4d4d5; font-size:clamp(1.08rem, 2vw, 1.45rem); font-weight:700; }
.partner-catalogue { width:min(1180px, calc(100% - 2rem)); margin:0 auto; padding:clamp(38px, 6vw, 82px) 0; }
.catalogue-filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:25px; }
.catalogue-filters button { min-height:48px; padding:10px 19px; border:2px solid #e5e5e6; background:transparent; color:#fff; cursor:pointer; font:inherit; font-size:.85rem; font-weight:800; letter-spacing:.02em; text-transform:uppercase; transition:background-color .2s ease, border-color .2s ease, transform .2s ease; }
.catalogue-filters button:hover, .catalogue-filters button:focus-visible { border-color:var(--red); outline:none; transform:translateY(-2px); }
.catalogue-filters button.is-active { border-color:var(--red); background:var(--red); color:#fff; }
.partner-catalogue-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:16px; }
.partner-catalogue-card { display:flex; flex-direction:column; min-width:0; overflow:hidden; border:1px solid #414145; background:#29292c; transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease; }
.partner-catalogue-card[hidden] { display:none; }
.partner-catalogue-card__logo { display:grid; place-items:center; aspect-ratio:1 / 1; padding:14px; border-bottom:1px solid #515155; background:#080808; }
.partner-catalogue-card__logo img { display:block; width:100%; height:100%; object-fit:contain; transition:transform .22s ease, filter .22s ease; }
.partner-catalogue-card__body { display:flex; flex:1; flex-direction:column; align-items:flex-start; padding:18px 20px 20px; }
.partner-catalogue-card__body p { margin:0 0 8px; color:var(--green); font-size:.7rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.partner-catalogue-card__body h3 { margin:0 0 8px; color:#fff; font-size:1.15rem; line-height:1.1; text-transform:uppercase; }
.partner-catalogue-card__body .partner-pitch { margin:0; color:#d1d1d3; font-size:.82rem; font-weight:400; letter-spacing:0; line-height:1.42; text-transform:none; }
.partner-catalogue-card__body span { margin-top:auto; color:var(--green); font-size:.86rem; font-weight:800; text-decoration:underline; text-underline-offset:4px; }
.partner-catalogue-card:hover, .partner-catalogue-card:focus-visible { border-color:var(--green); box-shadow:0 8px 18px rgba(0,0,0,.32); outline:none; transform:translateY(-3px); }
.partner-catalogue-card:hover img, .partner-catalogue-card:focus-visible img { filter:brightness(1.15); transform:scale(1.035); }
.partner-cta { padding:0 clamp(1rem, 5vw, 6rem) clamp(3rem, 6vw, 5rem); background:#1f1f21; }
.partner-cta__inner { width:100%; max-width:1180px; margin:0 auto; padding:clamp(28px, 4vw, 52px); border:1px solid #49494c; background:#29292c; }
.partner-cta__inner h2 { margin-bottom:12px; font-size:clamp(1.7rem, 3vw, 2.75rem); line-height:1.05; letter-spacing:.01em; }
.partner-cta__inner > p:not(.eyebrow) { max-width:650px; margin-bottom:22px; color:#d4d4d5; font-size:1.08rem; font-weight:700; }
@media (max-width:850px) { .site-header { min-height:0; align-items:flex-start; } .main-nav { justify-content:flex-start; } .home-hero { grid-template-columns:1fr; } .facets-grid { grid-template-columns:1fr; } .facet-card { min-height:240px; } .selection-layout,.home-agenda__layout { grid-template-columns:1fr; } }
@media (max-width:620px) { .site-header { display:block; padding:21px 22px 13px; } .brand { width:118px; margin-bottom:16px; } .main-nav { gap:4px 2px; font-size:.66rem; } .main-nav a { padding:9px 7px; } .home-hero { min-height:0; padding:60px 22px 32px; background-position:62% center; } .home-hero__content { padding-bottom:32px; } .three-facets, .partners, .selection, .home-agenda, .agenda-page { padding:48px 22px; } .agenda-hero { min-height:440px; padding:55px 22px; background-image:linear-gradient(0deg,rgba(12,12,13,.88) 0%,rgba(12,12,13,.4) 100%),url('assets/images/agenda-concerts-bandeau-mobile.jpg'); background-position:center; } .agenda-hero h1 { font-size:clamp(2.2rem,11vw,3rem); overflow-wrap:anywhere; } .home-agenda__heading { display:grid; align-items:start; gap:20px; } .home-agenda__heading .button { justify-self:start; } .home-concert-card { grid-template-columns:1fr; } .home-concert-card > img { min-height:0; aspect-ratio:1 / 1; border-right:0; border-bottom:1px solid var(--green); } .home-concert-card__date { grid-template-columns:auto auto; align-items:center; justify-content:start; gap:16px; padding:15px 20px; text-align:left; } .home-concert-card__date span { line-height:1.2; } .home-concert-card__content { padding:26px 20px; } .newsletter-panel { padding-top:22px; } .newsletter-form .button { justify-self:stretch; } .partners-grid { gap:10px; } .partner-logo { width:calc(50% - 5px); height:auto; aspect-ratio:1 / 1; } .partner-catalogue-hero { min-height:440px; padding:55px 22px; background-image:linear-gradient(0deg, rgba(12,12,13,.88) 0%, rgba(12,12,13,.42) 100%), url('assets/images/partenaires-bandeau-mobile.jpg'); background-position:center; } .partner-catalogue-hero h1 { font-size:clamp(2rem, 11vw, 2.8rem); overflow-wrap:anywhere; } .partner-catalogue { width:calc(100% - 44px); } .partner-cta { padding:0 22px 48px; } .partner-cta__inner { padding:28px 22px; } .catalogue-filters { gap:6px; } .catalogue-filters button { min-height:44px; padding:8px 11px; font-size:.72rem; } .partner-catalogue-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; } .partner-catalogue-card__logo { padding:9px; } .partner-catalogue-card__body { padding:14px; } .partner-catalogue-card__body h3 { font-size:.98rem; } .site-footer { display:block; padding:24px 22px; } .footer-credit { margin-bottom:17px; white-space:normal; } .site-footer nav { justify-content:flex-start; } }
@media (prefers-reduced-motion:reduce) { *, *::before, *::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; } }
@media (max-width:850px) { .contact-layout,.contact-request-grid { grid-template-columns:1fr; } .contact-request { min-height:0; } }
@media (max-width:620px) { .contact-hero { min-height:360px; padding:55px 22px; } .contact-section { width:calc(100% - 44px); padding:48px 0; } .contact-section--details { width:100%; padding:48px 22px; } .contact-card { padding:28px 22px; } .contact-facts div { grid-template-columns:1fr; gap:4px; } .contact-actions { display:grid; } .contact-actions .button { width:100%; } .contact-request-grid { gap:10px; } .contact-request { padding:24px 20px; } .contact-cta { padding:0 22px 48px; } .contact-cta > div { padding:28px 22px; } }

/* Footer officiel partagé par toutes les pages JACP. */
.site-footer { display:flex; align-items:center; justify-content:space-between; gap:24px; width:100%; margin:0; padding:28px clamp(28px,5vw,76px); border-top:1px solid #48484b; background:#171718; color:#999; }
.footer-credit { display:block; margin:0; color:#999; font-size:.78rem !important; line-height:1.4; white-space:nowrap; transform:scale(.72); transform-origin:left center; }
.footer-credit a { color:#a7b108; font-weight:800; text-decoration:none; }
.footer-credit a:hover,.footer-credit a:focus-visible { color:#fff; outline:none; }
.site-footer nav,.footer-nav { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:11px 22px; text-align:right; }
.site-footer nav a,.footer-nav a,.footer-nav span { color:#a7b108; font-size:.72rem; font-weight:800; letter-spacing:.025em; text-decoration:none; text-transform:uppercase; }
.site-footer nav a:hover,.site-footer nav a:focus-visible,.footer-nav a:hover,.footer-nav a:focus-visible { color:#fff; outline:none; }
@media (max-width:620px) { .site-footer { display:block; padding:24px 22px; } .footer-credit { margin-bottom:17px; white-space:normal; } .site-footer nav,.footer-nav { justify-content:flex-start; text-align:left; } }
