/* ══════════════════════════════════════════
   IBE FRONT — Concerts + Shortcodes
   Compatible Astra (toutes versions)
══════════════════════════════════════════ */
:root {
  --ibe-acc:   #f8b580;
  --ibe-acc2:  #fad4b0;
  --ibe-noir:  #0a0a0f;
  --ibe-encre: #13131e;
  --ibe-creme: #f0ebe0;
  --ibe-gris:  #7a7060;
  --ibe-bord:  rgba(248,181,128,.13);
  --ibe-ft:    'Cinzel', serif;
  --ibe-fc:    'Cormorant Garamond', Georgia, serif;
}
.ibe-single { font-family: var(--ibe-fc); }
.ibe-single * { box-sizing: border-box; }

/* ══ HERO ══ */
.ibe-hero {
  position: relative;
  min-height: 65vh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: var(--ibe-encre);
}
.ibe-hero-bg-wrap { position:absolute;inset:-8%;overflow:hidden; }
.ibe-hero-bg {
  position:absolute;inset:0;
  background-size:cover;background-position:center 30%;
  filter:brightness(.38) saturate(.82);
}
.ibe-hero-bg.kb { animation:ibe-kb 16s ease-in-out infinite alternate; }
@keyframes ibe-kb {
  0%   { transform:scale(1)    translate(0,0);    }
  50%  { transform:scale(1.09) translate(-2%,-1%);}
  100% { transform:scale(1.14) translate(1%,1%);  }
}
.ibe-hero-overlay {
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(10,10,15,1) 0%,rgba(10,10,15,.88) 14%,rgba(10,10,15,.44) 60%,rgba(10,10,15,.06) 100%);
}
.ibe-hero-content {
  position:relative;z-index:2;width:100%;
  max-width:1200px;margin:0 auto;
  padding:64px 56px 52px;
}

/* Badges catégorie */
.ibe-hero-cats { display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px; }
.ibe-hero-cat {
  font-family:var(--ibe-ft);font-size:9px;letter-spacing:.28em;text-transform:uppercase;
  padding:4px 12px;border:1px solid rgba(248,181,128,.28);color:var(--ibe-acc2);
}

/* Date */
.ibe-hero-date {
  display:flex;align-items:center;gap:12px;margin-bottom:14px;
  font-family:var(--ibe-ft);font-size:12px;letter-spacing:.4em;text-transform:uppercase;
  color:var(--ibe-acc);
}
.ibe-hero-date::before { content:'';width:28px;height:1px;background:var(--ibe-acc); }

/* Titre */
.ibe-hero-titre {
  font-family:var(--ibe-ft) !important;
  font-weight:400 !important;
  line-height:.97 !important;
  color:var(--ibe-creme) !important;
  margin:0 0 14px !important;
}
.ibe-hero-sous {
  font-style:italic;
  line-height:1.55;
  color:var(--ibe-acc);
  margin:0 0 26px;
}

/* Meta hero */
.ibe-hero-meta { display:flex;gap:22px;flex-wrap:wrap;align-items:center;font-family:var(--ibe-fc);color:var(--ibe-gris); }
.ibe-hero-meta-item { display:flex;align-items:center;gap:7px; }

/* ══ CORPS PAGE CONCERT ══ */
.ibe-corps {
  max-width:1200px;margin:0 auto;
  padding:0 56px 80px;
  display:grid;
  grid-template-columns:1fr 340px;
  gap:0 60px;
  align-items:start;
}
.ibe-gauche { padding-top:52px; }
.ibe-droite { position:sticky;top:80px;padding-top:52px;display:flex;flex-direction:column; }

/* Sections */
.ibe-section { margin-bottom:44px; }
.ibe-section-label {
  font-family:var(--ibe-ft);font-size:10px;letter-spacing:.4em;text-transform:uppercase;
  color:var(--ibe-acc);margin-bottom:16px;padding-bottom:12px;
  border-bottom:1px solid var(--ibe-bord);
  display:flex;align-items:center;gap:10px;
}
.ibe-section-label::after { content:'';flex:1;height:1px;background:var(--ibe-bord); }
.ibe-corps-txt { color:rgba(240,235,224,.78);line-height:2; }
.ibe-corps-txt p { margin:0 0 1.2em; }
.ibe-corps-txt strong { color:var(--ibe-creme); }

