:root{
  --parchemin:#e9d9b4;
  --parchemin-clair:#f2e7c9;
  --encre:#2b2013;
  --brique:#8a3f2e;
  --ligne:#c9b184;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth; font-size:19px;}
body{
  background-color:var(--parchemin);
  background-image:url('/assets/img/background.jpg');
  background-repeat:repeat-y;
  background-position:top center;
  background-size:100% auto;
  color:var(--encre);
  font-family:'Cormorant Garamond', serif;
  position:relative;
  min-height:100vh;
}

/* Variantes de police, sélectionnables depuis l'admin (site.police) */
body.police-elegant{ --f-titre:'Jost',sans-serif; --f-texte:'Cormorant Garamond',serif; }
body.police-doux{ --f-titre:'Quicksand',sans-serif; --f-texte:'Quicksand',sans-serif; }
body.police-classique{ --f-titre:'Playfair Display',serif; --f-texte:'Libre Baskerville',serif; }

body.police-doux{font-family:var(--f-texte);}
body.police-classique{font-family:var(--f-texte);}
body.police-doux h1.title, body.police-doux nav a, body.police-doux .logo-badge span,
body.police-doux .section-head h2, body.police-doux .btn, body.police-doux .dossier-btn{font-family:var(--f-titre);}
body.police-classique h1.title, body.police-classique nav a, body.police-classique .logo-badge span,
body.police-classique .section-head h2, body.police-classique .btn, body.police-classique .dossier-btn{font-family:var(--f-titre);}
body.police-doux .tagline, body.police-doux blockquote,
body.police-classique .tagline, body.police-classique blockquote{font-family:var(--f-texte);}
@media (prefers-reduced-motion: reduce){*{animation:none !important; transition:none !important;}}

header{
  position:relative; z-index:50;
  text-align:center;
  padding:70px 24px 0;
}
.logo-badge{
  width:150px;
  margin:0 auto 34px;
  display:flex;align-items:center;justify-content:center;
  text-decoration:none;
  transition:transform 0.15s ease;
}
.logo-badge img{
  width:100%;
  height:auto;
  display:block;
}
.logo-badge:hover, .logo-badge:focus-visible{transform:scale(1.04);}
.logo-badge:focus-visible{outline:2px solid var(--brique); outline-offset:4px;}
.divider{width:min(720px,90%); height:1px; background:var(--encre); margin:0 auto 30px; opacity:0.75;}

h1.title{
  font-family:'Jost',sans-serif; font-weight:300; letter-spacing:0.14em;
  font-size:clamp(2.1rem, 5vw, 3.4rem); color:var(--encre);
}
.title-link{color:inherit; text-decoration:none;}
.title-link:hover, .title-link:focus-visible{color:var(--brique);}
.title-link:focus-visible{outline:2px solid var(--brique); outline-offset:6px;}
.tagline{margin-top:10px; font-style:italic; font-size:1.3rem; color:var(--brique);}

.top-row{
  display:flex; align-items:baseline; justify-content:space-between;
  max-width:1100px; margin:0 auto; flex-wrap:wrap; gap:16px; text-align:left;
}
.brand-block a{
  font-family:'Jost',sans-serif; font-weight:500; letter-spacing:0.06em;
  font-size:1.15rem; color:var(--encre); text-decoration:underline;
}
.brand-block p{font-style:italic; font-size:1rem; color:var(--brique); margin-top:4px;}

nav{margin-top:44px;}
nav ul{
  list-style:none; display:flex; justify-content:center; gap:38px; flex-wrap:wrap;
  font-family:'Jost',sans-serif; font-size:0.95rem; letter-spacing:0.03em;
}
.top-row nav ul{justify-content:flex-start; gap:30px;}
nav > ul > li{position:relative;}
nav a{
  color:var(--encre); text-decoration:none; padding-bottom:4px;
  border-bottom:1px solid transparent; transition:border-color 0.2s ease, color 0.2s ease;
}
nav a:hover, nav a:focus-visible{border-color:var(--brique); color:var(--brique);}
nav a:focus-visible{outline:2px solid var(--brique); outline-offset:3px;}

.has-submenu > a::after{content:" +"; font-size:0.8em; color:var(--brique);}
.submenu{
  list-style:none; position:absolute; top:100%; left:50%;
  transform:translateX(-50%);
  background:var(--parchemin-clair); border:1px solid var(--ligne);
  box-shadow:0 10px 26px rgba(43,32,19,0.18); padding:10px 0; min-width:230px;
  text-align:left; opacity:0; visibility:hidden;
  transition:opacity 0.15s ease, visibility 0.15s ease; z-index:60;
}
.top-row .submenu{left:0; transform:none;}
.has-submenu:hover .submenu, .has-submenu:focus-within .submenu{
  opacity:1; visibility:visible;
}
.submenu li{padding:0;}
.submenu a{display:block; padding:10px 20px; font-size:0.88rem; white-space:nowrap; border-bottom:none;}
.submenu a:hover, .submenu a:focus-visible{background:rgba(138,63,46,0.08); color:var(--brique);}

/* Page d'accueil : photo héro */
.hero-photo-wrap{position:relative; z-index:2; max-width:560px; margin:64px auto 0; padding:0 24px;}
.hero-photo{
  width:100%; aspect-ratio:3/4; border-radius:2px;
  background:linear-gradient(180deg, rgba(43,32,19,0.05), rgba(43,32,19,0.35)),
             linear-gradient(135deg, #3a3a3a, #6b6b6b 55%, #8a3f2e 130%);
  filter:grayscale(0.35) sepia(0.15);
  box-shadow:0 18px 40px rgba(43,32,19,0.35);
  position:relative; overflow:hidden;
}
.hero-photo img{width:100%; height:100%; object-fit:cover; display:block;}
.hero-photo .caption{
  position:absolute; bottom:14px; left:14px;
  font-family:'Jost',sans-serif; font-size:0.7rem; color:rgba(255,255,255,0.75); letter-spacing:0.05em;
}

blockquote{
  position:relative; z-index:2; max-width:640px; margin:56px auto 0; padding:0 24px;
  text-align:center; font-style:italic; font-size:1.35rem; line-height:1.5; color:var(--encre);
}
.quote-author{
  display:block; margin-top:14px; font-family:'Jost',sans-serif; font-style:normal;
  font-size:0.85rem; letter-spacing:0.08em; color:var(--brique);
}

.section{position:relative; z-index:2; max-width:920px; margin:0 auto; padding:90px 24px;}
.section-head{text-align:center; margin-bottom:46px;}
.section-head h2{
  font-family:'Jost',sans-serif; font-weight:300; letter-spacing:0.1em;
  font-size:clamp(1.6rem, 3.4vw, 2.1rem);
}
.section-head .rule{width:60px;height:1px; background:var(--brique); margin:16px auto 0;}

.bill-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:34px 30px;}
.bill-card{
  text-align:center; padding:28px 18px; border:1px solid var(--ligne);
  background:rgba(255,255,255,0.25); display:block; text-decoration:none; color:inherit;
  transition:background 0.2s ease, border-color 0.2s ease;
}
.bill-card:hover, .bill-card:focus-visible{background:rgba(255,255,255,0.5); border-color:var(--brique);}
.bill-card:focus-visible{outline:2px solid var(--brique); outline-offset:3px;}
.bill-card h3{
  font-family:'Jost',sans-serif; font-weight:400; letter-spacing:0.04em;
  font-size:1.05rem; color:var(--brique); margin-bottom:10px;
}
.bill-card p{font-size:1.05rem; line-height:1.55;}

.amis{text-align:center;}
.amis p{max-width:560px; margin:0 auto 26px; font-size:1.1rem;}
.btn{
  display:inline-block; font-family:'Jost',sans-serif; letter-spacing:0.06em; font-size:0.85rem;
  padding:14px 34px; border:1px solid var(--encre); color:var(--encre); text-decoration:none;
  transition:background 0.2s ease, color 0.2s ease;
}
.btn:hover{background:var(--encre); color:var(--parchemin-clair);}
.btn:focus-visible{outline:2px solid var(--brique); outline-offset:3px;}

footer{
  position:relative; z-index:2; text-align:center; padding:50px 24px 40px;
  border-top:1px solid var(--ligne); margin-top:60px;
}
footer > a{
  color:var(--encre); text-decoration:none; font-family:'Jost',sans-serif; font-size:0.85rem;
}
.footer-logo{display:inline-block; margin:20px 0; transition:transform 0.15s ease;}
.footer-logo img{width:70px; height:auto; display:block; margin:0 auto;}
.footer-logo:hover, .footer-logo:focus-visible{transform:scale(1.05);}
.footer-logo:focus-visible{outline:2px solid var(--brique); outline-offset:4px;}
.contact-social{
  display:inline-flex; align-items:center; gap:10px;
  padding:12px 24px;
  border:1px solid var(--encre);
  color:var(--encre);
  text-decoration:none;
  font-family:'Jost',sans-serif;
  font-size:0.9rem;
  transition:background 0.2s ease, color 0.2s ease;
}
.contact-social:hover, .contact-social:focus-visible{background:var(--encre); color:var(--parchemin-clair);}

.compagnie-photo{
  max-width:760px;
  margin:50px auto 0;
}
.compagnie-photo img{
  width:100%;
  height:auto;
  display:block;
  filter:grayscale(1);
  box-shadow:0 18px 40px rgba(43,32,19,0.35);
}

.amis-list{list-style:none; font-size:1.05rem; line-height:1.5;}
.amis-list li{margin-bottom:10px;}
.amis-nom,
a.amis-nom,
a.amis-nom:link,
a.amis-nom:visited,
a.amis-nom:hover,
a.amis-nom:focus,
a.amis-nom:active{
  color:var(--brique);
  font-weight:600;
  text-decoration:none;
  font-family:inherit;
  font-size:inherit;
}
a.amis-nom{border-bottom:1px solid var(--brique);}
a.amis-nom:hover, a.amis-nom:focus-visible{opacity:0.75;}
.show-photo.amis-photo{aspect-ratio:1/1;}
.show-photo.amis-photo img{object-fit:contain; background:rgba(0,0,0,0.08);}

/* Bandeau défilant des prochaines dates, sur l'accueil */
.agenda-ticker-wrap{
  overflow:hidden;
  border-top:1px solid var(--ligne);
  border-bottom:1px solid var(--ligne);
  padding:16px 0;
}
.agenda-ticker{
  display:flex;
  width:max-content;
  animation:agenda-scroll 30s linear infinite;
}
.agenda-ticker-item{
  font-family:'Jost',sans-serif;
  font-size:0.95rem;
  white-space:nowrap;
  padding:0 40px;
  color:var(--encre);
}
.agenda-ticker-item strong{color:var(--brique); font-weight:500;}
@keyframes agenda-scroll{
  0%{transform:translateX(0);}
  100%{transform:translateX(-50%);}
}
@media (prefers-reduced-motion: reduce){
  .agenda-ticker{animation:none; flex-wrap:wrap; width:auto;}
}

/* Page Agenda : liste complète */
.agenda-list{
  max-width:720px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:0;
}
.agenda-item{
  display:flex;
  gap:28px;
  padding:24px 0;
  border-bottom:1px solid var(--ligne);
  align-items:baseline;
}
.agenda-date{
  flex:0 0 auto;
  min-width:150px;
  font-family:'Jost',sans-serif;
}
.agenda-jour{display:block; font-weight:500; color:var(--brique);}
.agenda-heure{display:block; font-size:0.85rem; opacity:0.75; margin-top:2px;}
.agenda-infos h3{
  font-family:'Cormorant Garamond', serif;
  font-weight:600;
  font-size:1.3rem;
  margin-bottom:4px;
}
.agenda-infos p{font-size:1rem;}
.agenda-billet{
  display:inline-block;
  margin-top:10px;
  font-family:'Jost',sans-serif;
  font-size:0.82rem;
  letter-spacing:0.04em;
  color:var(--encre);
  border-bottom:1px solid var(--brique);
  text-decoration:none;
}
.agenda-billet:hover, .agenda-billet:focus-visible{color:var(--brique);}

.agenda-item--passe{opacity:0.6;}
.agenda-item--passe .agenda-jour{color:var(--encre);}

.archives-list{max-width:720px; margin:0 auto;}
.archive-annee{
  border-bottom:1px solid var(--ligne);
  padding:14px 0;
}
.archive-annee summary{
  cursor:pointer;
  font-family:'Jost',sans-serif;
  font-weight:500;
  font-size:1.1rem;
  color:var(--brique);
  list-style:none;
}
.archive-annee summary::-webkit-details-marker{display:none;}
.archive-annee summary::before{content:"+ "; }
.archive-annee[open] summary::before{content:"− ";}
.archive-contenu{
  margin-top:16px;
  font-size:0.98rem;
  line-height:1.8;
  color:var(--encre);
  opacity:0.85;
}

@media (max-width:600px){
  .agenda-item{flex-direction:column; gap:6px;}
  .agenda-date{min-width:0;}
}
.socials{display:flex; justify-content:center; gap:26px; margin:16px 0 20px; font-family:'Jost',sans-serif; font-size:0.85rem;}
.socials a{color:var(--encre); text-decoration:none; border-bottom:1px solid transparent;}
.socials a:hover, .socials a:focus-visible{border-color:var(--brique);}
.social-icon{display:flex; align-items:center; gap:8px;}
.social-icon svg{flex-shrink:0;}
footer .rights{font-family:'Jost',sans-serif; font-size:0.72rem; opacity:0.55; letter-spacing:0.03em;}

/* Page spectacle */
.show-title{position:relative; z-index:2; max-width:1100px; margin:70px auto 0; padding:0 24px;}
.show-title h1{font-family:'Cormorant Garamond', serif; font-weight:400; font-size:clamp(2.2rem,5vw,3.2rem);}
.show-rule{width:100%; max-width:1100px; margin:26px auto 0; height:2px; background:var(--encre);}

.show-body{
  position:relative; z-index:2; max-width:1100px; margin:0 auto; padding:50px 24px 0;
  display:grid; grid-template-columns:1fr; gap:40px;
}
.show-body--with-photo{align-items:start;}
.show-text{display:flex; flex-direction:column;}
.facts{font-family:'Cormorant Garamond', serif; font-weight:700; font-size:1.40rem; line-height:2;}
.description{font-size:1.15rem; line-height:1.7; max-width:640px; margin-top:24px;}
.description p{margin-bottom:20px;}
.dossier-btn{
  display:inline-block; margin-top:48px; background:var(--encre); color:var(--parchemin-clair);
  font-family:'Jost',sans-serif; letter-spacing:0.06em; font-size:0.85rem; padding:16px 30px;
  border:2px dashed var(--parchemin-clair); outline:1px solid var(--encre); text-decoration:none;
}
.dossier-btn:hover{background:var(--brique);}
.dossier-btn:focus-visible{outline:2px solid var(--brique); outline-offset:3px;}

.show-photo{
  position:relative; z-index:2; width:100%; aspect-ratio:3/4; max-height:640px;
  background:linear-gradient(180deg, rgba(0,0,0,0.05), rgba(0,0,0,0.45)),
             linear-gradient(135deg,#243b2e,#3d2b26 45%, #8a3f2e 120%);
  display:flex; align-items:flex-end; justify-content:flex-start; padding:20px;
  overflow:hidden;
  box-shadow:0 18px 40px rgba(43,32,19,0.35);
}
.show-photo img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.show-photo span{position:relative; font-family:'Jost',sans-serif; color:rgba(255,255,255,0.8); font-size:0.75rem; letter-spacing:0.05em;}

/* Formats de photo, choisis par spectacle */
.show-photo--paysage{aspect-ratio:3/2;}
.show-photo--portrait{aspect-ratio:3/4;}
.show-photo--carre{aspect-ratio:1/1;}

@media (min-width:860px){
  .show-body--with-photo{grid-template-columns:1.1fr 0.9fr; gap:60px; align-items:stretch;}
  .show-body--photo-left{grid-template-columns:0.9fr 1.1fr;}
  .show-body--photo-left .show-photo{order:-1;}
  .show-body--with-photo .show-photo--ajuste{
    aspect-ratio:auto;
    height:100%;
    max-height:none;
  }
  .show-body--with-photo .show-photo--ajuste img{object-fit:cover;}
}

.video-embed{
  position:relative; width:100%; aspect-ratio:16/9; max-height:520px;
  background:var(--encre); box-shadow:0 18px 40px rgba(43,32,19,0.35);
}
.video-embed iframe{position:absolute; top:0; left:0; width:100%; height:100%; border:0;}

.show-body--fiche{
  align-items:start;
  grid-template-columns:1fr;
}
.show-photo-stack--fiche{max-width:240px;}
.description--full{max-width:820px; margin:0 auto;}

.show-photo-stack{
  display:flex;
  flex-direction:column;
  gap:20px;
  width:100%;
  max-width:340px;
}
.show-photo-col{
  display:flex;
  flex-direction:column;
  width:100%;
}
.show-photo-col .show-photo-stack{max-width:100%;}
.show-photo-naturel{
  width:100%;
  box-shadow:0 18px 40px rgba(43,32,19,0.35);
}
.show-photo-naturel img{
  width:100%;
  height:auto;
  display:block;
}

.show-affiche{
  max-width:520px;
  margin:50px auto 0;
}
.show-affiche img{
  width:100%;
  height:auto;
  display:block;
  box-shadow:0 18px 40px rgba(43,32,19,0.35);
}

@media (min-width:700px){
  .show-body--fiche{
    grid-template-columns:1fr auto;
    gap:40px;
    align-items:start;
  }
}

.note-intention{
  max-width:700px;
  margin:0 auto;
  text-align:center;
  font-family:'Playfair Display', serif;
  font-style:italic;
  font-size:1.00rem;
  line-height:1.5;
  color:var(--brique);
}
.note-intention strong{font-style:normal;}

.credits{
  margin-top:32px;
  font-family:'Jost',sans-serif;
  font-size:0.9rem;
  line-height:1.8;
  color:var(--brique);
}

@media (max-width:640px){
  nav ul{gap:18px; font-size:0.85rem;}
  .top-row{flex-direction:column; align-items:flex-start;}
}
