/* =============================================================
   KAËLIG BOCHÉ — Layout & Components CSS
   Header · Footer · Page templates · Grilles · Cards
   ============================================================= */

/* ─────────────────────────────────────────────────────────────
   CONTAINER & GRIDS
   ───────────────────────────────────────────────────────────── */
.kb-container {
  max-width: 80rem; /* 1280px */
  margin-inline: auto;
  padding-inline: clamp(1.5rem, 5vw, 4rem);
}

.kb-section {
  padding-top: clamp(4rem, 8vw, 8rem);
  padding-bottom: clamp(4rem, 8vw, 8rem);
}

.kb-grid { display: grid; gap: 2rem; }
.kb-grid--2  { grid-template-columns: repeat(2, 1fr); }
.kb-grid--3  { grid-template-columns: repeat(3, 1fr); }
.kb-grid--4  { grid-template-columns: repeat(4, 1fr); }
.kb-grid--12 { grid-template-columns: repeat(12, 1fr); }

.kb-col-4  { grid-column: span 4; }
.kb-col-5  { grid-column: span 5; }
.kb-col-6  { grid-column: span 6; }
.kb-col-7  { grid-column: span 7; }
.kb-col-8  { grid-column: span 8; }

.kb-section-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
  margin-bottom: 4rem;
  flex-wrap: wrap;
}

@media (max-width: 768px) {
  .kb-grid--2, .kb-grid--3, .kb-grid--4 { grid-template-columns: 1fr; }
  .kb-grid--12 { grid-template-columns: 1fr; }
  .kb-col-4, .kb-col-5, .kb-col-6, .kb-col-7, .kb-col-8 { grid-column: span 1; }
}

/* ─────────────────────────────────────────────────────────────
   HEADER
   ───────────────────────────────────────────────────────────── */
.kb-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  transition: background 0.4s ease, backdrop-filter 0.4s ease;
}

/* ── Header blanc sur fond sombre (page d'accueil, hero) ── */
.home .kb-header:not(.scrolled) .kb-logo__name,
.home .kb-header:not(.scrolled) .kb-logo__title,
.home .kb-header:not(.scrolled) .kb-nav__list a,
.home .kb-header:not(.scrolled) .kb-header__email,
.home .kb-header:not(.scrolled) .kb-header__email svg,
.home .kb-header:not(.scrolled) .kb-menu-toggle__bar {
  color: rgba(245, 239, 232, 0.92);
  stroke: rgba(245, 239, 232, 0.92);
  border-color: rgba(245, 239, 232, 0.5);
}
.home .kb-header:not(.scrolled) .kb-logo__title {
  color: rgba(201, 160, 48, 0.85);
}
.home .kb-header:not(.scrolled) .kb-nav__list a::after {
  background: rgba(201, 160, 48, 0.85);
}
.home .kb-header:not(.scrolled) .kb-nav__list a:hover,
.home .kb-header:not(.scrolled) .kb-nav__list .current-menu-item > a {
  color: rgba(201, 160, 48, 0.9);
}
.home .kb-header:not(.scrolled) .kb-menu-toggle__bar {
  background: rgba(245, 239, 232, 0.92);
}

.kb-header.scrolled {
  background: rgba(250,250,248,0.97);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(17,17,16,0.07);
  box-shadow: 0 2px 20px rgba(17,17,16,0.05);
}

.kb-header__inner {
  max-width: 80rem;
  margin-inline: auto;
  padding: 1.75rem clamp(1.5rem, 5vw, 4rem);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3.5rem;
}

/* Logo */
.kb-logo {
  text-decoration: none;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  flex-shrink: 0;
}

.kb-logo__name {
  font-family: var(--font-display);
  font-size: 1.95rem;
  font-weight: 400;
  color: var(--color-ink);
  letter-spacing: 0.03em;
  line-height: 1;
}

.kb-logo__title {
  font-family: var(--font-body);
  font-size: 0.58rem;
  font-weight: 400;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: rgba(154,122,26,0.75);
}

/* Nav principale */
.kb-nav__list {
  list-style: none;
  display: flex;
  align-items: center;
  gap: 2.5rem;
  margin: 0;
  padding: 0;
}

.kb-nav__list a {
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 400;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(17,17,16,0.72);
  text-decoration: none;
  position: relative;
  transition: color 0.3s ease;
}

.kb-nav__list a::after {
  content: '';
  position: absolute;
  bottom: -3px;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--color-or);
  transition: width 0.35s ease;
}

.kb-nav__list a:hover,
.kb-nav__list .current-menu-item > a { color: var(--color-ink); }
.kb-nav__list a:hover::after,
.kb-nav__list .current-menu-item > a::after { width: 100%; }

/* Contact + socials header */
.kb-header__contact {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 1rem;
}

.kb-header__social {
  display: flex;
  align-items: center;
  color: rgba(17,17,16,0.65);
  text-decoration: none;
  transition: color 0.3s ease;
}
.kb-header__social:hover { color: var(--color-or); }
.kb-header__social svg { display: block; }

/* Socials blanc sur fond sombre (accueil) */
.home .kb-header:not(.scrolled) .kb-header__social {
  color: rgba(245,239,232,0.6);
}
.home .kb-header:not(.scrolled) .kb-header__social:hover {
  color: rgba(201,160,48,0.9);
}

.kb-header__email {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--font-body);
  font-size: 0.6rem;
  font-weight: 400;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(154,122,26,0.6);
  text-decoration: none;
  transition: color 0.3s ease;
}

.kb-header__email:hover { color: var(--color-or); }

/* Toggle mobile */
.kb-menu-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.5rem;
}

.kb-menu-toggle__bar {
  display: block;
  width: 22px;
  height: 1px;
  background: var(--color-ink);
  transition: all 0.3s ease;
}

.kb-menu-toggle.is-active .kb-menu-toggle__bar:nth-child(1) {
  transform: translateY(6px) rotate(45deg);
}
.kb-menu-toggle.is-active .kb-menu-toggle__bar:nth-child(2) {
  opacity: 0;
}
.kb-menu-toggle.is-active .kb-menu-toggle__bar:nth-child(3) {
  transform: translateY(-6px) rotate(-45deg);
}

/* Menu mobile */
.kb-mobile-menu {
  position: fixed;
  inset: 0;
  background: rgba(250,250,248,0.99);
  z-index: 150; /* au-dessus du header (100) */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 2rem;
  transform: translateX(100%);
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.kb-mobile-menu.is-open {
  transform: translateX(0);
}

.kb-mobile-menu__list {
  list-style: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2.5rem;
  margin: 0;
  padding: 0;
}

.kb-mobile-menu__list a {
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 6vw, 3rem);
  font-weight: 400;
  color: rgba(17,17,16,0.84);
  text-decoration: none;
  transition: color 0.3s ease;
}

