/* ============================================================
   THÈME FACILE ET VISUEL - Chorégraphie Mariage Lille
   Design Stitch : Orange vif #ff5722 / Jaune soleil #fdc003 / Blanc
   Typographie : Epilogue (titres) + Lexend (corps)
   Version : 2026-05-06
   ============================================================ */

/* ---------- Reset & base ---------- */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  padding: 0;
  font-family: 'Lexend', system-ui, -apple-system, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  color: #1a1c1c;
  background: #f9f9f9;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: #b02f00; text-decoration: none; transition: color .2s; }
a:hover { color: #ff5722; }

/* ---------- Variables design Stitch ---------- */
:root {
  --primary: #b02f00;
  --primary-container: #ff5722;
  --primary-fixed: #ffdbd1;
  --on-primary: #ffffff;
  --secondary: #785900;
  --secondary-container: #fdc003;
  --secondary-fixed: #ffdf9e;
  --on-secondary-container: #6c5000;
  --tertiary: #2f3131;
  --surface: #f9f9f9;
  --surface-container-low: #f3f3f3;
  --surface-container: #eeeeee;
  --surface-container-high: #e8e8e8;
  --surface-container-highest: #e2e2e2;
  --surface-white: #ffffff;
  --on-surface: #1a1c1c;
  --on-surface-variant: #5b4039;
  --outline: #907067;
  --container-max: 1280px;
  --gutter: 24px;
  --margin: 32px;
  --stack-sm: 16px;
  --stack-md: 32px;
  --stack-lg: 64px;
  --shadow-sm: 0 4px 12px rgba(255, 87, 34, 0.06);
  --shadow-md: 0 10px 40px rgba(255, 87, 34, 0.08);
  --shadow-lg: 0 20px 60px rgba(255, 87, 34, 0.12);
  --shadow-button: 0 4px 0 rgba(134, 34, 0, 1);
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-full: 9999px;
}

/* ---------- Typographie titres Epilogue ---------- */
h1, h2, h3, h4, h5, h6,
.headline-xl, .headline-lg, .headline-md {
  font-family: 'Epilogue', system-ui, sans-serif;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--on-surface);
  margin: 0 0 var(--stack-sm);
}
h1 { font-size: clamp(2rem, 5vw, 4rem); line-height: 1.1; letter-spacing: -0.02em; }
h2 { font-size: clamp(1.6rem, 3.5vw, 3rem); line-height: 1.15; }
h3 { font-size: clamp(1.25rem, 2.5vw, 2rem); line-height: 1.2; }
h4 { font-size: clamp(1.1rem, 2vw, 1.4rem); line-height: 1.3; }

p { margin: 0 auto var(--stack-sm); max-width: 75ch; }
/* Blocs prose pleine largeur : boîte centrée + texte qui remplit (corrige le texte coincé à gauche) */
.local-context, .seo-local-mc { max-width: 880px; margin-left: auto !important; margin-right: auto !important; }
.local-context > *, .seo-local-mc > * { max-width: none; margin-left: 0; margin-right: 0; }

.label-bold {
  font-family: 'Lexend', sans-serif;
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* ---------- Header sticky orange ---------- */
.site-header {
  position: sticky; top: 0; z-index: 100;
  background: var(--surface-white);
  border-bottom: 4px solid var(--primary-container);
  box-shadow: 0 8px 30px rgba(255, 87, 34, 0.12);
}
.site-header__inner {
  display: flex; justify-content: space-between; align-items: center;
  width: 100%; max-width: var(--container-max);
  padding: 16px 24px; margin: 0 auto;
}
.site-logo {
  display: flex; align-items: center; gap: 12px;
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  font-style: italic;
  font-size: 1.5rem;
  letter-spacing: -0.04em;
  text-transform: uppercase;
  color: var(--primary-container);
}
.site-logo .icon { font-size: 2rem; }
.site-nav {
  display: flex; gap: 32px; align-items: center;
  font-family: 'Epilogue', sans-serif;
  font-weight: 800;
  text-transform: uppercase;
  font-size: 0.875rem;
  letter-spacing: -0.02em;
}
.site-nav > a, .site-nav > .dropdown > a {
  color: var(--on-surface);
  white-space: nowrap;
  padding: 4px 8px;
  transition: all .2s;
  display: inline-flex; align-items: center; gap: 4px;
  cursor: pointer;
}
.site-nav > a:hover, .site-nav > .dropdown > a:hover { background: var(--primary-fixed); }
.site-nav > a.active, .site-nav > .dropdown > a.active {
  color: var(--primary-container);
  border-bottom: 4px solid var(--primary-container);
}

/* Dropdown menus */
.site-nav .dropdown { position: relative; }
.site-nav .dropdown__chevron {
  font-size: 0.6rem;
  transition: transform .2s;
}
.site-nav .dropdown:hover .dropdown__chevron,
.site-nav .dropdown:focus-within .dropdown__chevron { transform: rotate(180deg); }
.site-nav .dropdown__menu {
  position: absolute;
  top: 100%; left: 0;
  min-width: 280px;
  background: var(--surface-white);
  border-top: 4px solid var(--primary-container);
  border-radius: 0 0 var(--radius-md) var(--radius-md);
  box-shadow: var(--shadow-lg);
  padding: 8px 0;
  list-style: none;
  margin: 0;
  opacity: 0; visibility: hidden;
  transform: translateY(-8px);
  transition: all .2s;
  z-index: 110;
}
.site-nav .dropdown:hover .dropdown__menu,
.site-nav .dropdown:focus-within .dropdown__menu {
  opacity: 1; visibility: visible;
  transform: translateY(0);
}
.site-nav .dropdown__menu li { margin: 0; padding: 0; }
.site-nav .dropdown__menu a {
  display: block;
  padding: 12px 20px;
  color: var(--on-surface);
  font-family: 'Lexend', sans-serif;
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
  font-size: 0.875rem;
  border-bottom: 1px solid var(--surface-container-low);
  border-left: 4px solid transparent;
  transition: all .15s;
}
.site-nav .dropdown__menu a:last-child { border-bottom: 0; }
.site-nav .dropdown__menu a:hover {
  background: var(--primary-fixed);
  border-left-color: var(--primary-container);
  color: var(--primary);
}
.site-nav .dropdown__menu a.dropdown__menu-hub {
  background: var(--secondary-fixed);
  font-weight: 700;
  color: var(--on-secondary-container);
}
.site-nav .dropdown__menu a.dropdown__menu-hub:hover {
  background: var(--secondary-container);
  color: var(--on-secondary-container);
}

/* Mobile : dropdown devient une liste expandable */
@media (max-width: 1024px) {
  .site-nav { display: none; }
}
.cta-reserver {
  display: inline-block;
  background: var(--primary-container);
  color: var(--on-primary);
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  padding: 10px 24px;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md);
  transition: transform .15s;
}
.cta-reserver:hover { color: var(--on-primary); transform: translateY(-2px); }
.cta-reserver:active { transform: scale(0.97); }

@media (max-width: 768px) {
  .site-nav { display: none; }
}

/* ---------- Hero principal ---------- */
.hero {
  position: relative;
  min-height: 600px;
  display: flex; align-items: center;
  overflow: hidden;
  background: var(--tertiary);
}
.hero__bg {
  position: absolute; inset: 0; z-index: 0;
}
.hero__bg img {
  width: 100%; height: 100%; object-fit: cover; opacity: 0.6;
}
.hero__bg::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to right, #1a1c1c 0%, rgba(26,28,28,0.4) 60%, transparent 100%);
}
.hero__content {
  position: relative; z-index: 10;
  width: 100%; max-width: var(--container-max);
  margin: 0 auto; padding: var(--stack-lg) var(--gutter);
}
.hero__inner { max-width: 720px; }
.hero__badge {
  display: inline-block;
  background: var(--secondary-container);
  color: var(--on-secondary-container);
  padding: 6px 16px;
  border-radius: var(--radius-full);
  font-family: 'Lexend', sans-serif;
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin-bottom: var(--stack-sm);
}
.hero h1 {
  color: var(--surface-white);
  margin-bottom: var(--stack-md);
}
.hero__lead {
  color: rgba(255, 255, 255, 0.92);
  font-size: 1.125rem;
  line-height: 1.6;
  max-width: 560px;
  margin-bottom: var(--stack-lg);
}
.hero__actions {
  display: flex; flex-wrap: wrap; gap: 16px; align-items: center;
}
.btn-primary-large {
  display: inline-block;
  background: var(--primary-container);
  color: var(--on-primary);
  font-family: 'Epilogue', sans-serif;
  font-weight: 800;
  font-size: 1.5rem;
  padding: 20px 40px;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-button);
  transition: all .15s;
  text-align: center;
}
.btn-primary-large:hover {
  background: var(--primary);
  color: var(--on-primary);
  transform: translateY(-2px);
}
.btn-primary-large:active {
  transform: translateY(2px);
  box-shadow: none;
}
.hero__proof {
  display: flex; align-items: center; gap: 16px;
  padding: 12px 24px;
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(10px);
  border-radius: var(--radius-md);
  border: 1px solid rgba(255, 255, 255, 0.2);
}
.hero__avatars { display: flex; }
.hero__avatars img {
  width: 40px; height: 40px;
  border-radius: var(--radius-full);
  border: 2px solid white;
  object-fit: cover;
  margin-left: -12px;
}
.hero__avatars img:first-child { margin-left: 0; }
.hero__proof span {
  color: white;
  font-family: 'Lexend', sans-serif;
  font-weight: 700;
  font-size: 0.875rem;
}

/* ---------- Sections génériques ---------- */
.section {
  padding: var(--stack-lg) var(--gutter);
}
.section--surface { background: var(--surface); }
.section--surface-low { background: var(--surface-container-low); }
.section--dark { background: var(--tertiary); color: var(--surface-white); }
.section__inner {
  max-width: var(--container-max);
  margin: 0 auto;
}
.section__head {
  text-align: center;
  margin-bottom: var(--stack-lg);
}
.section__head .accent {
  width: 96px; height: 8px;
  background: var(--primary-container);
  border-radius: var(--radius-full);
  margin: 16px auto 0;
}

/* ---------- Bento grid (Pourquoi nous choisir) ---------- */
.bento-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
@media (max-width: 768px) { .bento-3 { grid-template-columns: 1fr; } }

.bento-card {
  background: var(--surface-white);
  padding: 32px;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  display: flex; flex-direction: column; gap: 24px;
  transition: transform .3s;
}
.bento-card:hover { transform: translateY(-4px); }
.bento-card--orange { border-bottom: 8px solid var(--primary-container); }
.bento-card--yellow { border-bottom: 8px solid var(--secondary-container); }
.bento-card--dark { border-bottom: 8px solid var(--tertiary); }

.bento-card__icon {
  width: 64px; height: 64px;
  display: flex; align-items: center; justify-content: center;
  border-radius: var(--radius-lg);
  font-size: 2.5rem;
}
.bento-card--orange .bento-card__icon { background: var(--primary-fixed); color: var(--primary); }
.bento-card--yellow .bento-card__icon { background: var(--secondary-fixed); color: var(--secondary); }
.bento-card--dark .bento-card__icon { background: var(--surface-container-highest); color: var(--on-surface); }

.bento-card h3 { margin-bottom: 8px; }
.bento-card p { color: var(--on-surface-variant); }

