/* Léo Ispir — feuille de style du site
   Couleurs : rouille #9B4A2B, ivoire #EFE6D8. Polices : Syne (titres), Questrial (texte), Montserrat (petites infos). */

@font-face{font-family:Questrial;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/questrial-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Questrial;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/questrial-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Syne;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/syne-latin-ext-500-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Syne;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/syne-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Montserrat;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/montserrat-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Montserrat;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/montserrat-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/montserrat-latin-ext-500-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/montserrat-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --bg:#EFE9E1; --bg2:rgba(155,74,43,.14); --plate:#D9C0B2;
  --ink:#251E1A; --soft:#3E3530; --muted:#615650; --head:#65321F; --rule:#9B4A2B; --line:rgba(37,30,26,.14);
  --band:#9B4A2B; --band-ink:#EFE6D8; --foot:#512A1A; --foot-ink:#EDE4D6;
  --pad:clamp(20px,4.5vw,64px); --texture:url(../img/beton.webp?v=478387c8); --tx:1024px;
}
@media (max-width:760px){:root{--texture:url(../img/beton-mobile.webp?v=4b9fdd40);--tx:520px}}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:84px}
body{margin:0;background:var(--texture) 0 0/var(--tx) var(--tx),var(--bg);color:var(--ink);font-family:Questrial,system-ui,sans-serif;font-size:17px;line-height:1.5}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:6px}
:focus-visible{outline:2px solid currentColor;outline-offset:3px}
h1,h2,h3,p,figure,blockquote,ul{margin:0}
ul{padding:0;list-style:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.evitement{position:absolute;left:12px;top:-60px;z-index:60;padding:10px 16px;background:var(--ink);color:#fff}
.evitement:focus{top:12px}
.wrap{max-width:1312px;margin:0 auto;padding:0 var(--pad)}
.bande{background:var(--texture) 0 0/var(--tx) var(--tx),var(--band);color:var(--band-ink)}
.teinte{background:var(--bg2)}
.section{padding:clamp(72px,8vw,120px) 0}
.titre-page{font-family:Syne,sans-serif;font-weight:500;color:var(--head);font-size:clamp(48px,6vw,84px);line-height:1;letter-spacing:-.025em}
.titre-section{font-family:Syne,sans-serif;font-weight:500;color:var(--head);font-size:clamp(30px,3vw,40px);line-height:1.15;letter-spacing:-.015em}
.titre-section--petit{font-size:clamp(26px,2.4vw,32px)}
.lien{text-decoration:underline;text-decoration-color:var(--rule);text-decoration-thickness:1px;text-underline-offset:6px}
.lien-plus{display:inline-block;margin-top:20px;padding:12px 0;font-size:17px}
.info{font-family:Montserrat,sans-serif;font-size:14px;color:var(--muted)}

/* En-tête */
.entete__in{max-width:1440px;margin:0 auto;padding:10px var(--pad);display:flex;align-items:center;justify-content:space-between;gap:8px 40px;flex-wrap:wrap}
/* La barre reste en haut de l'écran pendant le défilement ; un dégradé apparaît derrière elle dès qu'on quitte le haut de page */
.entete{position:sticky;top:0;z-index:20;isolation:isolate;color:var(--ink);transition:color .25s ease}
.entete--accueil{position:fixed;left:0;right:0}
.entete::before{content:"";position:absolute;left:0;right:0;top:0;bottom:-28px;z-index:-1;pointer-events:none;opacity:0;transition:opacity .3s ease;
  background:linear-gradient(to bottom,#EFE9E1 0,rgba(239,233,225,.985) calc(100% - 28px),rgba(239,233,225,0) 100%)}
.entete--photo{color:var(--band-ink);text-shadow:0 1px 14px rgba(20,12,8,.45)}
.entete--photo::before{background:linear-gradient(to bottom,rgba(26,16,11,.66) 0,rgba(26,16,11,.46) calc(100% - 28px),rgba(26,16,11,0) 100%)}
.entete--defile::before{opacity:1}
.entete--ouvert{background:var(--texture) 0 0/var(--tx) var(--tx),var(--band);color:var(--band-ink);text-shadow:none}
.entete--ouvert::before{opacity:0}
.marque{display:inline-flex;align-items:center;min-height:56px;padding:4px 0;font-family:Syne,sans-serif;font-weight:500;font-size:27px;line-height:1;letter-spacing:-.015em;white-space:nowrap}
.marque:hover{text-decoration:none}
.nav ul{display:flex;flex-wrap:wrap;align-items:center;gap:0 28px;font-size:16px}
.nav a{display:inline-block;padding:12px 0}
.nav a[aria-current="page"]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:8px;text-decoration-color:var(--rule)}
.entete--photo .nav a[aria-current="page"],.entete--ouvert .nav a[aria-current="page"]{text-decoration-color:currentColor}
.entete__droite{display:flex;align-items:center;gap:4px}
.langues{display:flex;align-items:center;gap:4px;font-size:15px}
.langues a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
.langues a[aria-current="true"]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:7px;text-decoration-color:var(--rule)}
.entete--photo .langues a[aria-current="true"],.entete--ouvert .langues a[aria-current="true"]{text-decoration-color:currentColor}
.menu-bouton{display:none;width:48px;height:48px;align-items:center;justify-content:center;background:transparent;border:0;color:inherit;cursor:pointer}
@media (max-width:860px){
  .entete__in{padding-top:4px;padding-bottom:4px}
  .marque{font-size:23px;min-height:48px}
  .menu-bouton{display:inline-flex}
  .nav{order:3;flex-basis:100%;display:none;padding:4px 0 16px}
  .nav.ouvert{display:block}
  .nav ul{flex-direction:column;align-items:flex-start;font-size:20px}
  .nav a{padding:10px 0}
}

/* Accueil */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;background:#2e2219;color:var(--band-ink)}
.hero__fond{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 56%}
.hero__voile{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(26,16,11,.5) 0,rgba(26,16,11,0) 150px),linear-gradient(to top,rgba(26,16,11,.62) 0%,rgba(26,16,11,.22) 34%,rgba(26,16,11,0) 58%),linear-gradient(to left,rgba(26,16,11,.55) 0%,rgba(26,16,11,.22) 40%,rgba(26,16,11,0) 62%)}
.hero__in{position:relative;width:100%;max-width:1312px;margin:0 auto;padding:0 var(--pad) clamp(44px,8vh,96px)}
.hero__texte{margin-left:52%}
.hero h1{white-space:nowrap}
.hero h1{font-family:Syne,sans-serif;font-weight:500;font-size:clamp(56px,7.4vw,108px);line-height:1;letter-spacing:-.025em;text-shadow:0 1px 28px rgba(20,12,8,.35)}
.hero__metier{margin-top:18px;font-size:clamp(22px,2vw,28px);text-shadow:0 1px 18px rgba(20,12,8,.4)}
@media (max-width:760px){.hero__texte{margin-left:0}.hero__fond{object-position:40% 50%}.hero__in{padding-bottom:max(44px,calc(env(safe-area-inset-bottom) + 28px))}.hero__voile{background:linear-gradient(to bottom,rgba(26,16,11,.5) 0,rgba(26,16,11,0) 120px),linear-gradient(to top,rgba(26,16,11,.72) 0%,rgba(26,16,11,.3) 30%,rgba(26,16,11,0) 52%)}}

.presse__liste{margin-top:44px;display:flex;flex-wrap:wrap;gap:48px 64px}
.presse__liste figure{flex:1 1 300px;min-width:0}
.presse__liste blockquote{font-size:clamp(22px,2vw,26px);line-height:1.4}
.presse__liste figcaption{margin-top:16px}

.duo{display:flex;flex-wrap:wrap;align-items:center;gap:56px 96px}
.duo__photo{flex:1 1 360px;width:100%;max-width:460px;min-width:0;aspect-ratio:4/5;object-fit:cover}
.duo__texte{flex:1 1 520px;min-width:0;max-width:640px}
.duo__texte p{margin-top:18px;font-size:18px;line-height:1.75;color:var(--soft)}
.duo__texte h2+p{margin-top:28px}

.concerts{margin-top:40px;border-bottom:1px solid var(--line)}
.concert{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px 40px;padding:26px 0;border-top:1px solid var(--line)}
.concert__date{flex:0 0 210px}
.concert__titre{flex:1 1 260px;min-width:0}
.concert__prog{flex:1 1 300px;min-width:0;font-size:16px;line-height:1.6;color:var(--soft)}
.concert__date p:first-child,.concert__titre p:first-child{font-size:20px}
.concert__date .info,.concert__titre .info{margin-top:4px}
.concert--passe .concert__date p:first-child{color:var(--soft)}
.concert__billets{display:inline-block;margin-top:6px;padding:6px 0}
.vide{font-size:20px;color:var(--soft)}

.videos__entete{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 40px}
.videos__actions{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 28px;font-size:17px}
.bouton-texte{min-height:44px;padding:0;background:transparent;border:0;color:var(--ink);font:inherit;cursor:pointer}
.defile{margin-top:40px;padding-left:var(--pad);overflow:hidden}
.defile__piste{display:flex;width:max-content;animation:defile 70s linear infinite}
.defile.pause .defile__piste,.defile:hover .defile__piste,.defile:focus-within .defile__piste{animation-play-state:paused}
@keyframes defile{to{transform:translateX(-50%)}}
.defile .video{width:400px;margin-right:32px;flex:0 0 auto}
@media (max-width:640px){.defile .video{width:280px;margin-right:20px}}
@media (prefers-reduced-motion:reduce){.defile{overflow-x:auto}.defile__piste{animation:none}.defile [data-copie]{display:none}}
.video{display:flex;flex-direction:column;gap:16px;padding:0;background:transparent;border:0;color:inherit;font:inherit;text-align:left;cursor:pointer}
.video__vignette{position:relative;width:100%;aspect-ratio:16/9;background:var(--plate);display:flex;align-items:center;justify-content:center;color:var(--ink);overflow:hidden;transition:background-color .2s}
.video__vignette img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.video:hover .video__vignette img{transform:scale(1.03)}
.video__lecture{position:relative;width:56px;height:56px;border-radius:50%;background:rgba(239,230,216,.92);color:var(--head);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 12px rgba(20,15,12,.25)}
.video__vignette:not(.avec-image) .video__lecture{background:transparent;box-shadow:none;color:var(--ink)}
.video:hover .video__vignette{background:#cfb3a3}
.video__titre{font-size:18px;line-height:1.4}
.video .info{margin-top:6px}
.grille-videos{margin-top:32px;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));gap:44px 32px}
.note-videos{margin-top:28px}