.kb-mobile-menu__list a:hover { color: var(--color-or); }

.kb-mobile-menu__footer {
  margin-top: 4rem;
  text-align: center;
}

.kb-mobile-menu__email {
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  color: rgba(154,122,26,0.6);
  text-decoration: none;
}

.kb-mobile-menu__divider {
  width: 40px;
  height: 1px;
  background: rgba(154,122,26,0.2);
  margin: 1rem auto;
}

.kb-mobile-menu__agent {
  font-family: var(--font-body);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  color: rgba(17,17,16,0.53);
}

@media (max-width: 900px) {
  .kb-nav, .kb-header__contact { display: none; }
  .kb-menu-toggle { display: flex; }
}

/* ─────────────────────────────────────────────────────────────
   HERO
   ───────────────────────────────────────────────────────────── */
.kb-hero {
  position: relative;
  height: 100vh;
  min-height: 700px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
}

.kb-hero__bg {
  position: absolute;
  inset: 0;
}

.kb-hero__bg-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
  z-index: 0;
}

.kb-hero__grain {
  position: absolute;
  inset: 0;
  z-index: 2;
  opacity: 0.2;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='1'/%3E%3C/svg%3E");
  background-size: 256px 256px;
}

.kb-hero__radial {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: radial-gradient(ellipse 70% 60% at 65% 40%, rgba(50, 45, 40, 0.4) 0%, transparent 70%);
}

.kb-hero__bg::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    to bottom right,
    rgba(10, 8, 12, 0.45),
    rgba(4, 3, 5, 0.55)
  );
}

/* NE PAS MODIFIER — overlay sombre hero */
.kb-hero__overlay {
  position: absolute;
  inset: 0;
}

.kb-hero__line-v {
  position: absolute;
  top: 0;
  right: clamp(2rem, 6vw, 6rem);
  bottom: 0;
  width: 1px;
  background: linear-gradient(to bottom, transparent, rgba(255, 255, 255, 0.05), transparent);
}

.kb-hero__numbering {
  position: absolute;
  top: 7rem;
  right: clamp(1.5rem, 4vw, 4rem);
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.5rem;
}

.kb-hero__num {
  font-family: var(--font-body);
  font-size: 0.55rem;
  font-weight: 400;
  letter-spacing: 0.38em;
  text-transform: uppercase;
  color: rgba(245,239,232,0.3);
}

.kb-hero__num--dim { color: rgba(245,239,232,0.2); }

.kb-hero__num-bar {
  width: 2rem;
  height: 1px;
  background: rgba(245,239,232,0.2);
}

.kb-hero__content {
  position: relative;
  z-index: 10;
  padding-bottom: clamp(4rem, 8vw, 8rem);
}

.kb-hero__label-wrap {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;
}

.kb-hero__name {
  margin-bottom: 2.5rem;
}

.kb-hero__name-line {
  overflow: hidden;
}

/* Mot entier — le moteur de rendu gère les glyphes accentués (Ë, É…)
   beaucoup mieux sur un bloc typographique complet que lettre par lettre */
.kb-hero__word {
  font-family: var(--font-display);
  font-size: clamp(3.5rem, 9vw, 8.5rem);
  font-weight: 400;
  line-height: 0.9;
  display: block;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* NE PAS MODIFIER — sous-titre hero sur fond sombre */
.kb-hero__sub {
  font-family: var(--font-display);
  font-size: clamp(1.1rem, 2vw, 1.4rem);
  font-weight: 400;
  font-style: italic;
  color: rgba(245, 236, 232, 0.6);
  line-height: 1.5;
  max-width: 28rem;
}

.kb-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 2.5rem;
}

.kb-hero__scroll {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}

/* ─────────────────────────────────────────────────────────────
   PAGE HEADER (pages intérieures)
   ───────────────────────────────────────────────────────────── */
.kb-page-header {
  position: relative;
  padding-top: calc(5rem + clamp(3rem, 6vw, 6rem));
  padding-bottom: clamp(3rem, 6vw, 6rem);
  overflow: hidden;
}

.kb-page-header__bg {
  position: absolute;
  inset: 0;
  /* Gradient posé AU-DESSUS de l'image via ::after pour garder le texte lisible */
}
.kb-page-header__bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom,
    rgba(237,233,226,0.78) 0%,
    rgba(237,233,226,0.62) 60%,
    rgba(237,233,226,0.50) 100%);
  pointer-events: none;
  z-index: 1;
}
.kb-page-header__bg-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  opacity: 0.38;
  mix-blend-mode: normal;
  z-index: 0;
}

.kb-page-header__line {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(154,122,26,0.15), transparent);
}

.kb-page-header .kb-container { position: relative; }

.kb-page-header__title {
  font-family: var(--font-display);
  font-size: clamp(3rem, 8vw, 7rem);
  font-weight: 500;
  color: #0a0a09;
  line-height: 0.95;
  margin-top: 1.5rem;
}

/* ─────────────────────────────────────────────────────────────
   HEADINGS
   ───────────────────────────────────────────────────────────── */
.kb-heading {
  font-family: var(--font-display);
  font-weight: 400;
  color: var(--color-ink);
  line-height: 1.05;
}

.kb-heading--xl {
  font-size: clamp(2.5rem, 6vw, 5rem);
}

.kb-heading--lg {
  font-size: clamp(2rem, 4vw, 3.5rem);
}

/* ─────────────────────────────────────────────────────────────
   BODY TEXT
   ───────────────────────────────────────────────────────────── */
.kb-body-text {
  font-family: var(--font-body);
  font-weight: 300;
  font-size: 1.05rem;
  line-height: 1.8;
  color: rgba(17,17,16,0.80);
}

.kb-body-text--dim {
  color: rgba(17,17,16,0.65);
}

/* ─────────────────────────────────────────────────────────────
   BIOGRAPHIE — contenu WordPress éditeur
   ───────────────────────────────────────────────────────────── */