/* ---------- Progress bar visuelle ---------- */
.progress-bar {
  width: 100%; height: 12px;
  background: var(--surface-container-highest);
  border-radius: 6px; overflow: hidden;
}
.progress-bar__fill {
  height: 100%;
  background: var(--secondary-container);
}
.progress-label {
  display: flex; justify-content: space-between;
  font-family: 'Lexend', sans-serif;
  font-weight: 700;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--primary);
  margin-bottom: 8px;
}

/* ---------- Localisation studio (dark card) ---------- */
.studio-block {
  background: var(--tertiary);
  border-radius: var(--radius-xl);
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr 1fr;
  box-shadow: var(--shadow-lg);
}
@media (max-width: 1024px) { .studio-block { grid-template-columns: 1fr; } }

.studio-block__text {
  padding: 64px 48px;
  display: flex; flex-direction: column; justify-content: center;
}
.studio-block__label {
  display: flex; align-items: center; gap: 12px;
  color: var(--secondary-container);
  font-family: 'Lexend', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-size: 0.78rem;
  margin-bottom: var(--stack-sm);
}
.studio-block__text h2 {
  color: var(--surface-white);
  margin-bottom: var(--stack-sm);
  font-size: clamp(1.6rem, 3vw, 2.5rem);
}
.studio-block__text p {
  color: rgba(255, 255, 255, 0.7);
  font-size: 1.125rem;
}
.studio-features {
  list-style: none; padding: 0; margin: 24px 0 0;
}
.studio-features li {
  display: flex; align-items: center; gap: 12px;
  color: var(--surface-white);
  margin-bottom: 16px;
}
.studio-features li::before {
  content: '✓';
  background: var(--primary-container);
  color: white;
  width: 24px; height: 24px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: var(--radius-full);
  font-weight: bold;
  flex-shrink: 0;
}
.studio-block__media {
  position: relative;
  min-height: 400px;
}
.studio-block__media img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Packages / Formules (sans prix) ---------- */
.formules-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
@media (max-width: 768px) { .formules-grid { grid-template-columns: 1fr; } }

.formule-card {
  background: var(--surface-white);
  padding: 32px;
  border-radius: var(--radius-lg);
  border: 1px solid var(--surface-container-highest);
  box-shadow: var(--shadow-sm);
  display: flex; flex-direction: column;
}
.formule-card__label {
  color: var(--primary);
  font-family: 'Lexend', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.78rem;
  margin-bottom: 16px;
}
.formule-card h3 { margin-bottom: 8px; }
.formule-card p { color: var(--on-surface-variant); flex-grow: 1; }
.formule-card__sessions {
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  font-size: 2.5rem;
  color: var(--on-surface);
  margin: 16px 0;
}
.formule-card__sessions .unit {
  font-size: 1rem; font-weight: 400; color: var(--on-surface-variant);
}
.formule-card__features {
  list-style: none; padding: 0; margin: 0 0 24px;
}
.formule-card__features li {
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 12px;
  font-size: 0.95rem;
}
.formule-card__features li::before {
  content: '✓';
  color: var(--secondary);
  font-weight: bold;
  flex-shrink: 0;
}
.formule-card .btn-secondary {
  display: block;
  width: 100%;
  padding: 16px;
  text-align: center;
  background: transparent;
  color: var(--primary-container);
  border: 2px solid var(--primary-container);
  border-radius: var(--radius-md);
  font-family: 'Lexend', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  transition: all .2s;
  cursor: pointer;
}
.formule-card .btn-secondary:hover {
  background: var(--primary-container);
  color: var(--on-primary);
}

.formule-card--featured {
  background: var(--primary-container);
  color: var(--on-primary);
  transform: scale(1.05);
  z-index: 2;
  position: relative;
  box-shadow: var(--shadow-lg);
  overflow: hidden;
}
.formule-card--featured h3,
.formule-card--featured .formule-card__sessions { color: var(--on-primary); }
.formule-card--featured .formule-card__label { color: rgba(255, 255, 255, 0.8); }
.formule-card--featured p { color: rgba(255, 255, 255, 0.9); }
.formule-card--featured .formule-card__features li { color: rgba(255, 255, 255, 0.95); }
.formule-card--featured .btn-secondary {
  background: var(--surface-white);
  color: var(--primary-container);
  border-color: var(--surface-white);
  box-shadow: var(--shadow-md);
}
.formule-card--featured .formule-card__badge {
  position: absolute;
  top: 16px; right: -32px;
  background: rgba(255, 255, 255, 0.2);
  color: white;
  padding: 4px 40px;
  font-family: 'Lexend', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  transform: rotate(35deg);
}

.formules__head {
  display: flex; flex-direction: column; gap: 24px;
  margin-bottom: var(--stack-lg);
}
.formules__head .badge-info {
  display: inline-block;
  background: rgba(255, 87, 34, 0.1);
  color: var(--primary);
  padding: 8px 16px;
  border-radius: var(--radius-md);
  border: 1px solid rgba(255, 87, 34, 0.2);
  font-family: 'Lexend', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.78rem;
  align-self: flex-start;
}
@media (min-width: 768px) {
  .formules__head { flex-direction: row; justify-content: space-between; align-items: flex-end; }
}

/* ---------- Méthode : 4 étapes Bento ---------- */
.methode-grid {
  display: grid;
  grid-template-columns: 7fr 5fr;
  gap: 24px;
}
@media (max-width: 768px) { .methode-grid { grid-template-columns: 1fr; } }

.methode-step {
  padding: 32px;
  border-radius: var(--radius-lg);
  transition: transform .3s;
}
.methode-step:hover { transform: translateY(-4px); }
.methode-step--white-orange {
  background: var(--surface-white);
  box-shadow: var(--shadow-md);
  border-left: 8px solid var(--primary);
}
.methode-step--yellow-light {
  background: rgba(253, 192, 3, 0.1);
  border-top: 8px solid var(--secondary-container);
}
.methode-step--orange {
  background: var(--primary-container);
  color: var(--on-primary);
  box-shadow: var(--shadow-lg);
}
.methode-step--orange h3 { color: var(--on-primary); }
.methode-step--orange p { color: rgba(255, 255, 255, 0.9); }
.methode-step--white-orange-right {
  background: var(--surface-white);
  box-shadow: var(--shadow-md);
  border-right: 8px solid var(--primary);
  text-align: right;
}
.methode-step__head {
  display: flex; align-items: center; gap: 16px;
  margin-bottom: 24px;
}
.methode-step__head--right {
  justify-content: flex-end;
}
.methode-step__num {
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  font-size: 2.5rem;
  color: rgba(255, 87, 34, 0.2);
}
.methode-step--orange .methode-step__num { color: rgba(255, 255, 255, 0.3); }
.methode-step--yellow-light .methode-step__num { color: rgba(253, 192, 3, 0.4); }
.methode-step h3 {
  font-size: clamp(1.25rem, 2.5vw, 2rem);
  color: var(--primary-container);
  margin: 0;
}
.methode-step--yellow-light h3 { color: var(--on-secondary-container); }
.methode-step--orange h3 { color: var(--on-primary); }
.methode-step__tags {
  display: flex; flex-wrap: wrap; gap: 8px;
  margin-top: 16px;
}
.methode-step__tags--right { justify-content: flex-end; }
.methode-step__tag {
  background: var(--surface-container-low);
  color: var(--on-surface-variant);
  padding: 4px 12px;
  border-radius: var(--radius-md);
  font-family: 'Lexend', sans-serif;
  font-weight: 700;
  font-size: 0.78rem;
}
.methode-step__chip {
  display: inline-block;
  background: var(--primary-container);
  color: white;
  padding: 4px 16px;
  border-radius: var(--radius-full);
  font-family: 'Lexend', sans-serif;
  font-weight: 700;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  box-shadow: var(--shadow-md);
}

.progress-segments {
  display: flex; gap: 8px; height: 16px;
  width: 100%; max-width: 640px;
  margin: 48px auto 8px;
}
.progress-segments__seg {
  flex: 1;
  background: var(--surface-container-highest);
  border-radius: var(--radius-full);
}
.progress-segments__seg--filled {
  background: var(--secondary-container);
  box-shadow: var(--shadow-md);
}

/* ---------- Focus dark section avec image ---------- */
.focus-dark {
  background: var(--tertiary);
  color: var(--surface-white);
  padding: var(--stack-lg) var(--gutter);
}
.focus-dark__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
@media (max-width: 768px) { .focus-dark__inner { grid-template-columns: 1fr; } }
.focus-dark h2 {
  color: var(--surface-white);
  text-transform: uppercase;
  font-size: clamp(1.8rem, 4vw, 3rem);
  margin-bottom: var(--stack-md);
  line-height: 1;
}
.focus-dark h2 .highlight { color: var(--secondary-container); }
.focus-dark__list {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 24px;
}
.focus-dark__list li {
  display: flex; gap: 16px;
  font-size: 1.125rem;
  line-height: 1.6;
}
.focus-dark__list li::before {
  content: '✓';
  color: var(--secondary-container);
  font-weight: bold;
  font-size: 1.5rem;
  flex-shrink: 0;
}
.focus-dark__media { position: relative; }
.focus-dark__media img {
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-lg);
}
.focus-dark__badge {
  position: absolute;
  bottom: -24px; right: -24px;
  background: var(--secondary-container);
  color: var(--on-secondary-container);
  padding: 24px;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
}
.focus-dark__badge p { margin: 0; }
.focus-dark__badge .figure {
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  font-size: 2rem;
}
.focus-dark__badge .label {
  font-family: 'Lexend', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
}

/* ---------- FAQ ---------- */
.faq-block {
  max-width: 800px;
  margin: 0 auto;
}
.faq-item {
  background: var(--surface-white);
  border-radius: var(--radius-md);
  margin-bottom: 16px;
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}
.faq-item summary {
  padding: 20px 24px;
  font-family: 'Epilogue', sans-serif;
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--on-surface);
  cursor: pointer;
  list-style: none;
  display: flex; justify-content: space-between; align-items: center;
}
.faq-item summary::after {
  content: '+';
  color: var(--primary-container);
  font-size: 1.5rem;
  transition: transform .2s;
}
.faq-item[open] summary::after { transform: rotate(45deg); }
.faq-item__answer {
  padding: 0 24px 20px;
  color: var(--on-surface-variant);
  line-height: 1.7;
}

/* ---------- Footer dark ---------- */
.site-footer {
  background: var(--tertiary);
  border-top: 8px solid var(--primary-container);
  padding: 64px 32px;
  text-align: center;
}
.site-footer__brand {
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--secondary-container);
  font-size: 1.5rem;
  margin-bottom: 24px;
}
.site-footer__tagline {
  color: rgba(255, 255, 255, 0.6);
  font-family: 'Epilogue', sans-serif;
  font-weight: 500;
  font-size: 0.875rem;
  letter-spacing: 0.05em;
  max-width: 480px;
  margin: 0 auto 32px;
  text-transform: uppercase;
}
.site-footer__nav {
  display: flex; justify-content: center; flex-wrap: wrap; gap: 32px;
  margin-bottom: 32px;
}
.site-footer__nav a {
  color: rgba(255, 255, 255, 0.6);
  font-family: 'Epilogue', sans-serif;
  font-weight: 500;
  font-size: 0.875rem;
  letter-spacing: 0.05em;
  transition: color .2s;
}
.site-footer__nav a:hover { color: white; }
.site-footer__copyright {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding-top: 32px;
  color: rgba(255, 255, 255, 0.4);
  font-size: 0.75rem;
}