.disque{margin-top:36px;display:flex;gap:24px;align-items:flex-start}
.disque+.disque{margin-top:32px}
.onglets--disque{margin-top:24px}
.onglets--disque+div .disque:first-child,[role=tabpanel]>.disque:first-child{margin-top:28px}
.disque__attente--titre{font-family:Syne,sans-serif;font-size:15px;color:var(--head)}
.disque__pochette{flex:0 0 120px;width:120px;height:120px;object-fit:cover}
.disque__attente{flex:0 0 120px;height:120px;background:var(--plate);display:flex;align-items:center;justify-content:center;text-align:center;padding:8px;font-family:Montserrat,sans-serif;font-size:12px;color:var(--soft)}
.disque h3{font-weight:400;font-size:24px}
.disque p{margin-top:6px;font-size:16px;line-height:1.55;color:var(--soft)}
.disque p.info{margin-top:4px;color:var(--muted)}
.disque__ecoute{margin-top:8px;display:flex;flex-wrap:wrap;gap:0 18px;font-size:15px}
.disque__ecoute a{padding:10px 0}

.contact__boutons{margin-top:24px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px}
.bouton{display:inline-flex;align-items:center;min-height:52px;padding:0 28px;font-size:17px}
.bouton:hover{text-decoration:none;filter:brightness(1.08)}
.contact__docs{margin-top:28px;display:flex;flex-wrap:wrap;gap:0 24px;font-size:16px}
.contact__docs a{padding:8px 0}