.kb-bio-content h2,
.kb-bio-content h3 {
  font-family: var(--font-body);
  font-size: .62rem;
  font-weight: 400;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--color-or);
  margin-bottom: 1rem;
  margin-top: 0;
  border-top: 1px solid rgba(26,18,25,.08);
  padding-top: 2rem;
  margin-top: 2rem;
}
.kb-bio-content h2:first-child,
.kb-bio-content h3:first-child {
  border-top: none;
  padding-top: 0;
  margin-top: 0;
}
.kb-bio-content p {
  color: rgba(26,18,25,0.80);
  font-family: var(--font-body);
  font-weight: 300;
  line-height: 1.8;
  font-size: .95rem;
  margin-bottom: .75rem;
}
.kb-bio-content em { font-style: italic; }
.kb-bio-content strong { font-weight: 500; color: rgba(26,18,25,0.87); }

/* ─────────────────────────────────────────────────────────────
   PORTRAIT
   ───────────────────────────────────────────────────────────── */
.kb-portrait-wrap { position: relative; }

.kb-portrait-frame {
  position: absolute;
  top: -1rem;
  right: -1rem;
  left: 1rem;
  bottom: 1rem;
  border: 1px solid rgba(154,122,26,0.15);
  pointer-events: none;
  z-index: 0;
}

.kb-portrait {
  position: relative;
  z-index: 1;
  overflow: hidden;
  aspect-ratio: 3 / 4;
  max-height: 560px;
}

.kb-portrait__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.kb-portrait__placeholder {
  background: #ECEAE6;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  width: 100%;
  height: 100%;
}

.kb-portrait__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, transparent, rgba(17,17,16,0.3));
}

.kb-portrait__badge {
  position: absolute;
  bottom: -1.5rem;
  left: -1.5rem;
  background: var(--color-page);
  border: 1px solid rgba(154,122,26,0.2);
  padding: 1rem 1.25rem;
  z-index: 2;
}

/* ─────────────────────────────────────────────────────────────
   STATS
   ───────────────────────────────────────────────────────────── */
.kb-highlights {
  border-top: 1px solid rgba(17,17,16,0.07);
  border-bottom: 1px solid rgba(17,17,16,0.07);
}

.kb-stat { text-align: center; }

.kb-stat__num {
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 5vw, 4rem);
  font-weight: 400;
  color: var(--color-or);
  line-height: 1;
  margin-bottom: 0.5rem;
}

.kb-stat__label {
  color: rgba(17,17,16,0.60);
}

/* ─────────────────────────────────────────────────────────────
   ROLES TABLE
   ───────────────────────────────────────────────────────────── */
.kb-roles-table {
  border-top: 1px solid rgba(17,17,16,0.07);
}

.kb-role-row {
  display: grid;
  grid-template-columns: 2.5rem 4fr 2fr 2fr 1.5fr;
  gap: 1rem;
  padding: 1.5rem 0;
  border-bottom: 1px solid rgba(17,17,16,0.07);
  align-items: center;
  cursor: default;
  transition: background 0.3s ease;
}

.kb-role-row:hover { background: rgba(255,255,255,0.8); }
.kb-role-row:hover .kb-role-row__opera { color: var(--color-or); }

.kb-role-row__num {
  color: rgba(17,17,16,0.46);
  font-size: 0.55rem;
}

.kb-role-row__opera {
  font-family: var(--font-display);
  color: var(--color-ink);
  font-weight: 400;
  font-size: 1.3rem;
  transition: color 0.3s ease;
}

.kb-role-row__comp {
  font-family: var(--font-body);
  color: rgba(17,17,16,0.60);
  font-size: 0.85rem;
  font-style: italic;
}

.kb-role-row__role {
  color: rgba(17,17,16,0.75);
  letter-spacing: 0.12em;
  font-size: 0.62rem;
}

.kb-role-row__year {
  font-family: var(--font-body);
  color: rgba(17,17,16,0.46);
  font-size: 0.85rem;
  text-align: right;
}

@media (max-width: 768px) {
  .kb-role-row { grid-template-columns: 2rem 1fr; grid-template-rows: auto auto auto; gap: .5rem; }
  .kb-role-row__comp, .kb-role-row__year { grid-column: 2; }
  .kb-role-row__role { grid-column: 2; }
}

/* ─────────────────────────────────────────────────────────────
   QUOTE SECTION
   ───────────────────────────────────────────────────────────── */
.kb-quote-section {
  position: relative;
  background: var(--color-page-alt);
}

.kb-quote-section__top-line,
.kb-quote-section__bottom-line {
  position: absolute;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(154,122,26,0.2), transparent);
}

.kb-quote-section__top-line  { top: 0; }
.kb-quote-section__bottom-line { bottom: 0; }

.kb-quote { max-width: 48rem; margin-inline: auto; text-align: center; }

.kb-quote__mark {
  font-family: var(--font-display);
  font-size: clamp(5rem, 12vw, 10rem);
  font-weight: 400;
  color: rgba(154,122,26,0.12);
  line-height: 0.8;
  user-select: none;
  margin-bottom: 0.5rem;
}

.kb-quote__text {
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 2.8vw, 2rem);
  font-weight: 400;
  font-style: italic;
  color: rgba(17,17,16,0.85);
  line-height: 1.5;
  margin: 0 0 1.5rem;
}

.kb-quote__source { display: block; }

.kb-quote__context {
  font-family: var(--font-body);
  color: rgba(17,17,16,0.53);
  font-size: 0.78rem;
  font-weight: 300;
  font-style: italic;
  margin-top: 0.4rem;
}

/* ─────────────────────────────────────────────────────────────
   EVENT CARDS
   ───────────────────────────────────────────────────────────── */
.kb-event-card {
  border: 1px solid rgba(17,17,16,0.08);
  padding: 2rem;
  background: rgba(255,255,255,0.8);
  cursor: default;
  /* Quand la carte est un <a>, neutraliser tous les styles de lien */
  text-decoration: none;
  color: inherit;
}
a.kb-event-card { cursor: pointer; }
a.kb-event-card *,
a.kb-event-card *:hover { text-decoration: none; }

.kb-event-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 1.5rem;
}

.kb-event-card__lieu {
  font-family: var(--font-body);
  color: rgba(17,17,16,0.60);
  font-size: 0.75rem;
  font-weight: 300;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 0.75rem;
}

.kb-event-card__spectacle {
  font-family: var(--font-display);
  color: var(--color-ink);
  font-weight: 400;
  font-size: 1.4rem;
  margin-bottom: 0.75rem;
  transition: color 0.3s ease;
}

.kb-event-card:hover .kb-event-card__spectacle { color: var(--color-or); }

.kb-event-card__role {
  color: rgba(17,17,16,0.72);
  letter-spacing: 0.15em;
  font-size: 0.6rem;
}