/* ---------- Mobile bottom nav ---------- */
.mobile-nav {
  display: none;
  position: fixed; bottom: 0; left: 0;
  width: 100%; z-index: 50;
  background: var(--surface-white);
  border-top: 2px solid var(--surface-container);
  box-shadow: 0 -10px 40px rgba(255, 87, 34, 0.1);
  padding: 12px 16px 24px;
  justify-content: space-around;
}
@media (max-width: 768px) { .mobile-nav { display: flex; } }
.mobile-nav a {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  padding: 8px 20px;
  color: var(--on-surface-variant);
  font-family: 'Epilogue', sans-serif;
  font-weight: 700;
  font-size: 0.65rem;
  text-transform: uppercase;
  border-radius: var(--radius-md);
  transition: all .2s;
}
.mobile-nav a.active {
  background: var(--primary-container);
  color: var(--on-primary);
}
.mobile-nav .icon { font-size: 1.5rem; }

/* ---------- Page contact / Bento ---------- */
.bento-contact {
  display: grid;
  grid-template-columns: 7fr 5fr;
  gap: 24px;
  margin-top: var(--stack-lg);
}
@media (max-width: 1024px) { .bento-contact { grid-template-columns: 1fr; } }

.bento-contact__cal {
  background: var(--surface-white);
  padding: 32px;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  border-left: 8px solid var(--primary-container);
}
.bento-contact__urgent {
  background: var(--secondary-container);
  padding: 32px;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  display: flex; flex-direction: column; gap: 24px;
}
.bento-contact__urgent h2 {
  color: var(--on-secondary-container);
  font-style: italic;
}
.form-field {
  display: flex; flex-direction: column; gap: 8px;
  margin-bottom: 16px;
}
.form-field label {
  font-family: 'Lexend', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 0.78rem;
  color: var(--on-secondary-container);
}
.form-field input,
.form-field textarea {
  padding: 12px;
  border: 2px solid rgba(108, 80, 0, 0.2);
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.5);
  font-family: 'Lexend', sans-serif;
  font-size: 1rem;
}
.form-field input:focus,
.form-field textarea:focus {
  outline: none;
  border-color: var(--primary);
}
.form-submit {
  background: var(--on-secondary-container);
  color: white;
  padding: 16px;
  border: none;
  border-radius: var(--radius-md);
  font-family: 'Lexend', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  cursor: pointer;
  transition: background .2s;
}
.form-submit:hover { background: black; }

.bento-contact__studio {
  background: var(--surface-container-highest);
  padding: 32px;
  border-radius: var(--radius-lg);
}
.bento-contact__studio h3 { margin-bottom: 16px; }
.studio-info {
  display: flex; flex-direction: column; gap: 16px;
}
.studio-info__item {
  display: flex; gap: 12px; align-items: flex-start;
}
.studio-info__item .icon { color: var(--primary); flex-shrink: 0; }

.bento-contact__map {
  height: 300px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--surface-container);
}
.bento-contact__map img {
  width: 100%; height: 100%; object-fit: cover;
  filter: grayscale(60%) contrast(1.2) brightness(0.95);
  transition: filter .7s;
}
.bento-contact__map:hover img { filter: none; }

/* ---------- Densité / contenus existants (compatibilité) ---------- */
body > section, body > article {
  max-width: var(--container-max);
  margin: 32px auto;
  padding: 32px 24px;
}
body > section[class*="seo-"],
body > section.kw-spot-fix,
body > section.enforce-3000w,
body > section.padding-section,
body > section.faq-locale-angle,
body > section.faq-padded,
body > section.seo-density-boost,
body > section.seo-facile-visuel {
  background: rgba(253, 192, 3, 0.08);
  border-left: 4px solid var(--primary-container);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  padding: 32px 24px;
}
body > section.galerie-locale,
body > section.video-locale,
body > section.temoignages-locaux,
body > section.kpi-locaux,
body > section.lieux-reception,
body > section.carte-locale,
body > section.communes-voisines,
body > section.faq-locale {
  background: var(--surface-white);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
}

/* KPI cartouches */
.kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  margin-top: 16px;
}
.kpi-item {
  background: var(--surface-white);
  border: 1px solid rgba(253, 192, 3, 0.4);
  border-top: 4px solid var(--primary-container);
  border-radius: var(--radius-md);
  padding: 24px 16px;
  text-align: center;
  box-shadow: var(--shadow-sm);
}
.kpi-valeur {
  font-family: 'Epilogue', sans-serif;
  font-size: 2.2rem;
  font-weight: 900;
  color: var(--primary-container);
  display: block;
}
.kpi-label {
  font-family: 'Lexend', sans-serif;
  font-size: 0.82rem;
  color: var(--on-surface-variant);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
}

/* Lieux réception */
.lieux-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
}
.lieu-reception-card {
  background: var(--surface-white);
  border: 1px solid var(--surface-container-highest);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: transform .3s, box-shadow .3s;
}
.lieu-reception-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
}
.lieu-reception-card img {
  width: 100%; height: 200px; object-fit: cover;
}
.lieu-reception-card h3 {
  margin: 16px 16px 4px;
  font-size: 1.15rem;
  color: var(--primary-container);
}
.lieu-reception-card address {
  font-style: normal;
  font-size: 0.85rem;
  color: var(--on-surface-variant);
  margin: 0 16px 8px;
  display: block;
}
.lieu-reception-card p {
  margin: 0 16px 16px;
  font-size: 0.92rem;
  color: var(--on-surface);
}

/* Carte iframe */
.carte-locale iframe {
  width: 100%;
  height: 400px;
  border: 0;
  border-radius: var(--radius-md);
}

/* Témoignages */
.temoignage-card {
  background: var(--surface-white);
  border-left: 4px solid var(--secondary-container);
  padding: 24px;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
  margin-bottom: 24px;
}
.temoignage-card__author {
  font-family: 'Lexend', sans-serif;
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--primary);
  margin-top: 12px;
}

/* Communes voisines liste */
.communes-voisines ul {
  display: flex; flex-wrap: wrap; gap: 12px;
  list-style: none; padding: 0;
}
.communes-voisines li {
  background: var(--primary-fixed);
  padding: 8px 16px;
  border-radius: var(--radius-full);
  font-family: 'Lexend', sans-serif;
  font-weight: 600;
  font-size: 0.9rem;
}
.communes-voisines li a { color: var(--primary); }

/* CTA local */
.cta-local {
  background: var(--primary-container);
  color: var(--on-primary);
  padding: 40px;
  border-radius: var(--radius-lg);
  text-align: center;
  margin: var(--stack-lg) 0;
}
.cta-local h2 { color: var(--on-primary); margin-bottom: 16px; }
.cta-local .btn-primary-large {
  background: var(--surface-white);
  color: var(--primary-container);
  margin-top: 16px;
}

/* Floating CTA */
#floatingCta {
  position: fixed; bottom: 90px; right: 24px;
  background: var(--primary-container);
  color: var(--on-primary);
  padding: 16px 24px;
  border-radius: var(--radius-full);
  box-shadow: var(--shadow-lg);
  font-family: 'Epilogue', sans-serif;
  font-weight: 800;
  text-transform: uppercase;
  font-size: 0.875rem;
  letter-spacing: -0.02em;
  z-index: 90;
  display: flex; align-items: center; gap: 8px;
}
#floatingCta:hover {
  color: var(--on-primary);
  background: var(--primary);
  transform: scale(1.05);
}
@media (min-width: 769px) {
  #floatingCta { bottom: 24px; }
}

/* Responsive padding mobile */
@media (max-width: 768px) {
  .section { padding: 48px 16px; }
  .hero { min-height: 500px; }
  .hero__content { padding: 32px 16px; }
  body > section, body > article {
    padding: 24px 16px;
    margin: 24px auto;
  }
}

/* ---------- Skip link accessibilité ---------- */
.skip-link {
  position: absolute;
  top: -40px; left: 0;
  background: var(--primary);
  color: white;
  padding: 8px 16px;
  z-index: 200;
}
.skip-link:focus { top: 0; }

/* Réduit les animations selon préférences utilisateur */
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}


/* ---------- HERO PAGE STYLE 1 : full-width image background + texte par-dessus ---------- */
.hero-page-style-1 {
  position: relative;
  width: 100vw;
  margin: 0 calc(50% - 50vw);
  min-height: 560px;
  overflow: hidden;
  display: flex;
  align-items: center;
  background: var(--surface-container-low);
}
.hero-page-style-1__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.hero-page-style-1__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
}
.hero-page-style-1__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0.4) 50%, rgba(0,0,0,0.15) 100%);
  pointer-events: none;
}
.hero-page-style-1__inner {
  position: relative;
  z-index: 1;
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 80px 32px;
  width: 100%;
}
.hero-page-style-1__content {
  max-width: 720px;
}
.hero-page-style-1 .hero__badge {
  background: var(--secondary-container);
  color: var(--on-secondary-container);
}
.hero-page-style-1 h1 {
  color: white;
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  font-size: clamp(2rem, 5vw, 3.5rem);
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin: 16px 0 24px;
}
.hero-page-style-1 p {
  color: rgba(255,255,255,0.9);
  font-size: 1.125rem;
  line-height: 1.6;
  max-width: 600px;
  margin: 0 0 32px;
}
.hero-page-style-1 nav[aria-label] a,
.hero-page-style-1 nav[aria-label] {
  color: rgba(255,255,255,0.85) !important;
}
.hero-page-style-1 nav[aria-label] {
  margin-bottom: 24px;
  font-size: 0.875rem;
}
@media (max-width: 768px) {
  .hero-page-style-1 { min-height: 480px; }
  .hero-page-style-1__inner { padding: 48px 20px; }
  .hero-page-style-1__bg::after {
    background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.7) 100%);
  }
}

/* ---------- HERO PAGE STYLE 2 : split layout, image à droite avec badge ---------- */
.hero-page-style-2 {
  padding: 80px 32px 64px;
  background: var(--surface-container-low);
}
.hero-page-style-2__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 64px;
  align-items: center;
}
.hero-page-style-2__content {
  min-width: 0;
}
.hero-page-style-2__content nav[aria-label] {
  margin-bottom: 16px;
  font-size: 0.875rem;
  color: var(--on-surface-variant);
}
.hero-page-style-2 .hero__badge {
  background: var(--secondary-container);
  color: var(--on-secondary-container);
}
.hero-page-style-2 h1 {
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  font-size: clamp(1.8rem, 4vw, 3rem);
  line-height: 1.1;
  margin: 16px 0 24px;
  color: var(--on-surface);
}
.hero-page-style-2 p {
  color: var(--on-surface-variant);
  font-size: 1.0625rem;
  line-height: 1.65;
  margin: 0 0 24px;
}
.hero-page-style-2__visual {
  position: relative;
  aspect-ratio: 1;
}
.hero-page-style-2__visual-img {
  width: 100%;
  height: 100%;
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  transform: rotate(3deg);
  transition: transform .4s;
}
.hero-page-style-2__visual-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.hero-page-style-2__badge {
  position: absolute;
  bottom: -24px;
  left: -24px;
  background: white;
  padding: 14px 22px;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  border-left: 6px solid var(--primary-container);
  z-index: 2;
  line-height: 1;
}
/* Specificite renforcee pour ecraser .hero-page-style-2 p */
.hero-page-style-2__badge .hero-page-style-2__badge-figure {
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  font-size: 1.35rem;
  color: var(--primary-container);
  margin: 0;
  padding: 0;
  line-height: 1.1;
  text-align: left;
}
.hero-page-style-2__badge .hero-page-style-2__badge-label {
  font-family: 'Lexend', sans-serif;
  font-weight: 700;
  font-size: 0.68rem;
  color: var(--on-surface-variant);
  margin: 3px 0 0;
  padding: 0;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  line-height: 1.2;
  text-align: left;
}
@media (max-width: 1024px) {
  .hero-page-style-2__inner { grid-template-columns: 1fr; gap: 48px; }
  .hero-page-style-2__visual { max-width: 480px; margin: 0 auto; }
}
@media (max-width: 768px) {
  .hero-page-style-2 { padding: 48px 20px 40px; }
  .hero-page-style-2__visual-img { transform: rotate(2deg); }
  .hero-page-style-2__badge { left: -16px; bottom: -20px; padding: 14px 20px; }
  .hero-page-style-2__badge-figure { font-size: 1.2rem; }
  .hero-page-style-2__badge-label { font-size: 0.65rem; }
}