.pied{background:var(--texture) 0 0/var(--tx) var(--tx),var(--foot);color:var(--foot-ink)}
.pied__in{max-width:1440px;margin:0 auto;padding:32px var(--pad);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 32px;font-family:Montserrat,sans-serif;font-size:13px}
.pied a{padding:4px 0}
.pied__reseaux{display:inline-flex;gap:4px}
.pied__reseaux a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0}
.pied__reseaux a:hover{opacity:.75}
.reseaux{margin-top:36px}
.reseaux__titre{font-family:Montserrat,sans-serif;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.reseaux__liens{margin-top:8px;display:flex;flex-wrap:wrap;gap:4px 28px}
.reseaux__liens a{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:17px;color:var(--head)}
.reseaux__liens span{text-decoration:underline;text-decoration-color:var(--rule);text-decoration-thickness:1px;text-underline-offset:6px}
.reseaux__liens a:hover{text-decoration:none}

/* Pages intérieures */
.entree{max-width:1312px;margin:0 auto;padding:clamp(40px,6vw,88px) var(--pad);display:flex;flex-wrap:wrap;align-items:flex-end;gap:40px 96px}
.entree__texte{flex:1 1 440px;min-width:0;padding-bottom:8px}
.entree__texte p{margin-top:28px;max-width:560px;font-size:22px;line-height:1.5;color:var(--soft)}
.entree__photo{flex:1 1 400px;width:100%;max-width:520px;min-width:0;aspect-ratio:4/5;object-fit:cover;object-position:50% 22%}
.bio{padding:clamp(56px,6vw,96px) 0 clamp(72px,8vw,120px)}
.bio__in{display:flex;flex-wrap:wrap;align-items:flex-start;gap:56px 96px}
.bio__texte{flex:2 1 620px;min-width:0;max-width:760px;font-size:18px;line-height:1.75;color:var(--soft);display:flex;flex-direction:column;gap:22px}
.encart{flex:1 1 280px;min-width:0;padding:32px;background:var(--bg2)}
.encart h2{font-family:Syne,sans-serif;font-weight:500;color:var(--head);font-size:24px;letter-spacing:-.01em}
.encart__liens{margin-top:16px;display:flex;flex-direction:column;align-items:flex-start;font-size:17px}
.encart__liens a{padding:9px 0}
.encart .info{margin-top:16px;line-height:1.6}
.bandeau-photo{height:clamp(320px,40vw,560px);position:relative;overflow:hidden}
.bandeau-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%}