/* Carte Presse — invitation homepage */
.kb-event-card--presse {
  grid-column: 1 / -1;
  background: var(--color-noir, #1a1219);
  border-color: rgba(201,160,48,0.25);
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: stretch;
  transition: border-color 0.3s ease, transform 0.3s ease;
}
.kb-event-card--presse:hover {
  border-color: rgba(201,160,48,0.6);
  transform: translateY(-2px);
}
.kb-event-card--presse:hover .kb-event-card__spectacle { color: inherit; }

.kb-event-card__presse-inner {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  position: relative;
  z-index: 1;
  gap: 2rem;
}

.kb-event-card__presse-quote {
  font-family: var(--font-display);
  font-size: 8rem;
  line-height: 1;
  color: rgba(201,160,48,0.10);
  position: absolute;
  top: -1.5rem;
  right: 2rem;
  pointer-events: none;
  user-select: none;
}

.kb-event-card__presse-label {
  color: rgba(201,160,48,0.7);
  letter-spacing: 0.2em;
  font-size: 0.58rem;
  margin-bottom: 0.6rem;
  display: block;
}

.kb-event-card__presse-title {
  font-family: var(--font-display);
  color: #F5EFE8;
  font-size: clamp(1.5rem, 2.5vw, 2.2rem);
  font-weight: 400;
  line-height: 1.15;
}

.kb-event-card__presse-arrow {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  color: rgba(201,160,48,0.7);
  flex-shrink: 0;
  font-family: var(--font-body);
  font-size: 0.72rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  transition: color 0.3s ease, gap 0.3s ease;
}
.kb-event-card--presse:hover .kb-event-card__presse-arrow {
  color: var(--color-or-hero, #C9A030);
  gap: 1rem;
}

/* ─────────────────────────────────────────────────────────────
   AGENDA ROWS
   ───────────────────────────────────────────────────────────── */
.kb-agenda-row {
  margin-bottom: 0.75rem;
}

.kb-agenda-row__inner {
  position: relative;
  display: grid;
  grid-template-columns: 2fr 4fr 2fr 2fr 1.5fr;
  gap: 1rem;
  padding: 1.5rem 2rem;
  border: 1px solid rgba(17,17,16,0.07);
  background: rgba(255,255,255,0.8);
  align-items: flex-start;
  transition: border-color 0.4s ease, background 0.4s ease;
  text-decoration: none;
  color: inherit;
}

.kb-agenda-row__inner::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 2px;
  background: transparent;
  transition: background 0.4s ease;
}

.kb-agenda-row__inner:hover {
  border-color: rgba(154,122,26,0.2);
  background: #FFFFFF;
}

.kb-agenda-row__inner:hover::before { background: rgba(154,122,26,0.4); }

@media (max-width: 900px) {
  .kb-agenda-row__inner {
    grid-template-columns: 1fr;
    gap: .5rem;
  }
}

/* ─────────────────────────────────────────────────────────────
   VIDEO CARD
   ───────────────────────────────────────────────────────────── */
.kb-video-card { cursor: default; }

.kb-video-card__btn {
  width: 100%;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  display: block;
}

.kb-video-card__thumb {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background-size: cover;
  background-position: center;
}

.kb-video-card__overlay {
  position: absolute;
  inset: 0;
  background: rgba(17,17,16,0.2);
  transition: background 0.4s ease;
}

.kb-video-card__btn:hover .kb-video-card__overlay {
  background: rgba(17,17,16,0.08);
}

.kb-video-card__play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-or);
  opacity: 0;
  transform: scale(0.8);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.kb-video-card__play svg { filter: drop-shadow(0 0 20px rgba(154,122,26,0.5)); }

.kb-video-card__btn:hover .kb-video-card__play {
  opacity: 1;
  transform: scale(1);
}

/* ─────────────────────────────────────────────────────────────
   CTA
   ───────────────────────────────────────────────────────────── */
.kb-cta { text-align: center; }
.kb-cta__inner { max-width: 42rem; margin-inline: auto; }

.kb-cta .kb-heading--xl { margin-top: 1rem; margin-bottom: 1.5rem; }

.kb-cta__text {
  font-family: var(--font-body);
  font-weight: 300;
  color: rgba(17,17,16,0.72);
  font-size: 0.95rem;
  line-height: 1.8;
  max-width: 34rem;
  margin-inline: auto;
  margin-bottom: 2.5rem;
}

.kb-cta__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
}

/* ─────────────────────────────────────────────────────────────
   FOOTER
   ───────────────────────────────────────────────────────────── */
.kb-footer {
  border-top: 1px solid rgba(17,17,16,0.07);
  margin-top: auto;
  background: var(--color-page);
}

.kb-footer__top {
  padding-top: 3rem;
  padding-bottom: 2.5rem;
}

.kb-footer__inner {
  max-width: 80rem;
  margin-inline: auto;
  padding-inline: clamp(1.5rem, 5vw, 4rem);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: start;
}

.kb-footer__brand {}

.kb-footer__logo {
  display: inline-flex;
  flex-direction: column;
  gap: 0.15rem;
  text-decoration: none;
  margin-bottom: 1rem;
}

.kb-footer__logo-name {
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 400;
  color: var(--color-ink);
  letter-spacing: 0.04em;
}

.kb-footer__logo-title {
  font-family: var(--font-body);
  font-size: 0.52rem;
  font-weight: 400;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: rgba(154,122,26,0.6);
}

.kb-footer__tagline {
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 300;
  color: rgba(17,17,16,0.57);
  line-height: 1.65;
  margin-bottom: 1.25rem;
}

.kb-footer__socials { display: flex; gap: 0.75rem; }

.kb-footer__social-link {
  color: rgba(17,17,16,0.53);
  text-decoration: none;
  transition: color 0.3s ease;
}

.kb-footer__social-link:hover { color: var(--color-or); }

.kb-footer__nav-title {
  font-family: var(--font-body);
  font-size: 0.55rem;
  font-weight: 500;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: rgba(154,122,26,0.5);
  margin-bottom: 1rem;
}

.kb-footer__nav-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.kb-footer__nav-list a {
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 300;
  color: rgba(17,17,16,0.68);
  text-decoration: none;
  transition: color 0.3s ease;
}

.kb-footer__nav-list a:hover { color: var(--color-ink); }

.kb-footer__contact-agency {
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 400;
  color: var(--color-ink);
  margin-bottom: 0.5rem;
}

.kb-footer__contact-email {
  display: block;
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 300;
  color: rgba(154,122,26,0.7);
  text-decoration: none;
  transition: color 0.3s ease;
  margin-bottom: 0.75rem;
}

.kb-footer__contact-email:hover { color: var(--color-or); }