/* ---------- BLOC AUTEUR (Qui est derrière la méthode ?) ---------- */
/* Edge-to-edge full-width - sort de tout container parent */
.author-cta {
  background: linear-gradient(135deg, #ff5722 0%, #fdc003 100%);
  padding: 64px 32px;
  margin: 64px calc(50% - 50vw);
  width: 100vw;
  position: relative;
  overflow: hidden;
}
.author-cta::before {
  content: "";
  position: absolute;
  top: -50%; right: -10%;
  width: 500px; height: 500px;
  background: radial-gradient(circle, rgba(255,255,255,0.25) 0%, transparent 70%);
  pointer-events: none;
}
.author-cta::after {
  content: "";
  position: absolute;
  bottom: -30%; left: -5%;
  width: 350px; height: 350px;
  background: radial-gradient(circle, rgba(255,255,255,0.18) 0%, transparent 70%);
  pointer-events: none;
}
.author-cta__inner {
  max-width: 1080px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 40px;
  align-items: center;
  position: relative;
  z-index: 1;
}
.author-cta__avatar {
  width: 96px; height: 96px;
  border-radius: 50%;
  border: 4px solid white;
  box-shadow: 0 8px 24px rgba(0,0,0,0.2);
  object-fit: cover;
  background: white;
}
.author-cta__text {
  color: white;
}
.author-cta__label {
  display: inline-block;
  background: rgba(255,255,255,0.25);
  padding: 4px 12px;
  border-radius: 999px;
  font-family: 'Lexend', sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  margin-bottom: 8px;
}
.author-cta__title {
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  font-size: 1.7rem;
  line-height: 1.15;
  margin: 0 0 6px;
  color: white;
  letter-spacing: -0.02em;
}
.author-cta__subtitle {
  font-family: 'Lexend', sans-serif;
  font-size: 0.95rem;
  font-weight: 500;
  margin: 0;
  color: rgba(255,255,255,0.95);
}
.author-cta__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: white;
  color: #c8410c;
  padding: 18px 28px;
  border-radius: 999px;
  font-family: 'Epilogue', sans-serif;
  font-weight: 800;
  font-size: 1rem;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  box-shadow: 0 8px 24px rgba(0,0,0,0.18);
  transition: transform .2s, box-shadow .2s;
  white-space: nowrap;
}
.author-cta__btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px rgba(0,0,0,0.25);
}
.author-cta__btn::after {
  content: "→";
  font-size: 1.3rem;
  font-weight: 900;
}
@media (max-width: 768px) {
  .author-cta { padding: 40px 20px; margin: 40px calc(50% - 50vw); }
  .author-cta__inner {
    grid-template-columns: auto 1fr;
    gap: 16px;
  }
  .author-cta__btn {
    grid-column: 1 / -1;
    justify-content: center;
    padding: 16px 24px;
    font-size: 0.95rem;
  }
  .author-cta__avatar { width: 72px; height: 72px; }
  .author-cta__title { font-size: 1.3rem; }
  .author-cta__subtitle { font-size: 0.85rem; }
}

/* ---------- FOOTER : bouton mis en évidence "Le coach" ---------- */
.footer-coach-card {
  background: linear-gradient(135deg, #ff5722 0%, #fdc003 100%);
  padding: 24px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 16px;
  box-shadow: 0 8px 24px rgba(255,87,34,0.3);
  position: relative;
  overflow: hidden;
}
.footer-coach-card::before {
  content: "";
  position: absolute;
  top: -50%; right: -20%;
  width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(255,255,255,0.2) 0%, transparent 70%);
  pointer-events: none;
}
.footer-coach-card__avatar {
  width: 56px; height: 56px;
  border-radius: 50%;
  border: 3px solid white;
  object-fit: cover;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}
.footer-coach-card__text {
  flex: 1;
  position: relative;
  z-index: 1;
}
.footer-coach-card__label {
  display: block;
  font-family: 'Lexend', sans-serif;
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(255,255,255,0.9);
  margin-bottom: 2px;
}
.footer-coach-card__title {
  font-family: 'Epilogue', sans-serif;
  font-size: 1rem;
  font-weight: 900;
  color: white;
  line-height: 1.2;
  margin: 0;
}
.footer-coach-card__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  background: white;
  color: #c8410c;
  padding: 12px 16px;
  border-radius: 999px;
  font-family: 'Epilogue', sans-serif;
  font-weight: 800;
  font-size: 0.85rem;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-top: 12px;
  transition: transform .2s, box-shadow .2s;
  position: relative;
  z-index: 1;
}
.footer-coach-card__btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0,0,0,0.2);
}
.footer-coach-card__btn::after {
  content: "→";
  margin-left: 8px;
  font-weight: 900;
}

/* ---------- FOOTER RICHE multi-colonnes ---------- */
.site-footer-rich {
  background: var(--tertiary);
  color: rgba(255, 255, 255, 0.85);
  border-top: 8px solid var(--primary-container);
  padding: 64px 0 0;
}
.site-footer-rich__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 32px;
}
.site-footer-rich__columns {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 48px;
  margin-bottom: 48px;
}
.site-footer-rich__columns2 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 48px;
  margin-bottom: 48px;
}
@media (max-width: 1024px) {
  .site-footer-rich__columns,
  .site-footer-rich__columns2 {
    grid-template-columns: repeat(2, 1fr);
    gap: 32px;
  }
}
@media (max-width: 600px) {
  .site-footer-rich__columns,
  .site-footer-rich__columns2 {
    grid-template-columns: 1fr;
  }
}
.site-footer-rich h3 {
  font-family: 'Epilogue', sans-serif;
  font-weight: 800;
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--secondary-container);
  margin: 0 0 16px;
}
.site-footer-rich__brand {
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  font-size: 1.5rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--secondary-container);
  margin-bottom: 12px;
}
.site-footer-rich__tagline {
  font-size: 0.9rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 16px;
}
.site-footer-rich__info {
  font-size: 0.85rem;
  margin: 6px 0;
  color: rgba(255, 255, 255, 0.7);
}
.site-footer-rich__info strong {
  color: rgba(255, 255, 255, 0.9);
}
.site-footer-rich ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.site-footer-rich ul li {
  margin-bottom: 8px;
}
.site-footer-rich ul li a {
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
  font-size: 0.85rem;
  font-family: 'Lexend', sans-serif;
  transition: color .2s;
  display: inline-block;
  padding: 2px 0;
}
.site-footer-rich ul li a:hover {
  color: var(--secondary-container);
}
.site-footer-rich ul li a.hub {
  color: var(--secondary-container);
  font-weight: 600;
}
.site-footer-rich__cta {
  display: inline-block;
  background: var(--primary-container);
  color: white;
  padding: 12px 24px;
  border-radius: var(--radius-md);
  font-family: 'Epilogue', sans-serif;
  font-weight: 800;
  text-transform: uppercase;
  font-size: 0.85rem;
  letter-spacing: 0.05em;
  margin-top: 16px;
  transition: transform .15s;
}
.site-footer-rich__cta:hover {
  color: white;
  transform: translateY(-2px);
}
.site-footer-rich__bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding: 24px 32px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.5);
}
.site-footer-rich__bottom-nav a {
  color: rgba(255, 255, 255, 0.6);
  text-decoration: none;
  margin: 0 12px;
  font-size: 0.8rem;
  transition: color .2s;
}
.site-footer-rich__bottom-nav a:hover {
  color: white;
}
@media (max-width: 768px) {
  .site-footer-rich__bottom {
    flex-direction: column;
    text-align: center;
  }
}


/* ============================================================
   CITY MINI-SITE - 14 BLOCS DE CONVERSION
   ============================================================ */

