/* ============================================================
   We Event — Tokens design (adapté handoff → palette home)
   Police: Playfair Display (titres) + Inter (body)
   Accent: Gold #d6b25e (cohérence home We Event)
   ============================================================ */
:root{
  --serif: 'Playfair Display', "Times New Roman", serif;
  --sans: 'Inter', system-ui, sans-serif;
  --mono: 'JetBrains Mono', ui-monospace, monospace;
  --accent-bright: #d6b25e;
  --accent-dim: #8a6f2d;
  --ink: #091C3B;
  --ink-deep: #0a1628;
  --ink-strong: #050F22;
  --ink-mute: #677495;
  --paper: #F2ECDA;
  --paper-soft: #FAF5E6;
  --paper-elev: #FFFDF4;
  --champagne: #F2ECDA;
  --champagne-soft: #CEC09D;
  --gold: #d6b25e;
  --gold-bright: #E3C26A;
  --gold-dim: #8a6f2d;
  --line: rgba(15,23,42,.08);
  --ease-out: cubic-bezier(0.2, 0.7, 0.2, 1);
  --radius: 4px;
  --radius-lg: 12px;
}

/* Buttons utilitaires (issus de styles-v4 simplifiés) */
.btn{
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 12px 24px;
  font-family: var(--sans);
  font-size: 14px; font-weight: 600;
  letter-spacing: .04em; text-transform: uppercase;
  border: 1.5px solid transparent;
  border-radius: 2px;
  cursor: pointer;
  text-decoration: none;
  transition: transform .2s var(--ease-out), box-shadow .2s var(--ease-out), background .2s, color .2s;
}
.btn-lg{ padding: 16px 32px; font-size: 13px; }
.btn-block{ width: 100%; }
.btn-primary{ background: var(--accent-bright); color: var(--ink-deep); border-color: var(--accent-bright); }
.btn-primary:hover{ transform: translateY(-2px); box-shadow: 0 8px 24px rgba(214,178,94,.35); }
.btn-ghost{ background: transparent; color: var(--ink); border-color: rgba(15,23,42,.18); }
.btn-ghost:hover{ border-color: var(--accent-bright); color: var(--accent-bright); }

/* Container shared */
.container{ max-width: 1280px; margin: 0 auto; padding: 0 24px; }
.container-narrow{ max-width: 760px; margin: 0 auto; padding: 0 24px; }

/* Crumb breadcrumb */
.crumb{ font-size: 12px; letter-spacing: .04em; color: var(--ink-mute); margin-bottom: 18px; text-transform: uppercase; }
.crumb a{ color: var(--ink-mute); text-decoration: none; transition: color .15s; }
.crumb a:hover{ color: var(--accent-bright); }
.crumb .sep{ margin: 0 8px; opacity: .5; }
.pp-crumb-light, .pp-crumb-light a{ color: rgba(255,255,255,.7); }
.pp-crumb-light a:hover{ color: white; }

/* Eyebrow & section titles */
.eyebrow{ font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--accent-bright); margin-bottom: 14px; }
.eyebrow-small{ font-size: 10px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-mute); margin-bottom: 8px; }
.section-title{ font-family: var(--serif); font-weight: 400; font-size: clamp(36px, 4.5vw, 64px); line-height: 1.04; letter-spacing: -0.02em; margin-bottom: 18px; color: var(--ink); }
.section-title em{ font-style: italic; color: var(--accent-bright); }
.section-sub{ font-size: 17px; line-height: 1.65; color: var(--ink-mute); max-width: 640px; }
.section-head{ display: grid; grid-template-columns: 1fr 1fr; gap: 48px; margin-bottom: 56px; align-items: end; }
@media (max-width: 720px){ .section-head{ grid-template-columns: 1fr; gap: 24px; } }

/* Page head shared */
.page-head{ position: relative; }
.page-title{ font-family: var(--serif); font-weight: 360; font-size: clamp(48px, 6vw, 88px); line-height: 1.02; letter-spacing: -0.02em; margin: 18px 0 22px; color: var(--paper); text-wrap: balance; }
.page-title em{ font-style: italic; color: var(--accent-bright); }
.page-lede{ max-width: 640px; font-size: 17px; line-height: 1.7; color: rgba(255,255,255,.8); margin-bottom: 36px; }

/* ============================================================
   PAGES BILLETTERIE + TALKSHOWS — palette navy/champagne/or
   Continuité absolue avec styles-pages.css + styles-v4.css
   ============================================================ */