.kb-footer__contact-note {
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 300;
  color: rgba(17,17,16,0.53);
  line-height: 1.55;
}

.kb-footer__bottom {
  border-top: 1px solid rgba(17,17,16,0.07);
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}

.kb-footer__bottom .kb-footer__inner {
  grid-template-columns: 1fr auto;
  gap: 2rem;
  align-items: center;
}

.kb-footer__copy {
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: 300;
  color: rgba(17,17,16,0.50);
}

.kb-footer__legal-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  gap: 1.5rem;
}

.kb-footer__legal-list a {
  font-family: var(--font-body);
  font-size: 0.67rem;
  font-weight: 300;
  color: rgba(17,17,16,0.46);
  text-decoration: none;
  transition: color 0.3s ease;
}

.kb-footer__legal-list a:hover { color: rgba(17,17,16,0.80); }

@media (max-width: 900px) {
  .kb-footer__inner { grid-template-columns: 1fr; gap: 2rem; }
  .kb-footer__bottom .kb-footer__inner { grid-template-columns: 1fr; }
}

/* ─────────────────────────────────────────────────────────────
   MAIN padding (pour nav fixe)
   ───────────────────────────────────────────────────────────── */
/* Le front-page n'a pas de padding (hero plein écran) */
body.home #main { padding-top: 0; }

/* ─────────────────────────────────────────────────────────────
   OVERRIDES KADENCE — neutraliser les classes body injectées
   ───────────────────────────────────────────────────────────── */

/* content-style-boxed ajoute padding/max-width au .site-content */
.content-style-boxed .site-content,
.content-style-boxed .content-area,
.content-style-boxed #primary,
.content-width-normal .site-content {
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* content-vertical-padding-show ajoute padding haut/bas */
.content-vertical-padding-show .site-content,
.content-vertical-padding-show #primary,
.content-vertical-padding-show .content-area {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Fond Kadence — transparent partout */
.site, .site-main, #primary, .content-area,
.wp-site-blocks, .is-layout-constrained {
  background: transparent !important;
}

/* entry-title Kadence — déjà caché mais sécurité supplémentaire */
.entry-header, .entry-header .entry-title,
.page-header, .page-hero { display: none !important; }

/* Supprimer le padding du #main que Kadence peut ajouter */
#main {
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
}

/* Éléments Kadence inutilisés */
.kadence-breadcrumbs,
.comments-area,
.wp-block-kadence-spacer { display: none !important; }

/* Assurer la cohérence typographique sur tous les textes */
p, li, span, div, a, td, th {
  font-family: var(--font-body);
}

/* Cormorant Garamond sur tous les titres même si Kadence injecte */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display) !important;
  color: var(--color-ink) !important;
}
/* Les pages intérieures : le kb-page-header compense */


/* =============================================================
   PAGE INTRO — WordPress editor content
   ============================================================= */

.kb-page-intro {
  max-width: 44rem;
  font-family: var(--font-body);
  font-size: clamp(.9rem, 1.5vw, 1.05rem);
  font-weight: 300;
  line-height: 1.9;
  color: rgba(17,17,16,0.75);
}

.kb-page-intro p { margin-bottom: 1.2em; }
.kb-page-intro p:last-child { margin-bottom: 0; }
.kb-page-intro strong { color: rgba(17,17,16,0.90); font-weight: 400; }
.kb-page-intro em { color: var(--color-or); font-style: italic; }
.kb-page-intro-section { padding-top: 0 !important; padding-bottom: clamp(2rem, 4vw, 3rem) !important; }

/* =============================================================
   AGENDA v2 — Saison strips typographiques
   ============================================================= */

.kb-saison { position: relative; }

.kb-saison-item {
  position: relative;
  display: grid;
  grid-template-columns: 4rem 1fr auto;
  gap: 0 3rem;
  padding: 3.5rem 0;
  border-bottom: 1px solid rgba(17,17,16,0.07);
  overflow: hidden;
  align-items: center;
  transition: background .4s;
  cursor: default;
}

.kb-saison-item[href] { cursor: pointer; text-decoration: none; color: inherit; display: grid; }
.kb-saison-item[href] *,
.kb-saison-item[href] *:hover { text-decoration: none; }
.kb-saison-item:hover { background: rgba(154,122,26,0.025); }

.kb-saison-item__ghost {
  position: absolute;
  right: -1rem;
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--font-display);
  font-size: clamp(4rem, 10vw, 9rem);
  font-weight: 300;
  line-height: 1;
  color: rgba(154,122,26,0.07);
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
  letter-spacing: .04em;
  transition: color .4s;
}

.kb-saison-item:hover .kb-saison-item__ghost {
  color: rgba(154,122,26,0.14);
}

.kb-saison-item__num {
  font-family: var(--font-body);
  font-size: .48rem;
  font-weight: 400;
  letter-spacing: .45em;
  color: rgba(154,122,26,0.35);
  text-align: right;
  align-self: start;
  padding-top: .4rem;
}

.kb-saison-item__body { position: relative; z-index: 1; }

.kb-saison-item__title {
  font-family: var(--font-display) !important;
  font-size: clamp(1.75rem, 3.5vw, 2.9rem) !important;
  font-weight: 300 !important;
  color: var(--color-ink) !important;
  line-height: 1 !important;
  margin-bottom: .45rem;
  transition: color .35s;
}

.kb-saison-item:hover .kb-saison-item__title { color: var(--color-or) !important; }

.kb-saison-item__comp {
  font-family: var(--font-body);
  font-size: .72rem;
  font-style: italic;
  color: rgba(17,17,16,0.53);
  margin-bottom: 1rem;
}

.kb-saison-item__badges {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  align-items: center;
}

.kb-saison-item__role {
  font-family: var(--font-body);
  font-size: .48rem;
  font-weight: 500;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(17,17,16,0.75);
  border: 1px solid rgba(17,17,16,0.15);
  padding: .2rem .55rem;
}

.kb-saison-item__type {
  font-family: var(--font-body);
  font-size: .48rem;
  font-weight: 400;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(154,122,26,0.65);
  border: 1px solid rgba(154,122,26,0.22);
  padding: .2rem .55rem;
}

.kb-saison-item__when {
  position: relative;
  z-index: 1;
  text-align: right;
  flex-shrink: 0;
  min-width: 12rem;
}

.kb-saison-item__dates {
  font-family: var(--font-display);
  font-size: clamp(1.1rem, 2vw, 1.6rem);
  font-weight: 400;
  color: rgba(154,122,26,0.9);
  line-height: 1.2;
  display: block;
  margin-bottom: .5rem;
}