/* Bloc 2 : PROBLÈME / DOULEUR - fond crème, liste avec icônes ❌ */
.pain-block { background: #FFF6E6; padding: 80px 0; }
.pain-block__inner { max-width: var(--container-max); margin: 0 auto; padding: 0 32px; }
.pain-block h2 { font-family: 'Epilogue', sans-serif; font-weight: 900; font-size: 2.1rem; color: var(--tertiary); margin: 0 0 32px; line-height: 1.15; }
.pain-block__list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.pain-block__list li {
  background: rgba(255, 255, 255, 0.7);
  border-left: 4px solid var(--primary-container);
  padding: 16px 20px;
  border-radius: var(--radius-md);
  font-family: 'Lexend', sans-serif;
  font-size: 1rem;
  line-height: 1.5;
  color: var(--tertiary);
}
.pain-block__list li::before { content: '⚠️ '; margin-right: 6px; }
@media (max-width: 768px) { .pain-block__list { grid-template-columns: 1fr; } }

/* Bloc 3 : AGITATION / CONSÉQUENCES - fond bordeaux léger */
.agitation-block { background: linear-gradient(135deg, #4A1F2A 0%, #6B2B3A 100%); color: #fff; padding: 80px 0; }
.agitation-block__inner { max-width: 900px; margin: 0 auto; padding: 0 32px; text-align: center; }
.agitation-block h2 { font-family: 'Epilogue', sans-serif; font-weight: 900; font-size: 2.2rem; margin: 0 0 24px; line-height: 1.15; }
.agitation-block p { font-family: 'Lexend', sans-serif; font-size: 1.1rem; line-height: 1.65; color: rgba(255,255,255,0.92); margin-bottom: 16px; }
.agitation-block strong { color: var(--secondary-container); }

/* Bloc 5 : PREUVE SOCIALE #1 - galerie de témoignages photos */
.testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 32px;
}
.testimonial-card {
  background: var(--surface-container-low);
  border-radius: var(--radius-md);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.testimonial-card__media { aspect-ratio: 16/10; overflow: hidden; }
.testimonial-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.testimonial-card__body { padding: 20px; }
.testimonial-card__name { font-family: 'Epilogue', sans-serif; font-weight: 800; color: var(--tertiary); margin: 0 0 4px; font-size: 1.05rem; }
.testimonial-card__meta { font-size: 0.85rem; color: var(--on-surface-variant); margin-bottom: 12px; }
.testimonial-card__quote { font-style: italic; line-height: 1.5; color: var(--tertiary); }
.testimonial-card__stars { color: #F5B800; letter-spacing: 2px; margin-bottom: 8px; font-size: 1rem; }
@media (max-width: 1024px) { .testimonials-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .testimonials-grid { grid-template-columns: 1fr; } }

/* Bloc 6 : BÉNÉFICES (6 cards) */
.benefits-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 32px;
}
.benefit-card {
  background: white;
  border-radius: var(--radius-md);
  padding: 28px 24px;
  border: 2px solid transparent;
  transition: border-color .2s, transform .2s;
}
.benefit-card:hover { border-color: var(--primary-container); transform: translateY(-3px); }
.benefit-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  background: var(--secondary-container);
  border-radius: 50%;
  font-size: 1.6rem;
  margin-bottom: 16px;
}
.benefit-card h3 {
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  font-size: 1.15rem;
  color: var(--tertiary);
  margin: 0 0 8px;
}
.benefit-card p {
  font-family: 'Lexend', sans-serif;
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--on-surface-variant);
  margin: 0;
}
@media (max-width: 1024px) { .benefits-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .benefits-grid { grid-template-columns: 1fr; } }

/* Bloc 7 : COMMENT ÇA MARCHE - 4 étapes numérotées */
.process-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-top: 32px;
  position: relative;
}
.process-step {
  background: white;
  border-radius: var(--radius-md);
  padding: 28px 24px;
  text-align: center;
  position: relative;
  border-top: 6px solid var(--primary-container);
}
.process-step__num {
  position: absolute;
  top: -22px;
  left: 50%;
  transform: translateX(-50%);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--primary-container);
  color: white;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  font-size: 1.2rem;
}
.process-step h3 {
  font-family: 'Epilogue', sans-serif;
  font-weight: 800;
  font-size: 1.1rem;
  color: var(--tertiary);
  margin: 12px 0 8px;
}
.process-step p {
  font-family: 'Lexend', sans-serif;
  font-size: 0.92rem;
  line-height: 1.5;
  color: var(--on-surface-variant);
  margin: 0;
}
@media (max-width: 1024px) { .process-steps { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .process-steps { grid-template-columns: 1fr; } }

/* Bloc 8 : CONTENU OFFRE - liste check */
.offer-detail {
  background: white;
  border-radius: var(--radius-md);
  padding: 40px 32px;
  margin-top: 32px;
}
.offer-detail__list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.offer-detail__list li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-family: 'Lexend', sans-serif;
  font-size: 1rem;
  line-height: 1.5;
  color: var(--tertiary);
}
.offer-detail__list li::before {
  content: '✓';
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  background: var(--primary-container);
  color: white;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  font-size: 0.85rem;
  margin-top: 2px;
}
@media (max-width: 768px) { .offer-detail__list { grid-template-columns: 1fr; } }

/* Bloc 9 : À PROPOS / AUTORITÉ */
.about-block {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 48px;
  align-items: center;
  margin-top: 32px;
}
.about-block__media img {
  width: 100%;
  border-radius: var(--radius-lg);
  box-shadow: 0 12px 32px rgba(0,0,0,0.12);
}
.about-block__text h2 {
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  color: var(--tertiary);
  margin: 0 0 16px;
}
.about-block__credentials {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--surface-container-highest);
}
.about-block__credential strong {
  display: block;
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  color: var(--primary-container);
  font-size: 1.5rem;
}
.about-block__credential span {
  font-size: 0.9rem;
  color: var(--on-surface-variant);
}
@media (max-width: 768px) { .about-block { grid-template-columns: 1fr; } }

/* Bloc 10 : PREUVE SOCIALE #2 - avis Google avec stars */
.reviews-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin-top: 32px;
}
.review-card {
  background: white;
  border-radius: var(--radius-md);
  padding: 24px;
  border-left: 4px solid #F5B800;
}
.review-card__stars { color: #F5B800; letter-spacing: 2px; font-size: 1.1rem; margin-bottom: 8px; }
.review-card__author { font-family: 'Epilogue', sans-serif; font-weight: 800; color: var(--tertiary); margin: 0; font-size: 1rem; }
.review-card__date { font-size: 0.82rem; color: var(--on-surface-variant); margin-bottom: 10px; }
.review-card__text { font-family: 'Lexend', sans-serif; font-size: 0.95rem; line-height: 1.55; color: var(--tertiary); }
@media (max-width: 600px) { .reviews-grid { grid-template-columns: 1fr; } }

/* Bloc 11 : GARANTIE / LEVÉE DE FREINS */
.guarantee-block {
  background: linear-gradient(135deg, var(--primary-container) 0%, #E08200 100%);
  color: white;
  padding: 60px 32px;
  border-radius: var(--radius-lg);
  text-align: center;
  margin-top: 32px;
}
.guarantee-block__icon { font-size: 3rem; margin-bottom: 16px; }
.guarantee-block h2 {
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  color: white;
  margin: 0 0 16px;
  font-size: 1.9rem;
}
.guarantee-block__list {
  list-style: none;
  padding: 0;
  margin: 24px 0 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  text-align: left;
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
}
.guarantee-block__list li {
  background: rgba(255, 255, 255, 0.15);
  border-radius: var(--radius-md);
  padding: 12px 16px;
  font-family: 'Lexend', sans-serif;
  font-size: 0.95rem;
}
.guarantee-block__list li::before { content: '✓ '; font-weight: bold; }
@media (max-width: 600px) { .guarantee-block__list { grid-template-columns: 1fr; } }

/* Bloc 12 : FAQ - accordéons */
.city-faq { margin-top: 32px; }
.city-faq__item {
  background: white;
  border-radius: var(--radius-md);
  margin-bottom: 12px;
  overflow: hidden;
  border: 1px solid var(--surface-container-highest);
}
.city-faq__item summary {
  padding: 18px 24px;
  font-family: 'Epilogue', sans-serif;
  font-weight: 800;
  font-size: 1.05rem;
  color: var(--tertiary);
  cursor: pointer;
  list-style: none;
  position: relative;
  padding-right: 50px;
}
.city-faq__item summary::after {
  content: '+';
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.6rem;
  color: var(--primary-container);
  font-weight: 300;
}
.city-faq__item[open] summary::after { content: '–'; }
.city-faq__item summary::-webkit-details-marker { display: none; }
.city-faq__item__answer {
  padding: 0 24px 24px;
  font-family: 'Lexend', sans-serif;
  line-height: 1.65;
  color: var(--on-surface-variant);
}

/* Bloc 14 : CTA FINAL ÉMOTIONNEL */
.final-cta {
  position: relative;
  padding: 100px 32px;
  background: linear-gradient(135deg, rgba(0,0,0,0.6), rgba(0,0,0,0.4)), url('../images/couple-mariage-lille-valse-premiere-danse.webp') center/cover;
  color: white;
  text-align: center;
  border-radius: var(--radius-lg);
  margin: 64px 0;
}
.final-cta h2 {
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  color: white;
  font-size: 2.6rem;
  margin: 0 0 20px;
  line-height: 1.1;
}
.final-cta p {
  font-family: 'Lexend', sans-serif;
  font-size: 1.15rem;
  max-width: 700px;
  margin: 0 auto 32px;
  color: rgba(255,255,255,0.95);
}
.final-cta .btn-primary-large { font-size: 1.1rem; padding: 18px 40px; }
@media (max-width: 600px) { .final-cta h2 { font-size: 1.8rem; } .final-cta p { font-size: 1rem; } }

/* GEO/SEO - bloc plus discret après la conversion */
.geo-seo {
  background: var(--surface-container-low);
  padding: 64px 32px;
  margin-top: 64px;
  border-radius: var(--radius-lg);
}
.geo-seo h2 {
  font-family: 'Epilogue', sans-serif;
  font-weight: 800;
  color: var(--tertiary);
  font-size: 1.6rem;
  margin: 0 0 16px;
}
.geo-seo h3 {
  font-family: 'Epilogue', sans-serif;
  font-weight: 700;
  color: var(--tertiary);
  font-size: 1.15rem;
  margin: 24px 0 8px;
}
.geo-seo p, .geo-seo li {
  font-family: 'Lexend', sans-serif;
  font-size: 0.95rem;
  line-height: 1.65;
  color: var(--on-surface-variant);
}
.geo-seo__voisines { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.geo-seo__voisines a {
  background: white;
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 0.88rem;
  color: var(--tertiary);
  text-decoration: none;
  border: 1px solid var(--surface-container-highest);
  transition: background .2s, color .2s;
}
.geo-seo__voisines a:hover { background: var(--primary-container); color: white; border-color: transparent; }
.geo-seo__kpi {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin: 24px 0;
}
.geo-seo__kpi-item {
  background: white;
  padding: 16px;
  border-radius: var(--radius-md);
  text-align: center;
}
.geo-seo__kpi-item strong {
  display: block;
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  color: var(--primary-container);
  font-size: 1.6rem;
}
.geo-seo__kpi-item span { font-size: 0.85rem; color: var(--on-surface-variant); }
@media (max-width: 600px) { .geo-seo__kpi { grid-template-columns: 1fr; } }


/* ============================================================
   CITY LOCAL - Découvrir [Ville] + Lieux de réception
   ============================================================ */

.city-local {
  padding: 80px 0;
  background: var(--surface-container-low);
}
.city-local__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 32px;
}
.city-local__head {
  text-align: center;
  max-width: 800px;
  margin: 0 auto 48px;
}
.city-local__head h2 {
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  font-size: 2.1rem;
  color: var(--tertiary);
  margin: 0 0 12px;
  line-height: 1.15;
}
.city-local__head p {
  font-family: 'Lexend', sans-serif;
  font-size: 1.05rem;
  color: var(--on-surface-variant);
  line-height: 1.6;
}

/* KPI bar */
.city-local__kpi {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 48px;
}
.city-local__kpi-item {
  background: white;
  border-radius: var(--radius-md);
  padding: 28px 24px;
  text-align: center;
  border-top: 5px solid var(--primary-container);
}
.city-local__kpi-item strong {
  display: block;
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  color: var(--primary-container);
  font-size: 2.4rem;
  line-height: 1;
  margin-bottom: 8px;
}
.city-local__kpi-item span {
  display: block;
  font-family: 'Lexend', sans-serif;
  font-size: 0.95rem;
  color: var(--tertiary);
  font-weight: 500;
}
@media (max-width: 768px) {
  .city-local__kpi { grid-template-columns: 1fr; gap: 16px; }
}

/* Photo gallery - 3 cards */
.city-local__gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 64px;
}
.city-card {
  background: white;
  border-radius: var(--radius-md);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: 0 4px 16px rgba(0,0,0,0.08);
  transition: transform .2s, box-shadow .2s;
}
.city-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0,0,0,0.12);
}
.city-card__media {
  aspect-ratio: 4/3;
  overflow: hidden;
  background: var(--surface-container);
}
.city-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.city-card__body {
  padding: 20px 24px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.city-card__name {
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  color: var(--tertiary);
  font-size: 1.1rem;
  margin: 0 0 8px;
  line-height: 1.3;
}
.city-card__desc {
  font-family: 'Lexend', sans-serif;
  font-size: 0.92rem;
  color: var(--on-surface-variant);
  line-height: 1.55;
  margin: 0;
}
.city-card__badge {
  display: inline-block;
  background: var(--secondary-container);
  color: var(--tertiary);
  padding: 4px 10px;
  border-radius: 999px;
  font-family: 'Epilogue', sans-serif;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 12px;
  align-self: flex-start;
}
@media (max-width: 1024px) {
  .city-local__gallery { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .city-local__gallery { grid-template-columns: 1fr; }
}

/* Section title for venues */
.city-local__section-title {
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  font-size: 1.6rem;
  color: var(--tertiary);
  text-align: center;
  margin: 0 0 32px;
}
.city-local__section-title small {
  display: block;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--on-surface-variant);
  margin-top: 8px;
  letter-spacing: normal;
  text-transform: none;
}

/* Image attribution */
.city-card__credit {
  font-size: 0.7rem;
  color: var(--on-surface-variant);
  opacity: 0.7;
  margin-top: 8px;
}
.city-card__credit a {
  color: inherit;
  text-decoration: underline;
}



/* ============================================================
   STYLES-DANSE HUB - Section "Choisir votre ville" (40 cards)
   ============================================================ */
.hub-villes-section {
  background: var(--surface-container-low);
  padding: 80px 0;
}
.hub-villes-section__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 32px;
}
.hub-villes-section__title {
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  font-size: 2rem;
  color: var(--tertiary);
  margin: 0 0 12px;
  text-align: center;
}
.hub-villes-section__subtitle {
  font-family: 'Lexend', sans-serif;
  font-size: 1rem;
  color: var(--on-surface-variant);
  text-align: center;
  max-width: 800px;
  margin: 0 auto 40px;
  line-height: 1.6;
}
.hub-villes-section__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 12px;
}
.hub-city-card {
  background: white;
  border-radius: var(--radius-md);
  padding: 16px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-decoration: none;
  color: var(--tertiary);
  transition: transform .15s, box-shadow .15s, background .15s;
  border: 1px solid var(--surface-container-highest);
}
.hub-city-card:hover {
  background: var(--primary-container);
  color: white;
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(255, 158, 0, 0.18);
}
.hub-city-card__name {
  font-family: 'Lexend', sans-serif;
  font-size: 0.95rem;
  line-height: 1.3;
  flex: 1;
}
.hub-city-card__name strong {
  font-family: 'Epilogue', sans-serif;
  font-weight: 800;
  color: inherit;
}
.hub-city-card__arrow {
  font-size: 1.2rem;
  margin-left: 12px;
  font-weight: 800;
  color: var(--primary-container);
  transition: color .15s;
}
.hub-city-card:hover .hub-city-card__arrow {
  color: white;
}