/* Musiciens */
.ibe-musiciens { list-style:none;margin:0;padding:0; }
.ibe-musiciens li {
  display:flex;justify-content:space-between;align-items:baseline;
  padding:11px 0;border-bottom:1px solid rgba(248,181,128,.06);gap:16px;
}
.ibe-musiciens li:first-child { border-top:1px solid rgba(248,181,128,.06); }
.ibe-m-nom  { color:var(--ibe-creme); }
.ibe-m-role { color:var(--ibe-gris);font-style:italic;font-size:14px;text-align:right;flex-shrink:0; }

/* ══ CARTES DROITE ══ */
.ibe-card {
  background:var(--ibe-encre);border:1px solid var(--ibe-bord);
  overflow:hidden;margin-bottom:14px;
}
.ibe-card-header {
  font-family:var(--ibe-ft);font-size:9px;letter-spacing:.28em;text-transform:uppercase;
  color:var(--ibe-acc);padding:13px 17px;border-bottom:1px solid var(--ibe-bord);
  background:rgba(248,181,128,.04);
}
.ibe-info-row { display:flex;flex-direction:column;padding:11px 17px;border-bottom:1px solid rgba(248,181,128,.05); }
.ibe-info-label {
  font-family:var(--ibe-ft);font-size:9px;letter-spacing:.26em;text-transform:uppercase;
  color:var(--ibe-acc);margin-bottom:4px;
}
.ibe-info-value { color:var(--ibe-creme);font-family:var(--ibe-fc);line-height:1.5; }
.ibe-info-value small { display:block;color:var(--ibe-gris);font-size:13px;margin-top:2px; }
.ibe-card-photo {
  width:100%;object-fit:cover;object-position:center top;display:block;
  filter:brightness(.86) saturate(.8);transition:filter .4s;
}
.ibe-card:hover .ibe-card-photo { filter:brightness(1) saturate(1); }
.ibe-card-photo-lieu { filter:brightness(.72) saturate(.7) !important; aspect-ratio:16/9; }
.ibe-card-ph {
  width:100%;aspect-ratio:3/2;background:linear-gradient(135deg,#1a1a2c,#0a0a0f);
  display:flex;align-items:center;justify-content:center;font-size:52px;
  color:rgba(248,181,128,.06);font-family:serif;
}

/* Grille photos musiciens attachées */
.ibe-mini-grid { display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px; }
.ibe-mini { background:var(--ibe-encre);border:1px solid var(--ibe-bord);overflow:hidden; }
.ibe-mini img {
  width:100%;aspect-ratio:1;object-fit:cover;object-position:center top;
  display:block;filter:brightness(.85);transition:filter .3s;
}
.ibe-mini:hover img { filter:brightness(1); }
.ibe-mini-info { padding:7px 9px 9px; }
.ibe-mini-nom  { font-family:var(--ibe-ft);font-size:10px;color:var(--ibe-creme);margin-bottom:2px;line-height:1.3; }
.ibe-mini-role { font-style:italic;font-size:10px;color:var(--ibe-acc); }

/* Galerie lieu grille */
.ibe-lieu-gallery { display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px; }
.ibe-lieu-gallery img {
  width:100%;aspect-ratio:1;object-fit:cover;
  filter:brightness(.72) saturate(.7);
  transition:filter .3s;
}
.ibe-lieu-gallery img:hover { filter:brightness(.92) saturate(1); }

/* Boutons */
.ibe-btn-action {
  display:block;text-align:center;
  font-family:var(--ibe-ft);font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  padding:16px 20px;width:100%;transition:opacity .2s;text-decoration:none;
}
.ibe-btn-primary   { background:var(--ibe-acc);color:var(--ibe-noir); }
.ibe-btn-primary:hover { opacity:.88; }
.ibe-btn-outline   { border:1px solid rgba(248,181,128,.22);color:var(--ibe-acc);background:none; }
.ibe-btn-outline:hover { background:rgba(248,181,128,.06); }

/* ══ NAV PREV/NEXT ══ */
.ibe-nav {
  border-top:1px solid var(--ibe-bord);grid-column:1/-1;
  display:grid;grid-template-columns:1fr 1fr;margin-top:22px;
}
.ibe-nav-item {
  padding:26px 32px;display:flex;flex-direction:column;
  text-decoration:none;color:inherit;transition:background .2s;
}
.ibe-nav-item:hover { background:rgba(248,181,128,.04); }
.ibe-nav-item + .ibe-nav-item { border-left:1px solid var(--ibe-bord); }
.ibe-nav-dir   { font-family:var(--ibe-ft);font-size:8px;letter-spacing:.28em;text-transform:uppercase;color:var(--ibe-acc);margin-bottom:7px; }
.ibe-nav-titre { font-family:var(--ibe-ft);font-size:13px;color:var(--ibe-creme);line-height:1.3;margin-bottom:3px; }
.ibe-nav-date  { font-style:italic;font-size:13px;color:var(--ibe-gris); }
.ibe-nav-item--next { text-align:right; }

/* ══ SHORTCODES ══ */
/* Commun */
.ibe-sc-btn {
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--ibe-ft);font-size:9px;letter-spacing:.2em;text-transform:uppercase;
  padding:10px 20px;background:rgba(248,181,128,.1);color:var(--ibe-acc,#f8b580);
  border:1px solid rgba(248,181,128,.2);text-decoration:none;
  transition:background .2s,color .2s;
}
.ibe-sc-btn:hover { background:var(--ibe-acc,#f8b580);color:#0a0a0f; }
.ibe-sc-btn--billet { background:var(--ibe-acc,#f8b580);color:#0a0a0f;border-color:var(--ibe-acc,#f8b580); }
.ibe-sc-btn--billet:hover { opacity:.85;color:#0a0a0f; }
.ibe-sc-cat { font-family:var(--ibe-ft);font-size:8px;letter-spacing:.3em;text-transform:uppercase;color:var(--ibe-acc,#f8b580);margin-bottom:7px; }
.ibe-sc-gratuit { font-family:var(--ibe-ft);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:#6abf8a;padding:6px 12px;border:1px solid rgba(106,191,138,.25);display:inline-block; }

/* LISTE */
.ibe-sc-liste { --ibe-acc:#f8b580; }
.ibe-sc-mois-sep {
  display:flex;align-items:center;gap:20px;margin:36px 0 20px;
}
.ibe-sc-mois-sep::before, .ibe-sc-mois-sep::after {
  content:'';flex:1;height:1px;background:linear-gradient(to right,transparent,var(--ibe-acc),transparent);opacity:.2;
}
.ibe-sc-mois-sep span {
  font-family:var(--ibe-ft);font-size:10px;letter-spacing:.4em;text-transform:uppercase;color:var(--ibe-acc);white-space:nowrap;
}
.ibe-sc-item {
  display:grid;grid-template-columns:160px 1fr auto;gap:0 24px;
  align-items:center;padding:20px 0;border-bottom:1px solid var(--ibe-bord);
}
.ibe-sc-item:last-child { border-bottom:none; }
.ibe-sc-thumb {
  width:160px;height:100px;object-fit:cover;display:block;
  filter:brightness(.85) saturate(.8);transition:filter .4s;
}
.ibe-sc-item:hover .ibe-sc-thumb { filter:brightness(1) saturate(1); }
.ibe-sc-titre { font-family:var(--ibe-ft);font-size:17px;margin:0 0 8px;line-height:1.25; }
.ibe-sc-titre a { color:inherit;text-decoration:none;transition:color .2s; }
.ibe-sc-titre a:hover { color:var(--ibe-acc,#f8b580); }
.ibe-sc-meta { display:flex;flex-wrap:wrap;gap:6px 20px;font-size:14px;color:#7a7060;margin-bottom:6px; }
.ibe-sc-ens  { font-style:italic;font-size:14px;color:var(--ibe-acc,#f8b580); }
.ibe-sc-item-right { display:flex;flex-direction:column;gap:8px;align-items:flex-end;text-align:right;flex-shrink:0; }
.ibe-sc-tarif { font-size:13px;color:#7a7060; }

/* GRILLE */
.ibe-sc-grille {
  --ibe-acc:#f8b580;
  display:grid;gap:22px;
  grid-template-columns:repeat(3,1fr);
}
.ibe-sc-grille--1 { grid-template-columns:1fr; }
.ibe-sc-grille--2 { grid-template-columns:repeat(2,1fr); }
.ibe-sc-grille--4 { grid-template-columns:repeat(4,1fr); }
.ibe-sc-card {
  background:#13131e;border:1px solid rgba(248,181,128,.12);
  overflow:hidden;transition:border-color .3s,transform .3s;
}
.ibe-sc-card:hover { border-color:rgba(248,181,128,.28);transform:translateY(-3px); }
.ibe-sc-card-img-wrap { position:relative;overflow:hidden; }
.ibe-sc-card-img {
  width:100%;aspect-ratio:3/2;object-fit:cover;display:block;
  filter:brightness(.85) saturate(.8);transition:filter .5s,transform .5s;
}
.ibe-sc-card:hover .ibe-sc-card-img { filter:brightness(1) saturate(1);transform:scale(1.04); }
.ibe-sc-card-img-ph {
  width:100%;aspect-ratio:3/2;background:linear-gradient(135deg,#1a1a2c,#0a0a0f);
  display:flex;align-items:center;justify-content:center;font-size:48px;
  color:rgba(248,181,128,.08);font-family:serif;
}
.ibe-sc-card-badge {
  position:absolute;top:12px;left:12px;
  font-family:var(--ibe-ft,serif);font-size:8px;letter-spacing:.28em;text-transform:uppercase;
  background:rgba(10,10,15,.82);color:var(--ibe-acc,#f8b580);padding:4px 10px;
  backdrop-filter:blur(4px);
}
.ibe-sc-card-gratuit {
  position:absolute;top:12px;right:12px;
  font-family:var(--ibe-ft,serif);font-size:8px;letter-spacing:.2em;text-transform:uppercase;
  background:rgba(106,191,138,.2);color:#6abf8a;padding:4px 10px;
  border:1px solid rgba(106,191,138,.3);
}
.ibe-sc-card-body { padding:20px 22px 22px; }
.ibe-sc-card-date  { font-family:var(--ibe-ft,serif);font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--ibe-acc,#f8b580);margin-bottom:8px; }
.ibe-sc-card-titre { font-family:var(--ibe-ft,serif);font-size:17px;font-weight:400;margin:0 0 8px;line-height:1.25; }
.ibe-sc-card-titre a { color:#f0ebe0;text-decoration:none;transition:color .2s; }
.ibe-sc-card-titre a:hover { color:var(--ibe-acc,#f8b580); }
.ibe-sc-card-lieu { font-size:14px;color:#7a7060;margin-bottom:5px; }
.ibe-sc-card-ens  { font-style:italic;font-size:14px;color:var(--ibe-acc,#f8b580);margin-bottom:14px; }
.ibe-sc-card-actions { display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:14px; }

/* CALENDRIER */
.ibe-sc-cal { --ibe-acc:#f8b580; }
.ibe-sc-cal-mois { margin-bottom:40px; }
.ibe-sc-cal-mois-titre {
  font-family:var(--ibe-ft,serif);font-size:10px;letter-spacing:.44em;text-transform:uppercase;
  color:var(--ibe-acc,#f8b580);padding-bottom:16px;margin-bottom:16px;
  border-bottom:1px solid rgba(248,181,128,.2);
  display:flex;align-items:center;gap:20px;
}
.ibe-sc-cal-mois-titre::before,
.ibe-sc-cal-mois-titre::after { content:'';flex:1;height:1px;background:linear-gradient(to right,rgba(248,181,128,.15),transparent); }
.ibe-sc-cal-items { display:flex;flex-direction:column;gap:0; }
.ibe-sc-cal-item {
  display:grid;grid-template-columns:52px 120px 1fr auto;
  gap:0 20px;align-items:center;
  padding:18px 0;border-bottom:1px solid rgba(248,181,128,.07);
}
.ibe-sc-cal-item:last-child { border-bottom:none; }
.ibe-sc-cal-day {
  display:flex;align-items:center;justify-content:center;
  width:48px;height:48px;
  border:1px solid rgba(248,181,128,.2);flex-shrink:0;
}
.ibe-sc-cal-day-num {
  font-family:var(--ibe-ft,serif);font-size:22px;font-weight:400;color:var(--ibe-acc,#f8b580);line-height:1;
}
.ibe-sc-cal-img img {
  width:120px;height:75px;object-fit:cover;display:block;
  filter:brightness(.82) saturate(.8);transition:filter .3s;
}
.ibe-sc-cal-item:hover .ibe-sc-cal-img img { filter:brightness(1) saturate(1); }
.ibe-sc-cal-date  { font-family:var(--ibe-ft,serif);font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--ibe-acc,#f8b580);margin-bottom:5px; }
.ibe-sc-cal-titre { font-family:var(--ibe-ft,serif);font-size:16px;font-weight:400;margin:0 0 5px;line-height:1.25; }
.ibe-sc-cal-titre a { color:#f0ebe0;text-decoration:none;transition:color .2s; }
.ibe-sc-cal-titre a:hover { color:var(--ibe-acc,#f8b580); }
.ibe-sc-cal-lieu { font-size:13px;color:#7a7060;margin-bottom:3px; }
.ibe-sc-cal-ens  { font-style:italic;font-size:13px;color:var(--ibe-acc,#f8b580); }
.ibe-sc-cal-actions { display:flex;flex-direction:column;gap:7px;align-items:flex-end;flex-shrink:0; }

/* ══ RESPONSIVE ══ */
@media(max-width:1100px){
  .ibe-corps { grid-template-columns:1fr;padding:0 28px 56px; }
  .ibe-droite { position:static; }
  .ibe-hero-content { padding:40px 28px 40px; }
  .ibe-sc-grille--3 { grid-template-columns:repeat(2,1fr); }
  .ibe-sc-grille--4 { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:768px){
  .ibe-hero { min-height:55vh; }
  .ibe-sc-item { grid-template-columns:100px 1fr;grid-template-rows:auto auto; }
  .ibe-sc-thumb { width:100px;height:68px; }
  .ibe-sc-item-right { grid-column:1/-1;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:wrap;text-align:left;border-top:1px solid rgba(248,181,128,.07);padding-top:12px;margin-top:4px; }
  .ibe-sc-cal-item { grid-template-columns:42px 1fr;grid-template-rows:auto auto; }
  .ibe-sc-cal-img { display:none; }
  .ibe-sc-cal-actions { grid-column:1/-1;flex-direction:row;justify-content:flex-start; }
  .ibe-mini-grid { grid-template-columns:repeat(3,1fr); }
}
@media(max-width:580px){
  .ibe-hero-content { padding:28px 18px 32px; }
  .ibe-sc-grille--2,.ibe-sc-grille--3,.ibe-sc-grille--4 { grid-template-columns:1fr; }
  .ibe-sc-item { grid-template-columns:1fr; }
  .ibe-sc-thumb { width:100%;height:160px; }
  .ibe-nav { grid-template-columns:1fr; }
  .ibe-nav-item+.ibe-nav-item { border-left:none;border-top:1px solid var(--ibe-bord); }
  .ibe-mini-grid { grid-template-columns:1fr 1fr; }
}