.kb-saison-item__lieu {
  font-family: var(--font-body);
  font-size: .95rem;
  color: rgba(17,17,16,0.72);
  font-weight: 400;
  line-height: 1.5;
}

.kb-saison-item__note {
  font-family: var(--font-body);
  font-size: .62rem;
  font-style: italic;
  color: rgba(154,122,26,0.62);
  margin-top: .3rem;
}

.kb-saison-item__arrow {
  position: absolute;
  right: 0; top: 50%;
  transform: translateY(-50%);
  color: rgba(154,122,26,0.22);
  transition: color .3s, transform .3s;
}

.kb-saison-item:hover .kb-saison-item__arrow {
  color: rgba(154,122,26,0.65);
  transform: translateY(-50%) translate(4px, -4px);
}

/* Productions passées — liste compacte */
.kb-past-list { border-top: 1px solid rgba(17,17,16,0.07); }

.kb-past-row {
  display: grid;
  grid-template-columns: 7rem 3fr 2fr 2fr 3fr;
  gap: 1.5rem;
  padding: 1.1rem 0;
  border-bottom: 1px solid rgba(17,17,16,0.05);
  align-items: baseline;
  transition: background .25s;
}

.kb-past-row:hover { background: rgba(255,255,255,0.7); }

.kb-past-row__date {
  font-family: var(--font-body);
  font-size: .58rem;
  letter-spacing: .08em;
  color: rgba(154,122,26,0.6);
}

.kb-past-row__title {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 400;
  color: rgba(17,17,16,0.85);
}

.kb-past-row__comp {
  font-family: var(--font-body);
  font-size: .75rem;
  font-style: italic;
  color: rgba(17,17,16,0.52);
}

.kb-past-row__role {
  font-family: var(--font-body);
  font-size: .55rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(17,17,16,0.52);
}

.kb-past-row__lieu {
  font-family: var(--font-body);
  font-size: .75rem;
  color: rgba(17,17,16,0.50);
}

/* CTA band */
.kb-cta-band {
  background: var(--color-page-alt);
  border-top: 1px solid rgba(17,17,16,0.07) !important;
}

.kb-cta-band__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3rem;
  flex-wrap: wrap;
}

.kb-cta-band__text {
  font-family: var(--font-body);
  font-size: .9rem;
  font-weight: 300;
  color: rgba(17,17,16,0.73);
  line-height: 1.7;
  margin-top: .75rem;
  max-width: 38rem;
}

.kb-cta-band__text strong { color: rgba(17,17,16,0.87); font-weight: 500; }

.kb-cta-band__btns {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  flex-shrink: 0;
}

@media (max-width: 900px) {
  .kb-saison-item {
    grid-template-columns: 3rem 1fr;
    gap: 0 1.5rem;
  }
  .kb-saison-item__when {
    grid-column: 2;
    text-align: left;
    margin-top: 1rem;
    min-width: unset;
  }
  .kb-saison-item__ghost { font-size: 3.5rem; right: -1rem; }
  .kb-past-row { grid-template-columns: 1fr; gap: .3rem; padding: 1rem 0; }
  .kb-past-row__date { color: rgba(154,122,26,0.5); }
  .kb-cta-band__inner { flex-direction: column; align-items: flex-start; }
}

/* =============================================================
   PRESSE v2 — Éditorial magazine
   ============================================================= */

.kb-presse-hero {
  position: relative;
  padding: 5rem 0 4.5rem;
  border-bottom: 1px solid rgba(17,17,16,0.07);
  margin-bottom: 0;
  overflow: hidden;
}

.kb-presse-hero__pub {
  position: absolute;
  left: -1rem;
  bottom: -1.5rem;
  font-family: var(--font-display);
  font-size: clamp(3.5rem, 10vw, 9rem);
  font-weight: 300;
  line-height: 1;
  color: rgba(154,122,26,0.07);
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
  letter-spacing: .05em;
}

.kb-presse-hero__content {
  position: relative;
  z-index: 1;
  max-width: 56rem;
  padding-left: 3.5rem;
}

.kb-presse-hero__mark {
  position: absolute;
  left: 0; top: -.5rem;
  font-family: var(--font-display);
  font-size: 4rem;
  line-height: 1;
  color: var(--color-or);
  font-style: italic;
  opacity: .45;
}

.kb-presse-hero__quote {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 300;
  font-size: clamp(1.5rem, 3vw, 2.5rem);
  line-height: 1.45;
  color: rgba(17,17,16,0.91);
  margin: 0 0 2rem;
}

.kb-presse-hero__footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .6rem;
}

.kb-presse-hero__source {
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 400;
  color: var(--color-ink);
}

.kb-presse-hero__sep { color: rgba(154,122,26,0.35); }

.kb-presse-hero__auteur {
  font-family: var(--font-body);
  font-size: .78rem;
  color: rgba(17,17,16,0.62);
}

.kb-presse-hero__contexte {
  font-family: var(--font-body);
  font-size: .75rem;
  font-style: italic;
  color: rgba(17,17,16,0.53);
}

.kb-presse-hero__link {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-family: var(--font-body);
  font-size: .55rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(154,122,26,0.55);
  text-decoration: none;
  transition: color .3s;
}

.kb-presse-hero__link:hover { color: var(--color-or); }

/* Citations alternées */
.kb-presse-stack { display: flex; flex-direction: column; }

.kb-presse-quote {
  position: relative;
  padding: 3.5rem 0;
  border-bottom: 1px solid rgba(17,17,16,0.06);
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr 36%;
  gap: 5rem;
  align-items: center;
}

.kb-presse-quote:nth-child(even) { grid-template-columns: 36% 1fr; }
.kb-presse-quote:nth-child(even) .kb-presse-quote__content { order: 2; }
.kb-presse-quote:nth-child(even) .kb-presse-quote__pub-col { order: 1; }

.kb-presse-quote__content {
  position: relative;
  z-index: 1;
  padding-left: 2.5rem;
}

.kb-presse-quote__mark {
  position: absolute;
  left: 0; top: -.3rem;
  font-family: var(--font-display);
  font-size: 2.5rem;
  line-height: 1;
  color: rgba(154,122,26,0.2);
  font-style: italic;
}

.kb-presse-quote__text {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 300;
  font-size: clamp(1.05rem, 2vw, 1.45rem);
  line-height: 1.55;
  color: rgba(17,17,16,0.84);
  margin: 0 0 1.25rem;
}

.kb-presse-quote__source {
  font-family: var(--font-display);
  font-size: .95rem;
  font-weight: 400;
  color: rgba(17,17,16,0.85);
}