/* Hub principal /styles-danse/ */
.styles-hub {
  background: white;
  padding: 80px 0;
}
.styles-hub__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 32px;
}
.styles-hub__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 20px;
  margin-top: 32px;
}
.styles-hub-card {
  background: var(--surface-container-low);
  border-radius: var(--radius-md);
  padding: 24px;
  text-decoration: none;
  color: var(--tertiary);
  border-top: 5px solid var(--primary-container);
  transition: transform .15s, box-shadow .15s;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.styles-hub-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 30px rgba(0,0,0,0.1);
}
.styles-hub-card__name {
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  font-size: 1.2rem;
  color: var(--tertiary);
  margin: 0;
}
.styles-hub-card__mood {
  font-family: 'Lexend', sans-serif;
  font-size: 0.9rem;
  color: var(--on-surface-variant);
  margin: 0;
}
.styles-hub-card__seances {
  font-family: 'Epilogue', sans-serif;
  font-weight: 700;
  font-size: 0.85rem;
  color: var(--primary-container);
  margin-top: auto;
}


/* ============================================================
   MUSIC BLOCK - 5 titres musique par style (milieu de page)
   ============================================================ */
.music-block {
  background: linear-gradient(135deg, #1a1a1a 0%, #2d2018 100%);
  color: white;
  padding: 80px 0;
  position: relative;
  overflow: hidden;
}
.music-block::before {
  content: '♪ ♫ ♪';
  position: absolute;
  top: 20px;
  right: 40px;
  font-size: 4rem;
  color: var(--secondary-container);
  opacity: 0.15;
  font-family: serif;
  letter-spacing: 12px;
}
.music-block__inner {
  max-width: 980px;
  margin: 0 auto;
  padding: 0 32px;
  position: relative;
}
.music-block__head {
  text-align: center;
  margin-bottom: 48px;
}
.music-block__head h2 {
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  font-size: 2rem;
  color: white;
  margin: 0 0 12px;
  line-height: 1.15;
}
.music-block__head h2 .highlight {
  color: var(--secondary-container);
}
.music-block__head p {
  font-family: 'Lexend', sans-serif;
  font-size: 1rem;
  color: rgba(255,255,255,0.85);
  line-height: 1.6;
  max-width: 650px;
  margin: 0 auto;
}
.music-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 14px;
}
.music-list li {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 18px 24px;
  background: rgba(255,255,255,0.06);
  border-left: 4px solid var(--primary-container);
  border-radius: var(--radius-md);
  transition: background .2s, transform .2s;
}
.music-list li:hover {
  background: rgba(255,255,255,0.1);
  transform: translateX(4px);
}
.music-list__num {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--primary-container);
  color: white;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  font-size: 1rem;
}
.music-list__title {
  font-family: 'Epilogue', sans-serif;
  font-weight: 800;
  color: white;
  font-size: 1.05rem;
  display: block;
  line-height: 1.3;
}
.music-list__artist {
  font-family: 'Lexend', sans-serif;
  font-size: 0.92rem;
  color: rgba(255,255,255,0.7);
  display: block;
  margin-top: 2px;
}
.music-list__icon {
  margin-left: auto;
  font-size: 1.4rem;
  color: var(--secondary-container);
  flex-shrink: 0;
}
.music-block__footnote {
  text-align: center;
  font-family: 'Lexend', sans-serif;
  font-size: 0.92rem;
  color: rgba(255,255,255,0.6);
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,0.1);
}
.music-block__footnote strong {
  color: var(--secondary-container);
}
@media (max-width: 600px) {
  .music-block__head h2 { font-size: 1.6rem; }
  .music-list li { padding: 14px 16px; gap: 14px; }
  .music-list__title { font-size: 0.98rem; }
}


/* ============================================================
   STYLE-PHOTO HERO - Photo XL d'un couple dansant le style
   ============================================================ */
.style-photo {
  background: #1a1a1a;
  padding: 80px 0;
  position: relative;
}
.style-photo__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 32px;
  text-align: center;
}
.style-photo__head {
  margin-bottom: 32px;
}
.style-photo__head h2 {
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  font-size: 2rem;
  color: white;
  margin: 0 0 8px;
  line-height: 1.15;
}
.style-photo__head h2 .highlight {
  color: var(--secondary-container);
}
.style-photo__head p {
  font-family: 'Lexend', sans-serif;
  color: rgba(255,255,255,0.75);
  font-size: 1rem;
  max-width: 700px;
  margin: 0 auto;
  line-height: 1.55;
}
.style-photo__media {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(0,0,0,0.4);
}
.style-photo__media img {
  width: 100%;
  height: auto;
  display: block;
  max-height: 720px;
  object-fit: cover;
}
.style-photo__caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 32px 40px 24px;
  background: linear-gradient(transparent, rgba(0,0,0,0.85));
  color: white;
  text-align: left;
}
.style-photo__caption strong {
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  font-size: 1.4rem;
  display: block;
  margin-bottom: 4px;
}
.style-photo__caption span {
  font-family: 'Lexend', sans-serif;
  font-size: 0.9rem;
  opacity: 0.8;
}
.style-photo__credit {
  margin-top: 16px;
  font-size: 0.78rem;
  color: rgba(255,255,255,0.5);
}
.style-photo__credit a { color: inherit; text-decoration: underline; }
@media (max-width: 600px) {
  .style-photo__head h2 { font-size: 1.5rem; }
  .style-photo__caption { padding: 20px 16px 16px; }
  .style-photo__caption strong { font-size: 1.1rem; }
}


/* ============================================================
   PAGE COACH/EXPERT - qui est derrière la méthode LEGO
   ============================================================ */