.agenda__haut{padding:clamp(40px,6vw,88px) 0 0}
.agenda__haut .wrap{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px 48px}
.onglets{display:flex;gap:20px;font-size:17px}
.onglets button{min-height:44px;padding:0 2px;background:transparent;border:0;color:var(--muted);font:inherit;cursor:pointer;text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:2px;text-underline-offset:8px}
.onglets button[aria-selected="true"]{color:var(--ink);text-decoration-color:var(--rule)}
.agenda__liste{padding:48px 0 clamp(72px,8vw,120px)}
.mois{display:flex;flex-direction:column;gap:48px}
.mois h2{margin-bottom:6px;font-family:Montserrat,sans-serif;font-weight:500;font-size:14px;color:var(--muted)}
.mois .concerts{margin-top:0}
.inviter{padding:clamp(56px,6vw,88px) 0}
.inviter .wrap{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 48px}
.inviter h2{font-family:Syne,sans-serif;font-weight:500;font-size:clamp(32px,3.4vw,44px);letter-spacing:-.015em}
.inviter a{padding:8px 0;font-size:24px;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:7px}

.medias__haut{padding:clamp(40px,6vw,88px) 0 0}
.galerie__entete{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 40px}
.galerie{margin-top:32px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
@media (max-width:1000px){.galerie{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.galerie{grid-template-columns:1fr}}
.galerie img{width:100%;aspect-ratio:4/5;object-fit:cover}
.galerie+.info{margin-top:24px}

.texte-legal{max-width:760px;padding:clamp(40px,6vw,88px) 0 clamp(72px,8vw,120px)}
.texte-legal h1{margin-bottom:40px}
.texte-legal h2{margin-top:40px;font-family:Syne,sans-serif;font-weight:500;color:var(--head);font-size:24px}
.texte-legal p{margin-top:12px;line-height:1.7;color:var(--soft)}

.erreur{padding:clamp(72px,10vw,160px) 0;min-height:50vh}
.erreur p{margin-top:24px;font-size:20px}

/* Lecteur vidéo */
.lecteur{width:min(1100px,94vw);padding:0;border:0;background:#000;color:#fff}
.lecteur::backdrop{background:rgba(20,15,12,.82)}
.lecteur__cadre{position:relative;aspect-ratio:16/9}
.lecteur iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.lecteur__fermer{position:absolute;top:-52px;right:0;min-width:44px;min-height:44px;background:transparent;border:0;color:#fff;font:inherit;font-size:16px;cursor:pointer}

/* Animation d'arrivée (accueil, une fois par visite) : le nom se trace lettre à lettre puis se remplit */
.intro{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding-bottom:6vh;pointer-events:none;animation:intro-sortie .5s ease 1.9s forwards}
.sans-intro .intro{display:none}
@keyframes intro-sortie{to{opacity:0;visibility:hidden}}
.intro__prenom{display:block;width:min(80vw,560px);height:auto;overflow:visible;animation:prenom-souffle 2.4s cubic-bezier(.3,0,.2,1) forwards}
.intro__trait{fill:none;stroke:currentColor;stroke-width:1.4px;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-dasharray:1 2;stroke-dashoffset:1;
  animation:prenom-trace .85s cubic-bezier(.45,.05,.35,1) calc(var(--i) * .08s) forwards,prenom-efface .5s ease calc(.8s + var(--i) * .08s) forwards}
.intro__plein{fill:currentColor;opacity:0;animation:prenom-plein .5s ease calc(.7s + var(--i) * .08s) forwards}
@keyframes prenom-trace{to{stroke-dashoffset:0}}
@keyframes prenom-plein{to{opacity:1}}
@keyframes prenom-efface{to{stroke-opacity:0}}
@keyframes prenom-souffle{from{transform:scale(.97)}to{transform:scale(1.02)}}
@media (prefers-reduced-motion:reduce){.intro{display:none}.entete,.entete::before{transition:none}}
