:root{--bg:#0b0c0e;--surface:#131519;--surface2:#1b1e23;--text:#f5f3ef;--muted:#a8a7a3;--orange:#f59a19;--green:#063f2e;--line:#2a2d33;--max:1240px;--radius:24px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.5}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.site-header{height:94px;display:flex;align-items:center;gap:32px;padding:12px max(24px,calc((100vw - var(--max))/2));position:sticky;top:0;background:rgba(11,12,14,.9);backdrop-filter:blur(18px);z-index:20;border-bottom:1px solid rgba(255,255,255,.06)}.brand{width:210px;flex:0 0 auto}.brand img{width:100%;height:70px;object-fit:contain;object-position:left center}.main-nav{margin-left:auto;display:flex;gap:28px;align-items:center}.main-nav a{font-weight:700;font-size:.94rem;color:#d6d5d1}.main-nav a:hover,.main-nav a.active{color:var(--orange)}.menu-toggle{display:none;margin-left:auto;background:transparent;color:white;border:1px solid var(--line);border-radius:999px;padding:10px 16px}.hero{min-height:620px;max-width:var(--max);margin:auto;padding:80px 24px 64px;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:48px;align-items:end;position:relative;overflow:hidden}.hero-content{position:relative;z-index:2}.eyebrow{font-size:.78rem;text-transform:uppercase;letter-spacing:.16em;color:var(--orange);font-weight:900}.hero h1,.page-hero h1{font-size:clamp(3rem,5.6vw,5.8rem);line-height:.92;letter-spacing:-.065em;margin:18px 0 28px;max-width:980px}.hero h1 span{color:var(--orange)}.hero-copy{max-width:720px;color:#c7c6c1;font-size:1.18rem}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;border-radius:999px;padding:0 24px;font-weight:900}.button-primary{background:var(--orange);color:#17110a}.button-secondary{border:1px solid #4a4d53;background:rgba(255,255,255,.03)}.hero-card{position:relative;z-index:2;border:1px solid #34373e;background:rgba(18,20,24,.72);border-radius:var(--radius);padding:28px;display:flex;flex-direction:column;gap:7px}.hero-card span{font-size:.75rem;letter-spacing:.14em;color:var(--muted);font-weight:800}.hero-card strong{font-size:1.8rem}.hero-card small{color:var(--muted)}.hero-glow{position:absolute;border-radius:50%;filter:blur(1px);opacity:.55}.hero-glow-a{width:520px;height:520px;background:radial-gradient(circle,var(--orange),transparent 70%);right:-180px;top:80px}.hero-glow-b{width:430px;height:430px;background:radial-gradient(circle,#315cff,transparent 70%);left:-210px;bottom:20px}.section{max-width:var(--max);margin:auto;padding:96px 24px}.section-dark{max-width:none;background:#101216;padding-left:max(24px,calc((100vw - var(--max))/2));padding-right:max(24px,calc((100vw - var(--max))/2))}.section-heading{max-width:850px;margin-bottom:40px}.section-heading h2{font-size:clamp(2rem,3.6vw,3.8rem);line-height:.96;letter-spacing:-.05em;margin:12px 0}.inline-heading{max-width:none;display:flex;justify-content:space-between;gap:30px;align-items:end}.lead{max-width:800px;font-size:1.18rem;color:#d2d0cb}.text-link{font-weight:850;color:var(--orange);white-space:nowrap}.artist-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.artist-card{min-height:330px;border-radius:var(--radius);padding:26px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:relative;background:linear-gradient(145deg,#2b303a,#15171c)}.artist-card.tone-2{background:linear-gradient(145deg,#433014,#171719)}.artist-card.tone-3{background:linear-gradient(145deg,#1b3c34,#171719)}.artist-card.tone-4{background:linear-gradient(145deg,#3a223e,#171719)}.artist-index{position:absolute;right:20px;top:12px;font-size:5rem;line-height:1;color:rgba(255,255,255,.08);font-weight:950}.artist-meta{display:flex;justify-content:space-between;gap:14px;color:#d4d2ce;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.artist-card h3{font-size:2rem;line-height:1;margin:auto 0 12px}.artist-card a{color:var(--orange);font-weight:850}.schedule-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.schedule-day{background:var(--surface);border-radius:var(--radius);padding:24px}.schedule-day h3{font-size:2rem;margin:0 0 14px}.schedule-row,.program-line{display:grid;grid-template-columns:80px 1fr 30px;align-items:center;gap:16px;padding:20px 0;border-top:1px solid var(--line)}.schedule-row time,.program-line time{font-size:1.2rem;font-weight:900;color:var(--orange)}.schedule-row span,.program-line span{display:flex;flex-direction:column}.schedule-row small,.program-line small{color:var(--muted)}.event-list{border-top:1px solid var(--line)}.event-row{display:grid;grid-template-columns:120px 1fr 50px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line)}.event-date{font-weight:950;color:var(--orange)}.event-title{font-size:1.6rem;font-weight:850;display:flex;flex-direction:column}.event-title small{font-size:.85rem;color:var(--muted);font-weight:500}.event-arrow{font-size:1.8rem;text-align:right}.callouts{display:grid;grid-template-columns:1fr 1fr;gap:18px}.callout{min-height:220px;border-radius:var(--radius);padding:28px;background:var(--surface);display:flex;flex-direction:column;justify-content:end}.callout:nth-child(2){background:var(--green)}.callout span{color:var(--muted)}.callout strong{font-size:2.3rem}.callout b{font-size:1.8rem;align-self:flex-end}.page-hero{max-width:var(--max);margin:auto;padding:80px 24px 60px}.page-hero p:not(.eyebrow){max-width:700px;color:#c5c4bf;font-size:1.2rem}.program-day{margin-bottom:60px}.program-day h2{font-size:2.3rem}.program-line{border-bottom:1px solid var(--line);border-top:0}.program-line strong{font-size:1.5rem}.content-card{background:var(--surface);border-radius:var(--radius);padding:32px;max-width:850px}.site-footer{max-width:var(--max);margin:40px auto 0;padding:42px 24px 54px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:30px;color:var(--muted)}.site-footer strong{color:var(--text)}.footer-links{display:flex;gap:20px}.admin-body{min-height:100vh;display:grid;place-items:center;padding:30px}.admin-shell{max-width:900px;width:100%;background:var(--surface);border-radius:32px;padding:42px}.admin-logo{width:230px;margin-bottom:30px}.admin-shell h1{font-size:clamp(2.2rem,4.2vw,4rem);line-height:.95;letter-spacing:-.05em}.admin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:30px 0}.admin-grid div{background:var(--surface2);border-radius:18px;padding:22px;display:flex;gap:10px;flex-direction:column;font-size:1.4rem}.admin-grid strong{font-size:.9rem}@media(max-width:850px){.site-header{height:auto;min-height:82px}.brand{width:165px}.brand img{height:56px}.menu-toggle{display:block}.main-nav{display:none;position:absolute;top:82px;left:16px;right:16px;background:#15171b;border:1px solid var(--line);border-radius:18px;padding:14px;flex-direction:column;align-items:stretch}.main-nav.open{display:flex}.main-nav a{padding:10px}.hero{grid-template-columns:1fr;min-height:auto;padding-top:90px}.hero h1,.page-hero h1{font-size:clamp(2.7rem,11vw,4.5rem)}.artist-grid{grid-template-columns:1fr 1fr}.schedule-columns,.callouts{grid-template-columns:1fr}.inline-heading{align-items:flex-start;flex-direction:column}.admin-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.artist-grid{grid-template-columns:1fr}.hero{padding-top:70px}.section{padding-top:70px;padding-bottom:70px}.event-row{grid-template-columns:80px 1fr 24px}.event-title{font-size:1.15rem}.site-footer{flex-direction:column}.admin-grid{grid-template-columns:1fr}.program-line,.schedule-row{grid-template-columns:65px 1fr 20px}}


/* =========================================================
   V2 — Festival contemporain / scène lumineuse
   Direction validée à partir de la référence fournie.
   ========================================================= */
:root{
  --bg:#101727;
  --panel:#ffffff;
  --text:#f7f8fb;
  --ink:#161b27;
  --muted:#697083;
  --line:rgba(255,255,255,.12);
  --accent:#f59a16;
  --green:#064b36;
  --cyan:#27c6e8;
  --violet:#7257f5;
  --max:1280px;
}
html{background:#101727}
body{
  background:
    radial-gradient(circle at 8% 24%,rgba(39,198,232,.13),transparent 24rem),
    radial-gradient(circle at 95% 72%,rgba(114,87,245,.12),transparent 28rem),
    #101727;
  color:var(--text);
}
.site-header{
  position:absolute; top:0; left:0; right:0; z-index:30;
  background:linear-gradient(180deg,rgba(8,13,24,.78),rgba(8,13,24,.05));
  border:0; backdrop-filter:none;
}
.site-header .inner{max-width:1280px;padding:22px 28px}
.site-logo img{width:auto;height:72px;filter:drop-shadow(0 5px 16px rgba(0,0,0,.22))}
.site-nav a{color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.25)}
.site-nav a:hover{color:#ffad32}
.hero{
  min-height:720px;
  max-width:1280px;
  margin:24px auto 0;
  padding:155px 7% 80px;
  border-radius:28px;
  overflow:hidden;
  color:#fff;
  background:
    linear-gradient(90deg,rgba(5,10,20,.80) 0%,rgba(5,10,20,.42) 50%,rgba(5,10,20,.18) 100%),
    radial-gradient(circle at 78% 28%,rgba(39,198,232,.65),transparent 25%),
    radial-gradient(circle at 78% 70%,rgba(245,154,22,.34),transparent 28%),
    linear-gradient(135deg,#172b45,#07111f 68%);
  box-shadow:0 28px 80px rgba(0,0,0,.28);
  position:relative;
}
.hero:after{
  content:"";
  position:absolute;inset:auto 0 0 0;height:36%;
  background:linear-gradient(transparent,rgba(5,9,18,.68));
  pointer-events:none;
}
.hero > *{position:relative;z-index:2}
.hero .eyebrow{color:#ffb038;letter-spacing:.14em}
.hero h1{
  max-width:880px;
  font-size:clamp(3rem,5.7vw,5.7rem);
  line-height:.96;
  letter-spacing:-.055em;
  text-shadow:0 8px 35px rgba(0,0,0,.22);
}
.hero .lead{max-width:700px;color:rgba(255,255,255,.9);font-size:1.18rem}
.btn-primary{
  border:0;color:#fff;
  background:linear-gradient(100deg,#21c5eb,#7357f5);
  box-shadow:0 10px 28px rgba(68,113,246,.28);
}
.btn-primary:hover{transform:translateY(-2px);filter:brightness(1.06)}
.btn-secondary{
  color:#fff;border:1px solid rgba(255,255,255,.5);
  background:rgba(255,255,255,.08);backdrop-filter:blur(10px)
}
.btn-secondary:hover{background:rgba(255,255,255,.16)}
.section{max-width:1280px;margin:0 auto;padding:82px 28px}
.section.light{
  color:var(--ink);
  background:#f6f7fb;
  border-radius:28px;
  margin-top:26px;
  margin-bottom:26px;
}
.section-heading h2{font-size:clamp(2rem,3.5vw,3.6rem);line-height:1}
.section-heading p{color:#aeb7c9}
.section.light .section-heading p{color:#737b8e}
.artist-grid,.event-grid,.info-grid{gap:22px}
.artist-card,.event-card,.info-card,.partner-card{
  background:#fff;color:var(--ink);
  border:1px solid rgba(20,28,45,.08);
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 16px 40px rgba(7,16,32,.12);
  transition:transform .22s ease,box-shadow .22s ease;
}
.artist-card:hover,.event-card:hover,.info-card:hover{
  transform:translateY(-5px);
  box-shadow:0 22px 52px rgba(7,16,32,.18);
}
.artist-card .meta,.event-card .meta{color:#747b8b}
.artist-card h3,.event-card h3{color:#171c28}
.program-day{
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.12);
  border-radius:22px;
  box-shadow:none;
  backdrop-filter:blur(12px);
}
.program-day h2{color:#fff}
.schedule-row{border-color:rgba(255,255,255,.12)}
.schedule-row .time{color:#35d0ee}
.page-hero{
  max-width:1280px;margin:24px auto 0;padding:155px 7% 72px;
  border-radius:28px;
  background:
    radial-gradient(circle at 80% 20%,rgba(39,198,232,.3),transparent 30%),
    linear-gradient(135deg,#172b45,#0a1120);
}
.page-hero h1{font-size:clamp(2.8rem,5.2vw,5rem)}
.page-hero .lead{color:#c6cfdf}
.footer{background:#080d18;color:#c9d0de;margin-top:70px}
.footer a{color:#fff}
.badge{background:#e9f8fc;color:#116a7e}
@media(max-width:900px){
  .site-header{position:absolute}
  .site-logo img{height:58px}
  .hero{margin:10px 10px 0;border-radius:22px;min-height:650px;padding:135px 24px 64px}
  .hero h1{font-size:clamp(2.7rem,11vw,4.5rem)}
  .section{padding:62px 18px}
  .section.light{margin-left:10px;margin-right:10px;border-radius:22px}
  .page-hero{margin:10px;border-radius:22px;padding:135px 24px 60px}
}

/* V2.1 — vraie photo du Festival des Terres Celtes */
.hero{
  background:
    linear-gradient(90deg,rgba(5,10,20,.76) 0%,rgba(5,10,20,.40) 48%,rgba(5,10,20,.16) 100%),
    linear-gradient(0deg,rgba(5,9,18,.48) 0%,rgba(5,9,18,0) 42%),
    url("../images/hero-festival.jpg") center 43% / cover no-repeat;
}
@media(max-width:700px){
  .hero{
    background:
      linear-gradient(90deg,rgba(5,10,20,.78),rgba(5,10,20,.32)),
      linear-gradient(0deg,rgba(5,9,18,.52),rgba(5,9,18,0) 45%),
      url("../images/hero-festival.jpg") 55% center / cover no-repeat;
  }
}

/* V2.3 — rapproche le contenu hero de la navigation */
.hero{
  min-height:660px;
  padding-top:112px;
  padding-bottom:64px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.hero .eyebrow{margin-top:10px}
@media(max-width:900px){
  .hero{
    min-height:610px;
    padding-top:105px;
    padding-bottom:52px;
  }
}

/* V2.4 — correction forte de l'espace menu / titre */
.hero{
  min-height:660px;
  display:block;
  padding-top:150px;
  padding-bottom:58px;
}
.hero .eyebrow{
  margin-top:0;
  margin-bottom:14px;
}
.hero h1{
  margin-top:0;
}
@media(min-width:901px){
  .hero{
    padding-top:145px;
  }
}
@media(max-width:900px){
  .hero{
    min-height:610px;
    display:block;
    padding-top:125px;
    padding-bottom:48px;
  }
}

/* V2.5 — position explicite du bloc principal */
@media(min-width:901px){
  .hero{
    position:relative !important;
    min-height:660px !important;
    padding:0 !important;
  }

  .hero-content{
    position:absolute !important;
    z-index:5 !important;
    top:118px !important;
    left:7% !important;
    width:min(62%,760px) !important;
    margin:0 !important;
    transform:none !important;
  }

  .hero-content .eyebrow{
    margin:0 0 10px !important;
  }

  .hero-content h1{
    margin:0 0 18px !important;
  }

  .hero-content .hero-copy{
    margin:0 !important;
    max-width:680px !important;
  }

  .hero-actions{
    margin-top:24px !important;
  }

  .hero-card{
    position:absolute !important;
    right:7% !important;
    bottom:36px !important;
    width:300px !important;
  }
}

@media(max-width:900px){
  .hero{
    padding:118px 24px 48px !important;
  }
  .hero-content{
    position:relative !important;
    top:auto !important;
    left:auto !important;
    width:auto !important;
    margin:0 !important;
    transform:none !important;
  }
}

/* V2.6 — remonte également le cadre "Prochaine édition" */
@media(min-width:901px){
  .hero-card{
    position:absolute !important;
    right:7% !important;
    top:350px !important;
    bottom:auto !important;
    width:300px !important;
    z-index:5 !important;
  }
}

/* V2.7 — ajustements validés */
@media(min-width:901px){
  /* Logo officiel plus présent dans le hero */
  .site-logo img{
    height:100px !important;
    width:auto !important;
  }

  /* Cadre prochaine édition : plus compact et nouvelle couleur */
  .hero-card{
    top:350px !important;
    right:7% !important;
    bottom:auto !important;
    width:300px !important;
    min-height:0 !important;
    padding:22px 26px !important;
    background:#5D726F !important;
    border:1px solid rgba(255,255,255,.16) !important;
    border-radius:20px !important;
    color:#fff !important;
    box-shadow:0 16px 38px rgba(0,0,0,.20) !important;
  }

  .hero-card p,
  .hero-card .eyebrow{
    margin-top:0 !important;
    margin-bottom:8px !important;
    color:rgba(255,255,255,.78) !important;
  }

  .hero-card h2,
  .hero-card h3{
    margin:0 0 7px !important;
    color:#fff !important;
    line-height:1.08 !important;
  }
}

@media(max-width:900px){
  .site-logo img{
    height:76px !important;
    width:auto !important;
  }

  .hero-card{
    min-height:0 !important;
    padding:20px 22px !important;
    background:#5D726F !important;
    color:#fff !important;
    border-radius:18px !important;
  }
}

/* V2.8 — hero plus compact, cadrage sur les chanteurs, logo renforcé */
@media(min-width:901px){
  .hero{
    min-height:0 !important;
    height:560px !important;
    padding:0 !important;
    background:
      linear-gradient(90deg,rgba(5,10,20,.70) 0%,rgba(5,10,20,.32) 48%,rgba(5,10,20,.10) 100%),
      linear-gradient(0deg,rgba(5,9,18,.40) 0%,rgba(5,9,18,0) 38%),
      url("../images/hero-festival.jpg") center 68% / cover no-repeat !important;
  }

  /* Logo : plus grand + fond discret pour rester lisible sur la photo */
  .site-logo{
    display:flex !important;
    align-items:center !important;
    padding:8px 12px !important;
    border-radius:14px !important;
    background:rgba(255,255,255,.88) !important;
    box-shadow:0 8px 24px rgba(0,0,0,.16) !important;
  }
  .site-logo img{
    height:118px !important;
    max-width:250px !important;
    width:auto !important;
    object-fit:contain !important;
  }

  /* Le contenu reste dans la partie haute mais gagne de la place */
  .hero-content{
    top:112px !important;
  }

  .hero-card{
    top:310px !important;
  }
}

@media(max-width:900px){
  .hero{
    min-height:0 !important;
    height:auto !important;
    padding:118px 24px 46px !important;
    background:
      linear-gradient(90deg,rgba(5,10,20,.72),rgba(5,10,20,.24)),
      linear-gradient(0deg,rgba(5,9,18,.45),rgba(5,9,18,0) 42%),
      url("../images/hero-festival.jpg") 58% 68% / cover no-repeat !important;
  }
  .site-logo{
    padding:6px 9px !important;
    border-radius:12px !important;
    background:rgba(255,255,255,.88) !important;
  }
  .site-logo img{
    height:88px !important;
    max-width:190px !important;
  }
}

/* =========================================================
   V2.9 — Logos officiels recadrés + hero finalisé
   ========================================================= */

/* Le fichier officiel est désormais recadré sur son contenu réel :
   le logo paraît enfin à la taille demandée sans agrandir du vide transparent. */
.site-header .brand{
  width:235px !important;
  flex:0 0 235px !important;
  padding:0 !important;
  margin:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
.site-header .brand img{
  display:block !important;
  width:235px !important;
  height:auto !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:left center !important;
  filter:drop-shadow(0 4px 14px rgba(0,0,0,.28));
}

/* Hero : hauteur validée, mais contenu resserré pour que les boutons
   restent entièrement visibles. */
@media(min-width:901px){
  .hero{
    height:560px !important;
    min-height:560px !important;
    padding:0 !important;
  }

  .hero-content{
    top:82px !important;
    left:7% !important;
    width:min(62%,760px) !important;
  }

  .hero-content .eyebrow{
    margin:0 0 8px !important;
  }

  .hero-content h1{
    font-size:clamp(3.2rem,4.65vw,4.85rem) !important;
    line-height:.94 !important;
    margin:0 0 14px !important;
  }

  .hero-copy{
    max-width:700px !important;
    font-size:1.05rem !important;
    line-height:1.5 !important;
    margin:0 !important;
  }

  .hero-actions{
    margin-top:18px !important;
    padding-bottom:4px !important;
  }

  .button{
    min-height:48px !important;
    padding:0 22px !important;
  }

  /* Carte plus compacte et lisible */
  .hero-card{
    top:292px !important;
    right:7% !important;
    bottom:auto !important;
    width:300px !important;
    min-height:0 !important;
    padding:20px 25px !important;
    gap:5px !important;
    background:#5D726F !important;
    color:#fff !important;
  }
  .hero-card span{
    color:#111 !important;
    opacity:1 !important;
    margin:0 !important;
  }
  .hero-card strong{
    color:#fff !important;
    margin:0 !important;
  }
  .hero-card small{
    color:#111 !important;
    opacity:1 !important;
    margin:0 !important;
  }
}

@media(max-width:900px){
  .site-header .brand{
    width:185px !important;
    flex-basis:185px !important;
  }
  .site-header .brand img{
    width:185px !important;
    height:auto !important;
  }

  .hero-content h1{
    font-size:clamp(2.65rem,10vw,4.15rem) !important;
    margin-bottom:14px !important;
  }

  .hero-actions{
    margin-top:18px !important;
  }

  .hero-card span,
  .hero-card small{
    color:#111 !important;
    opacity:1 !important;
  }
}

/* V2.10 — ajustement fin selon validation visuelle */
@media(min-width:901px){
  /* Logo légèrement réduit */
  .site-header .brand{
    width:205px !important;
    flex:0 0 205px !important;
  }
  .site-header .brand img{
    width:205px !important;
    height:auto !important;
  }

  /* Descend tout le bloc éditorial : accroche, titre, texte et boutons */
  .hero-content{
    top:112px !important;
  }
}

@media(max-width:900px){
  .site-header .brand{
    width:170px !important;
    flex-basis:170px !important;
  }
  .site-header .brand img{
    width:170px !important;
  }

  .hero-content{
    margin-top:18px !important;
  }
}

/* =========================================================
   V2.11 — Programmation réelle avec les photos fournies
   ========================================================= */
.home-lineup{
  margin-top:34px !important;
}
.lineup-heading{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(280px,.7fr);
  gap:40px;
  align-items:end;
  margin-bottom:34px;
}
.kicker{
  display:inline-block;
  margin-bottom:10px;
  color:#ef9514;
  font-size:.82rem;
  font-weight:900;
  letter-spacing:.16em;
}
.artist-grid-featured{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}
.artist-card-photo{
  padding:0 !important;
  overflow:hidden;
  border-radius:22px !important;
}
.artist-media{
  display:block;
  position:relative;
  height:270px;
  overflow:hidden;
  background:#d9d9d9;
}
.artist-media img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
  transition:transform .45s ease;
}
.artist-card-photo:hover .artist-media img{
  transform:scale(1.035);
}
.artist-card-photo:nth-child(1) .artist-media img{object-position:center 46%}
.artist-card-photo:nth-child(2) .artist-media img{object-position:center 42%}
.artist-card-photo:nth-child(3) .artist-media img{object-position:38% center}
.artist-card-photo:nth-child(4) .artist-media img{object-position:center 35%}
.artist-card-photo:nth-child(5) .artist-media img{object-position:center 44%}
.artist-card-photo:nth-child(6) .artist-media img{object-position:center 50%}
.artist-style{
  position:absolute;
  left:16px;
  bottom:16px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:6px 11px;
  border-radius:999px;
  background:rgba(10,17,29,.78);
  color:#fff;
  font-size:.78rem;
  font-weight:800;
  backdrop-filter:blur(10px);
}
.artist-card-body{
  padding:20px 20px 22px;
}
.artist-meta-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  color:#747b8b;
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.artist-meta-row strong{
  color:#ef9514;
}
.artist-card-body h3{
  margin:9px 0 8px;
  font-size:1.65rem;
  line-height:1.05;
}
.artist-card-body p{
  margin:0 0 18px;
  color:#697083;
  line-height:1.55;
}
.artist-link{
  display:inline-flex;
  gap:8px;
  align-items:center;
  color:#182030;
  font-weight:850;
  text-decoration:none;
}
.artist-link:hover{
  color:#ef9514;
}
.section-actions{
  display:flex;
  justify-content:center;
  margin-top:32px;
}
@media(max-width:980px){
  .artist-grid-featured{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lineup-heading{grid-template-columns:1fr}
}
@media(max-width:640px){
  .artist-grid-featured{grid-template-columns:1fr}
  .artist-media{height:250px}
}

/* =========================================================
   V2.12 — photos artistes + fiches artistes
   ========================================================= */
.artist-grid-photos{
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:22px !important;
}
.artist-photo-card{
  padding:0 !important;
  overflow:hidden !important;
  background:#fff !important;
  color:#171c28 !important;
  border-radius:22px !important;
}
.artist-photo{
  display:block;
  position:relative;
  height:250px;
  overflow:hidden;
  background:#ddd;
}
.artist-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  transition:transform .4s ease;
}
.artist-photo-card:hover .artist-photo img{transform:scale(1.035)}
.artist-photo-card:nth-child(1) .artist-photo img{object-position:center 45%}
.artist-photo-card:nth-child(2) .artist-photo img{object-position:38% center}
.artist-photo-card:nth-child(3) .artist-photo img{object-position:center 45%}
.artist-photo-card:nth-child(4) .artist-photo img{object-position:center 42%}
.artist-photo-card:nth-child(5) .artist-photo img{object-position:center 48%}
.artist-photo-card:nth-child(6) .artist-photo img{object-position:center 38%}
.artist-style-badge{
  position:absolute;
  left:14px;
  bottom:14px;
  display:inline-flex;
  padding:7px 11px;
  border-radius:999px;
  background:rgba(8,14,24,.8);
  color:#fff;
  font-size:.76rem;
  font-weight:800;
  backdrop-filter:blur(8px);
}
.artist-photo-body{padding:18px 18px 20px}
.artist-photo-body .artist-meta{margin-bottom:8px;color:#707789}
.artist-photo-body h3{
  margin:0 0 9px;
  color:#171c28;
  font-size:1.55rem;
}
.artist-photo-body p{
  margin:0 0 15px;
  color:#697083;
  line-height:1.5;
}
.artist-photo-body a{
  color:#171c28 !important;
  font-weight:850;
  text-decoration:none;
}
.artist-photo-body a:hover{color:#ef9514 !important}

.program-day-rich{
  margin-bottom:30px;
  padding:28px !important;
}
.program-day-head{margin-bottom:18px}
.program-day-head h2{margin:0}
.program-cards{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.program-card{
  display:grid;
  grid-template-columns:145px 1fr;
  min-height:120px;
  overflow:hidden;
  background:#fff;
  border-radius:18px;
  text-decoration:none;
  color:#161b27;
}
.program-card-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.program-card-body{
  display:grid;
  grid-template-columns:70px 1fr 24px;
  gap:12px;
  align-items:center;
  padding:14px 16px;
}
.program-card-body time{
  color:#ef9514;
  font-size:1.15rem;
  font-weight:900;
}
.program-card-body strong{
  display:block;
  font-size:1.05rem;
}
.program-card-body small{
  display:block;
  margin-top:4px;
  color:#747b8b;
}
.program-card-body b{font-size:1.2rem}

.artist-detail-hero{
  position:relative;
  max-width:1280px;
  min-height:610px;
  margin:24px auto 0;
  border-radius:28px;
  overflow:hidden;
  background:#0b1320;
}
.artist-detail-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.artist-detail-shade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(7,12,22,.84),rgba(7,12,22,.40) 54%,rgba(7,12,22,.08)),
    linear-gradient(0deg,rgba(7,12,22,.52),transparent 45%);
}
.artist-detail-copy{
  position:absolute;
  z-index:2;
  left:7%;
  bottom:56px;
  width:min(700px,76%);
  color:#fff;
}
.artist-back{
  display:inline-block;
  margin-bottom:18px;
  color:rgba(255,255,255,.86);
  text-decoration:none;
}
.artist-detail-copy h1{
  margin:5px 0 14px;
  font-size:clamp(3.2rem,6vw,5.8rem);
  line-height:.94;
}
.artist-detail-copy p:last-child{
  max-width:680px;
  font-size:1.12rem;
  line-height:1.55;
}
.artist-detail-grid{
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(260px,.6fr);
  gap:60px;
  align-items:start;
}
.artist-story h2{
  margin:4px 0 18px;
  font-size:clamp(2.2rem,4vw,3.8rem);
}
.artist-facts{
  padding:24px;
  border-radius:20px;
  background:#5D726F;
  color:#fff;
}
.artist-facts div{
  padding:14px 0;
  border-bottom:1px solid rgba(255,255,255,.18);
}
.artist-facts div:last-child{border-bottom:0}
.artist-facts span{
  display:block;
  margin-bottom:5px;
  color:#111;
  font-size:.74rem;
  font-weight:900;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.artist-facts strong{font-size:1.16rem}

@media(max-width:950px){
  .artist-grid-photos{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
  .program-cards{grid-template-columns:1fr}
}
@media(max-width:700px){
  .artist-grid-photos{grid-template-columns:1fr !important}
  .artist-photo{height:250px}
  .program-card{grid-template-columns:110px 1fr}
  .program-card-body{grid-template-columns:58px 1fr 20px}
  .artist-detail-hero{
    margin:10px;
    min-height:540px;
    border-radius:22px;
  }
  .artist-detail-copy{
    left:24px;
    right:24px;
    bottom:34px;
    width:auto;
  }
  .artist-detail-grid{grid-template-columns:1fr;gap:30px}
}

/* =========================================================
   V2.13 — Événements réels
   ========================================================= */
.event-card-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
}
.event-visual-card{
  overflow:hidden;
  border-radius:22px;
  background:#fff;
  color:#171c28;
  box-shadow:0 16px 40px rgba(7,16,32,.13);
}
.event-poster{
  position:relative;
  display:block;
  height:330px;
  overflow:hidden;
  background:#121722;
}
.event-poster img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 30%;
  transition:transform .4s ease;
}
.event-visual-card:hover .event-poster img{transform:scale(1.025)}
.event-category{
  position:absolute;
  left:14px;
  bottom:14px;
  padding:7px 11px;
  border-radius:999px;
  background:rgba(8,14,24,.82);
  color:#fff;
  font-size:.76rem;
  font-weight:850;
  backdrop-filter:blur(8px);
}
.event-visual-body{padding:19px 19px 22px}
.event-visual-meta{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:center;
  margin-bottom:10px;
  color:#777e8f;
  font-size:.82rem;
}
.event-visual-meta strong{color:#ef9514;letter-spacing:.08em}
.event-visual-body h3,
.event-visual-body h2{
  margin:0 0 7px;
  color:#171c28;
  font-size:1.55rem;
  line-height:1.08;
}
.event-visual-body p{
  margin:0 0 15px;
  color:#697083;
  line-height:1.55;
}
.event-more{
  color:#171c28;
  font-weight:850;
  text-decoration:none;
}
.event-more:hover{color:#ef9514}
.event-card-grid-page .event-poster-tall{
  height:460px;
}
.event-card-grid-page .event-poster-tall img{
  object-position:center top;
}

.event-detail-hero{
  max-width:1280px;
  margin:24px auto 0;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(330px,.55fr);
  gap:48px;
  align-items:center;
  padding:64px;
  border-radius:28px;
  background:
    radial-gradient(circle at 78% 25%,rgba(239,149,20,.18),transparent 26rem),
    linear-gradient(135deg,#172b45,#0a1120);
  color:#fff;
}
.event-detail-copy h1{
  margin:6px 0 17px;
  font-size:clamp(3rem,5.4vw,5.4rem);
  line-height:.94;
}
.event-detail-summary{
  max-width:720px;
  color:#d0d6e2;
  font-size:1.12rem;
  line-height:1.6;
}
.event-detail-keyfacts{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-top:30px;
}
.event-detail-keyfacts div{
  padding:16px;
  border-radius:16px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.11);
}
.event-detail-keyfacts span{
  display:block;
  margin-bottom:6px;
  color:#f3a32e;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.event-detail-keyfacts strong{
  display:block;
  font-size:.98rem;
}
.event-detail-poster{
  text-align:center;
}
.event-detail-poster img{
  width:100%;
  max-height:620px;
  object-fit:contain;
  border-radius:18px;
  background:#0a0e16;
  box-shadow:0 22px 55px rgba(0,0,0,.3);
}
.event-detail-poster small{
  display:block;
  margin-top:9px;
  color:#aeb7c9;
}
.event-detail-section{margin-top:28px !important}
.event-detail-grid{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(300px,.65fr);
  gap:60px;
}
.event-detail-grid h2{
  margin:6px 0 20px;
  font-size:clamp(2.3rem,4vw,3.8rem);
}
.event-info-list{
  margin:0;
  padding:0;
  list-style:none;
}
.event-info-list li{
  position:relative;
  padding:15px 0 15px 30px;
  border-bottom:1px solid #e2e4e9;
  color:#303745;
  font-size:1.05rem;
}
.event-info-list li:before{
  content:"→";
  position:absolute;
  left:0;
  color:#ef9514;
  font-weight:900;
}
.event-prices{
  padding:24px;
  border-radius:20px;
  background:#5D726F;
  color:#fff;
}
.event-prices .eyebrow{color:#111 !important}
.event-prices h3{margin:6px 0 15px;font-size:1.65rem}
.event-prices ul{margin:0;padding-left:19px}
.event-prices li{margin:8px 0;line-height:1.45}
.event-mini-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.event-mini-card{
  display:grid;
  grid-template-columns:130px 1fr;
  min-height:120px;
  overflow:hidden;
  border-radius:18px;
  background:#fff;
  color:#171c28;
  text-decoration:none;
}
.event-mini-card img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.event-mini-card span{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:18px;
}
.event-mini-card small{
  margin-bottom:6px;
  color:#ef9514;
  font-weight:850;
}
.event-mini-card strong{font-size:1.18rem}

@media(max-width:950px){
  .event-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .event-detail-hero{grid-template-columns:1fr;padding:42px}
  .event-detail-poster img{max-height:560px}
}
@media(max-width:700px){
  .event-card-grid{grid-template-columns:1fr}
  .event-poster{height:390px}
  .event-card-grid-page .event-poster-tall{height:470px}
  .event-detail-hero{margin:10px;padding:30px 22px;border-radius:22px}
  .event-detail-keyfacts{grid-template-columns:1fr}
  .event-detail-grid{grid-template-columns:1fr;gap:30px}
  .event-mini-grid{grid-template-columns:1fr}
}

/* =========================================================
   V2.14 — Back-office
   ========================================================= */
.admin-login-body{
  min-height:100vh;display:grid;place-items:center;padding:30px;
  background:#edf0ef;color:#18201f;
}
.admin-login-card{
  width:min(520px,100%);padding:36px;border-radius:24px;background:#fff;
  box-shadow:0 25px 70px rgba(21,30,29,.14);
}
.admin-login-card>img{display:block;width:250px;height:auto;margin:0 0 22px}
.admin-login-card h1{margin:4px 0 24px;font-size:2.6rem}
.admin-help{margin-top:20px;color:#68706f}
.admin-form,.admin-edit-form{display:grid;gap:18px}
.admin-form label,.admin-edit-form label{display:grid;gap:7px;font-weight:750;color:#252d2c}
.admin-form input,.admin-edit-form input,.admin-edit-form textarea,.admin-edit-form select{
  width:100%;padding:13px 14px;border:1px solid #d6dcda;border-radius:11px;
  background:#fff;color:#17201f;font:inherit;outline:none;
}
.admin-form input:focus,.admin-edit-form input:focus,.admin-edit-form textarea:focus{
  border-color:#5D726F;box-shadow:0 0 0 3px rgba(93,114,111,.12)
}
.admin-app{background:#eef1f0;color:#18201f}
.admin-topbar{
  height:82px;display:flex;align-items:center;justify-content:space-between;
  padding:10px 28px;background:#111b1a;color:#fff;position:sticky;top:0;z-index:30
}
.admin-brand img{display:block;width:205px;height:auto}
.admin-userbar{display:flex;align-items:center;gap:20px;font-size:.9rem}
.admin-userbar a{color:#fff;text-decoration:none}
.admin-layout{display:grid;grid-template-columns:230px 1fr;min-height:calc(100vh - 82px)}
.admin-sidebar{padding:24px 15px;background:#1d2927;color:#fff}
.admin-sidebar nav{display:grid;gap:6px;position:sticky;top:106px}
.admin-sidebar a,.admin-nav-disabled{
  display:flex;justify-content:space-between;padding:12px 14px;border-radius:10px;color:#fff;text-decoration:none
}
.admin-sidebar a:hover{background:rgba(255,255,255,.09)}
.admin-nav-disabled{color:#889591}.admin-nav-disabled small{font-size:.68rem}
.admin-main{padding:34px;overflow:hidden}
.admin-page-head{
  display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:28px
}
.admin-page-head h1{margin:3px 0 0;font-size:clamp(2.3rem,4vw,4rem)}
.admin-page-head>a:not(.button){color:#34423f;text-decoration:none;font-weight:800}
.admin-status{padding:8px 12px;border-radius:999px;background:#d9ebe5;color:#275b4c;font-size:.8rem;font-weight:850}
.admin-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}
.admin-stat{padding:24px;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(15,25,23,.06)}
.admin-stat strong{display:block;font-size:2.7rem;line-height:1;color:#5D726F}
.admin-stat span{display:block;margin-top:8px;color:#65706e}
.admin-quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.admin-quick{
  padding:25px;border-radius:18px;background:#fff;color:#18201f;text-decoration:none;
  box-shadow:0 8px 24px rgba(15,25,23,.06)
}
.admin-quick>span{display:block;font-size:2rem;color:#ef9514}
.admin-quick strong{display:block;margin:8px 0 4px;font-size:1.35rem}
.admin-quick small{color:#687270}
.admin-flash{margin:0 0 20px;padding:13px 16px;border-radius:11px;font-weight:750}
.admin-flash.success{background:#d9ebe5;color:#205643}
.admin-flash.error{background:#f7dddd;color:#7b2525}
.admin-table-wrap{overflow:auto;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(15,25,23,.06)}
.admin-table{width:100%;border-collapse:collapse;min-width:780px}
.admin-table th,.admin-table td{padding:15px 17px;border-bottom:1px solid #edf0ef;text-align:left;vertical-align:middle}
.admin-table th{font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:#77817f}
.admin-table td small{display:block;margin-top:4px;color:#7a8583}
.admin-actions{display:flex;align-items:center;gap:12px}
.admin-actions a,.admin-actions button{border:0;background:none;padding:0;color:#335e55;font:inherit;font-weight:800;text-decoration:none;cursor:pointer}
.admin-actions button{color:#9b4242}
.admin-pill{display:inline-flex;padding:6px 9px;border-radius:999px;font-size:.72rem;font-weight:850}
.admin-pill.published{background:#d9ebe5;color:#205643}.admin-pill.draft{background:#eceeed;color:#697270}
.admin-edit-form{padding:28px;border-radius:20px;background:#fff;box-shadow:0 8px 24px rgba(15,25,23,.06)}
.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.admin-edit-form label small{font-weight:500;color:#7b8583}
.admin-check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center!important}
.admin-check input{width:auto!important}
.admin-form-actions{display:flex;gap:12px;margin-top:5px}
@media(max-width:900px){
  .admin-topbar{height:auto;align-items:flex-start;gap:15px;flex-direction:column}
  .admin-userbar{flex-wrap:wrap}
  .admin-layout{grid-template-columns:1fr}
  .admin-sidebar{padding:10px 14px}
  .admin-sidebar nav{display:flex;overflow:auto;position:static}
  .admin-sidebar a,.admin-nav-disabled{white-space:nowrap}
  .admin-main{padding:22px 15px}
  .admin-stat-grid{grid-template-columns:repeat(2,1fr)}
  .admin-quick-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .admin-page-head{align-items:flex-start;flex-direction:column}
  .admin-stat-grid{grid-template-columns:1fr}
  .admin-form-grid{grid-template-columns:1fr}
}

/* =========================================================
   V2.15 — REDESIGN COMPLET DU BACK-OFFICE
   ========================================================= */

.admin-app{
  background:#f4f6f5 !important;
  color:#1d2927 !important;
  min-height:100vh;
  font-size:15px;
}

/* TOPBAR */
.admin-topbar{
  height:72px !important;
  padding:0 26px !important;
  background:#10201d !important;
  color:#fff !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  border-bottom:1px solid rgba(255,255,255,.08);
  box-shadow:0 4px 18px rgba(11,24,20,.10);
}

.admin-brand{
  display:flex !important;
  align-items:center !important;
  width:auto !important;
}

.admin-brand img{
  width:155px !important;
  height:auto !important;
  display:block;
}

.admin-userbar{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  font-size:.84rem !important;
}

.admin-userbar span{
  color:#c8d2cf;
  padding-right:8px;
}

.admin-userbar a{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:0 12px;
  border-radius:9px;
  color:#f4f7f6 !important;
  text-decoration:none;
  background:rgba(255,255,255,.055);
  transition:background .2s ease, transform .2s ease;
}

.admin-userbar a:hover{
  background:rgba(255,255,255,.11);
  transform:translateY(-1px);
}

/* LAYOUT */
.admin-layout{
  display:grid !important;
  grid-template-columns:220px minmax(0,1fr) !important;
  min-height:calc(100vh - 72px) !important;
}

.admin-sidebar{
  padding:22px 14px !important;
  background:#172724 !important;
  border-right:1px solid rgba(255,255,255,.05);
}

.admin-sidebar nav{
  display:grid !important;
  gap:5px !important;
  position:sticky !important;
  top:94px !important;
}

.admin-sidebar a,
.admin-nav-disabled{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  min-height:42px !important;
  padding:0 13px !important;
  border-radius:10px !important;
  color:#d7e0dd !important;
  text-decoration:none !important;
  font-size:.92rem !important;
  font-weight:650 !important;
  transition:background .18s ease, color .18s ease;
}

.admin-sidebar a:hover{
  background:rgba(255,255,255,.075) !important;
  color:#fff !important;
}

.admin-nav-disabled{
  color:#778783 !important;
  cursor:default;
}

.admin-nav-disabled small{
  font-size:.63rem !important;
  color:#93a39f !important;
  text-transform:uppercase;
  letter-spacing:.06em;
}

/* MAIN */
.admin-main{
  padding:28px 34px 44px !important;
  max-width:1480px;
  width:100%;
  margin:0 auto;
}

.admin-page-head{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:18px !important;
  margin:0 0 24px !important;
}

.admin-page-head .eyebrow{
  margin:0 0 5px !important;
  color:#ef9514 !important;
  font-size:.68rem !important;
  font-weight:900 !important;
  letter-spacing:.16em !important;
  text-transform:uppercase !important;
}

.admin-page-head h1{
  margin:0 !important;
  font-size:2rem !important;
  line-height:1.1 !important;
  letter-spacing:-.03em !important;
  color:#17201f !important;
}

.admin-page-head>a:not(.button){
  color:#43524f !important;
  font-size:.88rem !important;
}

.admin-status{
  display:inline-flex !important;
  align-items:center !important;
  min-height:32px !important;
  padding:0 10px !important;
  border-radius:999px !important;
  background:#dcebe6 !important;
  color:#2e6656 !important;
  font-size:.72rem !important;
  font-weight:850 !important;
}

/* DASHBOARD STATS */
.admin-stat-grid{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:14px !important;
  margin:0 0 18px !important;
}

.admin-stat{
  position:relative;
  padding:18px 18px 16px !important;
  min-height:118px;
  border-radius:16px !important;
  background:#fff !important;
  border:1px solid #e8ecea;
  box-shadow:0 8px 24px rgba(21,35,31,.055) !important;
  overflow:hidden;
}

.admin-stat:after{
  content:"";
  position:absolute;
  right:-18px;
  bottom:-26px;
  width:85px;
  height:85px;
  border-radius:50%;
  background:rgba(93,114,111,.08);
}

.admin-stat strong{
  display:block !important;
  font-size:2rem !important;
  line-height:1 !important;
  color:#5D726F !important;
  font-weight:800 !important;
}

.admin-stat span{
  display:block !important;
  margin-top:10px !important;
  color:#68736f !important;
  font-size:.88rem !important;
  font-weight:650;
}

/* QUICK ACTIONS */
.admin-quick-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:14px !important;
}

.admin-quick{
  position:relative;
  display:grid !important;
  grid-template-columns:42px 1fr;
  grid-template-rows:auto auto;
  column-gap:14px;
  align-items:center;
  padding:18px !important;
  min-height:116px !important;
  border-radius:16px !important;
  background:#fff !important;
  border:1px solid #e8ecea;
  color:#1b2624 !important;
  text-decoration:none !important;
  box-shadow:0 8px 24px rgba(21,35,31,.05) !important;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.admin-quick:hover{
  transform:translateY(-2px);
  box-shadow:0 13px 30px rgba(21,35,31,.08) !important;
  border-color:#d4dcda;
}

.admin-quick>span{
  grid-row:1/3;
  display:grid !important;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:12px;
  background:#fff2df;
  color:#ef9514 !important;
  font-size:1.35rem !important;
  font-weight:500;
}

.admin-quick strong{
  display:block !important;
  margin:0 0 3px !important;
  font-size:1rem !important;
  line-height:1.2 !important;
}

.admin-quick small{
  color:#77817e !important;
  font-size:.78rem !important;
  line-height:1.4;
}

/* BUTTONS */
.admin-app .button{
  min-height:38px !important;
  padding:0 14px !important;
  border-radius:9px !important;
  font-size:.82rem !important;
  font-weight:800 !important;
}

.admin-app .button-primary{
  background:#ef9514 !important;
  color:#17201f !important;
}

.admin-app .button-secondary{
  background:#eef1f0 !important;
  color:#293533 !important;
  border:1px solid #d8dddb !important;
}

/* TABLES */
.admin-table-wrap{
  overflow:auto !important;
  border-radius:16px !important;
  background:#fff !important;
  border:1px solid #e8ecea;
  box-shadow:0 8px 24px rgba(21,35,31,.05) !important;
}

.admin-table{
  width:100% !important;
  min-width:780px !important;
  border-collapse:collapse !important;
  font-size:.88rem !important;
}

.admin-table th{
  padding:12px 15px !important;
  background:#fafbfb;
  border-bottom:1px solid #e8ecea !important;
  color:#7a8481 !important;
  font-size:.66rem !important;
  letter-spacing:.09em !important;
  text-transform:uppercase !important;
  font-weight:850 !important;
}

.admin-table td{
  padding:13px 15px !important;
  border-bottom:1px solid #eef1f0 !important;
  color:#34413e !important;
  vertical-align:middle !important;
}

.admin-table tbody tr:hover{
  background:#fbfcfc;
}

.admin-table td strong{
  color:#1f2a28;
  font-weight:750;
}

.admin-table td small{
  margin-top:3px !important;
  color:#83908c !important;
  font-size:.74rem !important;
}

.admin-actions{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  white-space:nowrap;
}

.admin-actions a,
.admin-actions button{
  font-size:.78rem !important;
  font-weight:800 !important;
}

.admin-pill{
  padding:5px 8px !important;
  font-size:.66rem !important;
  font-weight:850 !important;
}

/* FORMS */
.admin-edit-form{
  padding:22px !important;
  border-radius:16px !important;
  background:#fff !important;
  border:1px solid #e8ecea;
  box-shadow:0 8px 24px rgba(21,35,31,.05) !important;
  gap:16px !important;
}

.admin-form-grid{
  gap:15px !important;
}

.admin-edit-form label,
.admin-form label{
  gap:6px !important;
  color:#34413e !important;
  font-size:.8rem !important;
  font-weight:750 !important;
}

.admin-edit-form input,
.admin-edit-form textarea,
.admin-edit-form select,
.admin-form input{
  min-height:40px !important;
  padding:10px 12px !important;
  border-radius:9px !important;
  border:1px solid #d8dddb !important;
  font-size:.88rem !important;
}

.admin-edit-form textarea{
  min-height:140px !important;
  line-height:1.5 !important;
}

.admin-edit-form input:focus,
.admin-edit-form textarea:focus,
.admin-edit-form select:focus,
.admin-form input:focus{
  border-color:#5D726F !important;
  box-shadow:0 0 0 3px rgba(93,114,111,.10) !important;
}

.admin-check{
  font-size:.82rem !important;
}

.admin-form-actions{
  gap:9px !important;
  margin-top:2px !important;
}

/* FLASH */
.admin-flash{
  padding:11px 13px !important;
  border-radius:10px !important;
  font-size:.8rem !important;
  margin-bottom:16px !important;
}

/* LOGIN */
.admin-login-body{
  background:
    radial-gradient(circle at 15% 20%,rgba(239,149,20,.10),transparent 24rem),
    radial-gradient(circle at 85% 80%,rgba(93,114,111,.12),transparent 24rem),
    #f2f5f4 !important;
}

.admin-login-card{
  width:min(430px,100%) !important;
  padding:28px !important;
  border-radius:20px !important;
  box-shadow:0 20px 55px rgba(21,35,31,.10) !important;
}

.admin-login-card>img{
  width:190px !important;
  margin-bottom:18px !important;
}

.admin-login-card h1{
  font-size:2rem !important;
  margin-bottom:20px !important;
}

.admin-help{
  font-size:.8rem !important;
}

/* RESPONSIVE */
@media(max-width:1050px){
  .admin-stat-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media(max-width:900px){
  .admin-topbar{
    height:auto !important;
    min-height:68px !important;
    padding:12px 16px !important;
    gap:12px !important;
  }

  .admin-brand img{
    width:140px !important;
  }

  .admin-layout{
    grid-template-columns:1fr !important;
  }

  .admin-sidebar{
    padding:9px 12px !important;
    overflow:auto;
  }

  .admin-sidebar nav{
    display:flex !important;
    gap:6px !important;
    position:static !important;
  }

  .admin-sidebar a,
  .admin-nav-disabled{
    min-height:36px !important;
    padding:0 11px !important;
    white-space:nowrap;
    font-size:.8rem !important;
  }

  .admin-main{
    padding:22px 16px 36px !important;
  }
}

@media(max-width:650px){
  .admin-page-head{
    align-items:flex-start !important;
    flex-direction:column !important;
  }

  .admin-page-head h1{
    font-size:1.7rem !important;
  }

  .admin-stat-grid,
  .admin-quick-grid{
    grid-template-columns:1fr !important;
  }

  .admin-form-grid{
    grid-template-columns:1fr !important;
  }

  .admin-userbar{
    flex-wrap:wrap !important;
  }
}


/* =========================================================
   V2.16 — ADMINISTRATION PLEIN ÉCRAN
   ========================================================= */

/* Le back-office occupe réellement tout le viewport */
html:has(.admin-app),
body.admin-app{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}

body.admin-app{
  overflow-x:hidden;
}

/* Barre supérieure sur toute la largeur */
.admin-topbar{
  position:sticky !important;
  top:0 !important;
  z-index:1000 !important;
  width:100% !important;
  max-width:none !important;
  height:72px !important;
  margin:0 !important;
  padding:0 28px !important;
  box-sizing:border-box !important;
  border-radius:0 !important;
}

.admin-brand{
  flex:0 0 auto !important;
}

.admin-brand img{
  width:170px !important;
  max-height:58px !important;
  object-fit:contain !important;
}

.admin-userbar{
  margin-left:auto !important;
}

/* Sidebar fixe à gauche + contenu qui remplit tout le reste */
.admin-layout{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  display:grid !important;
  grid-template-columns:240px minmax(0,1fr) !important;
  min-height:calc(100vh - 72px) !important;
}

.admin-sidebar{
  width:240px !important;
  min-width:240px !important;
  min-height:calc(100vh - 72px) !important;
  padding:22px 14px !important;
  box-sizing:border-box !important;
}

.admin-sidebar nav{
  width:100% !important;
}

/* Zone centrale : aucune largeur maximale */
.admin-main{
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  margin:0 !important;
  padding:30px 38px 48px !important;
  box-sizing:border-box !important;
}

/* En-tête de page exploite la largeur disponible */
.admin-page-head{
  width:100% !important;
  max-width:none !important;
}

/* Dashboard plus aéré sur grands écrans */
.admin-stat-grid{
  width:100% !important;
  grid-template-columns:repeat(4,minmax(180px,1fr)) !important;
  gap:18px !important;
}

.admin-quick-grid{
  width:100% !important;
  grid-template-columns:repeat(2,minmax(280px,1fr)) !important;
  gap:18px !important;
}

/* Les cartes utilisent mieux la largeur sans devenir énormes */
.admin-stat{
  min-height:120px !important;
}

.admin-quick{
  min-height:120px !important;
}

/* Les listes Artistes / Événements utilisent également tout l'espace */
.admin-table-wrap,
.admin-edit-form{
  width:100% !important;
  max-width:none !important;
  box-sizing:border-box !important;
}

/* Très grands écrans : davantage de respiration */
@media(min-width:1500px){
  .admin-layout{
    grid-template-columns:260px minmax(0,1fr) !important;
  }

  .admin-sidebar{
    width:260px !important;
    min-width:260px !important;
    padding:26px 18px !important;
  }

  .admin-main{
    padding:34px 48px 54px !important;
  }

  .admin-stat-grid,
  .admin-quick-grid{
    gap:20px !important;
  }
}

/* Tablettes */
@media(max-width:900px){
  .admin-topbar{
    width:100% !important;
    padding:10px 16px !important;
  }

  .admin-layout{
    grid-template-columns:1fr !important;
  }

  .admin-sidebar{
    width:100% !important;
    min-width:0 !important;
    min-height:auto !important;
  }

  .admin-main{
    padding:22px 18px 36px !important;
  }
}

/* =========================================================
   V2.17 — Réservations & plan de salle
   ========================================================= */
.admin-stat-grid-6{
  grid-template-columns:repeat(6,minmax(120px,1fr)) !important;
}
.admin-filterbar{
  display:flex;gap:14px;align-items:end;margin:0 0 18px;padding:14px 16px;
  border:1px solid #e4e9e7;border-radius:14px;background:#fff;
}
.admin-filterbar label{display:grid;gap:6px;font-size:.78rem;font-weight:800;color:#45524f}
.admin-filterbar select{
  min-width:290px;padding:9px 11px;border:1px solid #d8dddb;border-radius:9px;background:#fff;font:inherit
}
.admin-room-layout{
  display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px;align-items:start
}
.admin-room-main{
  padding:20px;border:1px solid #e4e9e7;border-radius:18px;background:#fff;
  box-shadow:0 8px 24px rgba(21,35,31,.05)
}
.admin-room-stage{
  margin:0 auto 22px;width:min(520px,80%);padding:11px;border-radius:12px;
  background:#172724;color:#fff;text-align:center;font-size:.72rem;font-weight:900;letter-spacing:.12em
}
.admin-table-grid{
  display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:14px
}
.room-table{
  min-height:150px;padding:14px;border:2px solid #cfd8d5;border-radius:18px;background:#f9fbfa
}
.room-table.full{border-color:#ef9514;background:#fff8ec}
.room-table-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:3px}
.room-table-head strong{font-size:1rem}
.room-table-head span{font-size:.75rem;font-weight:850;color:#5D726F}
.room-table>small{display:block;margin-bottom:10px;color:#7d8885}
.room-assignment{
  display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:7px;padding:7px 9px;
  border-radius:9px;background:#fff;border:1px solid #e5e9e7;font-size:.75rem
}
.room-assignment form{margin:0}
.room-assignment button{border:0;background:none;color:#9a4040;font-size:1rem;cursor:pointer}
.admin-room-side{display:grid;gap:14px}
.admin-side-card{
  padding:18px;border:1px solid #e4e9e7;border-radius:16px;background:#fff;
  box-shadow:0 8px 24px rgba(21,35,31,.05)
}
.admin-side-card h3{margin:0 0 13px;font-size:1rem}
.admin-mini-form{display:grid;gap:10px}
.admin-mini-form input,.admin-mini-form select{
  width:100%;padding:10px 11px;border:1px solid #d8dddb;border-radius:9px;background:#fff;font:inherit;font-size:.83rem
}
.admin-empty{
  padding:34px;border:1px dashed #cfd8d5;border-radius:16px;background:#fff;color:#6f7b78;text-align:center
}
@media(max-width:1200px){
  .admin-stat-grid-6{grid-template-columns:repeat(3,minmax(120px,1fr)) !important}
  .admin-room-layout{grid-template-columns:1fr}
  .admin-room-side{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .admin-stat-grid-6{grid-template-columns:repeat(2,minmax(120px,1fr)) !important}
  .admin-table-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}
  .admin-room-side{grid-template-columns:1fr}
}
@media(max-width:520px){
  .admin-stat-grid-6{grid-template-columns:1fr !important}
  .admin-table-grid{grid-template-columns:1fr}
  .admin-filterbar select{min-width:0;width:100%}
}

/* =========================================================
   V2.18 — Réservation publique repas
   ========================================================= */
.event-reservation-cta{display:flex;align-items:center;gap:14px;margin-top:24px}
.event-reservation-cta small{color:#c8d0de}

.reservation-hero{
  max-width:1280px;margin:24px auto 0;padding:52px 58px;
  display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:44px;align-items:center;
  border-radius:28px;background:linear-gradient(135deg,#152925,#0e171d);color:#fff
}
.reservation-hero h1{margin:5px 0 12px;font-size:clamp(2.8rem,5vw,5rem);line-height:.95}
.reservation-hero p:last-child{max-width:720px;color:#c8d2cf;line-height:1.6}
.reservation-hero img{width:100%;height:300px;object-fit:cover;object-position:center top;border-radius:18px}
.reservation-section{padding-top:30px}
.reservation-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:28px;align-items:start}
.reservation-form{
  display:grid;gap:22px;padding:28px;border-radius:22px;background:#fff;color:#1d2927;
  box-shadow:0 14px 40px rgba(12,24,20,.08)
}
.reservation-block{display:flex;gap:14px;align-items:flex-start;padding-top:8px}
.reservation-block h2{margin:0 0 4px;font-size:1.35rem}
.reservation-block p{margin:0;color:#74807c;font-size:.88rem}
.reservation-step{
  flex:0 0 34px;height:34px;display:grid;place-items:center;border-radius:50%;
  background:#172724;color:#fff;font-weight:850
}
.reservation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.reservation-form label{display:grid;gap:6px;color:#364440;font-size:.8rem;font-weight:760}
.reservation-form input,.reservation-form textarea,.reservation-form select{
  width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid #d8dfdc;border-radius:10px;
  background:#fff;color:#17201f;font:inherit
}
.reservation-form input:focus,.reservation-form textarea:focus,.reservation-form select:focus{
  outline:none;border-color:#5D726F;box-shadow:0 0 0 3px rgba(93,114,111,.10)
}
.service-switch,.payment-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.service-option{
  grid-template-columns:auto 1fr !important;align-items:center !important;
  padding:14px;border:1px solid #dce2df;border-radius:14px;background:#fafcfb;cursor:pointer
}
.service-option input{width:auto !important}
.service-option span{display:grid;gap:2px}
.service-option strong{font-size:.9rem}
.service-option small{color:#7b8582;font-weight:500}
.meal-options{display:grid;gap:10px}
.meal-option{
  display:grid;grid-template-columns:1fr 130px 84px;gap:14px;align-items:center;
  padding:13px 14px;border:1px solid #e1e6e4;border-radius:13px;background:#fbfcfc
}
.meal-option>div:first-child{display:grid;gap:3px}
.meal-option small{color:#7c8784}
.meal-price{font-weight:850;color:#5D726F;text-align:right}
.meal-price span{display:block}
.hidden-price{display:none !important}
.reservation-submit{
  display:flex;justify-content:space-between;align-items:center;gap:18px;
  padding-top:18px;border-top:1px solid #e6ebe9
}
.reservation-submit div{display:grid}
.reservation-submit small{color:#7c8784}
.reservation-submit strong{font-size:1.5rem;color:#172724}
.reservation-alert{
  padding:12px 14px;border-radius:11px;background:#fff1e0;color:#7e4c09;font-size:.86rem;font-weight:700
}
.reservation-summary{
  position:sticky;top:94px;padding:22px;border-radius:20px;background:#5D726F;color:#fff
}
.reservation-summary h3{margin:5px 0 18px;font-size:1.45rem}
.reservation-summary dl{margin:0}
.reservation-summary dl div{padding:12px 0;border-bottom:1px solid rgba(255,255,255,.18)}
.reservation-summary dt{
  margin-bottom:3px;color:#17201f;font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase
}
.reservation-summary dd{margin:0;font-weight:700}
.reservation-note{margin:18px 0 0;color:#eef3f1;font-size:.82rem;line-height:1.55}

.confirmation-page{min-height:70vh;display:grid;place-items:center;padding:70px 24px}
.confirmation-card{
  width:min(760px,100%);padding:36px;border-radius:24px;background:#fff;color:#17201f;
  box-shadow:0 20px 60px rgba(13,26,22,.10)
}
.confirmation-icon{
  width:54px;height:54px;display:grid;place-items:center;border-radius:50%;
  background:#dceddf;color:#225d43;font-size:1.6rem;font-weight:900
}
.confirmation-card h1{margin:10px 0 8px;font-size:2.5rem}
.confirmation-ref{margin:24px 0;padding:16px;border-radius:14px;background:#f3f6f5}
.confirmation-ref small{display:block;color:#78827f;margin-bottom:3px}
.confirmation-ref strong{font-size:1.35rem;letter-spacing:.05em}
.confirmation-details{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}
.confirmation-details div{padding:14px;border:1px solid #e3e8e6;border-radius:12px}
.confirmation-details span{display:block;color:#7c8683;font-size:.72rem}
.confirmation-details strong{display:block;margin-top:4px}
.confirmation-items{display:grid;gap:7px;margin:18px 0}
.confirmation-items div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid #edf0ef}
.confirmation-seating,.confirmation-note{color:#596561;line-height:1.55}
.confirmation-actions{display:flex;gap:10px;margin-top:24px}

@media(max-width:950px){
  .reservation-layout{grid-template-columns:1fr}
  .reservation-summary{position:static}
}
@media(max-width:760px){
  .reservation-hero{margin:10px;grid-template-columns:1fr;padding:30px 22px}
  .reservation-hero img{height:250px}
  .reservation-grid,.service-switch,.payment-options{grid-template-columns:1fr}
  .meal-option{grid-template-columns:1fr 110px 72px}
  .confirmation-details{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:520px){
  .reservation-form{padding:20px}
  .meal-option{grid-template-columns:1fr 80px}
  .meal-option>input{grid-column:1/-1}
  .reservation-submit{align-items:flex-start;flex-direction:column}
  .confirmation-details{grid-template-columns:1fr}
  .confirmation-actions{flex-direction:column}
}

/* V2.20 — modification des tables */
.room-table-edit{
  margin:10px 0 4px;
  padding-top:8px;
  border-top:1px solid #e5e9e7;
}
.room-table-edit summary{
  cursor:pointer;
  color:#5D726F;
  font-size:.72rem;
  font-weight:850;
  list-style:none;
}
.room-table-edit summary::-webkit-details-marker{display:none}
.room-table-edit summary:after{
  content:" ↓";
  color:#8c9894;
}
.room-table-edit[open] summary:after{content:" ↑"}
.room-table-edit-form{
  display:grid;
  gap:8px;
  margin-top:10px;
}
.room-table-edit-form label{
  display:grid;
  gap:4px;
  color:#52605c;
  font-size:.68rem;
  font-weight:800;
}
.room-table-edit-form input{
  width:100%;
  box-sizing:border-box;
  padding:8px 9px;
  border:1px solid #d8dddb;
  border-radius:8px;
  background:#fff;
  font:inherit;
  font-size:.78rem;
}
.room-table-edit-form .button{
  justify-content:center;
  min-height:34px !important;
  padding:0 10px !important;
  font-size:.74rem !important;
}

/* =========================================================
   V2.21 — Couleurs de tables + export PDF
   ========================================================= */
.room-table{
  background:var(--table-color,#f9fbfa) !important;
  border-color:color-mix(in srgb,var(--table-color,#d5dfdc) 55%,#657570 45%) !important;
  transition:transform .18s ease,box-shadow .18s ease;
}
.room-table:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 22px rgba(21,35,31,.09);
}
.room-table.full{
  outline:2px solid #ef9514;
  outline-offset:1px;
}
.room-assignment{
  background:rgba(255,255,255,.72) !important;
  border-color:rgba(23,39,36,.10) !important;
  backdrop-filter:blur(5px);
}

/* =========================================================
   V2.22 — Adultes / enfants sur le plan de salle
   ========================================================= */
.room-table-people{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:9px 0 5px;
}
.room-table-people span{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:5px 8px;
  border-radius:999px;
  background:rgba(255,255,255,.68);
  border:1px solid rgba(23,39,36,.10);
  color:#42504c;
  font-size:.68rem;
  font-weight:700;
}
.room-table-people b{
  color:#172724;
  font-size:.76rem;
}
.room-assignment>span{
  display:grid;
  gap:2px;
}
.room-assignment small{
  color:#6e7b77;
  font-size:.64rem;
}

/* V2.23 — Adultes / enfants dans Réservations */
.admin-stat-grid-8{
  grid-template-columns:repeat(8,minmax(105px,1fr)) !important;
}
@media(max-width:1450px){
  .admin-stat-grid-8{grid-template-columns:repeat(4,minmax(120px,1fr)) !important}
}
@media(max-width:850px){
  .admin-stat-grid-8{grid-template-columns:repeat(2,minmax(120px,1fr)) !important}
}
@media(max-width:500px){
  .admin-stat-grid-8{grid-template-columns:1fr !important}
}

/* =========================================================
   V2.24 — Vue cuisine : repas par type de service
   ========================================================= */
.admin-stat-grid-kitchen{
  grid-template-columns:repeat(7,minmax(120px,1fr)) !important;
}
.kitchen-stat.onsite{
  border-top:3px solid #5D726F !important;
}
.kitchen-stat.takeaway{
  border-top:3px solid #ef9514 !important;
}
.kitchen-stat.onsite strong{
  color:#5D726F !important;
}
.kitchen-stat.takeaway strong{
  color:#c97608 !important;
}

@media(max-width:1400px){
  .admin-stat-grid-kitchen{
    grid-template-columns:repeat(4,minmax(120px,1fr)) !important;
  }
}
@media(max-width:850px){
  .admin-stat-grid-kitchen{
    grid-template-columns:repeat(2,minmax(120px,1fr)) !important;
  }
}
@media(max-width:500px){
  .admin-stat-grid-kitchen{
    grid-template-columns:1fr !important;
  }
}

/* =========================================================
   V2.25 — Exports cuisine + étiquettes
   ========================================================= */
.admin-page-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:9px;
}
.admin-info-note{
  margin:-4px 0 16px;
  padding:10px 13px;
  border:1px solid #dce3e0;
  border-radius:10px;
  background:#f9fbfa;
  color:#64716d;
  font-size:.78rem;
}
@media(max-width:760px){
  .admin-page-actions{
    width:100%;
    justify-content:flex-start;
  }
}

/* =========================================================
   V2.28 — Accueil / Check-in V1
   ========================================================= */
.checkin-page-head{margin-bottom:16px !important}
.checkin-live{
  display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;
  background:#e2eee9;color:#2c6252;font-size:.74rem;font-weight:850
}
.checkin-live span{width:8px;height:8px;border-radius:50%;background:#2d8a68}

.checkin-toolbar{
  display:grid;grid-template-columns:280px minmax(0,1fr);gap:14px;margin-bottom:14px
}
.checkin-event-form,.checkin-search{
  padding:15px;border:1px solid #e1e6e4;border-radius:15px;background:#fff
}
.checkin-event-form label,.checkin-search>label{
  display:grid;gap:6px;color:#4e5c58;font-size:.72rem;font-weight:850
}
.checkin-event-form select,.checkin-search input,.checkin-search select{
  width:100%;box-sizing:border-box;min-height:42px;padding:9px 11px;
  border:1px solid #d6ddda;border-radius:9px;background:#fff;color:#172724;font:inherit
}
.checkin-search>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;margin-top:6px}
.checkin-search input{font-size:1rem}

.checkin-stats{
  display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:10px;margin-bottom:16px
}
.checkin-stats>div{
  padding:13px 15px;border:1px solid #e3e8e6;border-radius:13px;background:#fff
}
.checkin-stats strong{display:block;font-size:1.45rem;color:#526b65}
.checkin-stats span{display:block;margin-top:3px;color:#6f7b77;font-size:.72rem;font-weight:750}
.checkin-stats .done strong,.checkin-stats .paid strong{color:#287156}
.checkin-stats .due strong{color:#c8760c}

.checkin-results{display:grid;gap:13px}
.checkin-card{
  overflow:hidden;border:1px solid #e0e6e3;border-radius:17px;background:#fff;
  box-shadow:0 7px 22px rgba(18,35,30,.045)
}
.checkin-card.checked{opacity:.82}
.checkin-card-main{
  display:grid;grid-template-columns:minmax(300px,1.45fr) minmax(160px,.55fr) minmax(190px,.65fr);
  min-height:145px
}
.checkin-person,.checkin-payment,.checkin-table{padding:18px}
.checkin-payment,.checkin-table{border-left:1px solid #e6ebe9}
.checkin-ref{
  display:block;margin-bottom:5px;color:#788480;font-size:.66rem;font-weight:850;letter-spacing:.07em
}
.checkin-person h2{margin:0 0 10px;font-size:1.5rem;color:#172724}
.checkin-person>small{display:block;margin-top:9px;color:#7b8682}
.checkin-tags{display:flex;flex-wrap:wrap;gap:6px}
.checkin-tags span{
  padding:5px 8px;border-radius:999px;background:#eef2f0;color:#495752;font-size:.68rem;font-weight:800
}
.checkin-tags .onsite{background:#dfece8;color:#315f53}
.checkin-tags .takeaway{background:#fff0db;color:#a35d08}

.checkin-payment,.checkin-table{display:flex;flex-direction:column;justify-content:center}
.checkin-payment>span,.checkin-table>span{
  margin-bottom:5px;color:#7a8581;font-size:.66rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase
}
.checkin-payment strong{font-size:.98rem}
.checkin-payment b{display:block;margin-top:6px;font-size:1.45rem}
.checkin-payment small{margin-top:5px}
.checkin-payment.ok{background:#f4faf7}
.checkin-payment.ok strong{color:#287156}
.checkin-payment.warning{background:#fff9f0}
.checkin-payment.warning strong,.checkin-payment.warning b{color:#b96706}

.checkin-table{text-align:center;background:#f9fbfa}
.checkin-table strong{font-size:1.7rem;line-height:1;color:#172724}
.checkin-table small{margin-top:6px;color:#65726e}
.checkin-table a{margin-top:8px;color:#9d5a08;font-size:.7rem;font-weight:850;text-decoration:none}
.checkin-table.missing{background:#fff2e3}
.checkin-table.missing strong{font-size:.9rem;color:#a75c07}

.checkin-notes{
  display:flex;flex-wrap:wrap;gap:8px 22px;padding:10px 18px;border-top:1px solid #edf0ef;
  background:#fafbfb;color:#606c68;font-size:.74rem
}
.checkin-notes b{color:#374541}

.checkin-actions{
  display:flex;justify-content:flex-end;align-items:end;gap:10px;padding:12px 18px;
  border-top:1px solid #e7ebe9;background:#fbfcfc
}
.checkin-actions form{margin:0}
.checkin-pay-form{display:flex;align-items:end;gap:8px;margin-right:auto !important}
.checkin-pay-form label{display:grid;gap:4px;color:#6b7773;font-size:.68rem;font-weight:800}
.checkin-pay-form select{
  min-width:165px;min-height:37px;padding:7px 9px;border:1px solid #d6ddda;border-radius:8px;background:#fff
}
.checkin-pay-btn{
  background:#ef9514 !important;color:#172724 !important;min-height:37px !important
}
.checkin-confirm-btn{
  min-height:42px !important;padding:0 18px !important;background:#2f765f !important;color:#fff !important
}
.checkin-done{
  display:flex;align-items:center;gap:8px;padding:8px 11px;border-radius:10px;background:#e0eee8;color:#28604f
}
.checkin-done strong{font-size:.75rem}
.checkin-done span{font-size:.72rem}
.checkin-undo{
  border:0;background:none;color:#7a8581;font:inherit;font-size:.7rem;text-decoration:underline;cursor:pointer
}
.checkin-empty{
  display:grid;gap:5px;padding:28px;border:1px dashed #cbd5d2;border-radius:15px;background:#fff;color:#64716d
}
.checkin-empty strong{color:#2d3a36}
.checkin-list-note{margin:13px 0 0;color:#78837f;font-size:.72rem}

@media(max-width:1100px){
  .checkin-card-main{grid-template-columns:1fr 180px}
  .checkin-table{grid-column:1/-1;border-left:0;border-top:1px solid #e6ebe9}
  .checkin-toolbar{grid-template-columns:1fr}
}
@media(max-width:850px){
  .checkin-stats{grid-template-columns:repeat(2,minmax(120px,1fr))}
  .checkin-card-main{grid-template-columns:1fr}
  .checkin-payment,.checkin-table{border-left:0;border-top:1px solid #e6ebe9;text-align:left}
  .checkin-actions{align-items:stretch;flex-direction:column}
  .checkin-pay-form{width:100%;display:grid;grid-template-columns:1fr auto}
  .checkin-pay-form label{min-width:0}
  .checkin-actions form:not(.checkin-pay-form){width:100%}
  .checkin-confirm-btn{width:100%}
}
@media(max-width:600px){
  .checkin-search>div{grid-template-columns:1fr}
  .checkin-stats{grid-template-columns:1fr 1fr}
  .checkin-person h2{font-size:1.25rem}
  .checkin-pay-form{grid-template-columns:1fr}
}

/* =========================================================
   V2.29 — Check-in V2 + caisse
   ========================================================= */
.checkin-meal-progress{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:-4px 0 16px;
}
.checkin-meal-progress>div{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  padding:11px 14px;
  border:1px solid #e2e7e5;
  border-radius:12px;
  background:#fff;
}
.checkin-meal-progress span{
  color:#67736f;
  font-size:.74rem;
  font-weight:750;
}
.checkin-meal-progress strong{
  color:#2f6658;
  font-size:1rem;
}
.checkin-table-inline{
  margin-top:9px;
}
.checkin-table-inline summary{
  cursor:pointer;
  color:#5D726F;
  font-size:.68rem;
  font-weight:850;
  list-style:none;
}
.checkin-table-inline summary::-webkit-details-marker{display:none}
.checkin-table-inline form,
.checkin-table-assign{
  display:grid;
  gap:6px;
  margin-top:7px;
}
.checkin-table-inline select,
.checkin-table-assign select{
  width:100%;
  min-height:34px;
  padding:6px 8px;
  border:1px solid #d4ddda;
  border-radius:8px;
  background:#fff;
  font:inherit;
  font-size:.72rem;
}
.checkin-table-inline .button,
.checkin-table-assign .button{
  min-height:33px !important;
  font-size:.7rem !important;
}
.cash-summary-grid{
  display:grid;
  grid-template-columns:1.35fr repeat(4,1fr);
  gap:12px;
  margin-bottom:18px;
}
.cash-card{
  padding:18px;
  border:1px solid #e2e7e5;
  border-radius:15px;
  background:#fff;
}
.cash-card span{
  display:block;
  color:#71807b;
  font-size:.72rem;
  font-weight:800;
}
.cash-card strong{
  display:block;
  margin-top:7px;
  color:#5D726F;
  font-size:1.55rem;
}
.cash-card small{
  display:block;
  margin-top:5px;
  color:#83908c;
}
.cash-card.total{
  background:#172724;
  border-color:#172724;
}
.cash-card.total span,
.cash-card.total small{color:#cad5d1}
.cash-card.total strong{color:#fff}

@media(max-width:1200px){
  .cash-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .cash-summary-grid{grid-template-columns:1fr 1fr}
  .checkin-meal-progress{grid-template-columns:1fr}
}
@media(max-width:500px){
  .cash-summary-grid{grid-template-columns:1fr}
}

/* =========================================================
   V2.30 — Check-in V3 QR
   ========================================================= */
.confirmation-qr{
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  gap:24px;
  align-items:center;
  margin:28px 0 20px;
  padding:20px;
  border:1px solid #dce3e0;
  border-radius:18px;
  background:#f8faf9;
}
.confirmation-qr #reservation-qr{
  width:220px;height:220px;padding:8px;background:#fff;border-radius:12px
}
.confirmation-qr h2{margin:5px 0 8px;font-size:1.5rem}
.confirmation-qr p{margin:0;color:#64706d;line-height:1.55}

.checkin-ticket-link{
  display:inline-block !important;
  margin-top:8px !important;
  color:#315f53 !important;
  font-size:.68rem !important;
  font-weight:850 !important;
}

.qr-scanner-layout{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) 360px;
  gap:18px;
  align-items:start;
}
.qr-scanner-card,.qr-scanner-help{
  padding:20px;border:1px solid #e2e7e5;border-radius:18px;background:#fff;
  box-shadow:0 8px 24px rgba(21,35,31,.05)
}
.qr-video-wrap{
  position:relative;
  overflow:hidden;
  min-height:420px;
  border-radius:15px;
  background:#101918
}
#qr-video{
  display:block;width:100%;height:420px;object-fit:cover
}
.qr-target{
  position:absolute;inset:50% auto auto 50%;width:230px;height:230px;
  transform:translate(-50%,-50%);
  border:3px solid rgba(255,255,255,.9);border-radius:18px;
  box-shadow:0 0 0 999px rgba(0,0,0,.26)
}
.qr-target:before,.qr-target:after,.qr-target span:before,.qr-target span:after{
  content:"";position:absolute;width:34px;height:34px;border-color:#ef9514;border-style:solid
}
.qr-target:before{left:-4px;top:-4px;border-width:5px 0 0 5px;border-radius:8px 0 0}
.qr-target:after{right:-4px;top:-4px;border-width:5px 5px 0 0;border-radius:0 8px 0 0}
.qr-target span:before{left:-4px;bottom:-4px;border-width:0 0 5px 5px;border-radius:0 0 0 8px}
.qr-target span:after{right:-4px;bottom:-4px;border-width:0 5px 5px 0;border-radius:0 0 8px 0}
.qr-status{
  margin-top:12px;padding:10px 12px;border-radius:10px;background:#f1f4f3;color:#64706d;font-size:.8rem
}
.qr-status.ok{background:#e1eee9;color:#2d6554}
.qr-status.warning{background:#fff0dc;color:#8d570f}
.qr-scanner-actions{display:flex;gap:8px;margin-top:12px}
.qr-scanner-help h2{margin:5px 0 8px;font-size:1.5rem}
.qr-scanner-help>p{color:#68746f;line-height:1.55}
#manual-scan-form{display:grid;gap:12px;margin-top:20px}
#manual-scan-form label{display:grid;gap:6px;font-size:.76rem;font-weight:800}
#manual-scan-form input{
  min-height:42px;padding:9px 11px;border:1px solid #d4ddda;border-radius:9px;font:inherit
}
.qr-native-tip{
  display:grid;gap:5px;margin-top:22px;padding:13px;border-radius:12px;background:#f5f8f7;
  color:#65726e;font-size:.78rem;line-height:1.5
}
.qr-native-tip strong{color:#34433e}

@media(max-width:950px){
  .qr-scanner-layout{grid-template-columns:1fr}
  .confirmation-qr{grid-template-columns:1fr;text-align:center}
  .confirmation-qr #reservation-qr{margin:auto}
}
@media(max-width:600px){
  .qr-video-wrap,#qr-video{height:330px;min-height:330px}
  .qr-target{width:190px;height:190px}
  .qr-scanner-actions{flex-direction:column}
}

/* =========================================================
   V2.31 — Sans réservation / Walk-in
   ========================================================= */
.checkin-walkin-btn{
  background:#5D726F !important;
  color:#fff !important;
}
.walkin-badge{
  display:inline-flex;
  margin-left:7px;
  padding:3px 6px;
  border-radius:999px;
  background:#fce7c8;
  color:#9a5909;
  font-size:.58rem;
  letter-spacing:0;
  text-transform:uppercase;
}
.walkin-capacity{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-bottom:18px;
}
.walkin-capacity>div{
  padding:17px;
  border:1px solid #e2e7e5;
  border-radius:15px;
  background:#fff;
}
.walkin-capacity span{
  display:block;
  color:#74807c;
  font-size:.72rem;
  font-weight:800;
}
.walkin-capacity strong{
  display:block;
  margin-top:6px;
  color:#526a64;
  font-size:1.8rem;
}
.walkin-capacity .available strong{color:#2f765f}
.walkin-capacity .full strong{color:#a34c3b}
.walkin-full-alert{
  display:grid;
  gap:5px;
  padding:26px;
  border:1px solid #f0c5bc;
  border-radius:16px;
  background:#fff2ef;
  color:#934535;
}
.walkin-full-alert strong{font-size:1.2rem}
.walkin-form{gap:24px !important}
.walkin-section{
  display:grid;
  gap:15px;
  padding-bottom:22px;
  border-bottom:1px solid #e8ecea;
}
.walkin-section:last-of-type{border-bottom:0}
.walkin-section-title{
  display:flex;
  align-items:flex-start;
  gap:12px;
}
.walkin-section-title>span{
  flex:0 0 31px;
  height:31px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#172724;
  color:#fff;
  font-size:.78rem;
  font-weight:900;
}
.walkin-section-title h2{
  margin:0 0 3px;
  color:#172724;
  font-size:1.1rem;
}
.walkin-section-title p{
  margin:0;
  color:#7b8783;
  font-size:.76rem;
}
.walkin-meals{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.walkin-meal{
  display:grid;
  grid-template-columns:1fr 80px;
  align-items:center;
  gap:12px;
  padding:13px;
  border:1px solid #e1e7e4;
  border-radius:12px;
  background:#fafcfa;
}
.walkin-meal>div{display:grid;gap:3px}
.walkin-meal small{color:#6f7b77}
.walkin-meal input{
  text-align:center;
  font-weight:850;
}
.walkin-total{
  display:flex;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:18px;
  padding:10px 12px;
  border-radius:10px;
  background:#f2f6f4;
  color:#596661;
  font-size:.78rem;
}
.walkin-total strong{
  margin-left:3px;
  color:#172724;
  font-size:1rem;
}
.walkin-table-list{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.walkin-table-choice{
  position:relative;
  display:grid !important;
  grid-template-columns:auto 18px 1fr auto !important;
  align-items:center !important;
  gap:9px !important;
  min-height:72px;
  padding:10px 12px;
  border:1px solid #dce3e0;
  border-radius:13px;
  background:#fff;
  cursor:pointer;
}
.walkin-table-choice input{width:auto !important}
.walkin-table-choice:has(input:checked){
  border-color:#5D726F;
  box-shadow:0 0 0 3px rgba(93,114,111,.11);
}
.walkin-table-choice.disabled{
  opacity:.38;
  cursor:not-allowed;
}
.walkin-table-color{
  width:18px;
  height:44px;
  border-radius:7px;
  background:var(--table-color);
  border:1px solid rgba(0,0,0,.08);
}
.walkin-table-choice>span:nth-of-type(2){
  display:grid;
  gap:2px;
}
.walkin-table-choice small{
  color:#7b8783;
  font-size:.66rem;
}
.walkin-table-choice b{
  color:#5D726F;
  font-size:.69rem;
  text-align:right;
}
.walkin-no-table{
  padding:11px 13px;
  border-radius:10px;
  background:#fff0dd;
  color:#925a13;
  font-size:.78rem;
  font-weight:750;
}
.walkin-submit{
  justify-content:flex-end;
}
.walkin-submit .button{
  min-height:44px !important;
  padding:0 20px !important;
}
@media(max-width:1050px){
  .walkin-table-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .walkin-capacity,
  .walkin-meals,
  .walkin-table-list{grid-template-columns:1fr}
}

/* V2.32 — Sans réservation : sur place / à emporter */
.walkin-service-choice{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.walkin-service-choice label{
  display:flex !important;
  align-items:center !important;
  gap:11px !important;
  padding:15px;
  border:1px solid #dce3e0;
  border-radius:13px;
  background:#fff;
  cursor:pointer;
}
.walkin-service-choice label:has(input:checked){
  border-color:#5D726F;
  box-shadow:0 0 0 3px rgba(93,114,111,.11);
  background:#f6f9f8;
}
.walkin-service-choice input{width:auto !important}
.walkin-service-choice span{display:grid;gap:3px}
.walkin-service-choice small{color:#76827e;font-weight:500}
@media(max-width:700px){
  .walkin-service-choice{grid-template-columns:1fr}
}

/* =========================================================
   V2.33 — Paiement CB HelloAsso
   ========================================================= */
.admin-payment-config{
  display:grid;
  gap:13px;
  margin:18px 0;
  padding:18px;
  border:1px solid #dfe5e2;
  border-radius:15px;
  background:#f8faf9;
}
.admin-payment-config h2{
  margin:3px 0 5px;
  font-size:1.15rem;
}
.admin-payment-config p{margin:0;color:#71807a}
.admin-help{color:#7d8985}
.helloasso-option{
  border-color:#d9e2de !important;
}
.helloasso-payment-box{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:22px;
  align-items:center;
  margin:24px 0;
  padding:20px;
  border:1px solid #d8e3de;
  border-radius:17px;
  background:#f3f8f6;
}
.helloasso-payment-box h2{
  margin:4px 0 7px;
  font-size:1.35rem;
}
.helloasso-payment-box p{
  margin:0;
  color:#64716c;
  line-height:1.5;
}
.helloasso-payment-note{
  margin-top:8px !important;
  font-size:.78rem;
}
.helloasso-payment-button{
  white-space:nowrap;
}
@media(max-width:760px){
  .helloasso-payment-box{grid-template-columns:1fr}
  .helloasso-payment-button{width:100%;white-space:normal;text-align:center}
}


/* =========================================================
   V2.34 — HelloAsso Checkout API
   ========================================================= */
.helloasso-webhook-admin{
  display:grid;
  gap:6px;
  padding:12px;
  border-radius:11px;
  background:#fff;
  border:1px dashed #ccd8d3;
}
.helloasso-webhook-admin code{
  overflow-wrap:anywhere;
  font-size:.82rem;
}
.helloasso-payment-success{
  border-color:#b8d7c8;
  background:#f1f8f4;
}
.helloasso-payment-success h2{
  color:#295b43;
}
.helloasso-sync-btn{
  margin-right:8px;
}


/* =========================================================
   V2.35 — ACCUEIL PLUS COLORÉ ET ATTRACTIF
   ========================================================= */
.home-hero{
  isolation:isolate;
}
.home-hero:before{
  content:"";
  position:absolute;
  z-index:1;
  width:330px;
  height:330px;
  right:15%;
  top:90px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(42,215,239,.28),rgba(117,78,255,.10) 45%,transparent 70%);
  filter:blur(2px);
  pointer-events:none;
}
.home-hero .hero-content{z-index:4 !important}
.home-edition-card{
  border-left:5px solid #ffad2f !important;
}
.home-edition-card strong{
  font-size:1.55rem !important;
  letter-spacing:-.02em;
}
.home-hero-tags{
  position:absolute;
  z-index:5;
  left:7%;
  bottom:22px;
  display:flex;
  gap:9px;
  flex-wrap:wrap;
}
.home-hero-tags span{
  display:inline-flex;
  align-items:center;
  min-height:33px;
  padding:6px 12px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  background:rgba(8,16,29,.45);
  color:rgba(255,255,255,.92);
  backdrop-filter:blur(9px);
  font-size:.79rem;
  font-weight:800;
}

.home-manifesto{
  width:min(1180px,calc(100% - 40px));
  margin:34px auto 8px;
  border-radius:28px;
  overflow:hidden;
  background:
    radial-gradient(circle at 90% 20%,rgba(255,196,65,.30),transparent 26%),
    linear-gradient(115deg,#7457ef 0%,#4968ef 38%,#22b8dc 100%);
  box-shadow:0 24px 65px rgba(0,0,0,.20);
}
.home-manifesto-inner{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(300px,.75fr);
  gap:70px;
  padding:52px 58px;
}
.home-manifesto .eyebrow{color:#ffe29b}
.home-manifesto h2{
  margin:9px 0 0;
  max-width:760px;
  font-size:clamp(2.4rem,4.5vw,4.8rem);
  line-height:.92;
  letter-spacing:-.055em;
}
.home-manifesto h2 span{color:#fff0a8}
.home-manifesto-copy{
  align-self:end;
  padding:22px;
  border-radius:20px;
  background:rgba(8,18,43,.22);
  backdrop-filter:blur(8px);
}
.home-manifesto-copy p{
  margin:0 0 18px;
  color:#fff;
  font-size:1.06rem;
}
.home-manifesto .text-link{color:#fff3b2}

.home-weekend-section{padding-top:75px}
.home-section-intro{
  max-width:430px;
  margin:0;
  color:#b9c2d5;
  font-size:1.04rem;
}
.home-weekend-grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  grid-auto-rows:minmax(220px,auto);
  gap:16px;
}
.home-weekend-card{
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:245px;
  padding:25px;
  border-radius:25px;
  color:#101522;
  box-shadow:0 16px 40px rgba(4,10,22,.15);
  transition:transform .22s ease;
}
.home-weekend-card:hover{transform:translateY(-4px)}
.home-weekend-card:after{
  content:"";
  position:absolute;
  width:170px;
  height:170px;
  right:-45px;
  bottom:-55px;
  border-radius:50%;
  border:24px solid rgba(255,255,255,.18);
}
.home-weekend-card > *{position:relative;z-index:2}
.home-weekend-card .weekend-day{
  font-size:.8rem;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.home-weekend-card small{
  display:block;
  margin-bottom:7px;
  font-size:.74rem;
  font-weight:900;
  letter-spacing:.11em;
}
.home-weekend-card h3{
  margin:0 0 8px;
  font-size:clamp(1.65rem,2.2vw,2.4rem);
  line-height:.95;
  letter-spacing:-.04em;
}
.home-weekend-card p{margin:0;max-width:340px}
.home-weekend-card > strong{
  position:absolute;
  right:20px;
  top:18px;
  color:rgba(17,22,34,.13);
  font-size:3.2rem;
  line-height:1;
  font-weight:950;
}
.home-weekend-card a{
  display:inline-block;
  margin-top:15px;
  font-weight:900;
  text-decoration:underline;
  text-underline-offset:4px;
}
.weekend-loto{grid-column:span 2;background:#f5b52f}
.weekend-palets{grid-column:span 2;background:#70d8c4}
.weekend-expo{grid-column:span 2;background:#ff8b7d}
.weekend-concert{
  grid-column:span 3;
  color:#fff;
  background:
    radial-gradient(circle at 85% 30%,rgba(255,176,52,.55),transparent 25%),
    linear-gradient(135deg,#6237d8,#2c48c4);
}
.weekend-sunday{
  grid-column:span 3;
  color:#fff;
  background:
    radial-gradient(circle at 83% 20%,rgba(92,226,230,.45),transparent 27%),
    linear-gradient(135deg,#0a6b73,#0e3e73);
}
.weekend-feature > strong{color:rgba(255,255,255,.16)}
.weekend-feature:after{border-color:rgba(255,255,255,.12)}

.home-artists-section{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 8% 16%,rgba(37,204,230,.13),transparent 24rem),
    radial-gradient(circle at 92% 78%,rgba(119,82,244,.17),transparent 27rem),
    #0b1220;
}
.home-artists-section:before{
  content:"";
  position:absolute;
  width:390px;
  height:390px;
  left:-180px;
  bottom:90px;
  border-radius:50%;
  border:70px solid rgba(245,154,22,.08);
}
.home-artist-grid,.home-artists-section .section-heading{position:relative;z-index:2}
.home-artist-card{
  border:0 !important;
  box-shadow:0 20px 55px rgba(0,0,0,.22) !important;
}
.home-artist-card:nth-child(1){border-bottom:6px solid #f5a31e !important}
.home-artist-card:nth-child(2){border-bottom:6px solid #35c5df !important}
.home-artist-card:nth-child(3){border-bottom:6px solid #8168f0 !important}
.home-artist-card:nth-child(4){border-bottom:6px solid #eb6d8f !important}
.home-artist-card:nth-child(5){border-bottom:6px solid #68c28b !important}
.home-artist-card:nth-child(6){border-bottom:6px solid #f0c94d !important}

.home-program-section{
  padding-top:100px;
  padding-bottom:100px;
}
.home-program-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,.55fr);
  gap:70px;
  align-items:end;
  margin-bottom:42px;
}
.home-program-head h2{
  margin:9px 0 0;
  font-size:clamp(2.6rem,5vw,5.2rem);
  line-height:.91;
  letter-spacing:-.06em;
}
.home-program-head h2 span{
  background:linear-gradient(90deg,#26c6e4,#8d6bf5,#f5a31e);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.home-program-head > p{
  margin:0 0 8px;
  color:#b8c0d1;
  font-size:1.05rem;
}
.home-schedule-columns{gap:18px}
.home-schedule-columns .schedule-day{
  padding:0;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.09);
  background:rgba(255,255,255,.055);
  backdrop-filter:blur(10px);
}
.home-schedule-title{
  display:flex;
  align-items:end;
  gap:15px;
  padding:25px 25px 18px;
  background:linear-gradient(100deg,rgba(43,198,227,.15),rgba(120,85,243,.15));
}
.home-schedule-title span{
  color:#44cae4;
  font-size:.86rem;
  font-weight:950;
}
.home-schedule-title h3{margin:0;font-size:2.25rem}
.home-schedule-columns .schedule-row{
  margin:0 24px;
  transition:padding-left .18s ease,background .18s ease;
}
.home-schedule-columns .schedule-row:hover{
  padding-left:8px;
}
.home-schedule-columns .schedule-row time{color:#f7aa31}

.home-events-section{
  max-width:1280px;
  margin:20px auto;
  padding:72px 28px 78px;
  border-radius:30px;
  color:#171c28;
  background:
    radial-gradient(circle at 95% 0%,rgba(255,183,54,.20),transparent 18rem),
    #f4f5f8;
}
.home-events-section .eyebrow{color:#ef8d07}
.home-events-section .section-heading h2{color:#171c28}
.home-events-section .text-link{color:#3858b7}
.home-event-grid{
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:18px !important;
}
.home-event-grid .event-visual-card{
  box-shadow:0 15px 40px rgba(20,28,45,.11);
}
.home-event-grid .event-visual-card:nth-child(1){transform:rotate(-.6deg)}
.home-event-grid .event-visual-card:nth-child(2){transform:translateY(10px) rotate(.4deg)}
.home-event-grid .event-visual-card:nth-child(3){transform:rotate(.5deg)}
.home-event-grid .event-visual-card:nth-child(4){transform:translateY(10px) rotate(-.4deg)}

.home-community{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.home-community-card{
  position:relative;
  overflow:hidden;
  min-height:390px;
  padding:42px;
  border-radius:28px;
}
.home-community-card > *{position:relative;z-index:2}
.home-community-card h2{
  max-width:510px;
  margin:8px 0 15px;
  font-size:clamp(2.2rem,3.6vw,3.7rem);
  line-height:.96;
  letter-spacing:-.05em;
}
.home-community-card p:not(.eyebrow){max-width:520px;font-size:1.02rem}
.community-volunteers{
  color:#10211c;
  background:
    radial-gradient(circle at 85% 15%,rgba(255,255,255,.45),transparent 30%),
    #74d4ab;
}
.community-volunteers .eyebrow{color:#1c5c45}
.community-partners{
  color:#fff;
  background:
    radial-gradient(circle at 85% 15%,rgba(247,172,42,.34),transparent 28%),
    linear-gradient(135deg,#6b4be0,#3547b7);
}
.community-partners .eyebrow{color:#ffd276}
.home-community-icon{
  position:absolute;
  z-index:1;
  right:28px;
  top:15px;
  color:rgba(255,255,255,.20);
  font-size:8rem;
  line-height:1;
}
.button-light{background:#fff;color:#10211c;margin-top:17px}
.button-dark{background:#111a2d;color:#fff;margin-top:17px}

.home-final-banner{
  width:min(1180px,calc(100% - 40px));
  margin:24px auto 15px;
  padding:42px 50px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:35px;
  border-radius:28px;
  color:#fff;
  background:
    radial-gradient(circle at 73% 20%,rgba(255,184,51,.36),transparent 15rem),
    linear-gradient(105deg,#111b32,#172d50);
  box-shadow:0 25px 70px rgba(0,0,0,.20);
}
.home-final-banner h2{
  margin:4px 0;
  font-size:clamp(2.4rem,4.4vw,4.5rem);
  line-height:.92;
}
.home-final-banner p:not(.eyebrow){margin:8px 0 0;color:#d7ddeb}

@media(max-width:1000px){
  .home-manifesto-inner,
  .home-program-head{grid-template-columns:1fr;gap:28px}
  .home-weekend-grid{grid-template-columns:repeat(2,1fr)}
  .weekend-loto,.weekend-palets,.weekend-expo,.weekend-concert,.weekend-sunday{grid-column:span 1}
  .weekend-sunday{grid-column:span 2}
  .home-event-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
  .home-event-grid .event-visual-card{transform:none !important}
}
@media(max-width:760px){
  .home-hero-tags{position:relative;left:auto;bottom:auto;margin-top:28px}
  .home-manifesto{width:calc(100% - 20px);border-radius:22px}
  .home-manifesto-inner{padding:35px 24px}
  .home-weekend-grid{grid-template-columns:1fr}
  .weekend-loto,.weekend-palets,.weekend-expo,.weekend-concert,.weekend-sunday{grid-column:1}
  .home-community{grid-template-columns:1fr}
  .home-community-card{min-height:340px;padding:31px 24px}
  .home-final-banner{
    width:calc(100% - 20px);
    padding:32px 24px;
    align-items:flex-start;
    flex-direction:column;
  }
  .home-events-section{margin:10px;border-radius:22px;padding:55px 18px}
}
@media(max-width:650px){
  .home-event-grid{grid-template-columns:1fr !important}
  .home-program-head h2{font-size:clamp(2.5rem,12vw,4rem)}
}


/* =========================================================
   V2.35.1 — Accueil : typographie et badges plus compacts
   ========================================================= */

/* Hero */
@media(min-width:901px){
  .home-hero .hero-content h1{
    font-size:clamp(2.75rem,3.75vw,4rem) !important;
    line-height:.96 !important;
  }
  .home-hero .hero-content{
    width:min(58%,700px) !important;
  }
}
.home-hero .eyebrow{
  font-size:.68rem !important;
  letter-spacing:.13em !important;
}
.home-hero .hero-copy{
  max-width:620px !important;
  font-size:.96rem !important;
  line-height:1.5 !important;
}
.home-hero .button{
  min-height:44px !important;
  padding:0 19px !important;
  font-size:.88rem !important;
}
.home-edition-card{
  width:275px !important;
  padding:17px 21px !important;
}
.home-edition-card span{
  font-size:.66rem !important;
}
.home-edition-card strong{
  font-size:1.32rem !important;
}
.home-edition-card small{
  font-size:.80rem !important;
}
.home-hero-tags span{
  min-height:28px !important;
  padding:4px 9px !important;
  font-size:.68rem !important;
}

/* Bandeau manifeste */
.home-manifesto-inner{
  padding:42px 50px !important;
}
.home-manifesto .eyebrow{
  font-size:.68rem !important;
}
.home-manifesto h2{
  font-size:clamp(2rem,3.35vw,3.45rem) !important;
  line-height:.94 !important;
}
.home-manifesto-copy p{
  font-size:.95rem !important;
  line-height:1.55 !important;
}
.home-manifesto .text-link{
  font-size:.88rem !important;
}

/* Titres généraux accueil */
.home-weekend-section .section-heading h2,
.home-artists-section .section-heading h2,
.home-events-section .section-heading h2{
  font-size:clamp(1.9rem,2.8vw,3rem) !important;
  line-height:1 !important;
}
.home-section-intro{
  font-size:.94rem !important;
}

/* Cartes du week-end */
.home-weekend-grid{
  grid-auto-rows:minmax(190px,auto) !important;
}
.home-weekend-card{
  min-height:215px !important;
  padding:21px !important;
}
.home-weekend-card .weekend-day{
  font-size:.69rem !important;
}
.home-weekend-card small{
  font-size:.65rem !important;
}
.home-weekend-card h3{
  font-size:clamp(1.35rem,1.7vw,1.85rem) !important;
  margin-bottom:6px !important;
}
.home-weekend-card p{
  font-size:.88rem !important;
  line-height:1.45 !important;
}
.home-weekend-card > strong{
  font-size:2.55rem !important;
}
.home-weekend-card a{
  font-size:.86rem !important;
}

/* Artistes */
.home-artists-section{
  padding-top:70px !important;
  padding-bottom:70px !important;
}
.artist-style-badge{
  padding:5px 9px !important;
  font-size:.67rem !important;
}
.artist-photo-body{
  padding:15px 16px 17px !important;
}
.artist-photo-body .artist-meta{
  font-size:.70rem !important;
}
.artist-photo-body h3{
  font-size:1.28rem !important;
}
.artist-photo-body p{
  font-size:.88rem !important;
  line-height:1.45 !important;
}
.artist-photo-body a{
  font-size:.86rem !important;
}

/* Programme */
.home-program-head h2{
  font-size:clamp(2.25rem,3.9vw,4.1rem) !important;
  line-height:.93 !important;
}
.home-program-head > p{
  font-size:.94rem !important;
}
.home-schedule-title{
  padding:20px 22px 14px !important;
}
.home-schedule-title span{
  font-size:.72rem !important;
}
.home-schedule-title h3{
  font-size:1.85rem !important;
}
.home-schedule-columns .schedule-row{
  grid-template-columns:72px 1fr 22px !important;
  padding:16px 0 !important;
}
.home-schedule-columns .schedule-row time{
  font-size:1rem !important;
}
.home-schedule-columns .schedule-row strong{
  font-size:.92rem !important;
}
.home-schedule-columns .schedule-row small{
  font-size:.78rem !important;
}

/* Événements */
.home-events-section{
  padding-top:62px !important;
  padding-bottom:66px !important;
}
.home-event-grid .event-category{
  font-size:.66rem !important;
  padding:5px 9px !important;
}
.home-event-grid .event-visual-meta{
  font-size:.78rem !important;
}
.home-event-grid .event-visual-body h3{
  font-size:1.28rem !important;
}
.home-event-grid .event-visual-body p{
  font-size:.86rem !important;
}
.home-event-grid .event-more{
  font-size:.84rem !important;
}

/* Bénévoles / partenaires */
.home-community-card{
  min-height:340px !important;
  padding:34px !important;
}
.home-community-card .eyebrow{
  font-size:.68rem !important;
}
.home-community-card h2{
  font-size:clamp(1.9rem,2.75vw,2.85rem) !important;
  line-height:.98 !important;
}
.home-community-card p:not(.eyebrow){
  font-size:.92rem !important;
}
.home-community-card .button{
  min-height:44px !important;
  padding:0 19px !important;
  font-size:.86rem !important;
}
.home-community-icon{
  font-size:6rem !important;
}

/* Bandeau final */
.home-final-banner{
  padding:34px 44px !important;
}
.home-final-banner h2{
  font-size:clamp(2.15rem,3.25vw,3.45rem) !important;
}
.home-final-banner p:not(.eyebrow){
  font-size:.92rem !important;
}
.home-final-banner .eyebrow{
  font-size:.68rem !important;
}
.home-final-banner .button{
  min-height:44px !important;
  padding:0 19px !important;
  font-size:.86rem !important;
}

/* Mobile : garder une hiérarchie lisible sans effet "affiche géante" */
@media(max-width:760px){
  .home-hero .hero-content h1{
    font-size:clamp(2.3rem,9vw,3.35rem) !important;
  }
  .home-manifesto-inner{
    padding:30px 22px !important;
  }
  .home-manifesto h2{
    font-size:clamp(1.95rem,8vw,2.7rem) !important;
  }
  .home-program-head h2{
    font-size:clamp(2.05rem,9.5vw,3.2rem) !important;
  }
  .home-community-card h2{
    font-size:clamp(1.85rem,8vw,2.5rem) !important;
  }
}


/* =========================================================
   V2.35.2 — Accueil : réduction des grands espaces verticaux
   ========================================================= */

/* On resserre le rythme global entre les sections de l'accueil */
.home-manifesto{
  margin-top:38px !important;
  margin-bottom:0 !important;
}

.home-weekend-section{
  padding-top:58px !important;
  padding-bottom:58px !important;
}

.home-artists-section{
  margin-top:0 !important;
  padding-top:58px !important;
  padding-bottom:58px !important;
}

.home-program-section{
  margin-top:0 !important;
  padding-top:58px !important;
  padding-bottom:58px !important;
}

.home-events-section{
  margin-top:0 !important;
  padding-top:58px !important;
  padding-bottom:58px !important;
}

.home-community-section{
  margin-top:0 !important;
  padding-top:58px !important;
  padding-bottom:58px !important;
}

.home-final-section{
  margin-top:0 !important;
  padding-top:42px !important;
  padding-bottom:34px !important;
}

/* Réduction des marges internes qui accentuaient encore l'effet de vide */
.home-weekend-section .section-heading,
.home-artists-section .section-heading,
.home-events-section .section-heading{
  margin-bottom:32px !important;
}

.home-program-head{
  margin-bottom:32px !important;
}

.home-community-grid{
  margin-top:0 !important;
}

.home-final-banner{
  margin-top:0 !important;
}

/* Sur desktop, éviter les zones vides très hautes après les grilles */
@media(min-width:901px){
  .home-weekend-grid,
  .home-artist-grid,
  .home-schedule-columns,
  .home-event-grid,
  .home-community-grid{
    margin-bottom:0 !important;
  }
}

/* Mobile : rythme encore plus compact */
@media(max-width:760px){
  .home-manifesto{
    margin-top:24px !important;
  }
  .home-weekend-section,
  .home-artists-section,
  .home-program-section,
  .home-events-section,
  .home-community-section{
    padding-top:38px !important;
    padding-bottom:38px !important;
  }
  .home-final-section{
    padding-top:28px !important;
    padding-bottom:24px !important;
  }
}


/* =========================================================
   V2.35.3 — Palette du bloc manifeste
   Remplace le bleu/cyan vif par violet, prune et orange chaud
   ========================================================= */
.home-manifesto-inner{
  background:
    radial-gradient(circle at 84% 18%, rgba(255,153,31,.22), transparent 28%),
    radial-gradient(circle at 14% 85%, rgba(126,79,207,.30), transparent 34%),
    linear-gradient(120deg, #5b3fc4 0%, #7044a5 42%, #9a5b68 72%, #c97b42 100%) !important;
}

.home-manifesto-copy{
  background:rgba(31,24,54,.30) !important;
  border:1px solid rgba(255,255,255,.10) !important;
}

.home-manifesto h2,
.home-manifesto-copy p{
  color:#fff !important;
}

.home-manifesto h2 span,
.home-manifesto .eyebrow,
.home-manifesto .text-link{
  color:#ffe08a !important;
}


/* =========================================================
   V2.35.4 — Accueil administrable
   ========================================================= */
.home-hero{
  background:
    linear-gradient(90deg,rgba(5,10,20,.76) 0%,rgba(5,10,20,.40) 48%,rgba(5,10,20,.16) 100%),
    linear-gradient(0deg,rgba(5,9,18,.48) 0%,rgba(5,9,18,0) 42%),
    var(--home-hero-image) center 43% / cover no-repeat !important;
}
@media(max-width:700px){
  .home-hero{
    background:
      linear-gradient(90deg,rgba(5,10,20,.78),rgba(5,10,20,.32)),
      linear-gradient(0deg,rgba(5,9,18,.52),rgba(5,9,18,0) 45%),
      var(--home-hero-image) 55% center / cover no-repeat !important;
  }
}

.home-admin-form{gap:22px}
.home-admin-section{
  display:grid;
  gap:18px;
  padding:26px;
  border-radius:20px;
  background:#fff;
  box-shadow:0 8px 26px rgba(15,25,23,.06);
}
.home-admin-section-head{
  display:flex;
  align-items:flex-start;
  gap:15px;
  padding-bottom:15px;
  border-bottom:1px solid #e5e9e7;
}
.home-admin-section-head>span{
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  flex:0 0 36px;
  border-radius:50%;
  background:#5D726F;
  color:#fff;
  font-size:.78rem;
  font-weight:900;
}
.home-admin-section-head h2{margin:0 0 4px;font-size:1.45rem}
.home-admin-section-head p{margin:0;color:#687270}
.home-admin-section h3{margin:12px 0 0;font-size:1.15rem}
.home-admin-card-fields{
  margin:0;
  padding:18px;
  border:1px solid #dde3e0;
  border-radius:14px;
}
.home-admin-card-fields legend{
  padding:0 8px;
  color:#5D726F;
  font-weight:900;
}
.home-admin-image-row{
  display:grid;
  grid-template-columns:minmax(220px,.55fr) minmax(280px,1fr);
  gap:22px;
  align-items:center;
}
.home-admin-image-row>div{
  display:grid;
  gap:7px;
}
.home-admin-image-row img{
  width:100%;
  max-width:360px;
  aspect-ratio:16/8;
  object-fit:cover;
  border-radius:14px;
}
.home-admin-image-row small,
.home-admin-form label small{
  color:#77817f;
  font-weight:500;
}
.home-admin-multiselect{
  min-height:180px;
}
.home-admin-sticky-actions{
  position:sticky;
  bottom:18px;
  z-index:5;
  display:flex;
  gap:12px;
  justify-content:flex-end;
  padding:14px;
  border:1px solid #dce2df;
  border-radius:16px;
  background:rgba(255,255,255,.94);
  box-shadow:0 14px 40px rgba(15,25,23,.14);
  backdrop-filter:blur(12px);
}
@media(max-width:800px){
  .home-admin-image-row{grid-template-columns:1fr}
  .home-admin-sticky-actions{position:static;flex-direction:column}
}


/* =========================================================
   V2.35.4.1 — Correctif image du hero
   L'image est désormais un vrai élément <img>, indépendant
   des modifications de texte enregistrées dans l'administration.
   ========================================================= */
.home-hero{
  position:relative;
  overflow:hidden;
  background:#07111f !important;
}
.home-hero-bg{
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 43%;
  display:block;
}
.home-hero-shade{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(5,10,20,.76) 0%,rgba(5,10,20,.40) 48%,rgba(5,10,20,.16) 100%),
    linear-gradient(0deg,rgba(5,9,18,.48) 0%,rgba(5,9,18,0) 42%);
}
.home-hero .hero-glow,
.home-hero:before{z-index:2}
.home-hero .hero-content,
.home-hero .home-edition-card,
.home-hero .home-hero-tags{z-index:4}
@media(max-width:700px){
  .home-hero-bg{object-position:55% center}
  .home-hero-shade{
    background:
      linear-gradient(90deg,rgba(5,10,20,.78),rgba(5,10,20,.32)),
      linear-gradient(0deg,rgba(5,9,18,.52),rgba(5,9,18,0) 45%);
  }
}


/* =========================================================
   V2.35.5 — Couleurs & tailles administrables
   ========================================================= */
.home-page .home-hero h1{color:var(--home-hero-title-color) !important}
.home-page .home-hero h1 span{color:var(--home-hero-accent-color) !important}
.home-page .home-hero .hero-copy{color:var(--home-hero-text-color) !important}
.home-page .home-hero-tags span{
  background:var(--home-hero-badge-bg) !important;
  color:var(--home-hero-badge-text) !important;
}

.home-page .home-manifesto h2{color:var(--home-manifesto-title-color) !important}
.home-page .home-manifesto h2 span{color:var(--home-manifesto-accent-color) !important}
.home-page .home-manifesto-copy p{color:var(--home-manifesto-text-color) !important}

.home-page .home-weekend-section .section-heading h2{color:var(--home-weekend-title-color) !important}
.home-page .home-weekend-section .home-section-intro{color:var(--home-weekend-intro-color) !important}
.home-page .home-weekend-card>strong{color:var(--home-weekend-badge-text) !important}

.home-page .home-artists-section .section-heading h2{color:var(--home-artists-title-color) !important}
.home-page .home-artists-section .artist-style-badge{
  background:var(--home-artist-badge-bg) !important;
  color:var(--home-artist-badge-text) !important;
}

.home-page .home-program-section .home-program-head h2{color:var(--home-program-title-color) !important}
.home-page .home-program-section .home-program-head h2 span{color:var(--home-program-accent-color) !important}
.home-page .home-program-section .home-program-head>p{color:var(--home-program-text-color) !important}

.home-page .home-events-section .section-heading h2{color:var(--home-events-title-color) !important}
.home-page .home-events-section .event-category{
  background:var(--home-event-badge-bg) !important;
  color:var(--home-event-badge-text) !important;
}

.home-page .community-volunteers h2{color:var(--home-volunteer-title-color) !important}
.home-page .community-volunteers>p:not(.eyebrow){color:var(--home-volunteer-text-color) !important}
.home-page .community-partners h2{color:var(--home-partner-title-color) !important}
.home-page .community-partners>p:not(.eyebrow){color:var(--home-partner-text-color) !important}

.home-page .home-final-banner h2{color:var(--home-final-title-color) !important}
.home-page .home-final-banner>div>p:not(.eyebrow){color:var(--home-final-text-color) !important}

/* Quatre niveaux de taille, limités volontairement pour conserver la mise en page */
.home-hero.home-size-small h1{font-size:clamp(2.15rem,4vw,3.25rem) !important}
.home-hero.home-size-normal h1{font-size:clamp(2.75rem,5.2vw,4rem) !important}
.home-hero.home-size-large h1{font-size:clamp(3.1rem,5.8vw,4.65rem) !important}
.home-hero.home-size-xlarge h1{font-size:clamp(3.45rem,6.4vw,5.2rem) !important}

.home-manifesto.home-size-small h2{font-size:clamp(1.75rem,3.1vw,2.6rem) !important}
.home-manifesto.home-size-normal h2{font-size:clamp(2rem,3.8vw,3.45rem) !important}
.home-manifesto.home-size-large h2{font-size:clamp(2.25rem,4.25vw,3.9rem) !important}
.home-manifesto.home-size-xlarge h2{font-size:clamp(2.55rem,4.7vw,4.35rem) !important}

.home-weekend-section.home-size-small .section-heading h2,
.home-artists-section.home-size-small .section-heading h2,
.home-events-section.home-size-small .section-heading h2{font-size:clamp(1.55rem,2.5vw,2.35rem) !important}
.home-weekend-section.home-size-normal .section-heading h2,
.home-artists-section.home-size-normal .section-heading h2,
.home-events-section.home-size-normal .section-heading h2{font-size:clamp(1.9rem,3.2vw,3rem) !important}
.home-weekend-section.home-size-large .section-heading h2,
.home-artists-section.home-size-large .section-heading h2,
.home-events-section.home-size-large .section-heading h2{font-size:clamp(2.2rem,3.65vw,3.45rem) !important}
.home-weekend-section.home-size-xlarge .section-heading h2,
.home-artists-section.home-size-xlarge .section-heading h2,
.home-events-section.home-size-xlarge .section-heading h2{font-size:clamp(2.5rem,4.1vw,3.9rem) !important}

.home-program-section.home-size-small .home-program-head h2{font-size:clamp(1.9rem,3.7vw,3.25rem) !important}
.home-program-section.home-size-normal .home-program-head h2{font-size:clamp(2.25rem,4.8vw,4.1rem) !important}
.home-program-section.home-size-large .home-program-head h2{font-size:clamp(2.6rem,5.3vw,4.6rem) !important}
.home-program-section.home-size-xlarge .home-program-head h2{font-size:clamp(2.95rem,5.8vw,5.1rem) !important}

.home-community.home-size-small h2{font-size:clamp(1.6rem,2.7vw,2.35rem) !important}
.home-community.home-size-normal h2{font-size:clamp(1.9rem,3.4vw,2.85rem) !important}
.home-community.home-size-large h2{font-size:clamp(2.15rem,3.75vw,3.25rem) !important}
.home-community.home-size-xlarge h2{font-size:clamp(2.4rem,4.1vw,3.65rem) !important}

.home-final-banner.home-size-small h2{font-size:clamp(1.85rem,3vw,2.75rem) !important}
.home-final-banner.home-size-normal h2{font-size:clamp(2.15rem,3.8vw,3.45rem) !important}
.home-final-banner.home-size-large h2{font-size:clamp(2.5rem,4.2vw,3.9rem) !important}
.home-final-banner.home-size-xlarge h2{font-size:clamp(2.85rem,4.7vw,4.4rem) !important}

/* Administration */
.home-admin-style-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.home-admin-style-card{
  display:grid;
  gap:13px;
  margin:0;
  padding:18px;
  border:1px solid #dde3e0;
  border-radius:15px;
  background:#fafcfb;
}
.home-admin-style-card legend{
  padding:0 8px;
  font-weight:900;
  color:#5D726F;
}
.home-admin-color-field>span{
  display:grid;
  grid-template-columns:64px 1fr;
  align-items:center;
  gap:10px;
  margin-top:6px;
}
.home-admin-color-field input[type="color"]{
  width:64px;
  height:42px;
  padding:3px;
  border:1px solid #cfd7d3;
  border-radius:10px;
  background:#fff;
  cursor:pointer;
}
.home-admin-color-field code{
  display:flex;
  align-items:center;
  min-height:42px;
  padding:0 12px;
  border:1px solid #e0e5e3;
  border-radius:10px;
  background:#fff;
}
.home-admin-reset-row{
  display:flex;
  justify-content:flex-end;
  padding-top:4px;
}
@media(max-width:900px){
  .home-admin-style-grid{grid-template-columns:1fr}
}


/* =========================================================
   V2.36 — Nouvelle page Programmation
   ========================================================= */
.program-hero{
  position:relative;
  min-height:520px;
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(270px,.55fr);
  align-items:end;
  gap:48px;
  padding:92px clamp(28px,6vw,92px) 64px;
  overflow:hidden;
  color:#fff;
  background:
    radial-gradient(circle at 78% 22%,rgba(114,75,190,.34),transparent 30%),
    radial-gradient(circle at 12% 88%,rgba(223,124,52,.23),transparent 34%),
    linear-gradient(125deg,#081526 0%,#102945 48%,#2a1f48 100%);
}
.program-hero:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(120deg,transparent 0 58%,rgba(255,255,255,.045) 58% 60%,transparent 60%),
    linear-gradient(0deg,rgba(2,8,18,.32),transparent 48%);
}
.program-hero-copy,
.program-hero-card{position:relative;z-index:1}
.program-hero-copy{max-width:840px}
.program-hero .eyebrow{color:#ffd58a}
.program-hero h1{
  max-width:850px;
  margin:10px 0 22px;
  color:#fff;
  font-size:clamp(3rem,6.1vw,5.35rem);
  line-height:.94;
  letter-spacing:-.045em;
}
.program-hero h1 span{color:#ff9b32}
.program-hero-text{
  max-width:650px;
  margin:0;
  color:#e7edf3;
  font-size:1.06rem;
  line-height:1.7;
}
.program-hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:28px;
}
.program-hero-card{
  justify-self:end;
  width:min(100%,340px);
  padding:27px 28px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:22px;
  background:rgba(93,114,111,.94);
  box-shadow:0 22px 52px rgba(0,0,0,.22);
}
.program-hero-card span,
.program-hero-card small{display:block}
.program-hero-card span{
  color:#0b1724;
  font-size:.7rem;
  font-weight:900;
  letter-spacing:.12em;
}
.program-hero-card strong{
  display:block;
  margin:7px 0 5px;
  color:#0b1724;
  font-size:2rem;
  line-height:1;
}
.program-hero-card small{color:#132330;font-weight:700}

.program-intro-strip{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);
  gap:70px;
  align-items:center;
  padding:52px clamp(28px,6vw,92px);
  background:linear-gradient(120deg,#603db1,#7d447f 52%,#b56f48);
  color:#fff;
}
.program-intro-strip h2{
  margin:6px 0 0;
  font-size:clamp(2rem,4vw,3.35rem);
  line-height:1;
}
.program-intro-strip h2 span{color:#ffe08a}
.program-intro-strip>p{
  margin:0;
  color:#fff8f2;
  line-height:1.75;
}

.program-page-section{
  padding-top:62px !important;
  padding-bottom:62px !important;
  background:#0a1929;
}
.program-day-block{
  max-width:1376px;
  margin:0 auto 64px;
  scroll-margin-top:100px;
}
.program-day-block:last-child{margin-bottom:0}
.program-day-banner{
  display:grid;
  grid-template-columns:88px minmax(0,1fr) auto;
  gap:24px;
  align-items:center;
  margin-bottom:28px;
  padding:26px 28px;
  border-radius:22px;
  overflow:hidden;
}
.program-day-saturday .program-day-banner{
  background:linear-gradient(115deg,#d96f42,#e8993c 55%,#e9b74e);
  color:#1c1511;
}
.program-day-sunday .program-day-banner{
  background:linear-gradient(115deg,#5a3fae,#7044a5 50%,#91517b);
  color:#fff;
}
.program-day-index{
  font-size:3.7rem;
  font-weight:1000;
  line-height:.82;
  opacity:.22;
}
.program-day-heading .eyebrow{margin-bottom:4px}
.program-day-heading h2{
  margin:0 0 8px;
  font-size:clamp(2rem,3.6vw,3.15rem);
  line-height:1;
}
.program-day-heading>p:last-child{
  max-width:700px;
  margin:0;
  line-height:1.55;
  opacity:.86;
}
.program-day-time{
  min-width:170px;
  padding-left:22px;
  border-left:1px solid currentColor;
}
.program-day-time span{
  display:block;
  margin-bottom:5px;
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.1em;
  opacity:.72;
}
.program-day-time strong{font-size:1.05rem}

.program-feature-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.program-artist-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
  border-radius:20px;
  background:#102236;
  box-shadow:0 16px 38px rgba(0,0,0,.14);
}
.program-artist-image{
  position:relative;
  display:block;
  aspect-ratio:4/3;
  overflow:hidden;
  background:#182c42;
}
.program-artist-image:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,rgba(4,10,18,.5),transparent 55%);
}
.program-artist-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .35s ease;
}
.program-artist-card:hover .program-artist-image img{transform:scale(1.035)}
.program-artist-style,
.program-artist-image time{
  position:absolute;
  z-index:2;
  top:14px;
  display:inline-flex;
  min-height:28px;
  align-items:center;
  padding:5px 9px;
  border-radius:999px;
  font-size:.67rem;
  font-weight:900;
}
.program-artist-style{
  left:14px;
  max-width:66%;
  background:#e9a24a;
  color:#111d2d;
}
.program-artist-image time{
  right:14px;
  background:rgba(7,17,29,.84);
  color:#fff;
}
.program-artist-content{
  flex:1;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:20px;
  padding:20px 20px 18px;
}
.program-artist-day{
  margin:0 0 7px;
  color:#92a4b7;
  font-size:.72rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.program-artist-content h3{
  margin:0 0 9px;
  color:#fff;
  font-size:1.55rem;
  line-height:1.04;
}
.program-artist-content>div>p:last-child{
  margin:0;
  color:#c8d2dc;
  font-size:.9rem;
  line-height:1.55;
}
.program-artist-link{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  color:#fff;
  font-size:.83rem;
  font-weight:900;
}
.program-artist-link span{
  font-size:1.2rem;
  transition:transform .2s ease;
}
.program-artist-link:hover span{transform:translateX(4px)}

.program-day-timeline{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:20px;
}
.program-day-timeline>a{
  display:grid;
  grid-template-columns:62px minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  min-height:66px;
  padding:12px 15px;
  border:1px solid rgba(255,255,255,.07);
  border-radius:14px;
  background:#0e2032;
  color:#fff;
}
.program-day-timeline time{
  color:#f0b15e;
  font-weight:900;
}
.program-day-timeline span{display:grid}
.program-day-timeline small{color:#8fa2b5}
.program-day-timeline b{font-size:1.15rem}
.program-day-timeline>a:hover{
  background:#13283d;
  transform:translateY(-1px);
}

.program-empty{
  padding:34px;
  border:1px dashed rgba(255,255,255,.2);
  border-radius:18px;
  color:#fff;
  text-align:center;
}
.program-empty strong{font-size:1.25rem}
.program-empty p{margin-bottom:0;color:#aab9c7}

.program-footer-cta{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:40px;
  align-items:center;
  padding:54px clamp(28px,6vw,92px);
  background:#f4eee6;
  color:#152436;
}
.program-footer-cta h2{
  margin:6px 0 10px;
  font-size:clamp(2rem,3.5vw,3.2rem);
  line-height:1;
}
.program-footer-cta>div>p:last-child{
  max-width:720px;
  margin:0;
  color:#58636c;
  line-height:1.65;
}

@media(max-width:1000px){
  .program-hero{grid-template-columns:1fr;min-height:auto;padding-top:72px}
  .program-hero-card{justify-self:start}
  .program-intro-strip{grid-template-columns:1fr;gap:20px}
  .program-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .program-hero{
    padding:58px 22px 42px;
    gap:28px;
  }
  .program-hero h1{font-size:clamp(2.55rem,12vw,4rem)}
  .program-hero-card{width:100%}
  .program-intro-strip{padding:38px 22px}
  .program-page-section{padding:38px 18px !important}
  .program-day-block{margin-bottom:42px}
  .program-day-banner{
    grid-template-columns:58px minmax(0,1fr);
    gap:15px;
    padding:20px;
  }
  .program-day-index{font-size:2.8rem}
  .program-day-time{
    grid-column:2;
    padding:12px 0 0;
    border-left:0;
    border-top:1px solid currentColor;
  }
  .program-feature-grid{grid-template-columns:1fr}
  .program-day-timeline{grid-template-columns:1fr}
  .program-footer-cta{
    grid-template-columns:1fr;
    padding:40px 22px;
  }
}


/* V3.0.25 — source du compteur bénévoles sur le tableau de bord */
.admin-data-source{
  margin:14px 2px 20px;
  font-size:.78rem;
  font-weight:700;
  color:#5d746d;
}
.admin-data-source--warning{
  color:#a46800;
}


/* V3.0.26 — Administration / statistiques bénévoles */
.admin-page-intro{
  margin:.45rem 0 0;
  color:#72807c;
  max-width:760px;
}
.admin-status-warning{
  color:#9a6500 !important;
  background:#fff4dc !important;
}
.admin-volunteer-panel{
  margin-top:22px;
  padding:26px;
  border:1px solid #e2e7e5;
  border-radius:20px;
  background:#fff;
  box-shadow:0 14px 36px rgba(20,39,34,.05);
}
.admin-volunteer-section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:22px;
}
.admin-volunteer-section-head h2,
.admin-volunteer-info h2{
  margin:.25rem 0 0;
  font-size:1.55rem;
  color:#17211f;
}
.admin-outline-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 16px;
  border:1px solid #cdd6d3;
  border-radius:12px;
  color:#17211f;
  font-weight:800;
  font-size:.82rem;
  text-decoration:none;
  background:#fff;
}
.admin-outline-link:hover{
  border-color:#f3a11a;
  color:#a86600;
}
.admin-volunteer-stats{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.admin-volunteer-stats-local{
  grid-template-columns:repeat(5,minmax(0,1fr));
}
.admin-volunteer-stat{
  min-height:150px;
  padding:20px;
  border:1px solid #e5e9e7;
  border-radius:16px;
  background:#f8faf9;
  display:flex;
  flex-direction:column;
}
.admin-volunteer-stat span{
  font-size:.78rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#697873;
}
.admin-volunteer-stat strong{
  margin:10px 0 8px;
  font-size:2rem;
  line-height:1;
  color:#526c65;
}
.admin-volunteer-stat small{
  margin-top:auto;
  line-height:1.4;
  color:#82908c;
}
.admin-volunteer-progress-card{
  margin-top:16px;
  padding:20px;
  border-radius:16px;
  background:#102922;
  color:#fff;
}
.admin-volunteer-progress-card>div:first-child{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.admin-volunteer-progress-card>div:first-child span{
  font-size:1.45rem;
  font-weight:900;
}
.admin-volunteer-progress{
  height:9px;
  margin:14px 0 10px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.12);
}
.admin-volunteer-progress i{
  display:block;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#8c5ac7,#3ecad5);
}
.admin-volunteer-progress-card p{
  margin:0;
  color:rgba(255,255,255,.72);
  font-size:.84rem;
}
.admin-volunteer-alert{
  padding:20px;
  border:1px solid #f0d4a2;
  border-radius:14px;
  background:#fff7e9;
  color:#7e590f;
}
.admin-volunteer-alert p{margin:.4rem 0 0}
.admin-volunteer-info{
  display:grid;
  grid-template-columns:minmax(220px,.75fr) 1fr 1fr;
  gap:28px;
  align-items:start;
}
.admin-volunteer-info p{
  margin:0;
  color:#687773;
  line-height:1.65;
}
@media(max-width:1150px){
  .admin-volunteer-stats,
  .admin-volunteer-stats-local{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .admin-volunteer-info{
    grid-template-columns:1fr;
  }
}
@media(max-width:720px){
  .admin-volunteer-panel{padding:18px}
  .admin-volunteer-section-head{align-items:flex-start;flex-direction:column}
  .admin-volunteer-stats,
  .admin-volunteer-stats-local{
    grid-template-columns:1fr;
  }
}


/* V3.0.27 — Bénévoles : deux grandes cartes côte à côte */
.admin-volunteer-duo{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px;
  margin-top:26px;
  align-items:stretch;
}
.admin-volunteer-card{
  min-width:0;
  padding:26px;
  border-radius:22px;
  border:1px solid transparent;
  box-shadow:0 16px 38px rgba(20,39,34,.07);
  display:flex;
  flex-direction:column;
}
.admin-volunteer-card--platform{
  background:linear-gradient(145deg,#eef8f2 0%,#f8fbf9 100%);
  border-color:#cce5d5;
  --vol-card-accent:#14814d;
  --vol-card-soft:#dff1e6;
}
.admin-volunteer-card--event{
  background:linear-gradient(145deg,#fff3e7 0%,#fffaf5 100%);
  border-color:#f3d3ad;
  --vol-card-accent:#e77d00;
  --vol-card-soft:#ffe8ce;
}
.admin-volunteer-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding-bottom:20px;
  border-bottom:1px solid color-mix(in srgb,var(--vol-card-accent) 18%, transparent);
}
.admin-volunteer-card-head .eyebrow{color:var(--vol-card-accent)}
.admin-volunteer-card-head h2{
  margin:.25rem 0 .35rem;
  font-size:1.55rem;
  line-height:1.08;
  color:#17211f;
}
.admin-volunteer-card-head p:last-child{
  margin:0;
  color:#71807b;
  font-size:.84rem;
}
.admin-volunteer-card-icon{
  width:54px;
  height:54px;
  flex:0 0 54px;
  display:grid;
  place-items:center;
  border-radius:16px;
  background:var(--vol-card-soft);
  font-size:1.55rem;
}
.admin-volunteer-metrics{
  display:grid;
  gap:0;
  margin-top:6px;
}
.admin-volunteer-metric{
  display:grid;
  grid-template-columns:82px minmax(0,1fr);
  align-items:center;
  gap:14px;
  min-height:78px;
  padding:13px 2px;
  border-bottom:1px solid color-mix(in srgb,var(--vol-card-accent) 16%, transparent);
}
.admin-volunteer-metric strong{
  color:var(--vol-card-accent);
  font-size:2rem;
  line-height:1;
  font-weight:900;
  letter-spacing:-.03em;
}
.admin-volunteer-metric div{min-width:0}
.admin-volunteer-metric b{
  display:block;
  color:#1a2522;
  font-size:.93rem;
  line-height:1.2;
}
.admin-volunteer-metric span{
  display:block;
  margin-top:3px;
  color:#6e7b77;
  font-size:.79rem;
  line-height:1.35;
}
.admin-volunteer-metric--rate strong{font-size:1.8rem}
.admin-volunteer-mini-progress{
  height:8px;
  margin:14px 0 4px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(23,33,31,.08);
}
.admin-volunteer-mini-progress i{
  display:block;
  height:100%;
  border-radius:inherit;
  background:var(--vol-card-accent);
}
.admin-volunteer-card-link{
  margin-top:auto;
  padding-top:20px;
  color:var(--vol-card-accent);
  font-size:.84rem;
  font-weight:900;
  text-decoration:none;
}
.admin-volunteer-card-link:hover{text-decoration:underline}
.admin-volunteer-duo + .admin-volunteer-info{margin-top:22px}
@media(max-width:1050px){
  .admin-volunteer-duo{grid-template-columns:1fr}
}
@media(max-width:620px){
  .admin-volunteer-card{padding:20px}
  .admin-volunteer-metric{grid-template-columns:70px minmax(0,1fr)}
  .admin-volunteer-metric strong{font-size:1.7rem}
  .admin-volunteer-card-icon{width:46px;height:46px;flex-basis:46px}
}

/* V3.0.29 — édition des pages publiques */
.site-page-tabs{display:flex;gap:8px;margin:0 0 22px}.site-page-tabs a{padding:11px 16px;border-radius:10px;background:#fff;border:1px solid #dfe5e3;font-weight:800;color:#26322f}.site-page-tabs a.active{background:#16332d;color:#fff;border-color:#16332d}
.home-admin-section>label{display:block;margin:0 0 18px}.home-admin-section>label input,.home-admin-section>label textarea{width:100%;margin-top:7px}

.admin-partner-logo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.admin-partner-logo-grid article{padding:15px;border:1px solid #dfe5e3;border-radius:14px;background:#fff;display:flex;flex-direction:column;gap:10px}.admin-partner-logo-grid img{width:100%;height:100px;object-fit:contain;background:#fafafa}@media(max-width:1000px){.admin-partner-logo-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.admin-partner-logo-grid{grid-template-columns:1fr}}


/* V3.1.1 — Audit réservations */
.ftc-audit-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:10px;align-items:stretch;margin:0 0 18px}
.ftc-audit-strip>div,.ftc-audit-summary>div{background:#fff;border:1px solid #e2e7e5;border-radius:14px;padding:12px 14px}
.ftc-audit-strip span,.ftc-audit-summary span{display:block;color:#71807d;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}
.ftc-audit-strip strong,.ftc-audit-summary strong{display:block;margin-top:4px;font-size:1.25rem;color:#1d2927}
.ftc-audit-strip>a{align-self:center}
.ftc-audit-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}
.ftc-audit-summary .ok{border-left:4px solid #77a96b}.ftc-audit-summary .warn{border-left:4px solid #db7d49}
.ftc-audit-card{margin-bottom:18px}.ftc-audit-ok{margin:0;color:#4f7d46;font-weight:700}
@media(max-width:1100px){.ftc-audit-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.ftc-audit-strip>a{grid-column:1/-1;width:max-content}.ftc-audit-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.ftc-audit-strip,.ftc-audit-summary{grid-template-columns:1fr}}


/* V3.1.2 — mode test local */
.admin-test-badge{display:inline-block!important;margin-top:5px;padding:3px 6px;border-radius:4px;background:#fff0c9;color:#8a5a00;font-size:9px!important;font-weight:900;letter-spacing:.05em}

/* V3.1.3 — assistant de placement & modal capacité */
.ftc-modal-backdrop{position:fixed;inset:0;z-index:99999;background:rgba(7,24,21,.72);display:flex;align-items:center;justify-content:center;padding:24px}
.ftc-capacity-modal{width:min(620px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:18px;padding:28px;box-shadow:0 24px 80px rgba(0,0,0,.28)}
.ftc-capacity-modal h2{margin:8px 0 10px;font-size:28px}.ftc-capacity-modal>form,.capacity-create{margin-top:14px}
.capacity-full-message{padding:14px 16px;background:#fff1ed;border-left:4px solid #d75f43;margin:16px 0}.capacity-full-message span{display:block;margin-top:4px}
.capacity-create summary{cursor:pointer;font-weight:900;color:#0e3c35;margin-bottom:12px}
.placement-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}
.placement-kpis>div{background:#fff;border:1px solid #e2e4e1;border-radius:14px;padding:16px}.placement-kpis strong{display:block;font-size:30px}.placement-kpis span{font-size:12px;text-transform:uppercase;color:#66736f}
.placement-suggestions{display:grid;gap:12px}.placement-suggestion{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px;border:1px solid #dfe5df;border-radius:14px;background:#fbfcfa}.placement-suggestion h3{margin:5px 0}.placement-suggestion p{margin:0}
.placement-badge{display:inline-block;font-size:10px;font-weight:900;letter-spacing:.08em;color:#a75c00;background:#fff0ce;padding:4px 7px;border-radius:5px}
.placement-preview{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0}.placement-preview>div{display:flex;justify-content:space-between;gap:12px;padding:11px 13px;background:#f3f6f4;border-radius:9px}.placement-preview span{color:#58645f}
.placement-danger{border-left:5px solid #d75f43!important}
@media(max-width:850px){.placement-kpis{grid-template-columns:repeat(2,1fr)}.placement-suggestion{align-items:flex-start;flex-direction:column}.placement-preview{grid-template-columns:1fr}}
@media(max-width:520px){.placement-kpis{grid-template-columns:1fr}.ftc-capacity-modal{padding:20px}}


/* V3.1.3.1 — regroupement intelligent de tables */
.walkin-no-table>strong{display:block;margin-bottom:5px}
.walkin-no-table>span{display:block}
.walkin-merge-proposal{margin-top:14px;padding:17px;border:1px solid #efcf99;background:#fffaf1;border-radius:12px}
.walkin-merge-proposal h3{margin:7px 0 6px;font-size:18px}
.walkin-merge-proposal p{margin:0 0 10px;line-height:1.55}
.walkin-merge-warning{margin:10px 0 14px;padding:10px 12px;border-left:3px solid #e39a25;background:#fff3dc;font-size:12px;line-height:1.5}
.walkin-merge-proposal .button{margin:4px 7px 0 0}
.walkin-merge-proposal .button.selected{box-shadow:0 0 0 3px rgba(41,111,91,.15)}
.placement-unresolved-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid #ece6de}
.placement-unresolved-row p{margin:0 0 3px}.placement-unresolved-row small{color:#6c746f}
@media(max-width:760px){.placement-unresolved-row{align-items:flex-start;flex-direction:column}}


/* Plan de salle — actions modifier / supprimer */
.room-table-actions{display:flex;align-items:flex-start;gap:12px;margin:10px 0 12px;flex-wrap:wrap}
.room-table-edit{margin:0}
.room-table-action-link,.room-table-delete-btn{
  appearance:none;border:0;background:transparent;padding:0;
  font:inherit;font-size:12px;font-weight:900;cursor:pointer;text-decoration:none
}
.room-table-action-link{color:#3f655d;list-style:none}
.room-table-action-link::-webkit-details-marker{display:none}
.room-table-action-link::after{content:' ↓';font-size:10px}
.room-table-edit[open] .room-table-action-link::after{content:' ↑'}
.room-table-delete-btn{color:#a94337}
.room-table-delete-btn:hover{ text-decoration:underline }
.room-table-delete-btn.disabled{color:#a9aaa8;cursor:not-allowed;text-decoration:none}
.room-table-edit-form{
  margin-top:10px;padding:13px;border-radius:10px;background:rgba(255,255,255,.72);
  border:1px solid rgba(0,0,0,.08)
}
.room-table-edit-form label{display:block;margin-bottom:9px;font-size:11px;font-weight:800}
.room-table-edit-form input{width:100%;margin-top:4px}
.room-table-edit-form small{display:block;margin-top:4px;font-weight:400;color:#6c706d}
.room-table-edit-buttons{margin-top:10px}
.room-table-delete-form{margin:0}


/* Plan de salle — regroupements réversibles */
.room-table-merged-badge{display:inline-block;margin-top:7px;padding:4px 7px;border-radius:5px;background:rgba(255,255,255,.72);font-size:9px;font-weight:900;letter-spacing:.06em;color:#6d531e}
.room-table-split-form{margin:0}
.room-table-split-btn{appearance:none;border:0;background:transparent;padding:0;font:inherit;font-size:12px;font-weight:900;color:#8a5a00;cursor:pointer}
.room-table-split-btn:hover{text-decoration:underline}
.room-table-split-btn.disabled{color:#a9aaa8;cursor:not-allowed;text-decoration:none}


/* V3.1.4.1 — badge regroupement ancien/nouveau */
.room-table-merged-badge{
  display:inline-block;
  margin-top:7px;
  padding:5px 8px;
  border-radius:6px;
  background:#fff0ce;
  color:#80530a;
  font-size:9px;
  font-weight:900;
  letter-spacing:.06em;
  line-height:1.25;
}
.room-table-merged-badge small{
  display:block;
  margin-top:2px;
  font-size:8px;
  font-weight:700;
  letter-spacing:.02em;
  text-transform:none;
  opacity:.75;
}


/* Check-in — alternative regroupement de tables */
.capacity-merge-option{
  margin:16px 0;
  padding:16px;
  border:1px solid #dfd2b7;
  border-radius:12px;
  background:#fffaf0;
}
.capacity-merge-option h3{
  margin:7px 0 7px;
  font-size:19px;
}
.capacity-merge-option p{
  margin:0 0 9px;
  line-height:1.55;
}
.capacity-merge-note{
  padding:9px 11px;
  border-left:3px solid #dfa03a;
  background:#fff3dc;
  font-size:12px;
}


/* V3.1.6 — Impressions réservations */
.print-page-head p{max-width:760px}
.print-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}
.print-kpis>div{padding:16px 18px;border-radius:14px;background:#fff;border:1px solid #e0e3df}
.print-kpis strong{display:block;font-size:30px;color:#143a32}.print-kpis span{display:block;font-size:11px;text-transform:uppercase;color:#68746f}
.print-kpis .warning{border-left:4px solid #d77b45}
.print-reservation-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:18px 0}
.print-choice-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:22px;overflow:hidden}
.print-card-number{position:absolute;right:18px;top:14px;font-size:42px;font-weight:900;color:#edf0ed}
.print-choice-card h2{margin:2px 0 8px;font-size:26px}
.print-choice-card p{line-height:1.55}.print-choice-card ul{margin:14px 0 20px;padding-left:18px;color:#56635e;font-size:13px}
.print-choice-card li{margin:5px 0}
.print-tent-preview{align-self:center;padding:21px 16px;border:1px solid #cf9b48;background:#fffaf2;text-align:center;box-shadow:0 12px 28px rgba(25,45,39,.08)}
.print-tent-brand,.print-poster-brand{font-family:Georgia,serif;font-weight:800;color:#123a31}
.print-tent-preview small,.print-poster-preview small{display:block;margin:7px 0;color:#8c5e1c;line-height:1.35}
.print-tent-preview>span{display:block;margin-top:13px;font-weight:900}.print-tent-preview>strong{display:block;font-size:52px;line-height:.95;color:#123a31}
.print-tent-preview>b{display:block;color:#b56d13;font-size:12px}.print-tent-preview>em{display:block;margin:14px 0 8px;font-style:normal;font-weight:900}
.print-tent-preview>i{display:inline-block;padding:5px 8px;background:#123a31;color:#fff;border-radius:4px;font-size:9px;font-style:normal}
.print-poster-preview{align-self:center;padding:18px 14px;border:1px solid #cf9b48;background:#fff;text-align:center}
.print-poster-preview h3{margin:12px 0 9px;color:#123a31}
.print-poster-preview>div:not(.print-poster-brand){display:grid;grid-template-columns:48px 1fr 24px;gap:5px;text-align:left;padding:5px 0;border-bottom:1px solid #ebe7df;font-size:9px}
.print-poster-preview>div b{color:#ad6b12}.print-poster-preview>div em{text-align:right;font-style:normal}
@media(max-width:1150px){.print-reservation-grid{grid-template-columns:1fr}.print-choice-card{grid-template-columns:1fr 240px}}
@media(max-width:720px){.print-kpis{grid-template-columns:repeat(2,1fr)}.print-choice-card{grid-template-columns:1fr}.print-tent-preview,.print-poster-preview{max-width:300px}}


/* V3.1.7 — aperçu chevalet horizontal regroupé */
.print-tent-preview{padding:16px 15px}
.print-tent-preview-top{
  display:grid;
  grid-template-columns:1fr 1.25fr .55fr;
  gap:10px;
  align-items:center;
  padding-bottom:10px;
  border-bottom:1px solid #cf9b48;
}
.print-tent-preview-top .print-tent-brand{text-align:left;font-size:11px;line-height:1.1}
.print-tent-preview-top .print-tent-brand strong{font-family:Georgia,serif;font-size:17px}
.print-tent-preview-top>small{margin:0;padding:0 9px;border-left:1px solid #cf9b48;border-right:1px solid #cf9b48;text-align:center}
.print-tent-table{text-align:center}.print-tent-table span{display:block;font-size:9px;font-weight:900;color:#123a31}
.print-tent-table strong{display:block;font-size:36px;line-height:.9;color:#123a31}
.print-tent-preview>b{margin-top:12px}
.print-tent-preview>em{font-size:10px;line-height:1.5}
.print-tent-preview>i{max-width:100%;font-size:8px;line-height:1.35}


/* V3.1.8 — numéro principal des tables regroupées */
.print-tent-table small{
  display:block;
  margin-top:3px;
  color:#123a31;
  font-size:10px;
  font-weight:900;
  line-height:1;
}


/* V3.1.9 — gestion annuelle des partenaires */
.partner-public-year{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-bottom:18px}
.partner-public-year h2{margin:2px 0 5px}.partner-public-year p{margin:0;color:#66716d}
.partner-public-year form{display:flex;gap:8px;align-items:center}.partner-public-year select{min-width:150px}
.partner-admin-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:18px 0}
.partner-admin-toolbar form{display:flex;gap:12px}.partner-admin-toolbar label{font-size:11px;font-weight:900;text-transform:uppercase}
.partner-admin-toolbar select{display:block;margin-top:5px}
.partner-admin-stats{display:flex;gap:10px}.partner-admin-stats span{padding:10px 13px;background:#fff;border:1px solid #e1e4e1;border-radius:10px;font-size:11px}
.partner-admin-stats strong{font-size:18px;margin-right:3px}
.partner-management-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.partner-management-card{border:1px solid #dfe3df;border-radius:14px;background:#fff;padding:14px;display:flex;flex-direction:column;gap:12px}
.partner-management-card.archived{background:#f4f4f2;opacity:.88}
.partner-management-logo{position:relative;height:125px;display:flex;align-items:center;justify-content:center;background:#faf8f3;border-radius:10px;padding:12px}
.partner-management-logo img{max-width:100%;max-height:100%;object-fit:contain}
.partner-status{position:absolute;top:8px;right:8px;padding:4px 6px;border-radius:5px;font-size:8px;font-weight:900;letter-spacing:.06em}
.partner-status.active{background:#e0f2e7;color:#28623d}.partner-status.archived{background:#ece9e4;color:#6d655c}
.partner-management-info h3{margin:0 0 4px;font-size:17px}.partner-management-info p{margin:0 0 5px;color:#69736f;font-size:12px}
.partner-management-info a,.partner-management-info small{font-size:11px}
.partner-edit-details summary{cursor:pointer;font-size:11px;font-weight:900;color:#365f56}
.partner-edit-form{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px;padding:10px;background:#f7f8f6;border-radius:9px}
.partner-edit-form label{font-size:10px;font-weight:800}.partner-edit-form input{display:block;width:100%;margin-top:3px}
.partner-edit-form button{grid-column:1/-1}
.partner-management-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:auto;padding-top:4px;border-top:1px solid #eceeea}
.partner-management-actions form{margin:0}
.partner-action{border:0;background:transparent;padding:5px 0;font-size:10px;font-weight:900;cursor:pointer}
.partner-action.renew{color:#236555}.partner-action.archive{color:#9b680f}.partner-action.restore{color:#2f7651}.partner-action.delete{color:#a7473c}
.partner-action:hover{text-decoration:underline}
@media(max-width:1100px){.partner-management-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.partner-public-year,.partner-admin-toolbar{align-items:stretch;flex-direction:column}.partner-admin-toolbar form{flex-direction:column}.partner-management-grid{grid-template-columns:1fr}.partner-edit-form{grid-template-columns:1fr}}


/* V3.2 — recherche assistée du site officiel d'un partenaire */
.partner-search-status{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px}
.partner-search-status h2{margin:2px 0 5px}.partner-search-status p{margin:0;max-width:820px;color:#65706c}
.partner-search-status>span{flex:0 0 auto;padding:7px 10px;border-radius:7px;font-size:9px;font-weight:900;letter-spacing:.06em}
.partner-search-status.ready{border-left:4px solid #4c9769}.partner-search-status.ready>span{background:#e2f3e7;color:#27613e}
.partner-search-status.missing{border-left:4px solid #d79935}.partner-search-status.missing>span{background:#fff0d4;color:#845914}
.partner-url-field{grid-column:span 2}
.partner-url-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:end;margin-top:4px}
.partner-url-input-row input{margin:0!important}
.partner-url-input-row .button{white-space:nowrap;padding:10px 12px}
.partner-url-field>small{display:block;margin-top:5px;color:#727a77;font-weight:400}
.partner-search-results{grid-column:1/-1;margin-top:8px;border:1px solid #dce2de;border-radius:10px;background:#fff;overflow:hidden}
.partner-search-result-head{display:flex;align-items:center;justify-content:space-between;padding:9px 11px;background:#f2f5f2;font-size:10px}
.partner-search-result-head span{color:#747c78}
.partner-search-result{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:11px;border-top:1px solid #e8ebe8}
.partner-search-result:first-of-type{border-top:0}.partner-search-result.best{box-shadow:inset 4px 0 #4d8d68}.partner-search-result.selected{background:#edf7f0}
.partner-search-result strong{display:block;margin:3px 0;font-size:12px}.partner-search-result small{color:#326459;font-weight:700}
.partner-search-result p{margin:5px 0 0;color:#67716d;font-size:10px;line-height:1.4}
.partner-search-confidence{display:inline-block;padding:3px 5px;border-radius:4px;font-size:8px;font-weight:900;text-transform:uppercase}
.partner-search-confidence.forte{background:#dff2e4;color:#28633e}.partner-search-confidence.moyenne{background:#fff0d3;color:#855c19}.partner-search-confidence.faible{background:#f0eeea;color:#756c63}
.partner-search-result-actions{display:flex;align-items:center;gap:9px}
.partner-search-result-actions a,.partner-search-result-actions button{font-size:9px;font-weight:900}
.partner-search-result-actions button{border:0;border-radius:6px;background:#123a31;color:#fff;padding:7px 8px;cursor:pointer}
.partner-search-loading,.partner-search-empty,.partner-search-error{padding:12px;font-size:11px}.partner-search-error{color:#9c3f35;background:#fff1ee}.partner-search-empty{color:#6c706d}
@media(max-width:760px){.partner-search-status{align-items:flex-start;flex-direction:column}.partner-url-field{grid-column:1/-1}.partner-url-input-row{grid-template-columns:1fr}.partner-search-result{grid-template-columns:1fr}.partner-search-result-actions{justify-content:flex-start;flex-wrap:wrap}}

/* V3.2.2 */
.partner-admin-contact{display:block;margin-top:5px;color:#66716d;line-height:1.35}


/* V3.2.2.2 — rotation des logos partenaires */
.partner-management-logo img{transition:transform .2s ease}
.partner-logo-rotation{padding:9px 10px;background:#f7f8f6;border:1px solid #e3e7e3;border-radius:9px}
.partner-logo-rotation>span{display:block;margin-bottom:6px;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:#69726e}
.partner-logo-rotation>div{display:flex;gap:7px;flex-wrap:wrap}
.partner-logo-rotation form{margin:0}
.partner-rotate-button{border:1px solid #ccd4cf;background:#fff;color:#254c43;border-radius:6px;padding:6px 8px;font-size:9px;font-weight:900;cursor:pointer}
.partner-rotate-button:hover{background:#eef5f1}
.partner-logo-rotation small{display:block;margin-top:6px;color:#767e7a;font-size:9px}


/* V3.2.2.3 — remplacement du logo en modification */
.partner-logo-replace-field{grid-column:1/-1;padding:10px;border:1px dashed #cfd7d2;border-radius:8px;background:#fbfcfb}
.partner-logo-replace-field input[type=file]{display:block;width:100%;margin-top:5px}
.partner-logo-replace-field small{display:block;margin-top:5px;color:#747c78;font-weight:400;line-height:1.35}


/* V3.2.3 — administration des images de présentation */
.site-page-image-admin{margin-top:6px;padding:12px;border:1px dashed #ccd5d0;border-radius:10px;background:#fafbf9}
.site-page-image-admin img{display:block;width:min(100%,520px);height:190px;object-fit:cover;border-radius:8px;margin-bottom:9px}
.site-page-image-admin input[type=file]{display:block;width:100%;margin-top:8px}
.site-page-image-admin small{display:block;margin-top:5px;color:#727a77;font-weight:400}
.site-page-image-empty{padding:22px;text-align:center;background:#f0f3f0;border-radius:7px;color:#78807c;font-size:11px}
.site-page-image-remove{display:flex!important;align-items:center;gap:6px;font-size:10px!important;font-weight:700!important;color:#8a423b!important}
.site-page-image-remove input{width:auto!important;margin:0!important}


/* V3.3 — diagnostic pré-production Amen */
.admin-status-danger{background:#fde7e3!important;color:#9e3027!important}
.admin-status-warning{background:#fff0d3!important;color:#845a13!important}
.preprod-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 18px}
.preprod-summary>div{padding:16px;background:#fff;border:1px solid #e1e5e1;border-radius:11px;display:flex;align-items:baseline;gap:8px}
.preprod-summary strong{font-size:27px}.preprod-summary span{font-size:10px;font-weight:900;text-transform:uppercase;color:#737b77}
.preprod-check-list{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.preprod-check{display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px;padding:11px;border:1px solid #e3e6e3;border-radius:9px;background:#fafbfa}
.preprod-check.ok{border-left:4px solid #4a9565}.preprod-check.warning{border-left:4px solid #d69a31}.preprod-check.blocker{border-left:4px solid #bd4c43}
.preprod-icon{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#edf1ee;font-weight:900}
.preprod-check strong{font-size:11px}.preprod-check p{margin:3px 0 0;color:#6c7570;font-size:10px;line-height:1.45}
.preprod-steps{margin:0;padding-left:22px}.preprod-steps li{margin:8px 0;line-height:1.55}
.preprod-steps code{font-size:10px;background:#f1f3f1;padding:2px 5px;border-radius:4px}
@media(max-width:800px){.preprod-summary,.preprod-check-list{grid-template-columns:1fr}}


/* V3.3.1 — Mode Travaux */
.maintenance-admin-on{background:#fff0d3!important;color:#855a12!important}
.maintenance-admin-banner{margin:0 0 18px;padding:14px 16px;border:1px solid #e6b75e;border-left:5px solid #d69424;border-radius:10px;background:#fff6e5}
.maintenance-admin-banner strong{display:block;font-size:13px}.maintenance-admin-banner p{margin:4px 0 7px;color:#665c4d;font-size:11px;line-height:1.5}.maintenance-admin-banner a{font-size:10px;font-weight:900}
.maintenance-admin-state{display:grid;grid-template-columns:52px 1fr;gap:14px;align-items:start;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid #e5e8e5}
.maintenance-switch-icon{font-size:28px}.maintenance-admin-state h2{margin:2px 0 5px}.maintenance-admin-state p:last-child{margin:0;color:#68716d}
.maintenance-admin-form{display:grid;grid-template-columns:1fr 1fr;gap:13px}.maintenance-admin-form>label{font-size:10px;font-weight:900;text-transform:uppercase}.maintenance-admin-form input[type=text],.maintenance-admin-form textarea{display:block;width:100%;margin-top:5px}
.maintenance-admin-form label:nth-of-type(3){grid-column:1/-1}
.maintenance-toggle-row{grid-column:1/-1;display:flex!important;align-items:center;gap:11px;padding:12px;background:#f4f6f4;border-radius:9px;text-transform:none!important}.maintenance-toggle-row input{width:auto!important;margin:0!important;transform:scale(1.2)}.maintenance-toggle-row strong,.maintenance-toggle-row small{display:block}.maintenance-toggle-row small{margin-top:2px;color:#767e7a;font-weight:400}
.maintenance-admin-actions{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}.button-danger{background:#a94238!important;color:#fff!important;border-color:#a94238!important}
.maintenance-test-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.maintenance-test-grid>div{padding:12px;background:#f6f8f6;border-radius:8px}.maintenance-test-grid strong{font-size:20px}.maintenance-test-grid p{margin:4px 0 0;font-size:10px;line-height:1.45;color:#66706c}
@media(max-width:800px){.maintenance-admin-form,.maintenance-test-grid{grid-template-columns:1fr}.maintenance-admin-form label:nth-of-type(3){grid-column:auto}}

/* =========================================================
   V3.3.6 — Navigation Admin mobile
   Corrige les menus coupés / superposés sur smartphone.
   ========================================================= */
.admin-mobile-nav-toggle{
  display:none;
}

@media(max-width:900px){
  .admin-topbar{
    position:relative !important;
    top:auto !important;
    z-index:30 !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    justify-items:center !important;
    align-items:center !important;
    gap:10px !important;
    min-height:0 !important;
    height:auto !important;
    padding:14px 16px 12px !important;
    overflow:visible !important;
  }

  .admin-brand{
    display:flex !important;
    justify-content:center !important;
    width:100% !important;
  }

  .admin-brand img{
    width:190px !important;
    max-height:88px !important;
    object-fit:contain !important;
  }

  .admin-userbar{
    order:2 !important;
    width:100% !important;
    margin:0 !important;
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    flex-wrap:wrap !important;
    gap:8px !important;
  }

  .admin-userbar > span{
    display:none !important;
  }

  .admin-userbar a{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-height:38px !important;
    padding:0 14px !important;
    border-radius:10px !important;
    background:rgba(255,255,255,.07) !important;
    white-space:nowrap !important;
  }

  .admin-mobile-nav-toggle{
    order:3 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:100% !important;
    min-height:44px !important;
    border:1px solid rgba(255,255,255,.16) !important;
    border-radius:11px !important;
    background:#21332f !important;
    color:#fff !important;
    font:inherit !important;
    font-weight:800 !important;
    cursor:pointer !important;
  }

  .admin-layout{
    grid-template-columns:1fr !important;
    min-height:0 !important;
  }

  .admin-sidebar{
    width:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    padding:0 !important;
    overflow:visible !important;
    border-right:0 !important;
    background:#172724 !important;
  }

  .admin-sidebar nav{
    display:none !important;
    position:static !important;
    width:100% !important;
    padding:10px 12px 14px !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:7px !important;
    overflow:visible !important;
  }

  .admin-sidebar.is-open nav{
    display:grid !important;
  }

  .admin-sidebar a,
  .admin-nav-disabled{
    width:100% !important;
    min-width:0 !important;
    min-height:44px !important;
    padding:8px 11px !important;
    white-space:normal !important;
    line-height:1.2 !important;
    font-size:.82rem !important;
    background:rgba(255,255,255,.035) !important;
  }

  .admin-main{
    width:100% !important;
    min-width:0 !important;
    padding:22px 16px 36px !important;
    overflow-x:hidden !important;
  }
}

@media(max-width:480px){
  .admin-sidebar nav{
    grid-template-columns:1fr !important;
  }
  .admin-userbar{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
  }
  .admin-userbar a{
    width:100% !important;
  }
}

/* =========================================================
   V3.3.7 — Tableau de bord Admin mobile
   Empêche les cartes d'actions de déborder à droite.
   ========================================================= */
@media(max-width:900px){
  .admin-main{
    max-width:100% !important;
    overflow-x:hidden !important;
  }

  .admin-stat-grid,
  .admin-quick-grid{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }

  .admin-quick-grid{
    grid-template-columns:1fr !important;
  }

  .admin-stat,
  .admin-quick,
  .admin-data-source{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }

  .admin-quick{
    grid-template-columns:42px minmax(0,1fr) !important;
  }

  .admin-quick strong,
  .admin-quick small,
  .admin-data-source{
    overflow-wrap:anywhere !important;
    word-break:normal !important;
  }
}

@media(max-width:520px){
  .admin-stat-grid{
    grid-template-columns:1fr !important;
  }
}