.kb-presse-quote__auteur {
  font-family: var(--font-body);
  font-size: .72rem;
  color: rgba(17,17,16,0.57);
  margin-top: .2rem;
}

.kb-presse-quote__contexte {
  font-family: var(--font-body);
  font-size: .68rem;
  font-style: italic;
  color: rgba(17,17,16,0.50);
  margin-top: .2rem;
}

.kb-presse-quote__link {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  margin-top: .75rem;
  font-family: var(--font-body);
  font-size: .52rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(154,122,26,0.5);
  text-decoration: none;
  transition: color .3s;
}

.kb-presse-quote__link:hover { color: var(--color-or); }

.kb-presse-quote__pub-col {
  display: flex;
  align-items: center;
  justify-content: center;
}

.kb-presse-quote__pub-ghost {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 4rem);
  font-weight: 300;
  line-height: 1.1;
  color: rgba(154,122,26,0.10);
  letter-spacing: .04em;
  text-align: center;
  transition: color .4s;
}

.kb-presse-quote:hover .kb-presse-quote__pub-ghost {
  color: rgba(154,122,26,0.18);
}

@media (max-width: 900px) {
  .kb-presse-hero { padding: 3rem 0 3rem; }
  .kb-presse-hero__pub { font-size: 3rem; bottom: 0; }
  .kb-presse-hero__content { padding-left: 2.5rem; }
  .kb-presse-quote,
  .kb-presse-quote:nth-child(even) { grid-template-columns: 1fr; gap: 1.5rem; }
  .kb-presse-quote:nth-child(even) .kb-presse-quote__content { order: 1; }
  .kb-presse-quote:nth-child(even) .kb-presse-quote__pub-col { order: 2; }
  .kb-presse-quote__pub-ghost { font-size: 2rem; }
}

/* =============================================================
   RÉPERTOIRE v2 — Programme de salle
   ============================================================= */

.kb-programme { position: relative; }

.kb-programme-era {
  position: relative;
  margin-bottom: 3.5rem;
}

.kb-programme-era__heading {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  margin-bottom: 0;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(154,122,26,0.1);
}

.kb-programme-era__label {
  font-family: var(--font-body) !important;
  font-size: .5rem !important;
  font-weight: 500 !important;
  letter-spacing: .55em !important;
  text-transform: uppercase !important;
  color: rgba(154,122,26,0.65) !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
  white-space: nowrap;
}

.kb-programme-era__line {
  flex: 1;
  height: 1px;
  background: rgba(154,122,26,0.08);
}

.kb-programme-row {
  display: grid;
  grid-template-columns: 3rem 5fr 2fr 4fr;
  gap: 0 2.5rem;
  padding: 1.5rem 0;
  border-bottom: 1px solid rgba(17,17,16,0.05);
  align-items: baseline;
  transition: background .2s;
}

.kb-programme-row:hover { background: rgba(255,255,255,0.6); }

.kb-programme-row__num {
  font-family: var(--font-body);
  font-size: .46rem;
  color: rgba(17,17,16,0.42);
  letter-spacing: .15em;
  padding-top: .4rem;
}

.kb-programme-row__title {
  font-family: var(--font-display) !important;
  font-size: clamp(1.3rem, 2.5vw, 2rem) !important;
  font-weight: 300 !important;
  color: var(--color-ink) !important;
  line-height: 1 !important;
  transition: color .3s;
}

.kb-programme-row:hover .kb-programme-row__title { color: var(--color-or) !important; }

.kb-programme-row__star {
  display: inline-block;
  margin-left: .35rem;
  font-size: .55rem;
  color: rgba(154,122,26,0.5);
  vertical-align: middle;
  line-height: 1;
  letter-spacing: 0;
}

.kb-programme-row__comp {
  font-family: var(--font-body);
  font-size: .7rem;
  font-style: italic;
  color: rgba(17,17,16,0.53);
  margin-top: .3rem;
}

.kb-programme-row__role {
  font-family: var(--font-body);
  font-size: .5rem;
  font-weight: 500;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(17,17,16,0.68);
  padding-top: .4rem;
}

.kb-programme-row__lieu {
  font-family: var(--font-body);
  font-size: .75rem;
  color: rgba(17,17,16,0.52);
  font-weight: 300;
  line-height: 1.55;
  padding-top: .2rem;
}

/* Récital & Concert v2 */
.kb-recital-v2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
}

.kb-recital-v2__block {
  padding: 3.5rem 4rem 3.5rem 0;
  border-right: 1px solid rgba(17,17,16,0.07);
}

.kb-recital-v2__block:last-child {
  padding: 3.5rem 0 3.5rem 4rem;
  border-right: none;
}

.kb-recital-v2__label {
  font-family: var(--font-body);
  font-size: .48rem;
  font-weight: 500;
  letter-spacing: .52em;
  text-transform: uppercase;
  color: rgba(154,122,26,0.5);
  display: block;
  margin-bottom: 1.25rem;
}

.kb-recital-v2__title {
  font-family: var(--font-display) !important;
  font-size: clamp(1.6rem, 3vw, 2.6rem) !important;
  font-weight: 300 !important;
  color: var(--color-ink) !important;
  line-height: 1.1 !important;
  margin-bottom: 1.25rem;
}

.kb-recital-v2__title em { color: var(--color-or); font-style: italic; }

.kb-recital-v2__text {
  font-family: var(--font-body);
  font-size: .88rem;
  line-height: 1.88;
  color: rgba(17,17,16,0.75);
  margin-bottom: 1.5rem;
}

.kb-recital-v2__tags {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}

.kb-tag {
  font-family: var(--font-body);
  font-size: .5rem;
  font-weight: 400;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(17,17,16,0.58);
  border: 1px solid rgba(17,17,16,0.13);
  padding: .2rem .6rem;
  transition: border-color .3s, color .3s;
}

.kb-tag:hover {
  border-color: rgba(154,122,26,0.35);
  color: rgba(154,122,26,0.7);
}

/* ── Contact ──────────────────────────────────────────────────────────── */
.kb-contact-layout {
  display: grid;
  grid-template-columns: 1fr 36%;
  gap: 6rem;
  align-items: flex-start;
}

.kb-contact__agency {
  font-family: var(--font-display);
  color: var(--color-ink);
  font-weight: 400;
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  line-height: 1;
  margin-bottom: 2rem;
}