.coach-hero {
  background: linear-gradient(135deg, #2d2018 0%, #1a1a1a 100%);
  color: white;
  padding: 80px 0 60px;
  position: relative;
  overflow: hidden;
}
.coach-hero__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 32px;
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 56px;
  align-items: center;
}
.coach-hero__text h1 {
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  font-size: clamp(2rem, 4vw, 3rem);
  color: white;
  margin: 12px 0 24px;
  line-height: 1.1;
}
.coach-hero__text h1 .highlight { color: var(--secondary-container); }
.coach-hero__text p.lead {
  font-family: 'Lexend', sans-serif;
  font-size: 1.1rem;
  color: rgba(255,255,255,0.85);
  line-height: 1.6;
  margin: 0 0 28px;
}
.coach-hero__badge {
  display: inline-block;
  background: var(--primary-container);
  color: white;
  padding: 6px 16px;
  border-radius: 999px;
  font-family: 'Epilogue', sans-serif;
  font-weight: 800;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.coach-hero__media {
  position: relative;
}
.coach-hero__media img {
  width: 100%;
  height: auto;
  border-radius: var(--radius-md);
  box-shadow: 0 20px 60px rgba(0,0,0,0.4);
  display: block;
}
.coach-hero__kpi {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 32px;
}
.coach-hero__kpi-item {
  text-align: center;
  padding: 16px 8px;
  background: rgba(255,255,255,0.06);
  border-radius: var(--radius-md);
  border-top: 3px solid var(--secondary-container);
}
.coach-hero__kpi-item strong {
  display: block;
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  color: var(--secondary-container);
  font-size: 1.6rem;
  line-height: 1;
}
.coach-hero__kpi-item span {
  display: block;
  font-family: 'Lexend', sans-serif;
  font-size: 0.78rem;
  color: rgba(255,255,255,0.75);
  margin-top: 4px;
}
@media (max-width: 900px) {
  .coach-hero__inner { grid-template-columns: 1fr; }
  .coach-hero__kpi { grid-template-columns: repeat(2, 1fr); }
}

.coach-section {
  padding: 80px 0;
}
.coach-section__inner {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 32px;
}
.coach-section--alt {
  background: var(--surface-container-low);
}
.coach-metier {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}
.coach-metier__media img {
  width: 100%;
  border-radius: var(--radius-md);
  box-shadow: 0 12px 32px rgba(0,0,0,0.12);
  display: block;
}
.coach-metier__text .role-badge {
  display: inline-block;
  background: var(--secondary-container);
  color: var(--tertiary);
  padding: 5px 14px;
  border-radius: 999px;
  font-family: 'Epilogue', sans-serif;
  font-weight: 800;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 12px;
}
.coach-metier__text h2 {
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  color: var(--tertiary);
  font-size: 2rem;
  margin: 0 0 16px;
  line-height: 1.15;
}
.coach-metier__text p {
  font-family: 'Lexend', sans-serif;
  font-size: 1rem;
  color: var(--on-surface-variant);
  line-height: 1.7;
  margin-bottom: 16px;
}
.coach-metier__text ul {
  list-style: none;
  padding: 0;
  margin: 16px 0;
}
.coach-metier__text ul li {
  padding-left: 28px;
  position: relative;
  margin-bottom: 10px;
  font-family: 'Lexend', sans-serif;
  color: var(--on-surface-variant);
  line-height: 1.5;
}
.coach-metier__text ul li::before {
  content: '✓';
  position: absolute;
  left: 0;
  top: 2px;
  width: 20px;
  height: 20px;
  background: var(--primary-container);
  color: white;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.7rem;
  font-weight: 900;
}
.coach-metier--reverse .coach-metier__media { order: 2; }
@media (max-width: 900px) {
  .coach-metier { grid-template-columns: 1fr; gap: 32px; }
  .coach-metier--reverse .coach-metier__media { order: 0; }
}

.coach-gallery {
  background: var(--surface-container);
  padding: 80px 0;
}
.coach-gallery__head {
  text-align: center;
  margin-bottom: 48px;
}
.coach-gallery__head h2 {
  font-family: 'Epilogue', sans-serif;
  font-weight: 900;
  color: var(--tertiary);
  font-size: 2.2rem;
  margin: 0 0 12px;
}
.coach-gallery__grid {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 32px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.coach-gallery__grid img,
section.coach-gallery .coach-gallery__grid img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  object-position: center 25% !important; /* vise les visages dans le tiers supérieur */
  border-radius: var(--radius-md) !important;
  display: block !important;
  max-height: none !important;
  transition: transform 0.3s ease;
}
.coach-gallery__grid img:hover {
  transform: scale(1.03);
}
@media (max-width: 900px) {
  .coach-gallery__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .coach-gallery__grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
}



/* portrait head fix - show head when image was cropped */
.coach-hero__media img,
img[src*="coach-danse-mariage-lille-action"],
img[src*="expert-ouverture-bal-mariage-lille-portrait"] {
  object-fit: cover;
  object-position: 50% 0%;
}
.coach-hero__media {
  /* show full image, not contained */
  border-radius: var(--radius-md);
  overflow: hidden;
}
.coach-hero__media img {
  width: 100%;
  height: auto;
  max-height: 600px;
  object-fit: contain;
  background: #1a1a1a;
}


/* ===== BURGER MENU MOBILE - DRAWER FROM RIGHT (added 2026-05-27) ===== */
.nav-burger {
  display: none; background: none; border: 0; cursor: pointer;
  padding: 8px; width: 44px; height: 44px;
  flex-direction: column; justify-content: center; align-items: center;
  gap: 5px; margin-left: 8px; position: relative; z-index: 2147483647;
}
.nav-burger span {
  display: block; width: 26px; height: 3px;
  background: #1a1a1a; border-radius: 2px;
  transition: transform 0.3s ease, opacity 0.2s ease;
}

@media (max-width: 1024px) {
  .nav-burger { display: flex !important; }
  .site-nav { display: none !important; }

  /* Drawer = nav re-positionné quand body.nav-open */
  body.nav-open .site-nav,
  html body.nav-open nav.site-nav {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    position: fixed !important;
    top: 0 !important; right: 0 !important; bottom: auto !important; left: auto !important;
    height: 100vh !important; height: 100dvh !important;
    width: 85vw !important; max-width: 360px !important;
    background: #fff !important;
    padding: 80px 24px 32px !important;
    gap: 0 !important;
    overflow-y: auto !important;
    z-index: 2147483647 !important;
    box-shadow: -8px 0 24px rgba(0,0,0,0.18) !important;
    transform: translateX(0) !important;
    animation: drawerSlideIn 0.3s ease-out;
  }
  @keyframes drawerSlideIn {
    from { transform: translateX(100%); }
    to { transform: translateX(0); }
  }

  /* Override pour les liens du drawer */
  body.nav-open .site-nav > a,
  body.nav-open .site-nav > .dropdown {
    width: 100%; border-bottom: 1px solid #f0d4e3;
    padding: 14px 0; list-style: none; position: static !important;
  }
  body.nav-open .site-nav > a {
    font-size: 1.05rem; font-weight: 700; color: #1a1a1a;
    display: block; padding: 14px 0;
  }
  body.nav-open .dropdown > a {
    font-size: 1.05rem; font-weight: 700; color: #1a1a1a;
    display: block; padding: 4px 0;
  }
  body.nav-open .dropdown__menu {
    position: static !important; display: block !important;
    box-shadow: none !important; background: transparent !important;
    border: 0 !important; padding: 10px 0 0 12px !important;
    margin: 8px 0 0 !important; min-width: 0 !important;
    max-height: none !important; opacity: 1 !important;
    visibility: visible !important; transform: none !important;
    transition: none !important;
  }
  body.nav-open .dropdown__menu li { padding: 5px 0; list-style: none; }
  body.nav-open .dropdown__menu a {
    font-size: 0.9rem; color: #555; padding: 4px 0;
    display: block; text-transform: none; letter-spacing: 0; font-weight: 400;
  }

  /* Animation burger → croix */
  body.nav-open .nav-burger span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
  body.nav-open .nav-burger span:nth-child(2) { opacity: 0; }
  body.nav-open .nav-burger span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

  /* Backdrop sombre quand drawer ouvert */
  body.nav-open::before {
    content: ''; position: fixed; inset: 0;
    background: rgba(0,0,0,0.45);
    z-index: 2147483646;
    animation: fadeIn 0.3s;
  }
  @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

  body.nav-open { overflow: hidden; }

  /* Neutralise le stacking context du header pendant que le drawer est ouvert */
  body.nav-open .site-header {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    z-index: auto !important;
    position: static !important;
  }
}

/* ========== FIX 2026-05-28 : contenus injectés après H2 dans section__head ========== */
/* Forcer text-align: left, max-width et centrage des ul/ol/p enfants directs */
.section__head > ul,
.section__head > ol,
.section__head > p {
  text-align: left !important;
  max-width: 820px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  line-height: 1.8 !important;
}
.section__head > ul,
.section__head > ol {
  padding-left: 28px !important;
}
.section__head > ul li,
.section__head > ol li {
  margin: 8px 0 !important;
}
.section__head > p {
  font-size: 1rem !important;
  color: #333 !important;
  margin: 14px auto !important;
}
.section__head > p strong { color: #1a1a1a; }
/* Cas particulier : la pseudo-section__head a une div.accent décorative qu'il faut garder centrée */
.section__head .accent { margin-left: auto !important; margin-right: auto !important; max-width: 60px !important; }

/* === ÉTAPE 1 — Uniformité affichage + centrage visages (non-destructif, fiche locale) === */
/* object-fit:cover assure déjà des dimensions d'affichage identiques par emplacement.
   object-position centre le cadrage sur le tiers supérieur, là où se trouvent les visages. */
.hero__avatars img,
.author-cta__avatar,
.footer-coach-card__avatar,
.testimonial-card__media img,
.city-card__media img,
.style-photo__media img,
.studio-block__media img,
.lieu-reception-card img,
.hero-page-style-2__visual-img img,
.hero__bg img {
  object-position: center 30%;
}
/* avatars ronds : visage parfaitement centré */
.author-cta__avatar,
.footer-coach-card__avatar,
.hero__avatars img {
  object-position: center 28%;
}

/* === ÉTAPE 2 — Fix overflow horizontal : dropdowns proches du bord droit alignés à droite === */
@media (min-width: 993px) {
  .site-nav .dropdown:nth-last-child(-n+3) .dropdown__menu {
    left: auto;
    right: 0;
  }
}

/* ===== Redesign présentation contenu (cartes) — 2026 ===== */
.rd-lead{font-size:1.14rem;line-height:1.7;color:#555;max-width:780px;margin:0 auto 10px;}
.rd-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-top:30px;}
.rd-card{background:#fff;border:1px solid #f1e6dd;border-radius:18px;padding:26px 24px;box-shadow:0 4px 18px rgba(0,0,0,.05);transition:transform .2s ease,box-shadow .2s ease;}
.rd-card:hover{transform:translateY(-4px);box-shadow:0 14px 32px rgba(0,0,0,.10);}
.rd-card h3{margin:0 0 10px;font-family:'Epilogue',sans-serif;font-size:1.12rem;color:#1a1a1a;line-height:1.32;}
.rd-card p{margin:0 0 10px;color:#5a5a5a;line-height:1.66;font-size:0.98rem;}
.rd-card p:last-child{margin-bottom:0;}
.rd-card--accent{border-top:4px solid #ff5722;}
.rd-num{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,#ff5722 0%,#E8166D 100%);color:#fff;font-family:'Epilogue',sans-serif;font-weight:900;font-size:1.25rem;margin-bottom:16px;box-shadow:0 6px 16px rgba(232,22,109,.32);}
@media(max-width:600px){.rd-grid{gap:14px}.rd-card{padding:22px 20px}}

.rd-pills{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 6px;}
.rd-pill{display:inline-block;background:#fff;border:1px solid #f0d9cc;color:#444;font-size:0.9rem;padding:7px 14px;border-radius:999px;box-shadow:0 2px 6px rgba(0,0,0,.04);}

.rd-photo{margin:40px auto;max-width:880px;padding:0 24px;}
.rd-photo img{width:100%;height:auto;border-radius:20px;box-shadow:0 12px 34px rgba(0,0,0,.13);display:block;}
@media(max-width:600px){.rd-photo{padding:0 16px}.rd-photo img{border-radius:14px}}

.footer-lieux-btn{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#ff5722,#E8166D);color:#fff;font-weight:800;font-size:0.9rem;padding:12px 20px;border-radius:50px;text-decoration:none;box-shadow:0 6px 18px rgba(232,22,109,.3);transition:transform .15s;}
.footer-lieux-btn:hover{transform:translateY(-2px);color:#fff;}
.lieux-promo{max-width:1000px;margin:0 auto;background:linear-gradient(135deg,#fff8f3 0%,#FFE8F3 100%);border-radius:24px;padding:44px 32px;text-align:center;border:1px solid #f3dccd;box-shadow:0 12px 36px rgba(0,0,0,.06);}
.lieux-promo h2{margin:0 0 10px;}
.lieux-promo p{color:#666;max-width:620px;margin:0 auto 22px;}

/* ===== Lieux de réception — grille de cartes verticales ===== */
.venue-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:26px;max-width:1180px;margin:34px auto 0;padding:0 24px;}
.venue-card{background:#fff;border:1px solid #efe3d8;border-radius:18px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 6px 22px rgba(0,0,0,.06);transition:transform .2s ease,box-shadow .2s ease;}
.venue-card:hover{transform:translateY(-5px);box-shadow:0 16px 38px rgba(0,0,0,.12);}
.venue-card__media{margin:0;aspect-ratio:4/3;overflow:hidden;background:#f3ece4;}
.venue-card__media img{width:100%;height:100%;object-fit:cover;display:block;}
.venue-card__body{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1;text-align:left;}
.venue-card__type{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:#d35400;font-weight:700;margin-bottom:7px;}
.venue-card__body h3{font-family:'Epilogue',sans-serif;font-size:1.18rem;color:#1a1a1a;margin:0 0 10px;line-height:1.28;}
.venue-card__body p{color:#555;font-size:.94rem;line-height:1.62;margin:0 0 12px;text-align:left;}
.venue-card__credit{margin-top:auto !important;margin-bottom:0 !important;font-size:.76rem !important;color:#9a9a9a !important;}
@media(max-width:600px){.venue-grid{padding:0 16px;gap:18px;grid-template-columns:1fr;}}

/* ===== Page ville : sélecteur de danse (4/ligne) ===== */
.dance-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:30px;}
.dance-card{display:flex;flex-direction:column;background:#fff;border:1px solid #efe3d8;border-radius:16px;overflow:hidden;text-decoration:none;color:inherit;box-shadow:0 4px 16px rgba(0,0,0,.05);transition:transform .2s,box-shadow .2s;}
.dance-card:hover{transform:translateY(-5px);box-shadow:0 16px 34px rgba(0,0,0,.12);}
.dance-card__media{margin:0;aspect-ratio:4/3;overflow:hidden;background:#f3ece4;}
.dance-card__media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s;}
.dance-card:hover .dance-card__media img{transform:scale(1.05);}
.dance-card__body{padding:14px 16px 16px;display:flex;flex-direction:column;flex:1;}
.dance-card__body h3{font-family:'Epilogue',sans-serif;font-size:1.05rem;margin:0 0 2px;color:#1a1a1a;}
.dance-card__mood{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:#d35400;font-weight:700;margin-bottom:8px;}
.dance-card__body p{font-size:.86rem;color:#666;line-height:1.5;margin:0 0 10px;}
.dance-card__go{margin-top:auto;font-size:.83rem;font-weight:700;color:#E8166D;}
@media(max-width:980px){.dance-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:700px){.dance-grid{grid-template-columns:repeat(2,1fr);gap:12px;}}
.rd-emoji{font-size:1.7rem;display:block;margin-bottom:8px;}
.rd-cta-row{text-align:center;margin:32px 0 4px;}
.rd-faq{max-width:840px;margin:28px auto 0;}
.rd-faq__item{background:#fff;border:1px solid #f0e3d8;border-radius:12px;margin-bottom:12px;padding:4px 22px;}
.rd-faq__item summary{cursor:pointer;font-weight:700;color:#1a1a1a;font-family:Epilogue,sans-serif;font-size:1.04rem;padding:14px 0;list-style:none;}
.rd-faq__item summary::-webkit-details-marker{display:none;}
.rd-faq__item summary::after{content:"+";float:right;color:#d35400;font-size:1.3rem;line-height:1;}
.rd-faq__item[open] summary::after{content:"–";}
.rd-faq__item p{color:#555;line-height:1.65;margin:0 0 16px;}

.rd-checklist{max-width:860px;margin:26px auto 0;list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.rd-checklist li{background:#fff;border:1px solid #f0e3d8;border-radius:12px;padding:16px 18px 16px 46px;position:relative;color:#444;line-height:1.55;font-size:.95rem;box-shadow:0 3px 12px rgba(0,0,0,.04);}
.rd-checklist li::before{content:"✓";position:absolute;left:16px;top:15px;width:22px;height:22px;background:linear-gradient(135deg,#ff5722,#E8166D);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;}
@media(max-width:700px){.rd-checklist{grid-template-columns:1fr;}}

/* ILF-READABILITY-2026 */
/* ===== Pages « Ils l'ont fait » : lisibilite editoriale (2026-06-13) ===== */
.ilf-page{background:#f7f2ec}
/* titres de section mesures (les h2 ne sont que des titres de section) */
.ilf-page section.ilf-card h2,
.ilf-page section.ilf-wrap h2,
.ilf-page section.section--grey h2{
  font-family:'Epilogue',sans-serif;font-weight:800;font-size:clamp(1.4rem,2.2vw,1.9rem);
  line-height:1.22;letter-spacing:-.01em;color:var(--tertiary);margin:0 0 18px
}
.ilf-page section.ilf-card h3,
.ilf-page section.ilf-wrap h3{
  font-family:'Epilogue',sans-serif;font-weight:700;font-size:clamp(1.06rem,1.6vw,1.26rem);
  line-height:1.3;color:var(--tertiary);margin:22px 0 10px
}
/* preserve les titres des cartes internes (rd-card / dance / venue) */
.ilf-page section .rd-card h3{font-size:1.12rem;color:#1a1a1a;margin:0 0 10px}
.ilf-page section .dance-card__body h3{font-size:1.05rem;color:#1a1a1a;margin:0 0 2px}
.ilf-page section .venue-card__body h3{font-size:1.18rem;color:#1a1a1a;margin:0 0 10px}
/* sections de texte -> carte encadree (fond force pour ecraser les bg inline bidons) */
.ilf-page section.ilf-card{
  max-width:940px;margin:26px auto;padding:30px 38px;background:#fff!important;
  border:1px solid #efe3d8;border-radius:20px;box-shadow:0 6px 22px rgba(0,0,0,.05)
}
.ilf-page section.ilf-card>.container,.ilf-page section.ilf-wrap>.container{max-width:none;padding-left:0;padding-right:0;width:auto}
.ilf-page section.ilf-card li{line-height:1.62}
.ilf-page section.ilf-card ul>li,.ilf-page section.ilf-card ol>li{margin-bottom:10px}
.ilf-page section.ilf-wrap{max-width:1060px;margin:30px auto}
@media(max-width:680px){.ilf-page section.ilf-card{padding:24px 20px;border-radius:16px;margin:18px 14px}}

/* ILF-RDV-BAND-CENTER-2026 */
/* Pages « Ils l'ont fait » : centrer le bandeau RDV visio (#rdv-visio-30min) à la largeur des cartes */
.ilf-page #rdv-visio-30min{max-width:940px;margin-left:auto!important;margin-right:auto!important;border-radius:20px;padding-left:24px;padding-right:24px}
@media(max-width:680px){.ilf-page #rdv-visio-30min{margin-left:14px!important;margin-right:14px!important;border-radius:16px}}

/* AA-GALLERY-2026 */
.aa-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:22px auto 4px;max-width:1040px}
.aa-figure{margin:0;border-radius:16px;overflow:hidden;background:#fff;border:1px solid #efe3d8;box-shadow:0 6px 22px rgba(0,0,0,.06)}
.aa-figure img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.aa-figure figcaption{padding:12px 15px;font-family:'Epilogue',sans-serif;font-weight:700;font-size:.96rem;color:var(--tertiary)}
@media(max-width:780px){.aa-gallery{grid-template-columns:1fr;gap:14px;max-width:520px}}

/* AA-GALLERY-REPET-2026 */
.aa-gallery--repet .aa-figure img{aspect-ratio:4/3}

/* AA-VIDEO-2026 */
.aa-video{max-width:760px;margin:22px auto 6px}
.aa-video video{display:block;width:100%;height:auto;aspect-ratio:16/9;border-radius:16px;background:#000;box-shadow:0 8px 26px rgba(0,0,0,.14)}

/* AA-PHOTOBIG-2026 */
.aa-photo-big{max-width:1000px;margin:18px auto 4px;border-radius:18px;overflow:hidden;background:#fff;border:1px solid #efe3d8;box-shadow:0 8px 26px rgba(0,0,0,.12)}
.aa-photo-big img{display:block;width:100%;height:auto}
.aa-photo-big figcaption{padding:12px 16px;font-family:'Epilogue',sans-serif;font-weight:700;font-size:.96rem;color:var(--tertiary)}

/* ILF-PHOTOS-SMALLER-2026 */
.ilf-page .rd-photo{max-width:600px;margin:48px auto;padding:0 16px}
.ilf-page .gal{max-width:760px;margin:44px auto;padding:0 16px;display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ilf-page .gal img{width:100%;height:auto;border-radius:14px;box-shadow:0 8px 24px rgba(0,0,0,.1)}
@media(max-width:680px){.ilf-page .gal{grid-template-columns:1fr;gap:14px}.ilf-page .rd-photo{margin:32px auto}}

/* ILF-GAL-UNIFORM-2026 */
.ilf-page .gal img{aspect-ratio:3/2;object-fit:cover}

/* ILF-GAL-3COL-2026 */
.ilf-page .gal{max-width:840px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}

/* ILF-AVIS-CARDS-2026 — avis Google en cartes */
.ilf-page .tg{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:20px;margin:26px auto 6px;max-width:1080px}
.ilf-page .tm{background:#fff;border:1px solid #efe3d8;border-radius:18px;padding:24px 26px;box-shadow:0 6px 22px rgba(0,0,0,.05);display:flex;flex-direction:column}
.ilf-page .tm__s{color:#f0a500;font-size:1.05rem;letter-spacing:2px;margin-bottom:12px;line-height:1}
.ilf-page .tm p{font-size:.97rem;line-height:1.62;color:#454545;margin:0 0 18px;flex:1}
.ilf-page .tm__a{display:flex;align-items:center;gap:12px;margin-top:auto}
.ilf-page .tm__av{width:46px;height:46px;border-radius:50%;background:var(--primary-container,#E8166D);color:#fff;display:flex;align-items:center;justify-content:center;font-family:"Epilogue",sans-serif;font-weight:800;font-size:.95rem;flex-shrink:0}
.ilf-page .tm__n{font-family:"Epilogue",sans-serif;font-weight:700;color:var(--tertiary);font-size:.98rem;line-height:1.2}
.ilf-page .tm__loc{font-size:.84rem;color:#8a8a8a;margin-top:2px}
@media(max-width:680px){.ilf-page .tg{grid-template-columns:1fr}}

/* ILF-STORY-CARDS-2026 — histoires de couples en cartes */
.ilf-page .story-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:20px;margin:22px auto;max-width:1080px}
.ilf-page .story-card{background:#fff;border:1px solid #efe3d8;border-radius:18px;padding:24px 26px;box-shadow:0 6px 22px rgba(0,0,0,.05)}
.ilf-page .story-card h3{font-family:"Epilogue",sans-serif;font-weight:800;font-size:1.06rem;color:var(--tertiary);margin:0 0 12px;padding-left:12px;border-left:3px solid var(--primary-container,#E8166D)}
.ilf-page .story-card p{font-size:.95rem;line-height:1.6;color:#454545;margin:0 0 10px}
.ilf-page .story-card p:last-child{margin-bottom:0}
@media(max-width:680px){.ilf-page .story-grid{grid-template-columns:1fr}}

/* HOME-YT-SHOWCASE-2026 */
.yt-showcase{text-align:center;padding:var(--stack-lg,64px) var(--gutter,24px)}
.yt-showcase>.container{max-width:1120px;margin:0 auto}
.yt-showcase__lead{max-width:760px;margin:0 auto 6px;color:#555;font-size:1.08rem;line-height:1.6}
.yt-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:1080px;margin:28px auto 0}
.yt-card{margin:0}
.yt-facade{position:relative;display:block;width:100%;aspect-ratio:16/9;border:0;padding:0;border-radius:18px;overflow:hidden;cursor:pointer;background-size:cover;background-position:center;box-shadow:0 12px 32px rgba(0,0,0,.18)}
.yt-facade::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.12);transition:background .2s}
.yt-facade:hover::after{background:rgba(0,0,0,.24)}
.yt-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:76px;height:76px;border-radius:50%;background:var(--primary-container,#E8166D);z-index:2;transition:transform .2s;box-shadow:0 6px 18px rgba(0,0,0,.3)}
.yt-facade:hover .yt-play{transform:translate(-50%,-50%) scale(1.08)}
.yt-play::before{content:"";position:absolute;top:50%;left:55%;transform:translate(-50%,-50%);border-style:solid;border-width:15px 0 15px 26px;border-color:transparent transparent transparent #fff}
.yt-card figcaption{margin-top:12px;font-family:"Epilogue",sans-serif;font-weight:700;color:var(--tertiary)}
.yt-iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:18px;display:block;box-shadow:0 12px 32px rgba(0,0,0,.18)}
@media(max-width:760px){.yt-grid{grid-template-columns:1fr;gap:18px}}