/* === SHARED HEAD === */
.bt-head, .ts-head{
  position:relative;
  padding: 140px 0 64px;
  background:
    linear-gradient(180deg, rgba(15,23,42,0.62) 0%, rgba(15,23,42,0.86) 100%),
    var(--ink-deep, #0a1628);
  color: var(--paper, #f7f3ec);
  overflow: hidden;
}
.bt-head::before, .ts-head::before{
  content:"";
  position:absolute; inset:0;
  background-image: var(--head-bg);
  background-size: cover; background-position: center;
  opacity:.45; mix-blend-mode: luminosity; z-index:0;
}
.bt-head::after, .ts-head::after{
  content:""; position:absolute; left:0; right:0; bottom:0;
  height:1px; background: linear-gradient(90deg, transparent, var(--accent-bright, #d6b25e), transparent);
}
.bt-head > .container, .ts-head > .container{ position:relative; z-index:1; }

.bt-head{ --head-bg: url("/assets/images/hero-billetterie.jpg"), url("/assets/images/hero-wedding.jpg"); }
.ts-head{
  --head-bg: url("/assets/images/hero-talkshows.jpg"), url("/assets/images/hero-wedding.jpg");
  /* Hero plein écran : l'image de fond couvre toute la hauteur de la fenêtre */
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  align-items: center;
}

.bt-head .crumb, .ts-head .crumb{ color: rgba(255,255,255,.7); }
.bt-head .crumb a, .ts-head .crumb a{ color: rgba(255,255,255,.85); }

.bt-head-title, .ts-head-title{
  font-family: var(--serif, "Playfair Display", serif);
  font-weight: 360;
  font-size: clamp(48px, 6vw, 88px);
  line-height: 1.02; letter-spacing: -0.02em;
  margin: 18px 0 22px;
  color: var(--paper, #f7f3ec);
  text-wrap: balance;
}
.bt-head-title em, .ts-head-title em{
  font-style: italic; color: var(--accent-bright, #d6b25e);
}
.bt-head-lede, .ts-head-lede{
  max-width: 640px;
  font-size: 17px; line-height: 1.7;
  color: rgba(255,255,255,.8);
  margin-bottom: 36px;
}

/* ============================================================
   BILLETTERIE
   ============================================================ */

/* Search bar in hero */
.bt-search{
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 8px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.14);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-radius: 4px;
  padding: 8px;
  max-width: 720px;
  margin-bottom: 14px;
}
.bt-search input, .bt-search select{
  background: transparent;
  border: none;
  color: var(--paper, #f7f3ec);
  font: inherit;
  padding: 14px 16px;
  font-size: 15px;
  outline: none;
}
.bt-search input::placeholder{ color: rgba(255,255,255,.5); }
.bt-search select{ appearance: none; cursor: pointer; }
.bt-search select option{ background: #0a1628; color: white; }
.bt-search-cta{
  background: var(--accent-bright, #d6b25e);
  color: var(--ink-deep, #0a1628);
  border: none;
  border-radius: 2px;
  padding: 0 26px;
  font-family: var(--sans, "Inter", sans-serif);
  font-size: 14px; font-weight: 600;
  letter-spacing: .04em; text-transform: uppercase;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease;
}
.bt-search-cta:hover{
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(214, 178, 94, 0.4);
}
.bt-search-hint{
  color: rgba(255,255,255,.55);
  font-size: 12px;
  letter-spacing: .04em;
  text-transform: uppercase;
}

/* Sticky filter bar */
.bt-filter-bar{
  position: sticky; top: 110px; z-index: 30;
  background: rgba(247, 243, 236, .88);
  backdrop-filter: blur(18px) saturate(1.2);
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
  border-bottom: 1px solid rgba(15,23,42,.08);
  padding: 14px 0;
  margin-bottom: 32px;
}
.bt-filters-wrap{
  display: flex; gap: 18px; align-items: center;
  flex-wrap: wrap;
}
.bt-filter-group{
  display: flex; gap: 6px; align-items: center;
  flex-wrap: wrap;
}
.bt-filter-label{
  font-size: 11px; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--ink-mute, #5e636b);
  margin-right: 4px;
}
.bt-chip{
  padding: 8px 14px;
  border: 1px solid rgba(15,23,42,.14);
  background: rgba(255,255,255,.6);
  border-radius: 999px;
  font-size: 13px; color: var(--ink-deep, #0a1628);
  cursor: pointer;
  transition: all .18s ease;
  white-space: nowrap;
  font-family: var(--sans, "Inter", sans-serif);
}
.bt-chip:hover{
  border-color: var(--accent-bright, #d6b25e);
  color: var(--accent-bright, #d6b25e);
}
.bt-chip.active{
  background: var(--accent-bright, #d6b25e);
  border-color: var(--accent-bright, #d6b25e);
  color: var(--ink-deep, #0a1628);
  font-weight: 600;
}
.bt-select{
  padding: 8px 30px 8px 14px;
  border: 1px solid rgba(15,23,42,.14);
  background: rgba(255,255,255,.6);
  border-radius: 999px;
  font-size: 13px; color: var(--ink-deep, #0a1628);
  font-family: var(--sans, "Inter", sans-serif);
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%230a1628' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  cursor: pointer;
}
.bt-filter-reset{
  background: none; border: none;
  color: var(--accent-bright, #d6b25e);
  font-size: 12px; font-weight: 600;
  letter-spacing: .04em; text-transform: uppercase;
  cursor: pointer;
  padding: 8px 4px;
  border-bottom: 1px solid currentColor;
}
.bt-filter-toggle{
  display:none;
  padding: 10px 18px;
  background: var(--ink-deep, #0a1628);
  color: var(--paper, #f7f3ec);
  border:none; border-radius: 999px;
  font-size: 13px; font-weight: 500;
  letter-spacing: .04em;
  cursor: pointer;
}

/* Toolbar (count + sort + view toggle) */
.bt-toolbar{
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 24px;
  flex-wrap: wrap; gap: 12px;
}
.bt-count{
  font-family: var(--mono, "JetBrains Mono", monospace);
  font-size: 13px; color: var(--ink-mute, #5e636b);
  letter-spacing: .04em;
}
.bt-count strong{ color: var(--ink-deep, #0a1628); font-weight: 600; }
.bt-toolbar-right{ display: flex; gap: 16px; align-items: center; }
.bt-view-toggle{
  display: flex;
  border: 1px solid rgba(15,23,42,.14);
  border-radius: 999px;
  padding: 3px;
  gap: 2px;
}
.bt-view-toggle button{
  padding: 6px 12px;
  background: none; border: none;
  font-size: 12px; color: var(--ink-mute, #5e636b);
  cursor: pointer;
  border-radius: 999px;
  transition: all .18s ease;
}
.bt-view-toggle button.active{
  background: var(--ink-deep, #0a1628);
  color: var(--paper, #f7f3ec);
}

/* Event grid */
.bt-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  margin-bottom: 80px;
}
.bt-grid.bt-grid-list{ grid-template-columns: 1fr; }

/* Event card */
.bt-card{
  display: flex; flex-direction: column;
  background: rgba(255,255,255,.66);
  border: 1px solid rgba(15,23,42,.06);
  border-radius: 4px;
  overflow: hidden;
  transition: all .35s cubic-bezier(.2,.8,.2,1);
  text-decoration: none;
  color: inherit;
  position: relative;
}
.bt-card:hover{
  transform: translateY(-4px);
  border-color: var(--accent-bright, #d6b25e);
  box-shadow: 0 24px 60px -20px rgba(15,23,42,.18);
}
.bt-card-cover{
  position: relative;
  aspect-ratio: 16/10;
  overflow: hidden;
  background: var(--ink-deep, #0a1628);
}
.bt-card-cover img{
  width:100%; height:100%; object-fit: cover;
  transition: transform .8s cubic-bezier(.2,.8,.2,1);
}
.bt-card:hover .bt-card-cover img{ transform: scale(1.04); }
.bt-card-type{
  position: absolute; top: 14px; left: 14px;
  padding: 5px 12px;
  background: rgba(15,23,42,.85);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: var(--paper, #f7f3ec);
  font-size: 11px; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  border-radius: 2px;
}
.bt-card-urgency{
  position: absolute; top: 14px; right: 14px;
  padding: 5px 12px;
  background: var(--accent-bright, #d6b25e);
  color: var(--ink-deep, #0a1628);
  font-size: 11px; font-weight: 600;
  letter-spacing: .04em;
  border-radius: 2px;
}
.bt-card-urgency.critical{
  background: #d97757;
  color: white;
}
.bt-card-body{
  padding: 22px;
  display: flex; flex-direction: column; gap: 14px;
  flex: 1;
}
.bt-card-title{
  font-family: var(--serif, "Playfair Display", serif);
  font-weight: 380;
  font-size: 22px; line-height: 1.18;
  letter-spacing: -0.01em;
  color: var(--ink-deep, #0a1628);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.bt-card-meta{
  display: flex; flex-direction: column; gap: 6px;
  font-size: 13px; color: var(--ink-mute, #5e636b);
}
.bt-card-meta-row{
  display: flex; align-items: center; gap: 8px;
}
.bt-card-meta-row svg{ width:14px; height:14px; flex-shrink: 0; opacity: .7; }
.bt-card-date{
  font-family: var(--mono, "JetBrains Mono", monospace);
  font-size: 13px;
  color: var(--ink-deep, #0a1628);
}
.bt-card-distance{
  color: var(--accent-bright, #d6b25e);
  font-weight: 500;
  font-size: 12px;
}
.bt-card-org{
  display: flex; align-items: center; gap: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(15,23,42,.06);
}
.bt-card-org-avatar{
  width: 30px; height: 30px;
  border-radius: 50%;
  background: var(--accent-bright, #d6b25e);
  color: var(--ink-deep, #0a1628);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--serif, "Playfair Display", serif);
  font-size: 14px; font-weight: 500;
  flex-shrink: 0;
}
.bt-card-org-name{
  font-size: 13px;
  color: var(--ink-deep, #0a1628);
  font-weight: 500;
}
.bt-card-org-role{
  font-size: 11px;
  color: var(--ink-mute, #5e636b);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.bt-card-bottom{
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid rgba(15,23,42,.06);
  display: flex; justify-content: space-between; align-items: center;
  gap: 12px;
}
.bt-card-price{
  font-family: var(--mono, "JetBrains Mono", monospace);
  font-size: 16px;
  color: var(--ink-deep, #0a1628);
  font-weight: 500;
}
.bt-card-price.free{
  color: #5a8a5e;
  text-transform: uppercase;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .12em;
  font-family: var(--sans, "Inter", sans-serif);
}
.bt-card-progress{
  flex: 1;
  display: flex; flex-direction: column; gap: 4px;
}
.bt-card-progress-track{
  height: 3px;
  background: rgba(15,23,42,.08);
  border-radius: 999px;
  overflow: hidden;
}
.bt-card-progress-fill{
  height: 100%;
  background: var(--accent-bright, #d6b25e);
  transition: width .6s ease;
}
.bt-card-progress-fill.critical{ background: #d97757; }
.bt-card-progress-text{
  font-size: 10px;
  color: var(--ink-mute, #5e636b);
  font-family: var(--mono, "JetBrains Mono", monospace);
  letter-spacing: .04em;
}
.bt-card-cta{
  padding: 14px;
  background: var(--ink-deep, #0a1628);
  color: var(--paper, #f7f3ec);
  text-align: center;
  font-size: 13px; font-weight: 500;
  letter-spacing: .12em; text-transform: uppercase;
  margin: 0 22px 22px;
  border-radius: 2px;
  transition: all .25s ease;
  display: flex; align-items: center; justify-content: center; gap: 8px;
}
.bt-card:hover .bt-card-cta{
  background: var(--accent-bright, #d6b25e);
  color: var(--ink-deep, #0a1628);
}

/* List view variation */
.bt-grid-list .bt-card{
  flex-direction: row;
}
.bt-grid-list .bt-card-cover{
  aspect-ratio: auto;
  width: 320px; flex-shrink: 0;
}
.bt-grid-list .bt-card-cta{
  margin: 0; align-self: stretch;
  width: 200px;
}

/* Empty state */
.bt-empty{
  text-align: center;
  padding: 80px 20px;
}
.bt-empty-icon{
  width: 80px; height: 80px;
  margin: 0 auto 24px;
  color: var(--accent-bright, #d6b25e);
}
.bt-empty h3{
  font-family: var(--serif, "Playfair Display", serif);
  font-weight: 380;
  font-size: 28px;
  margin-bottom: 12px;
}
.bt-empty p{
  color: var(--ink-mute, #5e636b);
  margin-bottom: 24px;
  max-width: 480px;
  margin-left: auto; margin-right: auto;
}

/* Newsletter */
.bt-newsletter{
  background: var(--ink-deep, #0a1628);
  color: var(--paper, #f7f3ec);
  padding: 88px 0;
  position: relative;
  overflow: hidden;
}
.bt-newsletter::before{
  content:""; position: absolute;
  inset: auto 0 0 0; height: 1px;
  background: linear-gradient(90deg, transparent, var(--accent-bright, #d6b25e), transparent);
}
.bt-newsletter-inner{
  max-width: 640px;
  margin: 0 auto;
  text-align: center;
}
.bt-newsletter-ornament{
  display: flex; align-items: center; justify-content: center; gap: 14px;
  margin-bottom: 28px;
  color: var(--accent-bright, #d6b25e);
}
.bt-newsletter-ornament span{
  flex: 0 0 60px; height: 1px; background: currentColor;
}
.bt-newsletter h2{
  font-family: var(--serif, "Playfair Display", serif);
  font-weight: 360;
  font-size: clamp(34px, 4vw, 52px);
  line-height: 1.1;
  margin-bottom: 16px;
  letter-spacing: -0.02em;
}
.bt-newsletter h2 em{
  color: var(--accent-bright, #d6b25e);
  font-style: italic;
}
.bt-newsletter p{
  color: rgba(255,255,255,.7);
  font-size: 15px; line-height: 1.6;
  margin-bottom: 28px;
}
.bt-newsletter-form{
  display: flex; gap: 8px;
  max-width: 480px;
  margin: 0 auto;
}
.bt-newsletter-form input{
  flex: 1;
  padding: 16px 20px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.16);
  color: var(--paper, #f7f3ec);
  border-radius: 2px;
  font: inherit;
  font-size: 14px;
}
.bt-newsletter-form input::placeholder{ color: rgba(255,255,255,.4); }
.bt-newsletter-form button{
  padding: 0 28px;
  background: var(--accent-bright, #d6b25e);
  color: var(--ink-deep, #0a1628);
  border: none;
  border-radius: 2px;
  font-family: var(--sans);
  font-size: 13px; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  cursor: pointer;
  transition: all .25s ease;
}
.bt-newsletter-form button:hover{
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(214, 178, 94, 0.35);
}
.bt-newsletter-legal{
  margin-top: 18px;
  font-size: 11px; color: rgba(255,255,255,.5);
  letter-spacing: .04em;
}

/* ===== BILLETTERIE — DETAIL ===== */
.bt-detail-hero{
  position: relative;
  /* padding-top compense la nav-wrap fixed. padding-bottom donne de l'air au CTA sticky. */
  padding: 104px 0 0;
  min-height: 600px;
  color: var(--paper);
  overflow: hidden;
}
@media (max-width: 1280px) { .bt-detail-hero { padding-top: 96px; min-height: 540px; } }
@media (max-width: 640px)  { .bt-detail-hero { padding-top: 88px; min-height: 480px; } }
.bt-detail-hero-img{ position:absolute; inset:0; z-index: 0; }
.bt-detail-hero-img img{ width:100%; height:100%; object-fit: cover; }
.bt-detail-hero-shade{
  position:absolute; inset:0; z-index:1;
  background: linear-gradient(180deg, rgba(15,23,42,0) 30%, rgba(15,23,42,0.92) 100%);
}
.bt-detail-hero-inner{
  position: relative; z-index:2;
  width: 100%;
  /* Layout en colonne : crumb en haut, espace, contenu (meta+title+loc) en bas */
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: calc(600px - 104px); /* hero min-height - padding-top */
  padding: 24px 0 56px;
  gap: 32px;
}
.bt-detail-hero-inner > .crumb{
  margin: 0;
  align-self: flex-start;
}
.bt-detail-hero-inner > .bt-detail-hero-meta,
.bt-detail-hero-inner > .bt-detail-hero-title,
.bt-detail-hero-inner > .bt-detail-hero-loc{
  margin: 0;
}
.bt-detail-hero-body{
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: auto;
}
@media (max-width: 1280px) { .bt-detail-hero-inner { min-height: calc(540px - 96px); padding: 20px 0 48px; } }
@media (max-width: 640px)  { .bt-detail-hero-inner { min-height: calc(480px - 88px); padding: 16px 0 36px; gap: 20px; } }

/* Crumb sur hero foncé : forcer la lisibilité (texte clair sur image sombre) */
.bt-detail-hero-inner .crumb,
.bt-detail-hero-inner .crumb a,
.bt-detail-hero-inner .crumb .sep,
.bt-detail-hero-inner .crumb span{
  color: rgba(255,255,255,0.78);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.bt-detail-hero-inner .crumb a{ text-decoration: none; transition: color .15s; }
.bt-detail-hero-inner .crumb a:hover{ color: var(--accent-bright); }
.bt-detail-hero-inner .crumb .sep{ opacity: .5; margin: 0 8px; }
.bt-detail-hero-meta{
  display: flex; align-items: center; gap: 14px;
  margin-bottom: 14px;
  font-family: var(--mono);
  font-size: 12px;
  color: rgba(255,255,255,.85);
  letter-spacing: .12em;
  text-transform: uppercase;
}
.bt-detail-hero-meta-sep{ opacity: .4; }
.bt-detail-hero-title{
  font-family: var(--serif);
  font-weight: 360;
  font-size: clamp(44px, 6vw, 84px);
  line-height: 1.02;
  letter-spacing: -0.02em;
  max-width: 14ch;
  margin-bottom: 18px;
}
.bt-detail-hero-loc{
  display: flex; align-items: center; gap: 18px;
  flex-wrap: wrap;
  font-size: 15px;
  color: rgba(255,255,255,.85);
}
.bt-detail-hero-loc strong{ color: var(--accent-bright); font-weight: 500; }

.bt-detail-sticky{
  /* Pas de sticky : reste sous le hero, lisible et stable (le sticky chevauchait
     la nav-wrap fixed du site et créait un conflit visuel sur les pages publiques). */
  position: relative; z-index: 5;
  background: rgba(247, 243, 236, .95);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-bottom: 1px solid rgba(15,23,42,.08);
  padding: 18px 0;
  box-shadow: 0 1px 0 rgba(9,28,59,0.04);
}
.bt-detail-sticky-inner{
  display: flex; justify-content: space-between; align-items: center;
  gap: 20px;
}
.bt-detail-sticky-info{
  display: flex; gap: 24px; align-items: center;
  font-size: 13px; color: var(--ink-mute);
}
.bt-detail-sticky-info strong{ color: var(--ink-deep); font-weight: 600; }
.bt-detail-sticky-cta{
  padding: 14px 28px;
  background: var(--accent-bright);
  color: var(--ink-deep);
  border: none; border-radius: 2px;
  font-family: var(--sans);
  font-size: 13px; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  cursor: pointer;
  transition: all .25s ease;
}
.bt-detail-sticky-cta:hover{
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(184,153,104,.4);
}

.bt-detail-body{ padding: 64px 0 96px; }
.bt-detail-grid{
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 64px;
}
.bt-detail-content h2{
  font-family: var(--serif);
  font-weight: 380;
  font-size: 32px;
  letter-spacing: -0.01em;
  margin-bottom: 20px;
  margin-top: 56px;
}
.bt-detail-content h2:first-child{ margin-top: 0; }
.bt-detail-content h2 em{ font-style: italic; color: var(--accent-bright); }
.bt-detail-content p{
  font-size: 16px;
  line-height: 1.75;
  color: var(--ink-deep);
  margin-bottom: 18px;
}
.bt-detail-prog{ display: grid; gap: 16px; }
.bt-detail-prog-item{
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 24px;
  padding: 18px 0;
  border-top: 1px solid rgba(15,23,42,.08);
}
.bt-detail-prog-item:last-child{ border-bottom: 1px solid rgba(15,23,42,.08); }
.bt-detail-prog-time{
  font-family: var(--mono);
  font-size: 14px;
  color: var(--accent-bright);
  font-weight: 500;
}
.bt-detail-prog-lbl{
  font-size: 15px;
  color: var(--ink-deep);
  line-height: 1.5;
}

.bt-detail-tickets{ display: grid; gap: 14px; grid-template-columns: repeat(3, 1fr); }
.bt-ticket{
  border: 1px solid rgba(15,23,42,.1);
  border-radius: 4px;
  padding: 24px;
  background: rgba(255,255,255,.6);
}
.bt-ticket.featured{
  border-color: var(--accent-bright);
  background: linear-gradient(180deg, rgba(184,153,104,.05), transparent);
}
.bt-ticket-name{
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 400;
  margin-bottom: 6px;
}
.bt-ticket-tagline{
  font-size: 12px;
  color: var(--ink-mute);
  letter-spacing: .04em;
  text-transform: uppercase;
  margin-bottom: 18px;
}
.bt-ticket-price{
  font-family: var(--mono);
  font-size: 28px;
  color: var(--ink-deep);
  margin-bottom: 16px;
}
.bt-ticket ul{
  list-style: none; padding: 0; margin: 0 0 20px;
  display: grid; gap: 8px;
}
.bt-ticket li{
  font-size: 13px;
  color: var(--ink-mute);
  padding-left: 18px;
  position: relative;
}
.bt-ticket li::before{
  content: "✓";
  position: absolute; left: 0;
  color: var(--accent-bright);
}

.bt-detail-aside{ position: sticky; top: 116px; align-self: start; }
.bt-detail-card{
  background: #FFFFFF;
  border: 1px solid rgba(9,28,59,.08);
  border-radius: 16px;
  padding: 22px;
  margin-bottom: 16px;
  box-shadow: 0 2px 12px -8px rgba(9,28,59,0.08);
}
.bt-detail-card h3{
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 500;
  margin: 0 0 14px;
  color: var(--ink-deep);
  letter-spacing: -0.005em;
}

/* === Carte Localisation refondue V4 === */
.bt-detail-card-map{ padding: 0; overflow: hidden; }
.bt-detail-card-map h3{
  padding: 18px 22px 12px;
  margin: 0;
  border-bottom: 1px solid rgba(9,28,59,.06);
}
.bt-detail-map{
  position: relative;
  height: 280px;
  overflow: hidden;
  background: #F3F4F6;
  margin: 0;
}
@media (max-width: 1100px) { .bt-detail-map { height: 320px; } }
.bt-detail-map iframe{ border: 0; width: 100%; height: 100%; display: block; }
.bt-detail-map-open{
  position: absolute; top: 12px; left: 12px; z-index: 2;
  display: inline-flex; align-items: center; gap: 6px;
  width: auto; max-width: calc(100% - 24px);
  padding: 7px 14px;
  background: rgba(9,28,59,0.92);
  color: #FDFAF4;
  text-decoration: none;
  border-radius: 999px;
  font-family: var(--sans);
  font-size: 12px; font-weight: 600;
  letter-spacing: .02em;
  line-height: 1;
  white-space: nowrap;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 4px 12px -4px rgba(0,0,0,0.35);
  transition: all .15s ease;
}
.bt-detail-map-open svg{ flex-shrink: 0; }
.bt-detail-map-open span{ white-space: nowrap; }
.bt-detail-map-open:hover{
  background: var(--accent-bright);
  color: var(--ink-deep);
  transform: translateY(-1px);
}
.bt-detail-map-empty{
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  height: 100%;
  color: var(--ink-mute);
  font-size: 13px;
  font-style: italic;
}
.bt-detail-map-addr{
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 16px 22px 18px;
  background: #FDFCF9;
}
.bt-detail-org{
  display: flex; gap: 14px; align-items: center;
  margin-bottom: 18px;
}
.bt-detail-org-avatar{
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--accent-bright);
  color: var(--ink-deep);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--serif);
  font-size: 22px;
  flex-shrink: 0;
}
.bt-detail-org-name{
  font-size: 15px; font-weight: 500;
}
.bt-detail-org-role{
  font-size: 11px;
  color: var(--ink-mute);
  letter-spacing: .12em;
  text-transform: uppercase;
}
/* ANCIEN bloc .bt-detail-map retiré (override conflictuel avec la version V4 plus haut).
   La version active est ligne ~829 avec height: 280px + iframe Google Maps. */
.bt-detail-share{ display: grid; gap: 8px; grid-template-columns: 1fr 1fr; }
.bt-detail-share button{
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 10px 12px;
  background: #FFFFFF;
  border: 1px solid rgba(9,28,59,.12);
  font-family: var(--sans);
  font-size: 12px; font-weight: 600;
  letter-spacing: .04em;
  color: var(--ink-deep);
  cursor: pointer;
  border-radius: 10px;
  transition: all .18s ease;
}
.bt-detail-share button svg{ flex-shrink: 0; }
.bt-detail-share button:hover{
  border-color: var(--accent-bright);
  color: var(--accent-bright);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px -6px rgba(201,168,76,.4);
}

/* Description riche (innerHTML depuis WYSIWYG ou texte brut avec <br>) */
.bt-detail-description{
  font-family: var(--sans);
  font-size: 16px;
  color: var(--ink-mute);
  line-height: 1.75;
  margin-bottom: 24px;
}
.bt-detail-description p{ margin: 0 0 16px; }
.bt-detail-description p:last-child{ margin-bottom: 0; }
.bt-detail-description ul, .bt-detail-description ol{ margin: 8px 0 16px 24px; padding: 0; }
.bt-detail-description li{ margin-bottom: 6px; }
.bt-detail-description strong{ color: var(--ink-deep); font-weight: 600; }
.bt-detail-description em{ font-style: italic; }
.bt-detail-description a{ color: var(--accent-bright); text-decoration: underline; text-underline-offset: 2px; }
.bt-detail-description h2,
.bt-detail-description h3,
.bt-detail-description h4{
  font-family: var(--serif);
  color: var(--ink-deep);
  margin: 20px 0 10px;
  font-weight: 500;
}
.bt-detail-description blockquote{
  border-left: 3px solid var(--accent-bright);
  padding: 4px 16px;
  margin: 16px 0;
  color: var(--ink-deep);
  background: rgba(201,168,76,.04);
}

.bt-similar{
  background: rgba(15,23,42,.02);
  padding: 80px 0;
  border-top: 1px solid rgba(15,23,42,.06);
}
.bt-similar h2{
  font-family: var(--serif);
  font-weight: 380;
  font-size: 36px;
  letter-spacing: -0.01em;
  margin-bottom: 32px;
}
.bt-similar h2 em{ font-style: italic; color: var(--accent-bright); }

/* Cards similar — repris du style /prestataires .presta-card pour cohérence design system */
.bt-similar .bt-card{
  border-radius: 16px;
  overflow: hidden;
  background: #FFFFFF;
  border: 1px solid rgba(9,28,59,.06);
  text-decoration: none;
  color: inherit;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.2s;
  display: block;
}
.bt-similar .bt-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 24px 48px -20px rgba(9,28,59,0.18);
  border-color: rgba(201,168,76,0.4);
}
.bt-similar .bt-card-cover{
  aspect-ratio: 4/3;
  background: linear-gradient(135deg,#091C3B,#1a2e52);
  position: relative;
  overflow: hidden;
}
.bt-similar .bt-card-cover img{ width:100%; height:100%; object-fit:cover; transition: transform .35s ease; }
.bt-similar .bt-card:hover .bt-card-cover img{ transform: scale(1.04); }
.bt-similar .bt-card-body{ padding: 16px 18px 18px; }
.bt-similar .bt-card-title{
  font-family: var(--serif);
  font-weight: 500;
  font-size: 18px;
  letter-spacing: -0.01em;
  color: var(--ink-deep);
  margin: 0 0 8px;
  line-height: 1.25;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.bt-similar .bt-card-meta{
  font-size: 12px;
  color: var(--ink-mute);
  line-height: 1.5;
  margin-bottom: 10px;
}
.bt-similar .bt-card-meta-row{ display: flex; align-items: center; gap: 6px; }
.bt-similar .bt-card-date{ font-family: var(--mono); text-transform: uppercase; letter-spacing: .06em; font-size: 11px; }
.bt-similar .bt-card-price{
  display: inline-flex; align-items: center;
  font-family: var(--mono); font-weight: 600;
  font-size: 13px;
  color: var(--accent-bright);
  letter-spacing: .04em;
}
.bt-similar .bt-card-price.free{ color: #059669; }
.bt-similar .bt-card-type{
  position: absolute; top: 12px; left: 12px;
  background: rgba(255,255,255,.92); color: var(--ink-deep);
  padding: 4px 10px; border-radius: 999px;
  font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em;
  backdrop-filter: blur(8px);
}
.bt-similar .bt-card-urgency{
  position: absolute; top: 12px; right: 12px;
  background: rgba(9,28,59,.85); color: #FFF;
  padding: 4px 10px; border-radius: 999px;
  font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em;
}
.bt-similar .bt-card-urgency.critical{ background: rgba(220,38,38,.92); }


/* ============================================================
   TALKSHOWS
   ============================================================ */

.ts-head-badge{
  display: inline-flex; align-items: center; gap: 10px;
  padding: 8px 16px;
  background: rgba(184,153,104,.15);
  border: 1px solid rgba(184,153,104,.4);
  color: var(--accent-bright);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  border-radius: 999px;
  margin-bottom: 18px;
}

/* Featured episode hero block */
.ts-featured{
  padding: 80px 0;
  background: linear-gradient(180deg, var(--ink-deep) 0%, #102339 100%);
  color: var(--paper);
}
.ts-featured-grid{
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 56px;
  align-items: center;
}
.ts-featured-thumb{
  aspect-ratio: 16/10;
  position: relative;
  overflow: hidden;
  border-radius: 4px;
  background: #000;
  cursor: pointer;
  group: thumb;
}
.ts-featured-thumb img{
  width:100%; height:100%; object-fit: cover;
  transition: transform .8s cubic-bezier(.2,.8,.2,1);
}
.ts-featured-thumb:hover img{ transform: scale(1.04); opacity: .85; }
.ts-featured-thumb-shade{
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,.6) 100%);
}
.ts-featured-play{
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 96px; height: 96px;
  border-radius: 50%;
  background: var(--accent-bright);
  color: var(--ink-deep);
  display: flex; align-items: center; justify-content: center;
  border: none;
  cursor: pointer;
  transition: all .3s ease;
  box-shadow: 0 12px 40px rgba(0,0,0,.4);
}
.ts-featured-thumb:hover .ts-featured-play{
  transform: translate(-50%, -50%) scale(1.08);
}
.ts-featured-duration{
  position: absolute;
  bottom: 16px; right: 16px;
  padding: 5px 12px;
  background: rgba(0,0,0,.7);
  color: white;
  font-family: var(--mono);
  font-size: 12px;
  border-radius: 2px;
  letter-spacing: .04em;
}
.ts-featured-tag{
  display: inline-block;
  padding: 5px 14px;
  background: var(--accent-bright);
  color: var(--ink-deep);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  border-radius: 2px;
  margin-bottom: 20px;
}
.ts-featured-title{
  font-family: var(--serif);
  font-weight: 380;
  font-size: clamp(34px, 3.6vw, 52px);
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin-bottom: 20px;
}
.ts-featured-desc{
  font-size: 16px;
  line-height: 1.7;
  color: rgba(255,255,255,.8);
  margin-bottom: 28px;
}
.ts-featured-guests{
  display: flex; align-items: center; gap: 14px;
  margin-bottom: 28px;
  padding-bottom: 28px;
  border-bottom: 1px solid rgba(255,255,255,.1);
}
.ts-featured-guests-label{
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.5);
}
.ts-featured-guest-avatars{ display: flex; }
.ts-featured-guest-avatar{
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--accent-bright);
  color: var(--ink-deep);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--serif);
  font-size: 14px;
  border: 2px solid var(--ink-deep);
  margin-left: -12px;
  transition: transform .25s ease;
}
.ts-featured-guest-avatar:first-child{ margin-left: 0; }
.ts-featured-guest-avatar:hover{ transform: translateY(-3px); z-index: 2; }
.ts-featured-meta{
  display: flex; gap: 24px;
  font-family: var(--mono);
  font-size: 12px;
  color: rgba(255,255,255,.6);
  letter-spacing: .04em;
  margin-bottom: 28px;
}

/* Seasons + filters */
.ts-section{ padding: 80px 0; }
.ts-seasons{
  display: flex; gap: 4px;
  border-bottom: 1px solid rgba(15,23,42,.1);
  margin-bottom: 28px;
  overflow-x: auto;
}
.ts-season-tab{
  padding: 16px 24px;
  background: none; border: none;
  border-bottom: 2px solid transparent;
  font-family: var(--sans);
  font-size: 14px;
  color: var(--ink-mute);
  cursor: pointer;
  white-space: nowrap;
  transition: all .2s ease;
  margin-bottom: -1px;
}
.ts-season-tab:hover{ color: var(--ink-deep); }
.ts-season-tab.active{
  color: var(--ink-deep);
  border-bottom-color: var(--accent-bright);
  font-weight: 600;
}

.ts-filters{
  display: flex; gap: 24px; align-items: center;
  margin-bottom: 40px;
  flex-wrap: wrap;
}

/* Talkshow grid + cards */
.ts-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.ts-card{
  display: flex; flex-direction: column;
  background: rgba(255,255,255,.66);
  border: 1px solid rgba(15,23,42,.06);
  border-radius: 4px;
  overflow: hidden;
  text-decoration: none; color: inherit;
  transition: all .35s cubic-bezier(.2,.8,.2,1);
}
.ts-card:hover{
  transform: translateY(-3px);
  border-color: var(--accent-bright);
  box-shadow: 0 24px 60px -20px rgba(15,23,42,.18);
}
.ts-card-thumb{
  position: relative;
  aspect-ratio: 16/10;
  overflow: hidden;
  background: #000;
}
.ts-card-thumb img{
  width:100%; height:100%; object-fit: cover;
  transition: transform .8s cubic-bezier(.2,.8,.2,1);
}
.ts-card:hover .ts-card-thumb img{ transform: scale(1.04); }
.ts-card-thumb-shade{
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,.5));
  opacity: 0;
  transition: opacity .3s ease;
}
.ts-card:hover .ts-card-thumb-shade{ opacity: 1; }
.ts-card-play{
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%) scale(.85);
  width: 64px; height: 64px;
  border-radius: 50%;
  background: var(--accent-bright);
  color: var(--ink-deep);
  display: flex; align-items: center; justify-content: center;
  opacity: 0;
  transition: all .35s ease;
}
.ts-card:hover .ts-card-play{ opacity: 1; transform: translate(-50%, -50%) scale(1); }
.ts-card-season{
  position: absolute; top: 12px; left: 12px;
  padding: 5px 10px;
  background: rgba(0,0,0,.78);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  color: white;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .04em;
  border-radius: 2px;
}
.ts-card-duration{
  position: absolute; top: 12px; right: 12px;
  padding: 5px 10px;
  background: rgba(0,0,0,.78);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  color: white;
  font-family: var(--mono);
  font-size: 11px;
  border-radius: 2px;
}
.ts-card-body{
  padding: 22px;
  display: flex; flex-direction: column; gap: 12px;
  flex: 1;
}
.ts-card-topic{
  font-size: 11px;
  color: var(--accent-bright);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
}
.ts-card-title{
  font-family: var(--serif);
  font-weight: 380;
  font-size: 21px;
  line-height: 1.18;
  letter-spacing: -0.01em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ts-card-date{
  font-family: var(--mono);
  font-size: 11px;
  color: var(--ink-mute);
  letter-spacing: .04em;
}
.ts-card-excerpt{
  font-size: 13px;
  color: var(--ink-mute);
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ts-card-guests{
  display: flex; align-items: center; gap: 6px;
  padding-top: 12px;
  border-top: 1px solid rgba(15,23,42,.06);
  margin-top: auto;
}
.ts-card-guest-avatars{ display: flex; }
.ts-card-guest-avatar{
  width: 26px; height: 26px;
  border-radius: 50%;
  background: var(--accent-bright);
  color: var(--ink-deep);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--serif);
  font-size: 11px;
  border: 2px solid white;
  margin-left: -8px;
}
.ts-card-guest-avatar:first-child{ margin-left: 0; }
.ts-card-guest-more{
  font-size: 11px;
  color: var(--ink-mute);
  margin-left: 6px;
}
.ts-card-cta{
  font-size: 12px;
  color: var(--accent-bright);
  font-weight: 600;
  letter-spacing: .04em;
  margin-left: auto;
  display: flex; align-items: center; gap: 4px;
  transition: gap .2s ease;
}
.ts-card:hover .ts-card-cta{ gap: 8px; }


/* ===== TALKSHOW DETAIL ===== */
.ts-detail-player{
  background: var(--ink-deep);
  padding: 110px 0 56px;
}
.ts-detail-frame{
  aspect-ratio: 16/9;
  background: #000;
  border-radius: 4px;
  overflow: hidden;
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
}
.ts-detail-frame iframe{
  width:100%; height:100%; border:0;
}
.ts-detail-frame-poster{
  position:absolute; inset:0;
  display: flex; align-items: center; justify-content: center;
  background: #000;
  cursor: pointer;
}
.ts-detail-frame-poster img{
  width:100%; height:100%; object-fit: cover;
  opacity: .65;
  transition: opacity .3s ease;
}
.ts-detail-frame-poster:hover img{ opacity: .8; }
.ts-detail-frame-poster .ts-featured-play{ position: absolute; }

.ts-detail-meta-bar{
  background: var(--ink-deep);
  padding: 24px 0 64px;
  color: var(--paper);
}
.ts-detail-meta-grid{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 48px;
  align-items: end;
}
.ts-detail-eyebrow{
  font-family: var(--mono);
  font-size: 11px;
  color: var(--accent-bright);
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.ts-detail-title{
  font-family: var(--serif);
  font-weight: 380;
  font-size: clamp(36px, 4vw, 56px);
  line-height: 1.06;
  letter-spacing: -0.02em;
  margin-bottom: 14px;
  max-width: 18ch;
}
.ts-detail-meta-row{
  display: flex; gap: 24px;
  font-family: var(--mono);
  font-size: 12px;
  color: rgba(255,255,255,.6);
  letter-spacing: .04em;
}
.ts-detail-share-bar{ display: flex; gap: 6px; }
.ts-detail-share-bar button{
  width: 40px; height: 40px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.14);
  color: var(--paper);
  border-radius: 50%;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all .2s ease;
}
.ts-detail-share-bar button:hover{
  background: var(--accent-bright);
  border-color: var(--accent-bright);
  color: var(--ink-deep);
}

.ts-detail-body{ padding: 80px 0; }
.ts-detail-grid{
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 72px;
}

.ts-detail-section{ margin-bottom: 56px; }
.ts-detail-section h2{
  font-family: var(--serif);
  font-weight: 380;
  font-size: 28px;
  margin-bottom: 24px;
  letter-spacing: -0.01em;
}
.ts-detail-section h2 em{ font-style: italic; color: var(--accent-bright); }
.ts-detail-prose p{
  font-size: 17px;
  line-height: 1.75;
  margin-bottom: 18px;
}

.ts-chapters{
  display: grid; gap: 4px;
}
.ts-chapter{
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 20px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(15,23,42,.06);
  cursor: pointer;
  transition: padding .2s ease;
}
.ts-chapter:hover{
  padding-left: 8px;
}
.ts-chapter:hover .ts-chapter-time{ color: var(--accent-bright); }
.ts-chapter-time{
  font-family: var(--mono);
  font-size: 13px;
  color: var(--ink-deep);
  font-weight: 500;
  transition: color .2s ease;
}
.ts-chapter-lbl{
  font-size: 14px;
  color: var(--ink-deep);
}

.ts-detail-guests{
  display: grid; gap: 12px;
}
.ts-detail-guest{
  display: flex; gap: 16px; align-items: center;
  padding: 18px;
  background: rgba(255,255,255,.6);
  border: 1px solid rgba(15,23,42,.06);
  border-radius: 4px;
  text-decoration: none; color: inherit;
  transition: all .2s ease;
}
.ts-detail-guest:hover{
  border-color: var(--accent-bright);
  transform: translateX(4px);
}
.ts-detail-guest-avatar{
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--accent-bright);
  color: var(--ink-deep);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--serif);
  font-size: 22px;
  flex-shrink: 0;
}
.ts-detail-guest-info{ flex: 1; }
.ts-detail-guest-name{ font-size: 16px; font-weight: 500; margin-bottom: 4px; }
.ts-detail-guest-role{
  font-size: 11px;
  color: var(--ink-mute);
  letter-spacing: .12em;
  text-transform: uppercase;
}
.ts-detail-guest-cta{
  font-size: 12px;
  color: var(--accent-bright);
  font-weight: 600;
  letter-spacing: .04em;
}

/* "Vu dans nos talkshows" — slot pour Prestataire.jsx */
.pp-talkshow-slot{
  margin: 56px 0;
  padding: 32px;
  background: linear-gradient(180deg, rgba(15,23,42,.96), rgba(15,23,42,.92));
  border-radius: 4px;
  color: var(--paper);
  position: relative;
  overflow: hidden;
}
.pp-talkshow-slot::before{
  content: ""; position: absolute;
  top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, var(--accent-bright), transparent);
}
.pp-talkshow-slot-eyebrow{
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11px;
  color: var(--accent-bright);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  margin-bottom: 12px;
}
.pp-talkshow-slot-title{
  font-family: var(--serif);
  font-size: 28px;
  font-weight: 380;
  letter-spacing: -0.01em;
  margin-bottom: 24px;
}
.pp-talkshow-slot-title em{ font-style: italic; color: var(--accent-bright); }
.pp-talkshow-list{
  display: grid; gap: 12px;
}
.pp-talkshow-item{
  display: grid;
  grid-template-columns: 110px 1fr auto;
  gap: 18px;
  padding: 14px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 3px;
  text-decoration: none; color: inherit;
  align-items: center;
  transition: all .2s ease;
}
.pp-talkshow-item:hover{
  background: rgba(255,255,255,.07);
  border-color: rgba(184,153,104,.5);
}
.pp-talkshow-thumb{
  position: relative;
  aspect-ratio: 16/10;
  border-radius: 2px;
  overflow: hidden;
  background: #000;
}
.pp-talkshow-thumb img{ width:100%; height:100%; object-fit: cover; opacity: .8; }
.pp-talkshow-thumb-play{
  position:absolute; top:50%; left:50%;
  transform: translate(-50%, -50%);
  width: 28px; height: 28px;
  background: var(--accent-bright);
  color: var(--ink-deep);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
}
.pp-talkshow-meta{
  font-family: var(--mono);
  font-size: 11px;
  color: var(--accent-bright);
  letter-spacing: .04em;
  margin-bottom: 4px;
}
.pp-talkshow-name{
  font-family: var(--serif);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.3;
  color: var(--paper);
}
.pp-talkshow-extra{
  font-family: var(--mono);
  font-size: 11px;
  color: rgba(255,255,255,.5);
  margin-top: 4px;
}
.pp-talkshow-watch{
  font-size: 11px;
  color: var(--accent-bright);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 600;
  white-space: nowrap;
  display: flex; align-items: center; gap: 6px;
  transition: gap .2s ease;
}
.pp-talkshow-item:hover .pp-talkshow-watch{ gap: 10px; }


/* ===== ENRICHMENTS v2 ===== */

/* Billetterie : featured event */
.bt-featured-section{
  padding: 64px 0 0;
  background: rgba(15,23,42,.02);
}
.bt-featured-eyebrow{
  display: flex; align-items: center; gap: 10px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--accent-bright);
  margin-bottom: 18px;
}
.bt-featured-dot{
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--accent-bright);
  display: inline-block;
}
.bt-featured-card{
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 0;
  background: white;
  border: 1px solid rgba(15,23,42,.08);
  border-radius: 4px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: all .35s cubic-bezier(.2,.8,.2,1);
}
.bt-featured-card:hover{
  transform: translateY(-3px);
  border-color: var(--accent-bright);
  box-shadow: 0 32px 80px -28px rgba(15,23,42,.22);
}
.bt-featured-img{
  position: relative;
  /* aspect-ratio retiré — débordait sur la cellule body via grid stretch */
  overflow: hidden;
  background: var(--ink-deep);
}
.bt-featured-img img{
  width:100%; height:100%; object-fit: cover;
  transition: transform 1s cubic-bezier(.2,.8,.2,1);
}
.bt-featured-card:hover .bt-featured-img img{ transform: scale(1.04); }
.bt-featured-badge{
  position: absolute; top: 20px; left: 20px;
  padding: 7px 14px;
  background: var(--accent-bright);
  color: var(--ink-deep);
  font-size: 11px; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  border-radius: 2px;
}
.bt-featured-body{
  padding: 48px 56px;
  display: flex; flex-direction: column;
  justify-content: flex-start;
  gap: 18px;
}
.bt-featured-date{
  display: flex; align-items: baseline; gap: 8px;
  font-family: var(--mono);
  color: var(--accent-bright);
  font-size: 13px;
  text-transform: lowercase;
  letter-spacing: .04em;
}
.bt-featured-day{
  font-family: var(--serif);
  font-size: 56px;
  line-height: 1;
  font-weight: 360;
  color: var(--ink-deep);
  font-style: italic;
}
.bt-featured-month{
  font-size: 18px;
  color: var(--ink-deep);
  font-weight: 500;
  text-transform: capitalize;
  font-family: var(--sans);
}
.bt-featured-year{ font-size: 12px; }
.bt-featured-title{
  font-family: var(--serif);
  font-weight: 380;
  font-size: clamp(28px, 3vw, 38px);
  line-height: 1.12;
  letter-spacing: -0.01em;
  margin: 0;
}
.bt-featured-desc{
  font-size: 15px; line-height: 1.7;
  color: var(--ink-mute);
  margin: 0;
}
.bt-featured-meta{
  display: flex; gap: 20px; flex-wrap: wrap;
  font-size: 13px; color: var(--ink-mute);
  padding: 14px 0;
  border-top: 1px solid rgba(15,23,42,.06);
  border-bottom: 1px solid rgba(15,23,42,.06);
}
.bt-featured-meta span{ display: inline-flex; align-items: center; gap: 6px; }
.bt-featured-meta strong{ color: var(--ink-deep); font-weight: 600; }
.bt-featured-cta-row{
  display: flex; justify-content: space-between; align-items: center;
  margin-top: 4px;
}
.bt-featured-price{
  font-family: var(--mono);
  font-size: 20px;
  color: var(--ink-deep);
}
.bt-featured-cta{
  display: inline-flex; align-items: center; gap: 8px;
  padding: 14px 24px;
  background: var(--ink-deep);
  color: var(--paper);
  font-size: 13px; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  border-radius: 2px;
  transition: all .25s ease;
}
.bt-featured-card:hover .bt-featured-cta{
  background: var(--accent-bright);
  color: var(--ink-deep);
  gap: 12px;
}

/* Billetterie : grouping par mois */
.bt-by-month{ margin-bottom: 80px; }
.bt-month-group{ margin-bottom: 56px; }
.bt-month-label{
  display: flex; align-items: baseline; justify-content: space-between;
  font-family: var(--serif);
  font-size: 28px; font-weight: 380;
  color: var(--ink-deep);
  letter-spacing: -0.01em;
  margin-bottom: 24px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(15,23,42,.1);
}
.bt-month-count{
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 400;
  color: var(--ink-mute);
  letter-spacing: .04em;
}

/* Billetterie : qty bar */
.bt-qty-bar{
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 24px;
  align-items: center;
  margin-top: 24px;
  padding: 20px 24px;
  background: linear-gradient(180deg, rgba(184,153,104,.08), rgba(184,153,104,.04));
  border: 1px solid rgba(184,153,104,.3);
  border-radius: 4px;
}
.bt-qty-info{ display: flex; flex-direction: column; gap: 2px; }
.bt-qty-eyebrow{
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--accent-bright);
  font-weight: 600;
}
.bt-qty-info strong{ font-family: var(--serif); font-size: 18px; font-weight: 500; }
.bt-qty-price{ font-family: var(--mono); font-size: 13px; color: var(--ink-mute); }
.bt-qty-stepper{
  display: flex; align-items: center; gap: 12px;
  border: 1px solid rgba(15,23,42,.14);
  background: white;
  border-radius: 4px;
  padding: 4px;
}
.bt-qty-stepper button{
  width: 32px; height: 32px;
  border: none;
  background: rgba(15,23,42,.04);
  color: var(--ink-deep);
  border-radius: 2px;
  cursor: pointer;
  font-size: 16px;
  transition: all .15s ease;
}
.bt-qty-stepper button:hover{ background: var(--accent-bright); color: var(--ink-deep); }
.bt-qty-stepper span{ font-family: var(--mono); font-size: 13px; padding: 0 8px; min-width: 80px; text-align: center; }
.bt-qty-cta{
  padding: 14px 28px;
  background: var(--accent-bright);
  color: var(--ink-deep);
  font-size: 13px; font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  border-radius: 2px;
  text-decoration: none;
  white-space: nowrap;
  transition: transform .2s ease;
}
.bt-qty-cta:hover{ transform: translateY(-2px); box-shadow: 0 8px 24px rgba(184,153,104,.4); }
.bt-ticket.picked{ border-color: var(--accent-bright); box-shadow: 0 0 0 3px rgba(184,153,104,.15); }
.bt-ticket-flag{
  position: absolute;
  top: -10px; left: 24px;
  padding: 4px 12px;
  background: var(--accent-bright);
  color: var(--ink-deep);
  font-size: 10px; font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  border-radius: 2px;
}
.bt-ticket{ position: relative; }

/* Billetterie : FAQ */
.bt-faq{
  display: grid; gap: 4px;
  margin: 8px 0 24px;
}
.bt-faq details{
  border-bottom: 1px solid rgba(15,23,42,.08);
  padding: 4px 0;
}
.bt-faq summary{
  list-style: none;
  padding: 18px 0;
  cursor: pointer;
  font-size: 16px;
  font-weight: 500;
  color: var(--ink-deep);
  position: relative;
  padding-right: 36px;
  transition: color .2s ease;
}
.bt-faq summary::-webkit-details-marker{ display: none; }
.bt-faq summary::after{
  content: "+";
  position: absolute;
  right: 0; top: 50%;
  transform: translateY(-50%);
  width: 24px; height: 24px;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid rgba(15,23,42,.2);
  border-radius: 50%;
  font-size: 14px;
  transition: all .25s ease;
  color: var(--ink-mute);
}
.bt-faq details[open] summary::after{
  content: "−";
  background: var(--accent-bright);
  border-color: var(--accent-bright);
  color: var(--ink-deep);
}
.bt-faq summary:hover{ color: var(--accent-bright); }
.bt-faq details p{
  font-size: 15px; line-height: 1.7;
  color: var(--ink-mute);
  margin: 0 0 16px;
  padding-right: 36px;
}

/* Billetterie : filter mobile dot */
.bt-filter-toggle-dot{
  width: 6px; height: 6px;
  background: var(--accent-bright);
  border-radius: 50%;
  display: inline-block;
  margin-left: 6px;
  vertical-align: middle;
}

/* Talkshows : search bar */
.ts-search{
  display: flex; align-items: center; gap: 12px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.14);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-radius: 4px;
  padding: 14px 18px;
  max-width: 540px;
  margin-bottom: 28px;
  color: var(--paper);
}
.ts-search svg{ color: rgba(255,255,255,.5); flex-shrink: 0; }
.ts-search input{
  flex: 1;
  background: transparent;
  border: none;
  color: var(--paper);
  font: inherit;
  font-size: 15px;
  outline: none;
}
.ts-search input::placeholder{ color: rgba(255,255,255,.5); }
.ts-search-clear{
  background: rgba(255,255,255,.1);
  border: none;
  color: white;
  width: 22px; height: 22px;
  border-radius: 50%;
  font-size: 11px;
  cursor: pointer;
  flex-shrink: 0;
}

/* Talkshows : stats */
.ts-head-stats{
  display: grid;
  grid-template-columns: repeat(4, auto);
  gap: 48px;
  padding-top: 32px;
  margin-top: 32px;
  border-top: 1px solid rgba(255,255,255,.1);
  justify-content: start;
}
.ts-head-stats > div{
  display: flex; flex-direction: column; gap: 4px;
}
.ts-head-stats strong{
  font-family: var(--serif);
  font-size: 36px;
  font-weight: 380;
  color: var(--accent-bright);
  font-style: italic;
  line-height: 1;
}
.ts-head-stats span{
  font-size: 11px;
  color: rgba(255,255,255,.6);
  letter-spacing: .12em;
  text-transform: uppercase;
}

/* Photo avatars */
.ts-card-guest-avatar-img,
.ts-detail-guest-avatar-img{
  overflow: hidden;
  padding: 0;
  background: rgba(0,0,0,.2);
}
.ts-card-guest-avatar-img img,
.ts-detail-guest-avatar-img img{
  width: 100%; height: 100%; object-fit: cover;
}
.ts-featured-guest-avatar img{
  width: 100%; height: 100%;
  object-fit: cover;
  border-radius: 50%;
}
.ts-featured-guest-avatar{ overflow: hidden; padding: 0; }

/* Chapters interactifs */
.ts-chapter{
  display: grid;
  grid-template-columns: 80px 1fr auto;
  gap: 20px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(15,23,42,.06);
  cursor: pointer;
  transition: padding .2s ease;
  background: none;
  border-top: none;
  border-left: none;
  border-right: none;
  width: 100%;
  text-align: left;
  align-items: center;
  font: inherit;
  color: inherit;
}
.ts-chapter:hover{ padding-left: 8px; }
.ts-chapter:hover .ts-chapter-time{ color: var(--accent-bright); }
.ts-chapter:hover .ts-chapter-arrow{ color: var(--accent-bright); transform: translateX(4px); }
.ts-chapter-arrow{
  font-size: 14px;
  color: var(--ink-mute);
  transition: all .2s ease;
}

/* Crumb light */
.pp-crumb-light{ color: rgba(255,255,255,.7); }
.pp-crumb-light a{ color: rgba(255,255,255,.85); text-decoration: none; }
.pp-crumb-light a:hover{ color: var(--accent-bright); }
.pp-crumb-light .sep{ opacity: .4; margin: 0 8px; }
.bt-detail-org-avatar-img{ overflow: hidden; padding: 0; background: rgba(0,0,0,.05); }
.bt-detail-org-avatar-img img{ width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }

/* ===== RESPONSIVE ===== */
@media (max-width: 1024px){
  .bt-grid, .ts-grid{ grid-template-columns: repeat(2, 1fr); }
  .bt-detail-grid, .ts-detail-grid{ grid-template-columns: 1fr; }
  .bt-detail-aside, .ts-detail-aside{ position: static; }
  .ts-featured-grid{ grid-template-columns: 1fr; gap: 32px; }
  .bt-detail-tickets{ grid-template-columns: 1fr; }
  .pp-talkshow-item{ grid-template-columns: 90px 1fr; }
  .pp-talkshow-watch{ grid-column: 2; padding-top: 4px; }
  .bt-featured-card{ grid-template-columns: 1fr; }
  .bt-featured-body{ padding: 36px 28px; }
  .ts-head-stats{ gap: 32px; grid-template-columns: repeat(2, auto); }
}
@media (max-width: 768px){
  .bt-grid, .ts-grid{ grid-template-columns: 1fr; }
  .bt-grid-list .bt-card{ flex-direction: column; }
  .bt-grid-list .bt-card-cover{ width: auto; aspect-ratio: 16/10; }
  .bt-grid-list .bt-card-cta{ margin: 0 22px 22px; width: auto; }
  .bt-search{ grid-template-columns: 1fr; }
  .bt-filter-bar .bt-filter-toggle{ display: inline-flex; align-items: center; gap: 6px; }
  .bt-filter-bar:not(.mobile-open) .bt-filters-wrap > .bt-filter-group{ display: none; }
  .bt-filter-bar.mobile-open .bt-filters-wrap{ flex-direction: column; align-items: stretch; gap: 14px; padding: 16px 0; }
  .bt-filter-bar.mobile-open .bt-filter-group{ width: 100%; flex-wrap: wrap; }
  .bt-detail-sticky-info{ display: none; }
  .ts-detail-meta-grid{ grid-template-columns: 1fr; gap: 24px; }
  .bt-head, .ts-head{ padding: 110px 0 48px; }
  .bt-featured-section{ padding-top: 40px; }
  .bt-featured-cta-row{ flex-direction: column; align-items: stretch; gap: 12px; }
  .bt-featured-cta{ justify-content: center; }
  .bt-month-label{ font-size: 22px; }
  .ts-head-stats{ grid-template-columns: 1fr 1fr; gap: 24px; }
  .ts-head-stats strong{ font-size: 28px; }
  .bt-qty-bar{ grid-template-columns: 1fr; gap: 14px; }
  .bt-qty-stepper{ justify-self: stretch; justify-content: space-between; }
}


/* === Search bar 3-col (event + ville Places + distance) === */
.bt-search-3col{
  grid-template-columns: 1.4fr 1.4fr 1fr auto;
  max-width: 880px;
}
@media (max-width: 720px){
  .bt-search-3col{
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .bt-search-3col .bt-search-cta{
    padding: 14px 0;
  }
}
.bt-search-3col input,
.bt-search-3col select{
  background: transparent;
  border: none;
  color: var(--paper, #f7f3ec);
  font: inherit;
  padding: 14px 16px;
  font-size: 15px;
  outline: none;
}
.bt-search-3col input::placeholder{ color: rgba(255,255,255,.5); }
.bt-search-3col select{ appearance: none; cursor: pointer; }
.bt-search-3col select option{ background: #0a1628; color: white; }
/* Google Places dropdown z-index above hero overlay */
.pac-container{ z-index: 9999 !important; border-radius: 4px; box-shadow: 0 8px 32px rgba(0,0,0,.18); border: 1px solid rgba(214,178,94,.3); }
.pac-item{ padding: 8px 12px; font-size: 13px; cursor: pointer; }
.pac-item:hover{ background: rgba(214,178,94,.08); }


/* === Excerpt truncation + toggle (talkshows public) === */
.ts-card-excerpt-wrap{ display:flex; flex-direction:column; gap:6px; }
.ts-card-excerpt-clamp{
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0;
}
.ts-card-excerpt-toggle{
  align-self: flex-start;
  background: transparent;
  border: none;
  color: var(--accent-bright, #d6b25e);
  font: inherit;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .04em;
  cursor: pointer;
  padding: 4px 0;
  position: relative;
  z-index: 2;
}
.ts-card-excerpt-toggle:hover{ text-decoration: underline; }

/* ============================================================
   Sticky control bar (filters + count + sort + view) — 2026-05-13
   Replaces standalone bt-filter-bar + bt-toolbar split layout
   ============================================================ */
.bt-control-bar{
  position: sticky;
  top: 96px; /* desktop scrolled nav height (logo 64 + padding 32 + border + small gap) */
  z-index: 30;
  background: rgba(253,250,244,.92);
  backdrop-filter: blur(18px) saturate(1.2);
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
  border-bottom: 1px solid rgba(15,23,42,.08);
  padding: 14px 0;
  margin-bottom: 28px;
}
.bt-control-bar-inner{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}
.bt-control-bar .bt-filters-wrap{
  flex: 1 1 auto;
  min-width: 0;
  gap: 12px;
}
.bt-control-bar-right{
  display: flex;
  gap: 12px;
  align-items: center;
  flex: 0 0 auto;
}
.bt-control-bar-right .bt-count{ white-space: nowrap; }
.bt-control-bar + section .bt-toolbar{ display: none; }
@media (max-width: 1024px){
  .bt-control-bar-inner{ gap: 14px; }
}
@media (max-width: 1024px){
  .bt-control-bar{ top: 84px; }
}
@media (max-width: 768px){
  .bt-control-bar{ top: 76px; padding: 10px 0; margin-bottom: 20px; }
  .bt-control-bar-inner{ flex-direction: column; align-items: stretch; gap: 12px; }
  .bt-control-bar-right{ justify-content: space-between; flex-wrap: wrap; }
}
@media (max-width: 640px){
  .bt-control-bar{ top: 68px; }
}