.kb-contact__fields {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.kb-contact__link {
  font-family: var(--font-body);
  color: var(--color-ink);
  font-size: 1.05rem;
  font-weight: 300;
  text-decoration: none;
  transition: color .25s;
}
.kb-contact__link:hover { color: var(--color-or); }

.kb-contact__aside {
  border: 1px solid rgba(17,17,16,0.07);
  background: rgba(255,255,255,0.6);
  padding: 2.5rem;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.kb-contact__aside-block {
  padding: 1.5rem 0;
  border-bottom: 1px solid rgba(17,17,16,0.06);
}
.kb-contact__aside-block:first-child { padding-top: 0; }
.kb-contact__aside-block:last-child { border-bottom: none; padding-bottom: 0; }

@media (max-width: 900px) {
  .kb-contact-layout { grid-template-columns: 1fr; gap: 3rem; }
}

@media (max-width: 900px) {
  .kb-programme-row {
    grid-template-columns: 2rem 1fr;
    grid-template-rows: auto auto auto;
    gap: .2rem .75rem;
    padding: 1.25rem 0;
  }
  .kb-programme-row__num { grid-row: span 3; align-self: start; padding-top: .45rem; }
  .kb-programme-row__role { grid-column: 2; }
  .kb-programme-row__lieu { grid-column: 2; }
  .kb-recital-v2 { grid-template-columns: 1fr; }
  .kb-recital-v2__block,
  .kb-recital-v2__block:last-child {
    padding: 2.5rem 0;
    border-right: none;
    border-bottom: 1px solid rgba(17,17,16,0.07);
  }
  .kb-recital-v2__block:last-child { border-bottom: none; }
}

/* =============================================================
   RESPONSIVE — corrections supplémentaires
   ============================================================= */

/* Biographie — grille portrait + texte */
.kb-bio-grid {
  gap: clamp(2.5rem, 5vw, 6rem);
}

.kb-bio-portrait-col {
  position: sticky;
  top: 7rem;
  align-self: flex-start;
}

@media (max-width: 768px) {
  /* Portrait non-sticky sur mobile (colonnes empilées) */
  .kb-bio-portrait-col {
    position: static;
  }

  /* Hero : réduire le padding bas */
  .kb-hero__content {
    padding-bottom: clamp(2.5rem, 6vw, 4rem);
  }

  /* Numérotation hero : masquer sur très petit écran */
  .kb-hero__numbering {
    display: none;
  }

  /* Page header title : éviter débordement */
  .kb-page-header__title {
    font-size: clamp(2.2rem, 10vw, 4.5rem);
    word-break: break-word;
  }

  /* CTA band boutons : pleine largeur */
  .kb-cta-band__btns {
    width: 100%;
  }
  .kb-cta-band__btns .btn-or,
  .kb-cta-band__btns .btn-creme {
    width: 100%;
    justify-content: center;
  }

  /* Footer bottom : réduire gap */
  .kb-footer__legal-list {
    flex-wrap: wrap;
    gap: 0.75rem;
  }

  /* Sections heading responsive */
  .kb-section-header {
    margin-bottom: 2rem;
  }
}

/* Fermeture menu mobile : bouton visible dans le menu */
.kb-mobile-menu .kb-menu-toggle-close {
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
}

/* =============================================================
   CORRECTIONS AFFICHAGE — Admin bar · Portrait · Mobile
   ============================================================= */

/* ── 1. Barre d'administration WordPress ──────────────────────
   La WP admin bar est fixed top:0 z-index:99999.
   Notre header fixed top:0 z-index:100 se retrouve SOUS la barre.
   On décale le header ET le menu mobile pour qu'ils s'affichent
   correctement sous la barre d'admin.
   ─────────────────────────────────────────────────────────── */
body.admin-bar .kb-header {
  top: 32px;
}
body.admin-bar .kb-mobile-menu {
  top: 32px;
}
/* Sur tablette WP passe à 46px */
@media screen and (max-width: 782px) {
  body.admin-bar .kb-header {
    top: 46px;
  }
  body.admin-bar .kb-mobile-menu {
    top: 46px;
  }
}
/* Sous 600px WP cache la admin bar en scrollant — on remet à 0 */
@media screen and (max-width: 600px) {
  body.admin-bar .kb-header {
    top: 0;
  }
  body.admin-bar .kb-mobile-menu {
    top: 0;
  }
}

/* ── 2. Portrait — éléments décoratifs sur mobile ─────────────
   Sur mobile (1 colonne) le badge absolu bottom:-1.5rem
   sort du wrapper et entre dans la section suivante.
   Le cadre top:-1rem / right:-1rem peut créer un micro-débordement.
   On les masque et on ajoute une marge compensatoire.
   ─────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
  .kb-portrait__badge {
    display: none;
  }
  .kb-portrait-frame {
    display: none;
  }
  /* Espace respiration sous le portrait avant la prochaine section */
  .kb-portrait-wrap {
    margin-bottom: 2.5rem;
  }
}

/* ── 3. CTA actions — empiler les boutons sur petit écran ──── */
@media (max-width: 480px) {
  .kb-cta__actions {
    flex-direction: column;
    align-items: stretch;
  }
  .kb-cta__actions .btn-or,
  .kb-cta__actions .btn-creme {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
  /* Idem pour les boutons hero */
  .kb-hero__actions {
    flex-direction: column;
    align-items: stretch;
  }
  .kb-hero__actions .btn-or,
  .kb-hero__actions .btn-creme {
    width: 100%;
    justify-content: center;
  }
}

/* ── 4. Grille intro accueil — portrait avant texte sur mobile */
@media (max-width: 768px) {
  .kb-intro .kb-col-5 {
    order: -1; /* portrait en premier sur mobile */
  }
}

/* ── 5. Page biographie — espace sous le portrait sur mobile ─ */
@media (max-width: 768px) {
  .kb-bio-portrait-col .kb-portrait-wrap {
    margin-bottom: 1rem;
  }
}

/* ── 6. Répertoire — largeur des colonnes sur mobile ──────── */
@media (max-width: 768px) {
  .kb-programme-row__role,
  .kb-programme-row__lieu {
    font-size: .6rem;
  }
}

/* ── 7. Agenda — item quand sur mobile ───────────────────── */
@media (max-width: 600px) {
  .kb-saison-item {
    padding: 2.5rem 0;
  }
  .kb-saison-item__title {
    font-size: clamp(1.4rem, 6vw, 2rem) !important;
  }
}

/* ── 8. Footer legal list — forcer le retour à la ligne ──── */
@media (max-width: 600px) {
  .kb-footer__bottom .kb-footer__inner {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .kb-footer__legal-list {
    justify-content: flex-start;
  }
}
