/*
 * Studio Humeur — Feuille de styles unique
 *
 * SOMMAIRE :
 * 1. Variables & Reset
 * 2. Structure & Composants communs
 * 3. En-tête (Header) & Navigation
 * 4. Hero & Sections principales (Accueil)
 * 5. Cartes, Tarifs & Formats
 * 6. Page Atelier
 * 7. Page Ateliers (Listing)
 * 8. Page Réservation
 * 9. Formats dédiés (Privé, Événements, Entreprise)
 * 10. Styles Responsive (@media)
 */

/* =========================================================
   1. VARIABLES & RESET
   --soft: #e9e4dd;
       --ivory: #F4F0EB;

   ========================================================= */
   :root {
    --burgundy: #a42136;
    --burgundy-dark: var(--burgundy);
    --ink: #3E240B;
    --muted: rgba(62,36,11,.62); 
    --line: var(--soft);
    --ivory: #EFEAE4;
    --white: #ffffff;
    --soft: #EFEAE4; 
    --extrasoft: #958271;
    --erreur:    #fbeaea;
    --message:   #eef7ee;
    --jost: "Jost", "Arial Narrow", sans-serif;
    --open: "Open Sans", Arial, sans-serif;
    --container: min(980px, calc(100% - 128px));
    --ease: cubic-bezier(.22, .61, .36, 1);
  }
  
  * { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body { margin: 0; color: var(--ink); background: var(--white); font-family: var(--open); font-size: 13px; line-height: 1.6; }
  body.menu-open { overflow: hidden; }
  a { color: inherit; text-decoration: none; }
  button { font: inherit; border: 0; }
  button, input, select, textarea { border: 0; }
  img { display: block; max-width: 100%; }
  
  /* =========================================================
     2. STRUCTURE & COMPOSANTS COMMUNS
     ========================================================= */
  .container { width: var(--container); max-width: 980px; margin-inline: auto; }
  .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
  .skip-link { position: fixed; z-index: 100; left: 12px; top: -60px; padding: 8px 14px; color: var(--white); background: var(--burgundy); transition: top .2s ease; }
  .skip-link:focus { top: 12px; }
  
  .button { display: inline-flex; min-height: 49px; align-items: center; justify-content: center; gap: 0; padding: 0 22px; font-family: var(--jost); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .09em; transition: transform .25s var(--ease), background .25s ease, color .25s ease; }
  .button > span, .text-link > span { display: none; }
  .button:hover, .text-link:hover { transform: translateY(-3px); }
  .button-primary { margin-top: 20px; color: var(--ivory); background: var(--burgundy); }
  .button-light { color: var(--ink); background: var(--white); }
  .button-small { min-height: 34px; padding: 0 15px; font-size: 10px; }
  
  .text-uppercase { display:inline-flex; align-items:center; color:var(--ivory); font-family:var(--jost); font-size: 12px; font-weight: 400; text-transform: uppercase; letter-spacing: .09em; transition: transform .25s var(--ease), background .25s ease, color .25s ease; }
  .text-uppercase-ink { display:inline-flex; align-items:center; color:var(--ink); font-family:var(--jost); font-size: 12px; font-weight: 400; text-transform: uppercase; letter-spacing: .09em; transition: transform .25s var(--ease), background .25s ease, color .25s ease; }
  
  .text-link { display:inline-flex; align-items:center; gap:12px; margin-top:12px; color:var(--burgundy); font-family:var(--jost); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .09em; transition: transform .25s var(--ease), background .25s ease, color .25s ease; padding-bottom:4px; }
  .text-link span { font-size: 17px; line-height: 0; transition: transform .2s ease; }
  .text-link a, .text-link-light { transition: transform .2s ease; }
  .text-link-light { color: var(--soft); margin-bottom: 10px; }
  .text-link.dark { color: var(--ink); font-weight:500;  margin-top: 16px;}
  .text-link-light a:hover { transform: translateY(-3px); }
  
  /* Suppressions de bordures globales */
  .text-link, .concept-card, .approach-points article, .pricing-offer, .pricing-offer a, .discovery-offer, .discovery-offer a, .membership-benefits, .offer-card, .quote-card-outline, .about-stamp, .community-photo-placeholder, .practical-item, .footer-bottom, .mobile-menu a, .class-card-shape, .class-card-shape::before, .class-card-shape::after { border:0; }
  
  /* Global Typography */
  h1, h2, h3, p { margin-top: 0; }
  h1, h2, h3 { font-family: var(--jost); font-weight: 400; }
  h1, h2 { margin-bottom: 0; font-weight: 300; line-height: .93; text-transform: uppercase; letter-spacing: -.045em; }
  h1 { max-width: 680px; font-size: clamp(62px, 9.4vw, 132px); }
  h1 em, h2 em, h3 em { color: inherit; font-style: normal; }
  
  /* Animations de révélation */
  .reveal { opacity: 1; transform: none; transition: opacity .7s var(--ease), transform .7s var(--ease); }
  .js .reveal { opacity: 0; transform: translateY(18px); }
  .js .reveal.is-visible { opacity: 1; transform: none; }
  
  /* =========================================================
     3. EN-TÊTE (HEADER) & NAVIGATION
     ========================================================= */
  @property --bar-progress  { syntax: "<number>"; inherits: true; initial-value: 0; }
  @property --logo-progress { syntax: "<number>"; inherits: true; initial-value: 0; }
  
  .site-header {
    --logo-progress: 0;
    --bar-progress: 0;
    --bar-h: 86px;
    --header-h: 140px;
    --logo-slot: 150px;
    --header-now: calc(var(--header-h) - ((var(--header-h) - var(--bar-h)) * var(--bar-progress)));
    position: fixed;
    z-index: 20;
    top: 0;
    width: 100%;
    color: var(--white);
    color: color-mix(in srgb, var(--ink) calc(var(--bar-progress) * 100%), var(--white));
    background: transparent;
    transition: --bar-progress .6s var(--ease), --logo-progress .6s var(--ease);
  }
  .site-header::before {
    position: absolute;
    z-index: -1;
    top: 0; right: 0; left: 0;
    height: var(--bar-h);
    content: "";
    background: var(--soft);
    opacity: var(--bar-progress);
    backdrop-filter: blur(14px);
  }

 /* =========================================================
   TOPBAR FIXE (Alternative sans effet de scroll)
   ========================================================= */
.site-header.site-header-fixed {
  --bar-h: 86px;
  --header-h: 140px; /* Hauteur globale pour loger la barre du haut + la navigation en dessous */
  --logo-slot: 120px;
  color: var(--ink);
  background: var(--soft);
  backdrop-filter: blur(14px);
}

.site-header.site-header-fixed.short {
  --bar-h: 50px;

}

.site-header.site-header-fixed::before {
  display: block;
  height: var(--bar-h);
  background: var(--soft);
  opacity: 1;
}

.site-header.site-header-fixed .header-inner {
  align-items: flex-start;
  min-height: var(--bar-h);
}

.site-header.site-header-fixed .brand-logo-round {
  display: none;
}

.site-header.site-header-fixed .brand-logo-wordmark {
  width: 120px;
  height: auto;
  opacity: 1;
  transform: translateY(0);
}

/* Navigation Desktop intégrée et visible en permanence */
.site-header.site-header-fixed .desktop-nav {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  flex: 1 1 100%;
  justify-content: center;
  align-items: center;
  height: 38px;
  margin-bottom: 0px;
  gap: 28px;
  font-family: var(--jost);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .09em;
  transform: translateY(0);
}

.site-header.site-header-fixed .desktop-nav a::after {
  display: none;
}

.site-header.site-header-fixed .header-cta {
  align-self: flex-start;
  margin-top: 10px;
  margin-left: auto;
}

.site-header.site-header-fixed .button-small {
  color: var(--burgundy);
  background: var(--white);
}

.site-header.site-header-fixed .socials-menu {
  align-self: flex-start;
  margin-top: 10px;
  margin-right: auto;
}

.site-header.site-header-fixed .socials-menu a {
  color: var(--ink);
}

/* Gestion mobile pour la topbar fixe (en dessous de 580px) */
@media (max-width: 580px) {
  .site-header.site-header-fixed {
    --header-h: 96px;
    --bar-h: 60px;
  }
  .site-header.site-header-fixed .desktop-nav {
    display: none; /* Le burger prend le relais sur mobile */
  }
  .site-header.site-header-fixed .menu-toggle {
    display: block;
    width: 32px;
    padding: 4px;
    margin-top: 0;
  }
}
  
  .header-inner {
    position: relative;
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: var(--header-gap);
    min-height: var(--header-now);
  }
  .header-inner::before { content: ""; display: none; }
  
  /* Logo */
  .brand { position: absolute; left: 50%; width: var(--logo-slot); color: inherit; transform: translateX(-50%); }
  :where(.site-header) .brand-logo { position: absolute; inset: 0; margin: auto; object-fit: contain; filter: none; will-change: transform, opacity; }
  .brand-logo-round { width: 150px; height: 150px; margin-top: 10px; opacity: calc(1 - var(--logo-progress)); transform: scale(calc(1 - (.2 * var(--logo-progress)))); }
  .brand-logo-wordmark { width: 120px; height: auto; margin-top: 10px; opacity: var(--bar-progress); transform: translateY(0); }
  .brand-mark { display: grid; width: 35px; height: 35px; place-items: center; color: var(--burgundy); background: var(--white); font-size: 11px; font-weight: 800; letter-spacing: -.08em; transform: rotate(-7deg); }
  .brand-name { font-size: 17px; font-weight: 700; }
  
  /* Réseaux sociaux */
  .socials-menu, .socials-footer { display: flex; align-items: center; gap: 0; animation: fadeUp .5s .14s ease both; }
  .socials-menu { align-self: flex-start; margin-top: 10px; margin-right: auto; }
  .socials-menu a, .socials-footer a { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; color: var(--ivory); text-decoration: none; transition: transform .2s ease, color .2s ease; }
  .socials-menu a { color: var(--inherent); }
  .socials-menu a:hover, .socials-footer a:hover { transform: translateY(-3px); }
  .socials-menu svg, .socials-footer svg { width: 20px; height: 20px; }
  
  /* CTA Header */
  .header-cta { align-self: flex-start; margin-top: 10px; margin-left: auto; }
  .site-header .button-small {
    align-self: right;
    color: color-mix(in srgb, var(--burgundy) calc(var(--bar-progress) * 100%), var(--white));
    background: color-mix(in srgb, var(--white) calc(var(--bar-progress) * 100%), transparent);
  }
  
  /* Navigation Desktop */
  .desktop-nav {
    display: flex;
    flex: 1 1 100%;
    justify-content: center;
    align-items: center;
    height: 38px;
    margin-bottom: 0px;
    gap: 28px;
    font-family: var(--jost);
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .09em;
    opacity: var(--bar-progress);
    transform: translateY(0);
    pointer-events: none;
  }
  .site-header.scrolled .desktop-nav { pointer-events: auto; }
  .site-header:not(.bar-entering):not(.scrolled) .desktop-nav { visibility: hidden; }
  .desktop-nav a, .footer-nav a { position: relative; transition: transform .2s ease; }
  .desktop-nav a:hover, .footer-nav a:hover { transform: translateY(-3px); }
  .desktop-nav a::after { display:none; }
  
  /* Menu Toggle & Mobile Menu */
  .menu-toggle { display: none; align-self: flex-start; width: 40px; height: 40px; margin-top: 10px; padding: 8px; color: inherit; background: transparent; cursor: pointer; }
  .menu-toggle span:not(.sr-only) { display: block; width: 23px; height: 1px; margin: 6px auto; background: currentColor; transition: transform .25s ease; }
  .mobile-menu { display: none; }
  
  @supports not (color: color-mix(in srgb, red 50%, blue)) {
    .site-header.scrolled { color: var(--ink); }
    .site-header.scrolled .button-small { color: var(--white); background: var(--burgundy); }
  }
  
  /* =========================================================
     4. HERO & SECTIONS PRINCIPALES (ACCUEIL)
     ========================================================= */
  .hero { position: relative; min-height: min(760px, 100vh); display: flex; align-items: center; overflow: hidden; color: var(--white); background: var(--ink); }
  .hero-image-wrap, .hero-tint { position: absolute; inset: 0; }
  .hero-image { width: 100%; height: 100%; object-fit: cover; object-position: 55% center; opacity: .92; }
  .hero-tint { background: linear-gradient(90deg, rgba(62,36,11,.88) 0%, rgba(62,36,11,.58) 37%, rgba(62,36,11,.08) 78%), linear-gradient(0deg, rgba(62,36,11,.3), transparent 50%); }
  .hero-content { position: relative; z-index: 1; padding-top: 100px; }
  
  /*.eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 22px; color: var(--burgundy); font-family: var(--jost); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .17em; }
  .eyebrow, .class-tag, .card-number, .class-number, .practical-label, .footer-nav p { display: none !important; }
  .eyebrow span { display: block; width: 26px; height: 1px; background: currentColor; }
  .eyebrow-light { color: var(--ivory); }*/
  
  .hero h1 em { color: inherit; font-weight: 400; }
  .hero-intro { max-width: 385px; margin: 34px 0 30px; color: rgba(255,255,255,.84); font-size: 16px; line-height: 1.55; }
  .hero-actions { display: flex; align-items: center; gap: 26px; }
  .hero-offer-line { margin:20px 0 0; color:var(--soft); font:400 12px var(--jost); letter-spacing:.09em; text-transform:uppercase; }
  .hero-offer-line span { margin:0 4px; color:transparent; }
  
  .hero-index { position: absolute; right: 32px; bottom: 34px; font-family: var(--jost); font-size: 11px; letter-spacing: .18em; }
  .hero-index span { margin: 0 6px; opacity: .5; }
  .hero-side-note { display: none; }
  
  .section { padding: 100px 0; }
  .section-ivory { background: var(--ivory); }
  .section-white { background: var(--white); }
  .section-burgundy { color: var(--ivory); background: var(--burgundy); }
  .section-heading, .practical-title { max-width: 700px; margin-bottom: 35px; }
  .section-heading h2, .workshops-heading h2, .about-copy h2, .practical-title { font-size: clamp(45px, 6vw, 85px); font-weight: 400; }
  .section-lead { max-width: 420px; margin: 31px 0 0 82px; color: var(--muted); font-size: 17px; line-height: 1.55; }
  .section-heading-row { display: flex; align-items: end; justify-content: space-between; gap: 60px; max-width: none; }
  .section-heading-row > div { flex: 1; }
  .section-side-copy { max-width: 255px; margin: 0 0 7px; color: var(--muted); font-size: 13px; line-height: 1.6; }
  .section-heading-light .section-side-copy { color: rgba(255,255,255,.72); }
  
  /* Concept Grid */
  .concept-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
  .concept-card { position: relative; min-height: 310px; padding: 28px; background: transparent; transition: background .3s ease, transform .3s var(--ease); }
  .concept-card:hover { background: var(--ivory); transform: translateY(-5px); }
  .concept-card-featured { color: var(--ivory); background: var(--ink); }
  .concept-card-featured:hover { background: var(--ink); }
  .card-number, .class-number { margin: 0; font-family: var(--jost); font-size: 13px; font-weight: 700; letter-spacing: .08em; }
  .concept-icon { margin: 45px 0 23px; font-family: var(--jost); font-size: 34px; line-height: 1; }
  .concept-card h3 { margin-bottom: 10px; font-size: 28px; text-transform: uppercase; letter-spacing: -.04em; }
  .concept-card p { max-width: 265px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
  .concept-card-featured p { color: rgba(255,255,255,.78); }
  
  /* Manifesto & Approach */
  .manifesto-note { display: flex; align-items: center; gap: 11px; margin-top: 50px; color: var(--muted); font-family: var(--jost); font-size: 10px; text-transform: uppercase; letter-spacing: .13em; }
  .manifesto-note span { width: 8px; height: 8px; border-radius: 50%; background: var(--burgundy); }
  .manifesto { padding: 40px 0; }
  .approach-points { display:grid; grid-template-columns:repeat(4, 1fr); gap:24px; margin-top:0; }
  .approach-points.deuxcols { display:block; margin-top:0; }

  .approach-points article { padding-top: 18px; }
  .approach-points article::before { display:block; width:18px; height:18px; margin-bottom:22px; border-radius:50%; background:var(--ink); content:""; transition:transform .25s var(--ease); }
  .approach-points article:hover::before { transform:scale(1.25); }
  .approach-points h3 { margin: 0 0 9px; font-size: 23px; font-weight: 400; line-height: 1.1; letter-spacing: -.035em; }
  .approach-points p { max-width: 260px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
  .approach-points-light { gap:28px; }
  .approach-points-light article { padding-top:8px; }
  .approach-points-light article::before { width:9px; height:9px; margin-bottom:14px; background:var(--burgundy); }
  .approach-points-light h3 { margin-bottom:6px; font-size:19px; text-transform:uppercase; }
  .approach-points-light p { max-width:230px; font-size:12px; line-height:1.5; }
  .approach-heading { max-width:760px; margin:0 0 18px; }
  .approach-heading h2 { margin:0; color:var(--ink); font:400 clamp(28px,4.2vw,50px)/1.04 var(--jost); letter-spacing:-.045em; }
  .approach-points.deuxcols p { max-width: 500px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }

  .positioning-line { max-width:760px; margin:70px auto 0; color:var(--ink); font:400 clamp(25px,3vw,42px)/1.05 var(--jost); letter-spacing:-.045em; text-align:center; }
  .positioning-line-light { max-width:520px; margin:0 0 34px; color:var(--ivory); font-size:clamp(24px,3vw,39px); text-align:left; }
  
  /* Cours (Class List) */
  .class-list { display: grid; grid-template-columns: 1.18fr .91fr .91fr; gap: 16px; }
  .class-card { position: relative; min-height: 440px; overflow: hidden; padding: 27px; color: var(--white); background: var(--ink); }
  .class-card-secondary { color: var(--ink); background: var(--ivory); }
  .class-card-main { color:var(--white); background:var(--ink); }
  .class-card-workshop { background: var(--ivory); }
  .class-card-workshop:hover { background: var(--white); }
  .class-card-top { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; }
  .class-tag { font-family: var(--jost); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .14em; }
  .class-arrow { display: none; }
  .class-card-content { position: absolute; z-index: 1; right: 27px; bottom: 27px; left: 27px; }
  .class-number { margin-bottom: 30px; }
  .class-card h3, .offer-card h3 { margin: 0 0 22px; font-size:clamp(39px, 4vw, 62px); font-weight: 400; line-height: .9; text-transform: uppercase; letter-spacing: -.06em; }
  .class-card-main h3 em { color: inherit; }
  .class-card p:not(.class-number), .offer-card p:not(.card-number):not(.class-tag) { max-width: 345px; margin-bottom: 27px; color: rgba(255,255,255,.78); font-size: 13px; line-height: 1.6; }
  .class-card-secondary p:not(.class-number), .offer-card:not(.offer-card-dark) p:not(.card-number):not(.class-tag) { color: var(--muted); }
  .class-card .text-link { color: inherit; }
  .class-list-doors { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .doorway-card { min-height:390px; }
  .doorway-card .class-card-content { max-width:520px; }
  .doorway-card .doorway-kicker { margin:0 0 14px; color:var(--burgundy); font:700 10px var(--jost); letter-spacing:.14em; text-transform:uppercase; }
  .class-card-main .doorway-kicker { color:var(--ivory); }
  .doorway-card h3 { margin-bottom:14px; }
  .doorway-card p:not(.doorway-kicker) { margin-bottom:18px; }
  .class-card-shape { position: absolute; width: 270px; height: 270px; top: 100px; right: -72px; border-radius: 50%; }
  .class-card-shape::before, .class-card-shape::after { position: absolute; content: ""; border-radius: 50%; }
  .class-card-shape::before { inset: 25px; }
  .class-card-shape::after { inset: 55px; }
  .class-card-main .class-card-shape { background: rgba(255,255,255,.08); }
  .class-card-main .class-card-shape::before { background: rgba(255,255,255,.07); }
  .class-card-main .class-card-shape::after { background: rgba(255,255,255,.06); }

  .entry-door-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
  .entry-door-column { display:grid; min-width:0; gap:10px; align-content:start; }
  .entry-door-subgrid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .entry-door-subcard { display:flex; min-width:0; min-height:235px; flex-direction:column; align-items:flex-start; padding:18px; color:var(--ivory); background:var(--ink); }
  .entry-door-subcard h4 { margin:0 0 10px; color:var(--white); font:400 19px/1.05 var(--jost); letter-spacing:-.03em; text-transform:uppercase; }
  .entry-door-subcard p { margin:0 0 16px; color:rgba(255,255,255,.78); font-size:11px; line-height:1.55; }
  .entry-door-subcard .text-link { margin-top:auto; color:var(--ivory); font-size:9px; }
  .entry-door-subcard .text-link:hover { color:var(--white); }
  
  /* Aperçu Ateliers */
  .workshops { overflow: hidden; color: var(--ink); background: var(--ivory); }
  .workshops-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 28px; }
  .workshops-kicker { margin: 0 0 18px; color: var(--burgundy); font: 700 10px var(--jost); letter-spacing: .16em; text-transform: uppercase; }
  .workshops-intro { max-width: 245px; margin: 0 0 4px; color: var(--muted); font-size: 13px; line-height: 1.6; }
  .workshops-list { display: grid; gap: 6px; }
  .workshops .atelier-link { display: grid; grid-template-columns: 165px 1fr auto; align-items: center; gap: 24px; min-height: 86px; padding: 16px 20px; color: var(--ink); background: var(--white); transition: color .25s ease, background .25s ease, transform .25s var(--ease); }
  .workshops .atelier-link:hover { color: var(--white); background: var(--ink); transform: translateX(8px); }
  .workshops .atelier-link time { display: flex; align-items: baseline; gap: 9px; font-family: var(--jost); text-transform: uppercase; }
  .workshops .atelier-link time strong { font-size: 38px; font-weight: 300; line-height: .9; letter-spacing: -.07em; }
  .workshops .atelier-link time span, .workshops .atelier-link-action { font-size: 9px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
  .workshops .atelier-link-title { font: 400 clamp(20px, 2.7vw, 30px) / 1 var(--jost); letter-spacing: -.045em; text-transform: uppercase; }
  .workshops .atelier-link-action { color: var(--burgundy); }
  .workshops .atelier-link:hover .atelier-link-action { color: var(--ivory); }
  .workshops-link { margin-top: 24px; color: var(--burgundy); }
  .workshops-link:hover { color: var(--ink); }
  
  /* =========================================================
     5. CARTES, TARIFS & FORMATS
     ========================================================= */
  .pricing-offers { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; align-items:stretch; }
  .pricing-offer { min-height:250px; display:flex; flex-direction:column; justify-content:space-between; padding:22px; background:var(--soft); }
  .pricing-offer-featured { color:var(--ivory); background:var(--ink); }
  .pricing-offer-featured:hover { background:var(--ink); }
  .pricing-offer h3 { margin:0; font-size:21px; font-weight:400; line-height:1.05; letter-spacing:-.04em; text-transform:uppercase; }
  .pricing-offer p { margin:8px 0 0; color:var(--muted); font-size:11px; line-height:1.6; }
  .pricing-offer-featured p { color:var(--soft); }
  .pricing-offer strong { margin-top:auto; color:var(--burgundy); font:400 50px/.9 var(--jost); letter-spacing:-.07em; }
  .pricing-offer-featured strong { color:var(--ivory); }
  .pricing-offer strong small { margin-left:3px; font-size:.38em; letter-spacing:0; }
  .pricing-offer a { align-self:flex-start; margin-top:24px; padding-bottom:5px; font:400 10px var(--jost); letter-spacing:.12em; text-transform:uppercase; }
  .pricing-offer.reveal { opacity: 1; transform: none; }
  
  /* Offre Découverte */
  .discovery-offer { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:16px; margin-bottom:16px; padding:20px 22px; background:var(--burgundy); }
  .discovery-offer h3 { margin:0 0 3px; color:var(--ivory); font:400 20px/1.05 var(--jost); text-transform:uppercase; }
  .discovery-offer p { margin:8px 0 0; color:var(--soft); font-size:11px;  }
  .discovery-offer strong { margin-top:auto; color:var(--white); font:400 50px/.9 var(--jost); letter-spacing:-.07em; }
  .discovery-offer strong small { margin-left:3px; font-size:.38em; letter-spacing:0; }
  .discovery-offer a { padding-bottom:4px; font:400 10px var(--jost); letter-spacing:.12em; text-transform:uppercase; color:var(--white); }
  
  .pricing-offer-launch { color:var(--white); background:var(--burgundy); }
  .pricing-offer-launch p { color:var(--soft); }
  .pricing-offer-launch h3 { color:var(--white); }
  .pricing-offer-launch strong { color:var(--white); }
  
  .membership-benefits { display:grid; grid-template-columns:1.35fr repeat(4,1fr); gap:16px; margin-top:16px; padding:28px 22px; background:var(--ivory); }
  .membership-benefits h3 { margin:0 0 8px; font-size:24px; font-weight:400; line-height:1; text-transform:uppercase; }
  .membership-benefits h4 { margin:0 0 9px; font-size:16px; font-weight:400; line-height:1.1; text-transform:uppercase; }
  .membership-benefits p { margin:0; color:var(--muted); font-size:12px; }

  .pricing-catalogue-kicker { margin:0 0 12px; color:var(--burgundy); font:700 10px var(--jost); letter-spacing:.14em; text-transform:uppercase; }
  .pricing-category-heading { margin:46px 0 15px; color:var(--ink); font:400 23px/1.05 var(--jost); letter-spacing:-.03em; text-transform:uppercase; }
  .pricing, #offres, #tarifs, #offres-yoga, #offres-experiences { scroll-margin-top:96px; }
  .catalogue-anchor { display:block; height:0; }
  .offer-catalogue-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:stretch; margin-top:32px; }
  .offer-panel { min-width:0; padding:24px; background:var(--soft); }
  .offer-panel-heading h3 { margin:0 0 9px; color:var(--ink); font:400 25px/1.05 var(--jost); letter-spacing:-.04em; text-transform:uppercase; }
  .offer-panel-heading p { margin:0; color:var(--muted); font-size:12px; line-height:1.55; }
  .offer-price-line { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:17px 0; border-top:1px solid rgba(62,36,11,.13); }
  .offer-price-line:first-of-type { margin-top:12px; }
  .offer-price-line h4 { margin:0 0 4px; color:var(--ink); font:600 12px var(--jost); letter-spacing:.04em; text-transform:uppercase; }
  .offer-price-line p { margin:0; color:var(--muted); font-size:11px; line-height:1.5; }
  .offer-price-line strong { flex:0 0 auto; color:var(--burgundy); font:400 31px/.95 var(--jost); letter-spacing:-.05em; text-align:right; }
  .offer-price-line strong small { display:block; margin-top:5px; color:var(--muted); font:600 9px/1.25 var(--jost); letter-spacing:0; }
  .experiences-stack { display:grid; grid-template-rows:1fr 1fr; gap:14px; min-width:0; }
  .experience-panel { display:flex; flex-direction:column; justify-content:space-between; gap:18px; }
  .experience-price { display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding-top:12px; border-top:1px solid rgba(62,36,11,.13); }
  .experience-price strong { color:var(--burgundy); font:400 32px/.95 var(--jost); letter-spacing:-.05em; white-space:nowrap; }
  .experience-price small { margin-left:4px; color:var(--muted); font:600 10px/1.2 var(--jost); letter-spacing:0; }
  .experience-price span { color:var(--muted); font:600 9px/1.4 var(--jost); letter-spacing:.03em; text-align:right; text-transform:uppercase; }
  .subscription-highlight { display:grid; grid-template-columns:1fr auto; gap:30px; align-items:center; margin-top:16px; padding:34px 38px; color:var(--ivory); background:var(--burgundy); }
  .subscription-highlight-kicker { margin:0 0 10px; color:rgba(255,255,255,.78); font:700 10px var(--jost); letter-spacing:.16em; text-transform:uppercase; }
  .subscription-highlight h3 { margin:0 0 8px; color:var(--white); font:400 clamp(30px,4vw,48px)/.98 var(--jost); letter-spacing:-.05em; text-transform:uppercase; }
  .subscription-highlight-copy > p:not(.subscription-highlight-kicker) { margin:8px 0 0; color:rgba(255,255,255,.84); font-size:12px; line-height:1.5; }
  .subscription-highlight-copy .subscription-tagline { color:var(--white); font:700 12px var(--jost); letter-spacing:.07em; text-transform:uppercase; }
  .subscription-highlight-copy .subscription-threshold { margin-top:16px; color:var(--white); font:700 14px var(--jost); }
  .subscription-highlight-price { display:flex; flex-direction:column; align-items:flex-end; }
  .subscription-highlight-price strong { color:var(--white); font:400 50px/.9 var(--jost); letter-spacing:-.07em; }
  .subscription-highlight-price strong small { margin-left:3px; font-size:.38em; letter-spacing:0; }
  .membership-benefits-full { grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:14px; }
  .membership-benefits-full > div { grid-column:1 / -1; }
  .membership-benefits-full > div h3 { font-size:21px; }
  .discovery-offer-copy { max-width:690px; }
  .discovery-offer .discovery-meta { margin-top:6px; font:700 10px var(--jost); letter-spacing:.08em; text-transform:uppercase; }
  
  .offers-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  .offers-grid-three { grid-template-columns:repeat(3,1fr); }
  .offer-card { min-height: 390px; padding: 28px; background: var(--white); }
  .offer-card-dark { color: var(--white); background: var(--ink); }
  .offer-card .class-tag { display: none; }
  .offer-card-dark .class-tag { color: var(--ivory); }
  .offer-card h3 { margin-top: 16px; }
  .offer-card-dark h3 em { color: inherit; }
  .offer-card .button { margin-top: 3px; }
  
  .offers-grid-three .offer-card { display: flex; flex-direction: column; }
  .offers-grid-three .offer-card > a { width: 178px; min-height: 46px; align-self: flex-start; justify-content: center; margin-top: auto; padding: 0 14px; }
  .offers-grid-three .offer-card > a.text-link { color: var(--burgundy); }
  .offers-grid-three .offer-card-dark > a.button-light { color: var(--burgundy); }
  
  /* Communauté & À Propos */
  .community-layout { display:grid; grid-template-columns:1.35fr 1fr; gap:16px; align-items:stretch; }
  .community-copy { display:flex; flex-direction:column; min-width:0; }
  .community-copy .section-heading { margin-bottom:35px; }
  .community { padding-top:40px; padding-bottom:40px; }
  
  .quote-stack { display:grid; grid-template-columns:1.35fr 1fr; gap:16px; min-width:0; }
  .quote-card { min-height: 250px; display: flex; flex-direction: column; justify-content: space-between; margin: 0; padding: 27px; background: var(--ivory); }
  .quote-card-large { color: var(--white); background: var(--burgundy); }
  .quote-card-outline { background: var(--white); }
  .quote-card blockquote { margin: 0; font-family: var(--jost); font-size: 23px; font-weight: 500; line-height: 1.18; letter-spacing: -.03em; }
  .quote-card figcaption { margin-top: 28px; color: var(--muted); font-family: var(--jost); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .11em; }
  .quote-card-large figcaption { color: rgba(255,255,255,.7); }
  
  .about-grid { display: grid; grid-template-columns: 1fr 1.35fr; align-items: center; gap: 5%; }
  .about-photo-wrap { position: relative; width: 100%; height: 100%; min-height: 250px; overflow: hidden; background: var(--ivory); }
  .about-photo-wrap .about-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.7); }
  .about-stamp { width: 260px; height: 260px; display: flex; align-items: center; justify-content: center; gap: 14px; border-radius: 50%; color: var(--burgundy); transform: rotate(-8deg); }
  .about-stamp span { font-family: var(--jost); font-size: 145px; font-weight: 300; line-height: .7; letter-spacing: -.12em; }
  .about-stamp small { font-family: var(--jost); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; line-height: 1.2; }
  .about-copy { max-width: 510px; }
  .about-copy > p:not(.eyebrow) { max-width: 410px; margin-bottom: 27px; color: var(--muted); font-size: 15px; line-height: 1.6; }
  
  .testimonials-list article p { font-family: var(--jost); color: var(--ink); margin-bottom: 12px; }
  .testimonials-list article figcaption { font-family: var(--jost); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .11em; color: var(--muted); }
  
  /* Contact & Infos Pratiques */
  .contact { padding: 72px 0; background: var(--ink); }
  .contact-inner { display: flex; align-items: end; justify-content: space-between; gap: 60px; }
  .contact h2 { font-size: clamp(48px, 6vw, 78px); }
  .contact h2 em { color: inherit; }
  .contact-cta { max-width: 290px; }
  .contact-cta p { margin-bottom: 28px; color: rgba(255,255,255,.78); font-size: 13px; }
  
  .practical-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
  .practical-label { display: none; }
  .practical-item h3 { margin-bottom: 12px; font-size: 23px; font-weight: 400; line-height: 1; text-transform: uppercase; letter-spacing: -.04em; }
  .practical-item h3 a em { color: var(--burgundy); font-style: normal; }
  .practical-item p { min-height: 48px; margin-bottom: 22px; color: var(--muted); }
  
  .practical-layout { display: grid; grid-template-columns: 1.2fr 1fr; gap: 40px; align-items: stretch; }
  .practical-content { display: flex; flex-direction: column; }
  .practical-info-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: auto; }
  .practical-info-row.onecol { display: flex; gap: 20px; margin-top: auto; }

  .practical-photo-placeholder { width: 100%; height: 100%; min-height: 280px; margin: 0; }
  .practical-photo-wrap { width: 100%; height: 100%; min-height: 280px; margin: 0; position: relative; overflow: hidden; background: var(--ivory); }
  .practical-photo-wrap .about-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  
  .instagram-crop-wrapper { overflow: hidden; position: relative; margin-bottom: -170px; width: 100%; max-width: 100%; }
  
  /* Pied de page (Footer) */
  .site-footer { color: var(--soft); background: var(--ink); position: relative; z-index: 10; }
  .footer-top { display:grid; grid-template-columns:1fr .8fr .8fr 1fr; gap:30px; padding-top:72px; padding-bottom:70px; }
  .brand-footer { align-self: start; }
  .footer-nav { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; font-family: var(--jost); font-size: 12px; }
  .footer-nav p { margin-bottom: 9px; color: var(--soft); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .15em; }
  .footer-note { justify-self: end; text-align: right; }
  .footer-note p { margin-bottom: 27px; text-align: right; color:var(--soft); font:400 11px var(--jost); letter-spacing:.12em; text-transform:uppercase; }
  .footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding: 18px 0; color:var(--extrasoft); font-family: var(--jost); font-size: 10px; text-transform: uppercase; letter-spacing: .09em; }
  .footer-bottom a { color: var(--soft); }
  .footer-bottom a:hover { transform: translateY(-3px); }
  .footer-line { margin:20px 0 0; text-align: right; color:var(--soft); font:400 11px var(--jost); letter-spacing:.12em; text-transform:uppercase; }
  
  /* =========================================================
     6. PAGE ATELIER
     ========================================================= */
  .workshop-page{color:var(--ink); background:var(--ivory); overflow-x:hidden}
  .workshop-header{padding:24px 0; background:var(--ivory)}
  .workshop-header .container{display:flex; align-items:center; justify-content:space-between}
  .workshop-header .brand{position:static; min-width:0; transform:none}
  .workshop-header .brand-logo{position:static; width:150px; height:auto; opacity:1; visibility:visible; filter:none}
  .workshop-header .text-link{color:var(--ink)}
  .workshop-hero{padding:86px 0; color:var(--ivory); background:var(--burgundy)}
  .workshop-hero .container{display:grid; grid-template-columns:.72fr 1.28fr; gap:60px; align-items:center}
  .workshop-hero-side{min-width:0}
  .workshop-hero h1{max-width:760px; margin:0; font-size:clamp(62px,9vw,132px)}
  .workshop-hero h1 em{font-style:normal}
  .workshop-date{display:flex; align-items:baseline; gap:12px; margin-bottom:36px; font-family:var(--jost); text-transform:uppercase}
  .workshop-date strong{font-size:76px; font-weight:300; line-height:.8; letter-spacing:-.08em}
  .workshop-date span{font-size:12px; font-weight:700; letter-spacing:.15em}
  .workshop-meta{display:grid; gap:18px; margin-top:0}
  .workshop-meta div{display:grid; gap:5px}
  .workshop-meta small{display:block; margin-bottom:0; color:rgba(255,255,255,.6); font:700 10px var(--jost); letter-spacing:.14em; text-transform:uppercase}
  .workshop-meta strong{font:400 18px var(--jost)}
  .workshop-image-band{padding:44px 0 0; background:var(--ivory)}
  .workshop-image-band figure{margin:0; background:var(--soft)}
  .workshop-image-band img{width:100%; height:360px; object-fit:cover; filter:saturate(.75)}
  .workshop-image-band figcaption{padding:12px 18px; color:var(--muted); font:700 10px var(--jost); letter-spacing:.12em; text-transform:uppercase}
  .workshop-main{padding:100px 0}
  .workshop-main .container{display:grid; grid-template-columns:1.08fr .92fr; gap:74px; align-items:start}
  .workshop-content h2,.workshop-booking h2{margin:0 0 26px; font-size:clamp(44px,5vw,72px)}
  .workshop-content>p{max-width:510px; color:var(--muted); font-size:16px; line-height:1.6}
  .program-list{display:grid; gap:0; margin:40px 0 0; padding:0; list-style:none}
  .program-item{display:grid; grid-template-columns:110px 1fr; gap:20px; padding:22px 0; background:var(--white)}
  .program-item time{font:700 11px var(--jost); letter-spacing:.1em}
  .program-item h3{margin:0 0 5px; font-size:23px; text-transform:uppercase}
  .program-item p{margin:0; color:var(--muted); font-size:13px}
  .workshop-note{margin-top:34px; padding:24px; background:var(--soft); font-size:13px}
  .workshop-note strong{display:block; margin-bottom:6px; font:400 20px var(--jost)}
  .workshop-booking{padding:34px; background:var(--white); color:var(--ink)}
  .workshop-booking h2{color:var(--ink); font-size:48px}
  .booking-form-intro{margin:0 0 28px; color:var(--muted); font-size:13px}
  .atelier-form{display:grid; gap:17px}
  .atelier-field{display:grid; gap:7px}
  .atelier-field label{color:var(--muted); font:700 10px var(--jost); letter-spacing:.12em; text-transform:uppercase}
  .atelier-field input,.atelier-field textarea,.atelier-field select{width:100%; padding:14px 15px; border-radius:3px; color:var(--ink); background:var(--ivory); font:inherit}
  .atelier-field textarea{min-height:100px; resize:vertical}
  .atelier-field input:focus,.atelier-field textarea:focus,.atelier-field select:focus{outline:2px solid var(--burgundy); outline-offset:2px}
  .atelier-submit{min-height:51px; margin-top:8px; color:var(--white); background:var(--burgundy); font:700 11px var(--jost); letter-spacing:.1em; text-transform:uppercase; cursor:pointer}
  .atelier-submit:hover{background:var(--burgundy-dark)}
  .atelier-form-status{display:none; margin:0; color:var(--ink); font-size:13px}
  .atelier-form.is-sent .atelier-form-status{display:block}
  .atelier-form.is-sent .atelier-submit{display:none}
  .workshop-footer-cta{padding:80px 0; color:var(--white); background:var(--ink)}
  .workshop-footer-cta .container{display:flex; align-items:center; justify-content:space-between; gap:30px}
  .workshop-footer-cta h2{margin:0; color:var(--white); font-size:clamp(42px,6vw,74px)}
  .workshop-footer-cta p{max-width:330px; color:rgba(255,255,255,.7)}
  
  /* =========================================================
     7. PAGE ATELIERS (LISTING)
     ========================================================= */
  .listing-brand { position: static; min-width: 0; transform: none; }
  .listing-brand .brand-logo { position: static; width: 150px; height: auto; opacity: 1; visibility: visible; filter: none; }
  .listing-header .text-link { color: var(--ink); }
  .ateliers-intro { padding: 88px 0 96px; color: var(--white); background: var(--burgundy); }
  .listing-kicker { margin: 0 0 22px; color: var(--ivory); font: 700 10px var(--jost); letter-spacing: .16em; text-transform: uppercase; }
  .atelier-links { display: grid; gap: 8px; }
  .atelier-link { display: grid; grid-template-columns: 190px 1fr auto; align-items: center; gap: 30px; min-height: 112px; padding: 22px 26px; background: var(--white); transition: color .25s ease, background .25s ease, transform .25s var(--ease); }
  .atelier-link:hover { color: var(--white); background: var(--ink); transform: translateX(8px); }
  .atelier-link time { display: flex; align-items: baseline; gap: 10px; font-family: var(--jost); text-transform: uppercase; }
  .atelier-link time strong { font-size: 42px; font-weight: 300; line-height: .9; letter-spacing: -.07em; }
  .atelier-link time span, .atelier-link-action { font-size: 10px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
  .atelier-link-title { font: 400 clamp(22px, 3vw, 34px) / 1 var(--jost); letter-spacing: -.045em; text-transform: uppercase; }
  .atelier-link-action { color: var(--burgundy); }
  .atelier-link:hover .atelier-link-action { color: var(--ivory); }
 
  /* =========================================================
     8. PAGE RÉSERVATION
     ========================================================= */
  .reservation-page { color: var(--ink); background: var(--ivory); }
  .reservation-header { padding: 24px 0; background: var(--ivory); }
  .reservation-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
  .reservation-brand { position: static; min-width: 0; transform: none; }
  .reservation-brand .brand-logo { position: static; width: 150px; height: auto; opacity: 1; visibility: visible; }
  .reservation-header-actions { display: flex; align-items: center; gap: 28px; }
  .account-link { color: var(--muted); font: 700 10px var(--jost); letter-spacing: .1em; text-transform: uppercase; }
  .account-link span { color: var(--burgundy); }
  .reservation-header .text-link { color: var(--ink); }
  .reservation-hero { padding: 88px 0 100px; color: var(--white); background: var(--burgundy); }
  .reservation-hero-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 70px; align-items: end; }
  .reservation-hero h1 { max-width: 760px; margin: 0; font: 300 clamp(58px, 8vw, 120px)/.9 var(--jost); letter-spacing: -.065em; text-transform: uppercase; white-space: normal; }
  .reservation-hero h1 em { color: var(--ivory); font-style: normal; }
  .reservation-hero-copy { max-width: 390px; color: rgba(255,255,255,.8); font-size: 13px; line-height: 1.6; }
  .reservation-hero-copy p { margin: 0 0 22px; }
  .reservation-hero-note { color: rgba(255,255,255,.55); font-size: 13px; }
  .reservation-main { padding: 100px 0 112px; }
  .reservation-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 48px; margin-bottom: 35px; }
  .reservation-section-heading h2, .selection-card h2, .account-note h2 { margin: 0; font: 400 clamp(44px, 5.6vw, 76px)/.94 var(--jost); letter-spacing: -.06em; text-transform: uppercase; }
  .reservation-section-heading .reservation-kicker, .selection-card .reservation-kicker, .account-note .reservation-kicker { color: var(--burgundy); }
  .reservation-section-intro { max-width: 330px; margin: 0 0 4px; color: var(--muted); font-size: 13px; line-height: 1.6; }
  
  /* Filtres & Calendrier */
  .agenda-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: -24px 0 28px; }
  .agenda-filters > span { margin-right: 6px; color: var(--muted); font: 700 10px var(--jost); letter-spacing: .12em; text-transform: uppercase; }
  .agenda-filter { display: inline-flex; align-items: center; gap: 7px; min-height: 34px; padding: 0 12px; color: var(--ink); background: var(--soft); font: 700 10px var(--jost); letter-spacing: .08em; text-transform: uppercase; cursor: pointer; transition: color .2s ease, background .2s ease, transform .2s ease; }
  .agenda-filter:hover, .agenda-filter.is-active { color: var(--white); background: var(--burgundy); transform: translateY(-2px); }
  .agenda-layout { display: grid; grid-template-columns: 1.3fr .7fr; gap: 18px; align-items: stretch; }
  .calendar-card { padding: 10px; background: var(--white); }
  .calendar-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 30px; }
  .calendar-header p { margin: 0; font: 400 25px var(--jost); letter-spacing: -.04em; text-transform: uppercase; }
  .calendar-nav { width: 38px; height: 38px; color: var(--ink); background:var(--white); font: 400 22px var(--jost); cursor: pointer; transition: color .2s ease, background .2s ease, transform .2s ease; }
  .calendar-nav:hover {transform: translateY(-3px); }
  .calendar-weekdays, .agenda-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; }
  .calendar-weekdays { margin-bottom: 8px; color: var(--muted); font: 700 10px var(--jost); letter-spacing: .1em; text-align: center; text-transform: uppercase; }
  .agenda-grid { grid-auto-rows: minmax(86px, auto); }
  .agenda-day { position: relative; min-height: 86px; padding: 10px 8px; color: var(--ink); background: var(--ivory); text-align: left; cursor: pointer; transition: color .2s ease, background .2s ease, transform .2s ease; }
  .agenda-day:hover:not(:disabled):not(.agenda-day-empty) { color: var(--white); background: var(--burgundy); transform: translateY(-2px); }
  .agenda-day-disabled:hover { color: rgba(62,36,11,.35); background: var(--ivory); transform: none; }
  .agenda-day-empty { background: transparent; cursor: default; }
  .agenda-day-disabled { color: rgba(62,36,11,.35); cursor: default; }
  .agenda-day-num { display: block; font: 400 27px var(--jost); letter-spacing: -.05em; }
  .agenda-day-times { display: grid; gap: 3px; margin-top: 7px; font: 700 9px/1.15 var(--jost); letter-spacing: .04em; text-transform: uppercase; }
  .agenda-day-slot-line { display: flex; align-items: baseline; gap: 3px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .agenda-day-slot-line::before { display: inline-block; width: 6px; height: 6px; flex: 0 0 6px; border-radius: 50%; background: var(--ink); content: ""; }
  .agenda-slot-time { font-weight: 700; }
  .agenda-slot-type-full { min-width: 0; overflow: hidden; font-weight: 500; text-overflow: ellipsis; text-transform: uppercase; }
  .agenda-day-selected { color: var(--white); background: var(--ink); }
  
  /* Formulaire Sélection */
  .selection-card { padding: 10px; color: var(--ink); background: var(--white); }
  .selection-card h2 { color: var(--ink); font-size: clamp(42px, 5vw, 68px); }
  .selection-placeholder { display: grid; min-height: 205px; align-items: center; margin-top: 30px; padding: 24px;}
  .selection-placeholder p { max-width: 240px; margin: 0;color: var(--muted);}
  .selection-booking { margin-top: 25px; }
  .reservation-form { display: grid; gap: 14px; }
  .reservation-form label { display: grid; gap: 7px; }
  .reservation-form label span { color: var(--muted); font: 700 10px var(--jost); letter-spacing: .12em; text-transform: uppercase; }
  .reservation-form input { width: 100%; padding: 13px 14px; color: var(--ink); background: var(--ivory); font: inherit; }
  .reservation-submit { min-height: 50px; margin-top: 5px; color: var(--white); background: var(--burgundy); font: 700 11px var(--jost); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; transition: transform .2s ease, background .2s ease; }
  .reservation-submit:hover { background: var(--burgundy-dark); transform: translateY(-3px); }
  .reservation-status { display: none; margin: 0; color: var(--ink); font-size: 13px; line-height: 1.6; }
  .reservation-form.is-sent .reservation-status { display: block; }
  .reservation-form.is-sent .reservation-submit { display: none; }
  .selection-small { margin: 42px 0 0; color: var(--muted); font-size: 11px; line-height: 1.2; }
  .selection-small a { color: var(--burgundy); text-decoration: underline; text-underline-offset: 3px; }
  
  /* Événements & Compte */
  .current-events { padding: 100px 0 112px; color: var(--white); background: var(--ink); }
  .reservation-section-heading-light .reservation-kicker, .reservation-section-heading-light h2 { color: var(--ivory); }
  .reservation-section-heading-light .reservation-section-intro { color: rgba(255,255,255,.64); }
  .event-list { display: grid; }
  .current-event { display: grid; grid-template-columns: 150px 1fr auto; align-items: center; gap: 28px; padding: 22px 0; color: var(--white); background: transparent; text-align: left; cursor: pointer; transition: padding .25s ease, background .25s ease; }
  .current-event:hover { padding-inline: 14px; background: rgba(255,255,255,.08); }
  .current-event-date { font: 400 31px/.95 var(--jost); letter-spacing: -.06em; text-transform: uppercase; }
  .current-event-date small { display: block; margin-top: 6px; color: rgba(255,255,255,.55); font: 700 10px var(--jost); letter-spacing: .12em; }
  .current-event h3 { margin: 0 0 5px; color: var(--ivory); font: 400 24px/1 var(--jost); letter-spacing: -.04em; text-transform: uppercase; }
  .current-event p { margin: 0; color: rgba(255,255,255,.6); font-size: 13px; }
  .current-event-cta { color: var(--ivory); font: 700 10px var(--jost); letter-spacing: .1em; text-transform: uppercase; }
  
  .reservation-workshops .reservation-section-heading { margin-bottom: 35px; }
  .reservation-workshop-item { display: grid; grid-template-columns: 150px 1fr auto; align-items: center; gap: 28px; padding: 24px 0; color: var(--white); background: transparent; font: inherit; text-align: left; cursor: pointer; transition: padding .25s ease, background .25s ease; }
  .reservation-workshop-item:hover { padding-inline: 14px; background: rgba(255,255,255,.1); }
  .reservation-workshop-item h3 { margin: 0 0 5px; color: var(--ivory); font: 400 23px/1 var(--jost); letter-spacing: -.04em; text-transform: uppercase; }
  .reservation-workshop-item p { margin: 0; color: rgba(255,255,255,.62); font-size: 13px; }
  
  .account-note { padding: 86px 0; background: var(--soft); }
  .account-note-inner { display: grid; grid-template-columns: 1fr .8fr auto; align-items: end; gap: 42px; }
  .account-note h2 { font-size: clamp(40px, 5vw, 67px); }
  .account-note p:not(.reservation-kicker) { max-width: 310px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
  .account-note .button { min-height: 45px; white-space: nowrap; }
  
  .reservation-footer { padding: 28px 0; color: var(--white); background: var(--ink); font: 700 10px var(--jost); letter-spacing: .1em; text-transform: uppercase; }
  .reservation-footer .container { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
  .reservation-footer a:hover { color: var(--burgundy); }
  .reservation-footer span { color: rgba(255,255,255,.55); }
  
  /* =========================================================
     9. FORMATS DÉDIÉS (PRIVÉ, ÉVÉNEMENTS, ENTREPRISE)
     ========================================================= */
  .format-page { color: var(--ink); background: var(--ivory); }
  .format-header { padding: 24px 0; background: var(--ivory); }
  .format-header .container { display: flex; align-items: center; justify-content: space-between; }
  .format-header .brand { position: static; min-width: 0; transform: none; }
  .format-header .brand-logo { position: static; width: 150px; height: auto; opacity: 1; visibility: visible; }
  .format-header .text-link { color: var(--ink); }
  
  .format-hero { padding: 162px 0 104px; color: var(--ivory); background: var(--ink); }
  .format-hero--private { color: var(--ink); background: var(--white); }
  .format-hero.rouge { background: var(--burgundy); }
  .format-hero.rouge.shorttopbar { padding: 132px 0 104px; }


  .format-hero--events { background: var(--burgundy); }
  .format-hero .container { display: grid; grid-template-columns: 1.15fr .85fr; gap: 70px; align-items: end; }
  /*.format-hero .container.long { display: grid; grid-template-columns: 1fr .1fr; gap: 70px; align-items: end; }*/
  .format-kicker { margin: 0 0 24px; color: inherit; font: 700 10px var(--jost); letter-spacing: .16em; text-transform: uppercase; }
  .format-hero h1 { max-width: 760px; margin: 0; font: 300 clamp(58px, 8.6vw, 126px)/.9 var(--jost); letter-spacing: -.06em; text-transform: uppercase; }
  .format-hero h1 em { font-style: normal; }
  .format-hero--private h1 em, .format-hero--events h1 em { color: var(--burgundy); }
  .format-hero-copy { max-width: 400px; color: var(--ivory); font-size: 13px; line-height: 1.6; }
  .format-hero--private .format-hero-copy { color: var(--muted); }
  .format-hero-copy p { margin: 0; }
  .format-hero-meta { display: flex; gap: 20px; margin-top: 38px; font: 700 10px var(--jost); letter-spacing: .1em; text-transform: uppercase; }
  .format-hero-meta span + span { padding-left: 20px; }
  
  /*.format-body { padding: 35px 0; }
  .format-copy h2, .format-aside h2 { margin: 0 0 25px; font: 400 clamp(45px, 5.5vw, 78px)/.94 var(--jost); letter-spacing: -.05em; text-transform: uppercase; }
  .format-copy > p { max-width: 540px; color: var(--muted); font-size: 16px; line-height: 1.8; }
  .format-points { gap: 14px; margin-top: 48px; }
  .format-point { padding: 22px 0; background:inherent; }
  .format-point::before { display: block; width: 15px; height: 15px; margin-bottom: 18px; border-radius: 50%; background: var(--ink); content: ""; }
  .format-point h3 { margin: 0 0 8px; font: 400 21px/1.05 var(--jost); text-transform: uppercase; }
  .format-point p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }*/
  
  .format-visual { min-height: 450px; display: flex; align-items: flex-end; padding: 25px; color: var(--muted); background: var(--soft); font: 700 10px var(--jost); letter-spacing: .14em; text-transform: uppercase; }
  .format-visual--burgundy { color: var(--ivory); background: var(--burgundy); }
  .format-visual--ink { color: var(--ivory); background: var(--ink); }
  
  .format-detail { padding: 90px 0; color: var(--white); background: var(--burgundy); }
  .format-detail--ink { background: var(--ink); }
  .format-detail .container { display: grid; grid-template-columns: 1fr 1fr; gap: 75px; }
  .format-detail h2 { margin: 0; font: 300 clamp(48px, 6vw, 88px)/.92 var(--jost); letter-spacing: -.06em; text-transform: uppercase; }
  .format-detail p { max-width: 480px; color: rgba(255, 255, 255, .76); }
  .format-list { display: grid; gap: 15px; margin: 0; padding: 0; list-style: none; }
  .format-list li { display: flex; gap: 13px; font: 400 13px/1.5 var(--jost); letter-spacing: .06em; text-transform: uppercase; }
  .format-list li::before { width: 8px; height: 8px; flex: none; margin-top: 5px; border-radius: 50%; background: currentColor; content: ""; }
  
  .format-cta { padding: 90px 0; background: var(--white); }  /*utilisé dans quijesuis*/
  .format-cta .container { display: flex; align-items: center; justify-content: space-between; gap: 32px; }
  .format-cta h2 { margin: 0; font: 400 clamp(42px, 5.5vw, 76px)/.95 var(--jost); letter-spacing: -.06em; text-transform: uppercase; }
  .format-cta p { max-width: 350px; color: var(--muted); }
  .format-form { display: grid; gap: 16px; margin-top: 26px; padding: 30px; background: var(--white); }
  .format-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
  .format-field { display: grid; gap: 7px; }
  .format-field-wide { grid-column: 1 / -1; }
  .format-field label { font: 700 10px var(--jost); letter-spacing: .12em; text-transform: uppercase; }
  .format-field input, .format-field select, .format-field textarea { width: 100%; padding: 13px 14px; color: var(--ink); background: var(--soft); font: inherit; }
  .format-field textarea { min-height: 100px; resize: vertical; }
  .format-submit { min-height: 49px; color: var(--white); background: var(--burgundy); font: 700 11px var(--jost); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
  .format-submit:hover { background: var(--burgundy-dark); }
  .format-status { display: none; color: var(--muted); font-size: 13px; }
  .format-form.is-sent .format-status { display: block; }
  .format-form.is-sent .format-submit { display: none; }

/* Parcours : étapes éditoriales avec photos alternées */
.about-journey-grid { align-items: start; }
.about-journey-cards { display: grid; gap: 30px; }
.journey-card { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; gap: 32px; }

.journey-card-photo-right .journey-photo-placeholder,
.journey-card-photo-right .journey-photo-container { order: 2; }

.journey-card-photo-right .journey-card-copy { order: 1; }

/* Taille fixe et gestion de l'overflow pour le placeholder et le conteneur photo */
.journey-photo-container {
  width: 100%;
  height: 240px; /* Taille fixe de référence sur desktop */
  overflow: hidden; /* Empêche les éléments de dépasser */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

/* La vraie image prend exactement la taille fixe du conteneur avec un crop propre */
.journey-photo {
  width: 100%;
  height: 100%;
  object-fit: cover; /* Recadre l'image proprement sans la déformer */
  object-position: center center;
  display: block;
}

.journey-card-copy { align-self: center; padding: 16px 0; }
.journey-card-copy h3 { margin: 0 0 9px; font-size: 23px; font-weight: 400; line-height: 1.1; letter-spacing: -.035em; }
.journey-card-copy p { margin: 0; color: var(--muted); }
.journey-card-copy span { font:400 11px var(--jost); letter-spacing:.12em; text-transform:uppercase; }


@media (max-width: 600px) {
 .journey-card { grid-template-columns: 1fr; gap: 12px; }
 .journey-card-photo-right .journey-photo-placeholder, 
 .journey-card-photo-right .journey-photo-container, 
 .journey-card-photo-right .journey-card-copy { order: initial; }
 
 /* Taille fixe adaptée pour mobile */
 .journey-photo-placeholder,
 .journey-photo-container { 
   height: 190px; 
 }
 
 .journey-card-copy { padding: 4px 0 14px; }
}
  
  /* =========================================================
     10. STYLES RESPONSIVE (@MEDIA)
     ========================================================= */
  
  /* Par défaut (Desktop) : Le burger est masqué */
.menu-toggle { display: none; }
.mobile-menu { display: none; }

/* --- Tablettes et écrans intermédiaires (jusqu'à 900px) : Pas de burger, topbar normale --- */
@media (max-width: 900px) {
  :root { --container: min(730px, calc(100% - 112px)); }
  
  .hero { min-height: 700px; }
  .hero-image { object-position: 62% center; }
  .hero-side-note { display: none; }
  .section { padding: 90px 0; }
  .section-heading { margin-bottom: 30px; }
  .section-heading-row { display: block; }
  .section-side-copy { margin: 27px 0 0 0; }
  .concept-grid, .class-list, .community-layout, .quote-stack, .approach-points, .offers-grid-three { grid-template-columns: 1fr; }
  .approach-points-light { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .approach-heading h2 { font-size:clamp(30px,5vw,42px); }
  .entry-door-grid { grid-template-columns:1fr; }
  .offer-catalogue-grid { grid-template-columns:1fr; }
  .membership-benefits-full { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .positioning-line { margin-top:50px; text-align:left; }
  .membership-benefits { grid-template-columns:1fr 1fr; }
  .pricing-offers { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .concept-card { min-height: 250px; }
  .concept-icon { margin-top: 28px; }
  .class-card { min-height: 420px; }
  .class-card-main { min-height: 500px; }
  .offers-grid { grid-template-columns: 1fr; }
  .offer-card { min-height: 330px; }
  .about-grid { grid-template-columns: 1fr; gap: 55px; margin-top: 90px; padding:30px 22px; }
  .about-stamp { width: 210px; height: 210px; }
  .about-stamp span { font-size: 115px; }
  .practical-grid { grid-template-columns: 1fr 1fr; row-gap: 46px; }
  .practical-intro { grid-column: 1 / -1; }
  .footer-top { grid-template-columns: 1fr 1fr; row-gap: 45px; }
  .footer-note { justify-self: start; text-align: left; }
  .class-list, .offers-grid-three { gap: 20px; }
}

/* --- Mobiles uniquement (<= 580px) : Apparition du burger et topbar moins haute sur une seule ligne --- */
@media (max-width: 580px) {

  :root { --container: calc(100% - 104px); }
  
  /* Topbar mobile allégée / une seule ligne */
  .site-header { 
    --header-h: 96px; 
    --header-gap: 10px; 
    --logo-slot: 110px; 
    --bar-h: 60px; /* Hauteur réduite car pas de double ligne */
  }
  .header-inner {
    align-items: center; /* Centrage sur une ligne */
  }
  .brand-logo-round { width: 82px; height: 82px; margin-top: 0; }
  .brand-logo-wordmark { width: 100px; }
  .socials-menu { display: none; }
  .header-cta { min-height: 32px; margin-left: auto; padding: 0 10px; font-size: 9px; margin-top: 0; }
  
  /* Activation du burger et du menu mobile */
  .desktop-nav { display: none; }
  .menu-toggle { display: block; width: 32px; padding: 4px; margin-top: 0; }
  
  .mobile-menu {
    position: fixed;
    inset: var(--header-now) 0 0;
    display: flex;
    visibility: hidden;
    flex-direction: column;
    padding: 30px 8px 30px;
    color: var(--ink);
    background: var(--soft);
    opacity: 0;
    transform: translateY(-10px);
    transition: opacity .25s ease, transform .25s ease, visibility .25s;
  }
  .site-header.menu-active .mobile-menu { visibility: visible; opacity: 1; transform: none; }
  .mobile-menu a { display: flex; align-items: center; justify-content: space-between; padding: 19px 0; font-family: var(--jost); font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: -.04em; }
  .mobile-menu span { color: var(--ivory); font-size: 11px; letter-spacing: .1em; }

  .hero { min-height: 690px; }
  .hero-content { padding-top: 62px; }
  h1 { max-width: 100%; font-size: clamp(44px, 14vw, 64px); white-space: nowrap; }
  .hero-intro { max-width: 290px; margin-top: 25px; font-size: 14px; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 22px; }
  .hero-index { right: 16px; bottom: 22px; }

  .workshops.section { padding: 58px 0 64px; }
  .workshops-heading { display: block; margin-bottom: 35px; }
  .workshops-kicker { margin-bottom: 16px; }
  .workshops-heading h2 { font-size: clamp(54px, 16vw, 78px); }
  .workshops-intro { margin: 22px 0 0; }
  .workshops .atelier-link { grid-template-columns: 82px 1fr; gap: 14px; min-height: 92px; padding: 18px 16px; }
  .workshops .atelier-link time { display: grid; gap: 3px; }
  .workshops .atelier-link time strong { font-size: 34px; }
  .workshops .atelier-link-title { font-size: 21px; }
  .workshops .atelier-link-action { grid-column: 2; }

  .section { padding: 68px 0; }
  .section-heading { margin-bottom: 30px; }
  .section-heading h2 { font-size: clamp(46px, 14vw, 70px); }
  .section-lead { margin-left: 0; font-size: 15px; }

  .manifesto { padding-top: 20px; padding-bottom: 20px;}
  .approach-points { grid-template-columns: 1fr; gap: 22px; }
  .approach-points-light { grid-template-columns:1fr; }
  .approach-heading { margin-bottom:10px; }
  .approach-heading h2 { font-size:32px; }
  .practical-title { margin-bottom:42px; font-size:clamp(48px,14vw,70px); }
  .community-photo-placeholder { min-height:150px; flex-direction:column; gap:4px; }
  .community-copy .section-heading { margin-bottom:42px; }
  .practical-photo-placeholder { min-height:180px; }

  .concept-card { min-height: 225px; padding: 22px; }
  .concept-card h3 { font-size: 25px; }
  .entry-door-subgrid { grid-template-columns:1fr; }
  .entry-door-subcard { min-height:190px; }
  .offer-card { min-height: 350px; padding: 22px; }

  .pricing-offers { grid-template-columns: 1fr; gap: 12px; }
  .discovery-offer { align-items:flex-start; flex-wrap:wrap; }
  .discovery-offer strong { align-self:flex-start; }
  .membership-benefits { grid-template-columns:1fr; }
  .offer-catalogue-grid { grid-template-columns:1fr; }
  .offer-panel { padding:20px; }
  .experience-price { align-items:flex-start; flex-wrap:wrap; }
  .subscription-highlight { grid-template-columns:1fr; gap:16px; padding:24px; }
  .subscription-highlight-price { align-items:flex-start; }
  .pricing-offer { min-height: 190px; }
  .pricing-offer strong { font-size: 42px; }

  .quote-card { min-height: 215px; padding: 22px; }
  .quote-card blockquote { font-size: 20px; }
  .about-copy h2 { font-size: 54px; }

  .contact { padding: 80px 0; }
  .contact-inner { display: block; }
  .contact-cta { margin-top: 38px; }

  .practical-grid { grid-template-columns: 1fr; }
  .practical-intro { grid-column: auto; }
  .practical-item { min-height: 0; padding: 24px 0 0; }
  .practical-label { margin-bottom: 18px; }
  .practical-item p { min-height: 0; }

  .footer-top { grid-template-columns: 1fr 1fr; padding-top: 54px; padding-bottom: 50px; }
  .brand-footer { grid-column: 1 / -1; }
  .brand-footer, .brand-footer .brand-logo-footer { width: 120px; }
  .footer-bottom { align-items: flex-start; flex-direction: column; gap: 9px; }

  .class-list, .offers-grid-three { gap: 16px; }
  .offers-grid-three .offer-card > a { width: 178px; }
}

/* Adaptations visuelles des pages compte et connexion */
.account-page, .auth-page { min-height: 100vh; color: var(--ink); background: var(--ivory); }
.account-page main, .auth-page main { min-height: calc(100vh - 60px); padding: 145px 0 80px; }
.account-page .account-container { width: min(1100px, calc(100% - 48px)); }
.account-page .account-title, .auth-page .auth-title { max-width: none; margin: 0 0 32px !important; color: var(--ink); font: 300 clamp(42px, 7vw, 76px)/.95 var(--jost); letter-spacing: -.055em; text-transform: uppercase; }
.account-page .three-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.account-page .three-cols > .card { min-width: 0; padding: 26px; color: var(--ink); background: var(--white); }
.account-page .three-cols h2 { margin: 0 0 20px; color: var(--burgundy); font: 400 25px/1.1 var(--jost); letter-spacing: -.03em; }
.account-page .three-cols p { color: var(--muted); }
.account-page .account-new-booking { margin: 48px 0 !important; padding: 30px; background: var(--white); }
.account-page .account-new-booking > h2 { margin: 0 0 26px; font: 400 clamp(34px, 5vw, 55px)/.95 var(--jost); letter-spacing: -.05em; text-transform: uppercase; }
.account-page .message-btn, .account-page .erreur-btn { margin: 14px 0; padding: 14px 18px; background: var(--white); }
.account-page .annuler-btn, .account-page .voirplus-btn, .account-page .se-deconneter-btn { min-height: 38px; padding: 0 16px; color: var(--white); background: var(--burgundy); font: 700 10px var(--jost); letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.account-page .confirm-overlay { z-index: 100; }
.auth-page main { display: flex; align-items: flex-start; justify-content: center; }
.auth-page .auth-container { width: min(480px, calc(100% - 48px)); padding: 34px; background: var(--white); }
.auth-page .auth-title { margin-bottom: 28px !important; font-size: clamp(40px, 6vw, 58px); }
.auth-page form { display: flex; flex-direction: column; align-items: center; }
.auth-page form label { width: 100%; text-align: left; color: var(--muted); font: 700 10px var(--jost); letter-spacing: .12em; text-transform: uppercase; margin-bottom: 5px; }
.auth-page form input { width: 100%; min-height: 40px; padding: 10px 13px !important; color: var(--ink); background: var(--ivory); font: inherit; margin-bottom: 15px; box-sizing: border-box; }
.auth-page form button, .auth-page .cal-slot-btn { display: inline-block; min-height: 40px; padding: 0 18px; color: var(--white); background: var(--burgundy); font: 700 10px var(--jost); letter-spacing: .09em; text-transform: uppercase; cursor: pointer; border: none; transition: transform 0.2s ease; }
.auth-page form button:hover, .auth-page .cal-slot-btn:hover { transform: translateY(-3px); }
.auth-page main p { color: var(--muted); font-family: var(--jost); font-size: 12px; }
.auth-page main a { color: var(--burgundy); display: inline-block; transition: transform 0.2s ease; }
.auth-page main a:hover { transform: translateY(-3px); }
.auth-page main p[style*="background"] { padding: 14px 16px !important; }
@media (max-width: 760px) {
  .account-page main, .auth-page main { padding-top: 105px; }
  .account-page .three-cols { grid-template-columns: 1fr; }
  .account-page .account-new-booking { padding: 18px; }
}


/* Panneau droit : date, créneaux sélectionnables et formulaire associé */
.day-events-panel[hidden], .selection-placeholder[hidden], .selection-booking[hidden] { display: none !important; }
.day-events-panel { min-width: 0; margin-top: 12px; }
.day-events-panel h2 { margin: 0 0 18px; font: 400 clamp(28px, 3vw, 42px)/1 var(--jost); text-transform: uppercase; overflow-wrap: anywhere; }
.day-events-list { display: grid; gap: 8px; min-width: 0; margin: 18px 0; }
.day-event-row, .day-event-link { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 8px; padding: 12px; color: var(--ink); background: var(--ivory); font: 700 13px/1.35 var(--jost); text-decoration: none; transition: color .2s ease, background .2s ease, transform .2s ease; }
.day-event-row.is-selectable { cursor: pointer; }
.day-event-row.is-selectable:hover { color: var(--white); background: var(--burgundy); transform: translateY(-3px); }
.day-event-row.is-selected { color: var(--white); background: var(--ink); cursor: pointer; }
.day-event-row.is-selected:hover { color: var(--white); background: var(--ink); transform: none; }
.day-event-row.is-static { cursor: default; }
.day-event-title { min-width: 0; flex: 1 1 auto; overflow-wrap: anywhere; }
.day-event-capacity { flex: 0 1 auto; color: var(--muted); font: 600 11px var(--open); text-align: right; }
.day-event-row.is-selectable:hover .day-event-capacity { color: rgba(255,255,255,.8); }
.day-event-row.is-selected .day-event-capacity { color: rgba(255,255,255,.8); }
.day-event-link { font-weight: 700; }
.day-event-link:hover { color: var(--burgundy); }
@media (max-width: 600px) {
  .agenda-layout { grid-template-columns: minmax(0, 1fr); }
  .calendar-card, .selection-card { min-width: 0; }
  .selection-card { padding: 10px; }
  .day-event-link { display: block; width: 100%; overflow-wrap: anywhere; }
  .day-events-panel h2 { font-size: clamp(28px, 8vw, 38px); }
}


/* Pastilles de catégories partagées par les filtres et les lignes de l’agenda */
.agenda-filter-dot { display: inline-block; width: 6px; height: 6px; flex: 0 0 6px; border-radius: 50%; background: var(--ink); }
.agenda-filter-dot-vinyasa, .agenda-slot-vinyasa::before { background: var(--burgundy); }
.agenda-filter-dot-doux, .agenda-slot-doux::before { background: var(--muted); }
.agenda-filter-dot-atelier, .agenda-slot-atelier::before { background: var(--ink); }
.agenda-filter-dot-club-philo, .agenda-slot-club-philo::before { background: #4f5b2c; }
.agenda-filter:hover .agenda-filter-dot, .agenda-filter.is-active .agenda-filter-dot { box-shadow: 0 0 0 1px var(--white); }

/* Présentation en ligne du nom complet, avec capacité en dessous */
.day-event-row { display: grid; grid-template-columns: 6px minmax(0, 1fr); align-items: start; justify-items: start; gap: 5px; }
.day-event-row::before, .day-event-link::before { display: inline-block; width: 6px; height: 6px; flex: 0 0 6px; align-self: center; margin-right: 8px; border-radius: 50%; background: var(--ink); content: ""; }
.day-event-title, .day-event-capacity { grid-column: 2; display: block; width: 100%; min-width: 0; }
.day-event-capacity { text-align: left; }
.day-event-link { justify-content: flex-start; }
.day-events-panel h2 { display: grid; gap: 2px; font-size: 25px; line-height: 1.1; }
.day-date-weekday, .day-date-rest { display: block; }
.day-event-row.agenda-slot-vinyasa::before, .day-event-link.agenda-slot-vinyasa::before { background: var(--burgundy); }
.day-event-row.agenda-slot-doux::before, .day-event-link.agenda-slot-doux::before { background: var(--muted); }
.day-event-row.agenda-slot-atelier::before, .day-event-link.agenda-slot-atelier::before { background: var(--ink); }
.day-event-row.agenda-slot-club-philo::before, .day-event-link.agenda-slot-club-philo::before { background: #4f5b2c; }

/* Fenêtre de retour de réservation, dans l’esprit de reserver-auto.php */
.reservation-page .confirm-overlay { position: fixed; inset: 0; z-index: 10000; display: grid; place-items: center; padding: 16px; background: rgba(25, 17, 12, .58); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .2s ease, visibility .2s ease; }
.reservation-page .confirm-overlay.open.active { opacity: 1; visibility: visible; pointer-events: auto; }
.reservation-page .confirm-card { width: min(100%, 370px); max-height: min(88vh, 600px); overflow-y: auto; padding: 22px; color: var(--ink); background: var(--ivory); text-align: center; box-shadow: 0 14px 42px rgba(0,0,0,.2); }
.reservation-page .confirm-icon { display: grid; width: 34px; height: 34px; place-items: center; margin: 0 auto 12px; border-radius: 50%; color: var(--white); background: #4f5b2c; font: 700 19px/1 var(--jost); }
.reservation-page .confirm-icon svg { width: 17px; height: 17px; }
.reservation-page .confirm-card.is-error .confirm-icon { background: var(--burgundy); }
.reservation-page .confirm-card h2 { margin: 0 0 9px; color: var(--ink); font: 400 clamp(22px, 5vw, 27px)/1.05 var(--jost); text-transform: uppercase; }
.reservation-page .confirm-card > p { margin: 0 auto 12px; color: var(--muted); font-size: 13px; line-height: 1.5; }
.reservation-page .confirm-details { display: grid; gap: 4px; margin: 12px 0; padding: 8px 0; border-top: 1px solid rgba(62,36,11,.12); border-bottom: 1px solid rgba(62,36,11,.12); list-style: none; }
.reservation-page .confirm-details li { padding: 3px 0; color: var(--ink); background: transparent; font: 600 12px/1.4 var(--jost); }
.reservation-page .confirm-close { min-height: 38px; padding: 0 20px; color: var(--white); background: var(--burgundy); font: 700 10px var(--jost); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.reservation-page .confirm-close:hover { background: var(--burgundy-dark); }


/* Page Club Philo : même langage éditorial que les pages ateliers */
.club-philo-hero { display:flex; min-height:520px; align-items:center; padding:135px 0 86px; color:var(--ivory); background:var(--ink); }
.club-philo-hero-content { padding-top:22px; }
.club-philo-kicker { margin:0 0 18px; color:var(--burgundy); font:700 10px var(--jost); letter-spacing:.16em; text-transform:uppercase; }
.club-philo-hero .club-philo-kicker { color:var(--soft); }
.club-philo-hero h1 { max-width:950px; margin:0 0 24px; color:var(--white); font:400 clamp(54px,8.8vw,112px)/.92 var(--jost); letter-spacing:-.065em; text-transform:uppercase; white-space:normal; }
.club-philo-hero h1 em { color:var(--soft); font-style:normal; }
.club-philo-lead { max-width:570px; margin:0 0 30px; color:rgba(255,255,255,.76); font-size:16px; line-height:1.6; }
.club-philo-principle-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:70px; align-items:start; }
.club-philo-principle h2, .club-philo-suggestion-copy h2 { margin:0; color:var(--ink); font:400 clamp(39px,5vw,65px)/.98 var(--jost); letter-spacing:-.055em; text-transform:uppercase; }
.club-philo-principle-copy > p { max-width:650px; margin:0 0 17px; color:var(--muted); font-size:14px; line-height:1.7; }
.club-philo-price { display:flex; align-items:baseline; justify-content:space-between; gap:20px; margin-top:28px !important; padding-top:17px; border-top:1px solid rgba(62,36,11,.15); }
.club-philo-price strong { color:var(--burgundy); font:400 25px var(--jost); }
.club-philo-price span { color:var(--muted); font:600 10px var(--jost); letter-spacing:.06em; text-align:right; text-transform:uppercase; }
.club-philo-schedule .workshops-intro { max-width:350px; }
.club-philo-topic-link time { min-width:0; }
.club-philo-calendar-note { margin:20px 0 24px; color:var(--muted); font-size:12px; }
.club-philo-suggestion-layout { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
.club-philo-suggestion-copy > p:last-child { max-width:420px; margin:22px 0 0; color:var(--muted); font-size:14px; line-height:1.65; }
.club-philo-form-card { padding:30px; background:var(--soft); }
.club-philo-form .atelier-field textarea { min-height:145px; }
.club-philo-honeypot { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.club-philo-feedback { margin:0; padding:13px 15px; color:var(--ink); background:var(--white); border-left:3px solid var(--burgundy); font-size:12px; line-height:1.5; }
.club-philo-feedback-success { border-left-color:#4f5b2c; }
.club-philo-feedback-partial { border-left-color:#9b6a22; }
.club-philo-privacy { margin:14px 0 0; color:var(--muted); font-size:10px; line-height:1.5; }
.club-philo-footer-cta .container { align-items:center; }
.club-philo-footer-cta p { max-width:420px; margin:16px 0 0; }

/* Tarifs en trois offres principales */
.three-offer-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr) minmax(0, 1fr);
  gap: 14px;
  align-items: stretch;
  margin-top: 32px;
}

.three-offer-card {
  display: flex;
  min-width: 0;
  min-height: 490px;
  flex-direction: column;
  padding: 24px;
}

.three-offer-card .offer-panel-heading h3 {
  margin-bottom: 10px;
  font-size: clamp(24px, 2.35vw, 31px);
}

.three-offer-kicker {
  margin: 0 0 12px;
  color: var(--burgundy);
  font: 700 9px var(--jost);
  letter-spacing: .14em;
  text-transform: uppercase;
}

.premium-offer-panel {
  justify-content: flex-start;
  background: var(--ivory);
}

.premium-offer-price {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-top: 26px;
  padding-top: 20px;
  border-top: 1px solid rgba(62, 36, 11, .13);
}

.premium-offer-price strong {
  flex: 0 0 auto;
  color: var(--burgundy);
  font: 400 48px/.9 var(--jost);
  letter-spacing: -.07em;
}

.premium-offer-price small {
  margin-left: 3px;
  font-size: .4em;
  letter-spacing: 0;
}

.premium-offer-price span {
  color: var(--muted);
  font: 600 9px/1.5 var(--jost);
  letter-spacing: .04em;
  text-align: right;
  text-transform: uppercase;
}

.premium-offer-detail {
  margin: 18px 0 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.6;
}

.premium-offer-spots {
  margin: auto 0 0;
  padding-top: 17px;
  border-top: 1px solid rgba(62, 36, 11, .13);
  color: var(--ink);
  font: 700 10px var(--jost);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.subscription-highlight-card {
  display: flex;
  justify-content: flex-start;
  gap: 20px;
  margin-top: 0;
  padding: 26px;
}

.subscription-highlight-card .subscription-highlight-copy {
  width: 100%;
}

.subscription-highlight-card h3 {
  font-size: clamp(28px, 2.6vw, 36px);
}

.subscription-highlight-card .subscription-highlight-price {
  display: block;
  margin: 18px 0 9px;
}

.subscription-highlight-card .subscription-highlight-price strong {
  font-size: 50px;
}

.subscription-highlight-card .subscription-term {
  margin-top: 4px;
}

.subscription-highlight-card .subscription-tagline {
  font-size: 10px;
}

.subscription-highlight-card .subscription-threshold {
  margin-top: 15px;
  font-size: 12px;
}

.subscription-compact-benefits {
  display: grid;
  gap: 9px;
  margin: auto 0 0;
  padding: 16px 0 0;
  border-top: 1px solid rgba(255, 255, 255, .25);
  list-style: none;
}

.subscription-compact-benefits li {
  position: relative;
  padding-left: 16px;
  color: rgba(255, 255, 255, .9);
  font-size: 11px;
  line-height: 1.4;
}

.subscription-compact-benefits li::before {
  position: absolute;
  top: .45em;
  left: 0;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ivory);
  content: "";
}

.pricing-experience-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 24px;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid rgba(62, 36, 11, .13);
  color: var(--muted);
  font-size: 11px;
}

.pricing-experience-links .text-link {
  color: var(--ink);
  font-size: 10px;
}

.pricing-experience-links .text-link:hover {
  color: var(--burgundy);
}

.pricing,
#offres,
#tarifs,
#offres-yoga,
#offres-experiences,
#abonnement {
  scroll-margin-top: 96px;
}

@media (max-width: 900px) {
  .three-offer-grid {
    grid-template-columns: 1fr;
  }

  .three-offer-card {
    min-height: 0;
  }

  .subscription-highlight-card {
    gap: 18px;
  }
}

@media (max-width: 580px) {
  .three-offer-grid {
    gap: 10px;
    margin-top: 20px;
  }

  .three-offer-card {
    padding: 20px;
  }

  .subscription-highlight-card .subscription-highlight-price strong {
    font-size: 46px;
  }

  .pricing-experience-links {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }
}


@media (max-width:900px) {
  .club-philo-principle-layout, .club-philo-suggestion-layout { grid-template-columns:1fr; gap:34px; }
  .club-philo-suggestion-layout { gap:28px; }
  .club-philo-hero { min-height:460px; }
}
@media (max-width:600px) {
  .club-philo-hero { min-height:0; padding:120px 0 64px; }
  .club-philo-hero-content { padding-top:10px; }
  .club-philo-hero h1 { font-size:clamp(43px,12vw,66px); }
  .club-philo-lead { font-size:14px; }
  .club-philo-principle-layout { gap:25px; }
  .club-philo-principle h2, .club-philo-suggestion-copy h2 { font-size:clamp(38px,11vw,54px); }
  .club-philo-price { align-items:flex-start; flex-direction:column; gap:5px; }
  .club-philo-price span { text-align:left; }
  .workshops .club-philo-topic-link { grid-template-columns:82px minmax(0,1fr); gap:14px; padding:18px 16px; }
  .workshops .club-philo-topic-link time { display:grid; gap:3px; }
  .workshops .club-philo-topic-link .atelier-link-action { grid-column:2; }
  .club-philo-form-card { padding:20px; }
  .club-philo-footer-cta .container { display:block; }
  .club-philo-footer-cta .button { display:inline-flex; margin-top:18px; }
}


/* Portes d’entrée restaurées en grands blocs, avec deux sous-cartes sous chacun */
.entry-door-column > .doorway-card { min-height:390px; }
.entry-door-column .entry-door-subgrid { grid-template-columns:repeat(2,minmax(0,1fr)); }

/* Sur mesure : garder les parcours de contact sans détourner l’attention des offres principales */
.offers-custom.section { padding:64px 0; }
.custom-offers-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:32px; margin-bottom:20px; }
.custom-offers-heading .pricing-catalogue-kicker { margin-bottom:8px; }
.custom-offers-heading h2 { margin:0; color:var(--ink); font:400 clamp(34px,4.2vw,50px)/1 var(--jost); letter-spacing:-.05em; text-transform:uppercase; }
.custom-offers-heading > p { max-width:380px; margin:0 0 4px; color:var(--muted); font-size:12px; line-height:1.55; }
.custom-offers-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.custom-offer-link { display:grid; min-width:0; min-height:110px; grid-template-columns:minmax(0,1fr) auto; grid-template-rows:auto 1fr; align-items:start; gap:8px 12px; padding:18px 20px; color:var(--ink); background:var(--white); text-decoration:none; transition:transform .2s ease, background .2s ease; }
.custom-offer-link:hover { background:var(--soft); transform:translateY(-3px); }
.custom-offer-link strong { grid-column:1; color:var(--ink); font:400 17px/1.1 var(--jost); text-transform:uppercase; }
.custom-offer-link span { grid-column:1; align-self:end; color:var(--muted); font-size:11px; line-height:1.4; }
.custom-offer-link b { grid-column:2; grid-row:1 / 3; align-self:center; color:var(--burgundy); font:400 20px var(--jost); }
.custom-offer-link-dark { color:var(--ivory); background:var(--ink); }
.custom-offer-link-dark:hover { color:var(--ivory); background:#4b3827; }
.custom-offer-link-dark strong { color:var(--white); }
.custom-offer-link-dark span { color:rgba(255,255,255,.7); }
.custom-offer-link-dark b { color:var(--soft); }

@media (max-width:900px) {
  .membership-benefits-full { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .custom-offers-heading { align-items:flex-start; flex-direction:column; gap:12px; }
}
@media (max-width:580px) {
  .entry-door-column > .doorway-card { min-height:350px; }
  .entry-door-column .entry-door-subgrid { grid-template-columns:1fr; }
  .membership-benefits-full { grid-template-columns:1fr; }
  .offers-custom.section { padding:56px 0; }
  .custom-offers-heading h2 { font-size:38px; }
  .custom-offers-links { grid-template-columns:1fr; }
  .custom-offer-link { min-height:90px; }
}


/* Bloc fusionné : l’esprit Humeur et les activités */
.spirit-activities.section { padding:72px 0 76px; }
.spirit-intro { margin-bottom:20px; }
.spirit-intro .pricing-catalogue-kicker { margin-bottom:10px; }
.spirit-intro h2 { margin:0; color:var(--ink); font:400 clamp(36px,5vw,62px)/.98 var(--jost); letter-spacing:-.05em; }
.spirit-points { grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin-top:26px; }
.spirit-points article { padding:0 18px 0 0; border-right:1px solid rgba(62,36,11,.14); }
.spirit-points article + article { padding-left:18px; }
.spirit-points article:last-child { border-right:0; }
.spirit-points article::before { display:none; }
.spirit-points-light article { padding-top:0; }
.spirit-points-light h3 { margin:0 0 6px; color:var(--ink); font:600 13px/1.2 var(--jost); letter-spacing:.04em; }
.spirit-points-light p { max-width:none; margin:0; color:var(--muted); font-size:11px; line-height:1.5; }
.activity-section-heading { margin:38px 0 12px; padding-top:16px; border-top:1px solid rgba(62,36,11,.14); }
.activity-section-heading .pricing-catalogue-kicker { margin:0; }
.activity-families-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.activity-family { min-width:0; padding:18px 22px; background:var(--white); }
.activity-family h3 { margin:0 0 9px; color:var(--ink); font:400 24px/1.05 var(--jost); letter-spacing:-.04em; text-transform:uppercase; }
.activity-option { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; padding:14px 0; border-top:1px solid rgba(62,36,11,.13); }
.activity-option h4 { margin:0 0 4px; color:var(--ink); font:600 12px/1.2 var(--jost); letter-spacing:.04em; text-transform:uppercase; }
.activity-option p { margin:0; color:var(--muted); font-size:11px; line-height:1.5; }
.activity-option .text-link { margin:0; padding:4px 0; font-size:9px; white-space:nowrap; }
#cours { scroll-margin-top:96px; }

/* Les offres restent côte à côte en largeur intermédiaire ; empilement sous 760 px */
@media (max-width:900px) {
  .three-offer-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
  .three-offer-card { min-height:490px; padding:16px; }
  .subscription-highlight-card { gap:16px; }
  .spirit-activities.section { padding:62px 0; }
  .spirit-points { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 0; }
  .spirit-points article:nth-child(2) { border-right:0; }
  .spirit-points article:nth-child(3) { padding-left:0; }
  .activity-families-grid { gap:14px; }
}
@media (max-width:760px) {
  .three-offer-grid { grid-template-columns:1fr; }
  .three-offer-card { min-height:0; padding:24px; }
}
@media (max-width:580px) {
  .three-offer-card { padding:20px; }
  .spirit-activities.section { padding:54px 0; }
  .spirit-intro h2 { font-size:clamp(34px,10vw,48px); }
  .spirit-points { grid-template-columns:1fr; gap:13px; }
  .spirit-points article,
  .spirit-points article + article,
  .spirit-points article:nth-child(3) { padding:0 0 13px; border-right:0; border-bottom:1px solid rgba(62,36,11,.14); }
  .spirit-points article:last-child { padding-bottom:0; border-bottom:0; }
  .activity-section-heading { margin-top:28px; }
  .activity-families-grid { grid-template-columns:1fr; }
  .activity-family { padding:17px; }
  .activity-option { grid-template-columns:minmax(0,1fr); gap:5px; }
}


/* Épuration : hiérarchie courte, sans eyebrows ni filets décoratifs */
.spirit-activities.section { padding:58px 0 64px; }
.spirit-intro { margin:0 0 18px; }
.spirit-intro h2 { margin:0; color:var(--ink); font:400 clamp(40px,5vw,62px)/.98 var(--jost); letter-spacing:-.05em; text-transform:uppercase; }
.spirit-points { grid-template-columns:repeat(4,minmax(0,1fr)); gap:26px; margin-top:0; }
.spirit-points article,
.spirit-points article + article,
.spirit-points article:nth-child(3) { padding:0; border:0; }
.spirit-points article::before { display:block; width:9px; height:9px; margin:0 0 12px; border-radius:50%; background:var(--ink); content:""; transition:transform .25s var(--ease); }
.spirit-points article:hover::before,
.spirit-points article:focus-within::before { transform:scale(1.35); }
.spirit-points-light h3 { margin:0 0 5px; color:var(--ink); font:600 14px/1.2 var(--jost); letter-spacing:0; text-transform:none; }
.spirit-points-light p { margin:0; color:var(--muted); font:400 12px/1.5 var(--open); }
.activity-section-heading { margin:30px 0 12px; padding:0; border:0; }
.activity-section-heading h3 { margin:0; color:var(--ink); font:400 22px/1.1 var(--jost); letter-spacing:-.02em; text-transform:uppercase; }
.activity-families-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:34px; }
.activity-family { padding:0; background:transparent; }
.activity-family h3 { margin:0 0 8px; color:var(--ink); font:400 22px/1.1 var(--jost); letter-spacing:-.02em; text-transform:uppercase; }
.activity-options { display:grid; gap:12px; }
.activity-option { display:block; padding:0; border:0; }
.activity-option h4 { margin:0 0 3px; color:var(--ink); font:600 14px/1.2 var(--jost); letter-spacing:0; text-transform:none; }
.activity-option h4 a { color:inherit; text-decoration:none; transition:color .2s ease; }
.activity-option h4 a:hover { color:var(--burgundy); }
.activity-option p { margin:0; color:var(--muted); font:400 12px/1.5 var(--open); }

/* Tarif : titre principal unique, mêmes titres de bloc et liens éditoriaux */
.three-offer-card h3,
.discovery-offer h3 { margin:0 0 10px; font:400 22px/1.12 var(--jost); letter-spacing:-.02em; text-transform:uppercase; }
.three-offer-card p,
.discovery-offer p { font:400 12px/1.5 var(--open); }
.offer-price-line p,
.premium-offer-detail,
.subscription-term,
.subscription-tagline,
.subscription-threshold,
.premium-offer-price p { color:var(--muted); font:400 12px/1.5 var(--open); }
.subscription-compact-benefits { gap:6px; }
.subscription-compact-benefits p { position:relative; margin:0; padding-left:14px; color:rgba(255,255,255,.9); font:400 12px/1.45 var(--open); }
.subscription-compact-benefits p::before { position:absolute; top:.48em; left:0; width:6px; height:6px; border-radius:50%; background:var(--ivory); content:""; }
.premium-offer-price p { margin:0; text-align:right; }
.premium-offer-spots { font:600 12px/1.4 var(--open); letter-spacing:0; text-transform:none; }
.pricing-experience-note { margin:20px 0 0; color:var(--muted); font:400 12px/1.5 var(--open); text-align:center; }
.pricing-experience-note a { color:var(--ink); text-decoration:underline; text-decoration-color:rgba(62,36,11,.3); text-underline-offset:3px; }
.pricing-experience-note a:hover { color:var(--burgundy); }

@media (max-width:900px) {
  .spirit-points { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 24px; }
  .activity-families-grid { gap:24px; }
}
@media (max-width:580px) {
  .spirit-activities.section { padding:48px 0 54px; }
  .spirit-intro h2 { font-size:clamp(38px,10vw,50px); }
  .spirit-points { grid-template-columns:1fr; gap:16px; }
  .activity-section-heading { margin-top:26px; }
  .activity-families-grid { grid-template-columns:1fr; gap:20px; }
  .pricing-experience-note { text-align:left; }
}

.subscription-highlight-card .subscription-term,
.subscription-highlight-card .subscription-tagline,
.subscription-highlight-card .subscription-threshold { color:rgba(255,255,255,.84); }


/* Activités : Yoga brun avec halo, Expériences encadrées de blanc */
.activity-families-grid { margin-top:26px; align-items:stretch; }
.activity-family-yoga { position:relative; min-height:250px; overflow:hidden; padding:24px; color:var(--ivory); background:var(--ink); }
.activity-family-yoga > :not(.class-card-shape) { position:relative; z-index:1; }
.activity-family-yoga .class-card-shape { top:35px; right:-60px; width:220px; height:220px; }
.activity-family-yoga h3,
.activity-family-yoga .activity-option h4,
.activity-family-yoga .activity-option h4 a { color:var(--ivory); }
.activity-family-yoga .activity-option p { color:rgba(255,255,255,.82); }
.activity-family-experiences { min-height:250px; padding:24px; background:var(--white); }
.activity-option { position:relative; padding-left:20px; }
.activity-option::before { position:absolute; top:.4em; left:0; width:9px; height:9px; border-radius:50%; background:var(--ink); content:""; transition:transform .25s var(--ease); }
.activity-option:hover::before,
.activity-option:focus-within::before { transform:scale(1.35); }
.activity-family-yoga .activity-option::before { background:var(--ivory); }

/* Pack découverte en offre complémentaire sous les trois formules */
.discovery-offer { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:20px; margin:22px 0 0; padding:18px 22px; color:var(--ink); background:var(--ivory); }
.discovery-offer h3 { color:var(--ink); }
.discovery-offer p { margin:4px 0 0; color:var(--muted); }
.discovery-offer strong { margin:0; color:var(--burgundy); font:400 46px/.9 var(--jost); letter-spacing:-.07em; }
.discovery-offer strong small { font-size:.4em; }

/* Liens de réservation et conditions : même style, rouge, survol vers le haut */
.pricing-links-row { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:22px; }
.pricing-links-row .pricing-experience-links { display:flex; align-items:center; gap:22px; margin:0; padding:0; border:0; }
.pricing-links-row a { display:inline-block; color:var(--burgundy); font:600 13px/1.3 var(--jost); letter-spacing:.04em; text-decoration:none; text-transform:uppercase; transition:transform .2s var(--ease), color .2s ease; }
.pricing-links-row a:hover,
.pricing-links-row a:focus-visible { color:var(--burgundy-dark); transform:translateY(-3px); }

/* Échelle typographique de l’accueil : quatre niveaux uppercase, paragraphes uniformes */
body.home-page main h1 { font-size:clamp(52px,8.8vw,112px) !important; }
body.home-page main h2 { font-size:clamp(40px,5.2vw,68px) !important; }
body.home-page main h3 { font-size:22px !important; }
body.home-page main h4 { font-size:13px !important; }
body.home-page main p { font-size:13px !important; }
body.home-page main .button,
body.home-page main .text-link,
body.home-page main .hero-offer-line,
body.home-page main .custom-offer-link strong { font-size:13px !important; }
.custom-offer-link p { grid-column:1; align-self:end; margin:0; color:var(--muted); line-height:1.4; }
.custom-offer-link-dark p { color:rgba(255,255,255,.7); }

@media (max-width:900px) {
  .activity-families-grid { gap:16px; }
  .activity-family-yoga,
  .activity-family-experiences { padding:20px; }
}
@media (max-width:580px) {
  .activity-families-grid { grid-template-columns:1fr; }
  .activity-family-yoga,
  .activity-family-experiences { min-height:0; padding:20px; }
  .pricing-links-row { align-items:flex-start; flex-direction:column; gap:12px; }
  .pricing-links-row .pricing-experience-links { align-items:flex-start; flex-direction:column; gap:8px; }
  .discovery-offer { gap:12px; padding:16px; }
  .discovery-offer strong { font-size:38px; }
}


/* Derniers ajustements accueil : contraste uniforme, séparateurs fins, typographie tarifs */
/* Les éléments des deux blocs d’activités sont différenciés par leur fond et un filet, sans pastille. */
.activity-option { padding:12px 0 0; border-top:1px solid rgba(62,36,11,.18); }
.activity-option::before { display:none !important; content:none !important; }
.activity-family-yoga .activity-option { border-color:rgba(255,255,255,.28); }
.activity-family-yoga h3,
.activity-family-yoga .activity-option h4,
.activity-family-yoga .activity-option h4 a,
.activity-family-yoga .activity-option p { color:var(--ivory); }
.activity-family-experiences h3,
.activity-family-experiences .activity-option h4,
.activity-family-experiences .activity-option h4 a,
.activity-family-experiences .activity-option p { color:var(--ink); }

/* Un même corps de texte et une même couleur par fond dans la section Tarifs. */
#offres .three-offer-card p,
#offres .offer-price-line p,
#offres .premium-offer-detail,
#offres .premium-offer-price p,
#offres .discovery-offer p { color:var(--ink); font:400 13px/1.5 var(--open); }
#offres .subscription-highlight-card p,
#offres .subscription-highlight-card .subscription-compact-benefits p { color:var(--ivory); font-size:13px; }
#offres .offer-price-line h4 { margin:0 0 4px; color:var(--ink); font:600 13px/1.3 var(--jost); }
#offres .offer-price-line strong { font-size:24px; }
#offres .offer-price-line strong small { font-size:11px; }
#offres .three-offer-card h3,
#offres .discovery-offer h3 { font-size:22px; }
#offres .premium-offer-spots { color:var(--ink); font-size:13px; }
#offres .discovery-meta { color:var(--ink); }

/* La phrase et les liens forment un seul groupe ; les conditions restent alignées à droite. */
.pricing-links-row { display:grid; grid-template-columns:auto auto 1fr; align-items:center; gap:20px; }
.pricing-links-intro { margin:0; color:var(--burgundy); font:600 13px/1.3 var(--jost); }
.pricing-links-row .pricing-experience-links { display:flex; align-items:center; gap:18px; }
.pricing-links-row .pricing-terms-link { justify-self:end; }
.pricing-links-row a { font-size:13px; }

/* La section « En groupe » présente deux formats de même importance. */
.custom-offers-heading { margin-bottom:20px; }
.custom-offers-heading h2 { font-size:clamp(40px,5.2vw,68px); }
.custom-offers-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
.custom-offer-link strong { font-size:22px; }
.custom-offer-link p { color:var(--ink); font-size:13px; }
.custom-offer-link-dark p { color:var(--ivory); }

/* Paragraphes accueil : même corps/couleur sur fond clair, blanc cassé sur fond brun. */
body.home-page main p { color:var(--ink); font-size:13px !important; }
body.home-page main .activity-family-yoga p,
body.home-page main .subscription-highlight-card p,
body.home-page main .subscription-compact-benefits p,
body.home-page main .custom-offer-link-dark p { color:var(--ivory); }
body.home-page main .class-card-main p { color:var(--ivory); }

@media (max-width:580px) {
  .pricing-links-row { grid-template-columns:1fr; gap:10px; }
  .pricing-links-row .pricing-terms-link { justify-self:start; }
  .pricing-links-row .pricing-experience-links { align-items:flex-start; flex-direction:column; gap:8px; }
  .custom-offers-links { grid-template-columns:1fr; }
}
