/*
Theme Name: Atmosphère Yoga
Theme URI: https://atmosphere-yoga-gives.be
Author: Atmosphère Yoga Gives
Description: Thème personnalisé pour Atmosphère Yoga Gives — studio de yoga et soins bien-être à Gives (Huy), Belgique.
Version: 1.1
License: GNU General Public License v2 or later
Text Domain: atmosphere-yoga
*/

/* ===== VARIABLES ===== */
:root {
  --blue:       #5C82A6;
  --blue-dark:  #3f6080;
  --blue-light: #C4D9EC;
  --blue-pale:  #EBF2F8;
  --cream:      #EDE8DC;
  --cream-dark: #DDD7C8;
  --white:      #FFFFFF;
  --bg:         #F8F5F0;
  --text:       #2C3340;
  --muted:      #60697A;
  --radius:     12px;
  --shadow:     0 4px 24px rgba(0,0,0,0.07);
  --transition: 0.28s ease;
}

/* ===== RESET ===== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: 'Segoe UI', Arial, sans-serif; background: var(--bg); color: var(--text); font-size: 1rem; line-height: 1.7; }
h1, h2, h3, h4 { font-family: 'Segoe UI', 'Trebuchet MS', Arial, sans-serif; font-weight: 500; line-height: 1.25; }
a { text-decoration: none; color: inherit; }
img { max-width: 100%; display: block; height: auto; }
ul { list-style: none; }
.container { max-width: 1080px; margin: 0 auto; padding: 0 24px; }
.s { padding: 72px 0; }

/* ===== NAVIGATION ===== */
.site-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  background: rgba(248,245,240,0.96); backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(92,130,166,0.15);
  height: 66px; display: flex; align-items: center;
}
.site-nav .container { display: flex; align-items: center; justify-content: space-between; width: 100%; }
.site-nav__logo {
  display: flex; align-items: center; gap: 10px;
  font-size: 1.15rem; font-weight: 600; color: var(--blue-dark); letter-spacing: 0.02em;
}
.site-nav__logo-circle {
  width: 38px; height: 38px; border-radius: 50%; overflow: hidden; flex-shrink: 0;
  border: 1.5px solid var(--blue-light); background: white;
}
.site-nav__logo-circle img { width: 100%; height: 100%; object-fit: contain; }
.site-nav__menu { display: flex; gap: 4px; list-style: none; padding: 0; margin: 0; }
.site-nav__menu li a {
  padding: 8px 16px; border-radius: 50px;
  font-size: 0.88rem; font-weight: 600; color: var(--muted); transition: var(--transition);
}
.site-nav__menu li a:hover,
.site-nav__menu li.current-menu-item a,
.site-nav__menu li.current_page_item a { background: var(--blue-pale); color: var(--blue); }
.site-nav__menu li.menu-cta a { background: var(--blue); color: var(--white) !important; }
.site-nav__menu li.menu-cta a:hover { background: var(--blue-dark); }
.nav-burger { display: none; flex-direction: column; gap: 5px; cursor: pointer; background: none; border: none; }
.nav-burger span { display: block; width: 22px; height: 2px; background: var(--text); border-radius: 2px; }

/* Sous-menu "Yoga" (Aérien / Vinyasa / Doux) */
.menu-has-children { position: relative; }
.site-nav__menu li.menu-has-children > a { padding-right: 26px; }
.menu-has-children:hover,
.menu-has-children.submenu-open { background: var(--blue-pale); border-radius: 50px; }
.menu-has-children:hover > a { background: none; color: var(--blue); }
.menu-caret-btn {
  position: absolute; top: 50%; right: 6px; transform: translateY(-50%);
  background: none; border: none; cursor: pointer; padding: 6px;
  color: var(--muted); display: flex; align-items: center; justify-content: center; line-height: 1;
}
.menu-caret {
  display: inline-block; width: 0; height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
}
.sub-menu {
  list-style: none; margin: 0; padding: 6px; gap: 2px; display: flex; flex-direction: column;
  position: absolute; top: 100%; left: 0;
  background: var(--white); box-shadow: var(--shadow); border-radius: 12px;
  min-width: 170px; opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .15s, transform .15s, visibility .15s;
  z-index: 20;
}
.menu-has-children:hover .sub-menu,
.menu-has-children:focus-within .sub-menu,
.menu-has-children.submenu-open .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.sub-menu li a { display: block; padding: 8px 14px; white-space: nowrap; border-radius: 8px; }

@media (max-width: 640px) {
  .site-nav__menu { display: none; }
  .site-nav__menu.open { display: flex; flex-direction: column; position: absolute; top: 66px; left: 0; right: 0; background: var(--bg); border-bottom: 1px solid rgba(0,0,0,0.08); padding: 14px 20px; }
  .nav-burger { display: flex; }
  .sub-menu {
    position: static; box-shadow: none; transform: none; opacity: 0; visibility: hidden;
    height: 0; overflow: hidden; padding: 0; min-width: 0;
  }
  .menu-has-children.submenu-open .sub-menu {
    height: auto; overflow: visible; opacity: 1; visibility: visible; padding: 6px 0 6px 14px;
  }
}
.site-main { padding-top: 66px; }

/* ===== BOUTONS ===== */
.btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 13px 26px; border-radius: 50px;
  font-weight: 700; font-size: 0.92rem; font-family: inherit;
  transition: var(--transition); cursor: pointer; border: none;
}
.btn--blue, .btn--primary { background: var(--blue); color: var(--white); }
.btn--blue:hover, .btn--primary:hover { background: var(--blue-dark); transform: translateY(-1px); box-shadow: 0 6px 18px rgba(92,130,166,0.35); }
.btn--outline { background: transparent; color: var(--blue); border: 2px solid var(--blue); }
.btn--outline:hover { background: var(--blue-pale); transform: translateY(-1px); }
.btn--cream   { background: var(--cream); color: var(--text); }
.btn--cream:hover { background: var(--cream-dark); transform: translateY(-1px); }
.btn--full    { width: 100%; justify-content: center; }

/* ===== EN-TÊTES DE SECTION ===== */
.label { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--blue); margin-bottom: 10px; }
.section-title { font-size: clamp(1.7rem, 3vw, 2.3rem); margin-bottom: 14px; }
.section-sub { color: var(--muted); max-width: 500px; }
.section-head { margin-bottom: 48px; }
.section-head--center { text-align: center; }
.section-head--center .section-sub { margin: 0 auto; }

/* ===== HERO ===== */
.hero {
  min-height: calc(100vh - 66px);
  background: linear-gradient(150deg, var(--cream) 0%, var(--blue-pale) 55%, #daeaf6 100%);
  display: flex; align-items: center; position: relative; overflow: hidden;
}
.hero__content { position: relative; z-index: 1; max-width: 560px; }
.hero__badge {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--white); color: var(--blue);
  font-size: 0.78rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  padding: 6px 14px 6px 10px; border-radius: 50px; margin-bottom: 24px;
  border: 1.5px solid var(--blue-light); box-shadow: var(--shadow);
}
.hero h1 { font-size: clamp(2rem, 5vw, 3.4rem); color: var(--text); margin-bottom: 18px; }
.hero h1 em { font-style: normal; color: var(--blue); }
.hero__sub { font-size: 1.05rem; color: var(--muted); margin-bottom: 32px; max-width: 440px; }
.hero__actions { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 36px; }
.hero__info { display: flex; gap: 20px; flex-wrap: wrap; font-size: 0.85rem; color: var(--muted); }
.hero__info span { display: flex; align-items: center; gap: 5px; }
.hero__deco { position: absolute; right: 4%; top: 0; bottom: 0; width: 42%; display: flex; align-items: center; justify-content: center; pointer-events: none; }
.hero__logo-img {
  width: 360px; height: 360px; border-radius: 50%; object-fit: contain;
  background: rgba(255,255,255,0.7); padding: 24px;
  box-shadow: 0 12px 48px rgba(92,130,166,0.18), 0 0 0 1.5px rgba(92,130,166,0.15);
  animation: float 7s ease-in-out infinite;
}
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-16px)} }
@media (max-width: 780px) { .hero__deco { display: none; } .hero { padding: 48px 0; min-height: auto; } }

/* ===== INTRO HERO (accueil) ===== */
.intro-hero {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 48px;
  min-height: 460px;
  overflow: hidden;
  background: url('photos/Accueil1_jpg.jpg') center center / cover no-repeat;
  padding: 48px 40px;
  position: relative;
}
.intro-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.60);
  z-index: 0;
}
.intro-hero > * {
  position: relative;
  z-index: 1;
}

/* Bandeau fond massages — section soins */
.section--bg-massage {
  position: relative;
  padding: 64px 0 72px;
  background: url('photos/Massage2_jpg.jpg') center 35% / cover no-repeat;
}
.section--bg-massage::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.55);
  z-index: 0;
}
.section--bg-massage > * {
  position: relative;
  z-index: 1;
}

/* Bandeau fond Etik Nature — section rendez-vous */
.section--bg-etik {
  position: relative;
  padding: 64px 0 72px;
  background: url('photos/Fond_Etik.jpeg') center 35% / cover no-repeat;
}
.section--bg-etik::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.25);
  z-index: 0;
}
.section--bg-etik > * {
  position: relative;
  z-index: 1;
}

/* Bandeau fond yoga aérien — section planning/tarifs */
.section--bg-yoga {
  position: relative;
  background: url('photos/Yoga_Aerien_jpg.jpg') center top / cover no-repeat;
}
.section--bg-yoga::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.60);
  z-index: 0;
}
.section--bg-yoga > * {
  position: relative;
  z-index: 1;
}

/* Colonne gauche — largeur max fixe, centrée dans la section */
.intro-hero__left {
  flex: 0 1 620px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.intro-hero__left-inner {
  width: 100%;
  max-width: 460px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.intro-hero__logo {
  display: block;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  object-fit: cover;
  box-shadow: 0 8px 40px rgba(92,130,166,0.28);
  margin-bottom: 28px;
}
.intro-card {
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 4px 32px rgba(92,130,166,0.12);
  padding: 28px 32px;
  border-top: 3px solid var(--blue);
  text-align: left;
  width: 100%;
}
.intro-card p {
  font-size: 0.97rem;
  line-height: 1.85;
  color: var(--text);
  margin-bottom: 13px;
}
.intro-card p:last-child { margin-bottom: 0; }
.intro-card__tagline {
  font-size: 0.97rem;
  font-weight: 600;
  color: var(--blue);
  border-top: 1px solid var(--blue-light);
  padding-top: 14px;
  margin-top: 4px;
}
.intro-hero__actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 24px;
}

/* Colonne droite — slider compact, côté droit, proportion 3:4 */
.intro-hero__photos {
  flex: 0 0 340px;
  position: relative;
  overflow: hidden;
  aspect-ratio: 3/4;
  align-self: flex-start;
  margin-top: 208px;
  transform: translateX(90px);
  border-radius: 14px;
  box-shadow: 0 6px 32px rgba(92, 130, 166, 0.28);
}
.intro-slider {
  position: absolute;
  inset: 0;
}
.intro-slider__slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 20%;
  opacity: 0;
  transition: opacity 1s ease-in-out;
}
.intro-slider__slide.active { opacity: 1; }

@media (max-width: 860px) {
  .intro-hero         { flex-direction: column; min-height: auto; }
  .intro-hero__left   { flex: none; width: 100%; justify-content: center;
                        padding: 48px 24px 32px; }
  .intro-hero__left-inner { max-width: 600px; }
  .intro-hero__photos { flex: none; width: 220px; height: auto; aspect-ratio: 3/4; margin: 0 auto 32px; }
}

@media (max-width: 480px) {
  .intro-card         { padding: 22px 18px; }
  .intro-hero__photos { width: 180px; }
}

/* ===== CARDS SERVICES ===== */
.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; }
.card { background: var(--white); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); transition: var(--transition); cursor: pointer; display: block; }
.card:hover { transform: translateY(-4px); box-shadow: 0 14px 36px rgba(0,0,0,0.10); }
.card__thumb { height: 160px; display: flex; align-items: center; justify-content: center; font-size: 3.5rem; }
.card__thumb--yoga    { background: linear-gradient(135deg, var(--blue-pale), #d4e8f5); }
.card__thumb--massage { background: #ffffff; }
.card__thumb--book    { background: linear-gradient(135deg, #daeaf6, var(--blue-light)); }
.card__body  { padding: 24px; }
.card__title { font-size: 1.1rem; margin-bottom: 8px; }
.card__text  { color: var(--muted); font-size: 0.9rem; margin-bottom: 16px; }
.card__link  { display: inline-flex; align-items: center; gap: 5px; color: var(--blue); font-weight: 700; font-size: 0.88rem; transition: var(--transition); }
.card__link::after { content: '→'; }
.card__link:hover { gap: 9px; }

/* ===== ABOUT STRIP ===== */
.about { background: var(--blue); color: var(--white); padding: 56px 0; }
.about__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.about h2 { color: var(--white); margin-bottom: 14px; }
.about p  { opacity: 0.88; margin-bottom: 22px; font-size: 0.98rem; }
.stats { display: flex; gap: 32px; flex-wrap: wrap; }
.stat__n { font-size: 2.2rem; font-weight: 700; }
.stat__l { font-size: 0.82rem; opacity: 0.78; }
@media (max-width: 860px) { .about__inner { grid-template-columns: 1fr; gap: 32px; } }

/* ===== PAGE HERO ===== */
.page-hero { padding: 64px 0 48px; }
.page-hero--yoga    { background: linear-gradient(135deg, var(--blue-pale), #d4e8f5); }
.page-hero--massage { background: linear-gradient(135deg, var(--cream), #e0d9c8); }
.page-hero--book    { background: linear-gradient(135deg, #daeaf6, var(--blue-light)); }
.page-hero h1 { font-size: clamp(1.9rem, 4vw, 2.8rem); margin-bottom: 14px; }
.page-hero p  { color: var(--muted); font-size: 1rem; max-width: 540px; }
.section-hero__title { font-size: clamp(1.9rem, 4vw, 2.8rem); margin-bottom: 14px; color: var(--blue-dark); }
.section-header--hero { margin-bottom: 48px; }

/* ===== FEATURE GRID (bienfaits yoga) ===== */
.feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.feature-item { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); padding: 20px 18px; transition: var(--transition); }
.feature-item:hover { transform: translateY(-3px); box-shadow: 0 12px 32px rgba(0,0,0,0.09); }
.feature-item__icon  { font-size: 1.7rem; margin-bottom: 10px; }
.feature-item__title { font-size: 0.95rem; font-weight: 700; color: var(--blue-dark); margin-bottom: 8px; }
.feature-item__text  { color: var(--muted); font-size: 0.85rem; line-height: 1.65; }
@media (max-width: 860px) { .feature-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px)  { .feature-grid { grid-template-columns: 1fr; } }

/* ===== YOGA PHOTO SECTION ===== */
.yoga-photo { position: relative; border-radius: var(--radius); overflow: hidden; height: 340px; background: linear-gradient(135deg, var(--blue-pale), #c8def5); display: flex; align-items: center; justify-content: center; margin-bottom: 56px; }
.yoga-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 2; transition: transform 0.4s ease; }
.yoga-photo:hover img { transform: scale(1.03); }
.yoga-photo__icon { font-size: 5rem; position: relative; z-index: 1; pointer-events: none; }
.yoga-photo__btn { position: absolute; bottom: 18px; right: 18px; z-index: 3; }

/* ===== COURS YOGA ===== */
.yoga-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 24px; }
.yoga-card { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; }
.yoga-card__head { padding: 24px 24px 16px; border-bottom: 1px solid rgba(0,0,0,0.05); background: linear-gradient(135deg, var(--blue-pale), var(--white)); }
.yoga-card__icon { font-size: 2.2rem; margin-bottom: 8px; }
.yoga-card__name { font-size: 1.25rem; font-weight: 600; color: var(--blue-dark); margin-bottom: 6px; }
.yoga-card__schedule { display: inline-flex; align-items: center; gap: 6px; background: var(--blue); color: var(--white); font-size: 0.82rem; font-weight: 700; padding: 5px 12px; border-radius: 50px; }
.yoga-card__body { padding: 20px 24px; }
.yoga-card__desc { color: var(--muted); font-size: 0.9rem; margin-bottom: 18px; }
.pricing-list { display: flex; flex-direction: column; gap: 8px; }
.pricing-row { display: flex; justify-content: space-between; align-items: center; font-size: 0.88rem; padding: 8px 12px; border-radius: 8px; background: var(--bg); }
.pricing-row__label { color: var(--muted); }
.pricing-row__price { font-weight: 700; color: var(--blue-dark); }
.pricing-row--highlight { background: var(--blue-pale); }
.pricing-row--highlight .pricing-row__label { color: var(--blue-dark); font-weight: 600; }
.yoga-card__foot { padding: 16px 24px; border-top: 1px solid rgba(0,0,0,0.05); }

/* ===== TARIFS ===== */
.pricing-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 28px; }
.pricing-card { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); text-align: center; padding: 36px 28px; }
.pricing-card--featured { border: 2px solid var(--blue); }
.pricing-card__icon  { font-size: 2rem; margin-bottom: 8px; }
.pricing-card__name  { font-size: 1.2rem; margin-bottom: 12px; }
.pricing-card__price { font-size: 2rem; font-weight: 700; color: var(--blue); margin-bottom: 8px; }
.pricing-card__price small { font-size: 0.85rem; color: var(--muted); font-weight: 400; }
.pricing-card__desc  { color: var(--muted); font-size: 0.9rem; margin-bottom: 24px; }
.pricing-grid--5 {
  grid-template-columns: repeat(5, 1fr);
  gap: 14px;
}
.pricing-card--sm {
  padding: 20px 16px 20px;
}
.pricing-card--sm .pricing-card__icon  { font-size: 1.5rem; margin-bottom: 6px; }
.pricing-card--sm .pricing-card__name  { font-size: 0.95rem; margin-bottom: 8px; }
.pricing-card--sm .pricing-card__price { font-size: 1.5rem; margin-bottom: 6px; }
.pricing-card--sm .pricing-card__price small { font-size: 0.75rem; }
.pricing-card--sm .pricing-card__desc  { font-size: 0.8rem; margin-bottom: 16px; }
.pricing-card--sm .btn                 { font-size: 0.82rem; padding: 8px 10px; }

.pricing-card__tag {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  background: var(--blue-pale);
  color: var(--blue);
  border-radius: 50px;
  padding: 3px 10px;
  margin-bottom: 10px;
}
.pricing-card__tag--aerial   { background: #e8f0fb; color: #3b6bbf; }
.pricing-card__tag--standard { background: #e8f5f0; color: #2e7d5a; }

@media (max-width: 900px) {
  .pricing-grid--5 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 600px) {
  .pricing-grid--5 { grid-template-columns: 1fr 1fr; }
}
.pricing-note {
  text-align: center;
  margin-top: 24px;
  font-size: 0.9rem;
  color: var(--muted);
  background: var(--blue-pale);
  border-left: 3px solid var(--blue);
  border-radius: 6px;
  padding: 12px 18px;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}

/* ===== MASSAGES ===== */
.massage-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; }
.massage-card { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); display: flex; flex-direction: column; overflow: hidden; transition: var(--transition); }
.massage-card:hover { transform: translateY(-3px); box-shadow: 0 12px 32px rgba(0,0,0,0.10); }
.massage-card__name     { font-size: 1rem; font-weight: 700; color: var(--blue-dark); margin-bottom: 5px; }
.massage-card__duration { display: inline-block; margin-bottom: 10px; font-size: 0.78rem; font-weight: 600; color: var(--blue); }
.massage-card__body     { padding: 14px 16px 10px; flex: 1; }
.massage-card__text     { color: var(--muted); font-size: 0.85rem; margin-bottom: 10px; }
.massage-card__benefits { list-style: none; }
.massage-card__benefits li { font-size: 0.85rem; color: var(--muted); padding: 3px 0; display: flex; align-items: center; gap: 8px; }
.massage-card__benefits li::before { content: '✓'; color: var(--blue); font-weight: 700; flex-shrink: 0; }

/* ===== INFO STRIP (massages) ===== */
.info-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0; margin-top: 56px; border-radius: var(--radius); overflow: hidden; border: 1.5px solid var(--blue-light); }
.info-strip__item { display: flex; align-items: flex-start; gap: 14px; padding: 24px 20px; background: var(--blue-pale); border-right: 1.5px solid var(--blue-light); }
.info-strip__item:last-child { border-right: none; }
.info-strip__icon { font-size: 1.4rem; flex-shrink: 0; margin-top: 2px; }
.info-strip__item strong { display: block; color: var(--blue-dark); font-size: 0.88rem; font-weight: 700; margin-bottom: 5px; }
.info-strip__item p { color: var(--muted); font-size: 0.83rem; margin: 0; line-height: 1.65; }
@media (max-width: 700px) {
  .info-strip { grid-template-columns: 1fr 1fr; }
  .info-strip__item:nth-child(2) { border-right: none; }
  .info-strip__item:nth-child(odd):not(:last-child) { border-right: 1.5px solid var(--blue-light); }
}

/* ===== MASSAGE CARD — PHOTO ===== */
.massage-card__photo { position: relative; height: 120px; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.massage-card__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; padding: 12px; transition: transform 0.4s ease; mix-blend-mode: multiply; }
.massage-card:hover .massage-card__photo img { transform: scale(1.03); }
.massage-card__photo--default { background: linear-gradient(135deg, var(--cream), #e8dfc8); }
.massage-card__photo--stone   { background: linear-gradient(135deg, #e8d5c0, #d4b89a); }
.massage-card__photo--drain   { background: linear-gradient(135deg, #d4eae0, #b5d4c8); }
.massage-card__photo--pre     { background: linear-gradient(135deg, #f5e6f5, #e8cce8); }
.massage-card__photo--reflex  { background: linear-gradient(135deg, var(--cream), #f5d9a0); }
.massage-card__photo--sport   { background: linear-gradient(135deg, #f0e4cc, #e0cca8); }
.massage-card__photo-icon { font-size: 3rem; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 1; pointer-events: none; }
.massage-card__photo img { z-index: 2; }
.massage-card__footer { padding: 10px 16px; border-top: 1px solid rgba(0,0,0,0.06); display: flex; gap: 10px; justify-content: center; }
.btn--sm { padding: 10px 16px; font-size: 0.82rem; }

/* ===== MODAL GALERIE ===== */
.mg-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.72); z-index: 9000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.mg-dialog { background: var(--white); border-radius: var(--radius); width: 100%; max-width: 860px; max-height: 90vh; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 24px 80px rgba(0,0,0,0.35); }
.mg-dialog__head { display: flex; align-items: center; justify-content: space-between; padding: 18px 24px; border-bottom: 1px solid var(--blue-light); flex-shrink: 0; }
.mg-dialog__head h3 { font-size: 1.05rem; color: var(--blue-dark); margin: 0; }
.mg-close { background: none; border: none; font-size: 1.3rem; cursor: pointer; color: var(--muted); line-height: 1; padding: 4px 8px; border-radius: 6px; transition: var(--transition); }
.mg-close:hover { background: var(--blue-pale); color: var(--blue-dark); }
.mg-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; padding: 20px; overflow-y: auto; }
.mg-item img { width: 100%; height: 180px; object-fit: cover; border-radius: 8px; display: block; }

/* ===== RÉSERVATION ===== */
.booking-wrap { display: grid; grid-template-columns: 1fr 320px; gap: 36px; align-items: start; }
.booking-tabs { display: flex; border-radius: var(--radius); overflow: hidden; border: 2px solid var(--blue); width: fit-content; margin-bottom: 28px; }
.btab { padding: 11px 22px; font-weight: 700; font-size: 0.88rem; background: var(--white); color: var(--blue); border: none; font-family: inherit; cursor: pointer; transition: var(--transition); }
.btab.active { background: var(--blue); color: var(--white); }
.bsection { display: none; }
.bsection.active { display: block; }

/* Calendrier */
.cal { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; margin-bottom: 24px; }
.cal__head { background: var(--blue); color: var(--white); padding: 14px 18px; display: flex; align-items: center; justify-content: space-between; }
.cal__head h3 { font-size: 0.95rem; }
.cal__nav { background: none; border: none; color: var(--white); font-size: 1.2rem; cursor: pointer; padding: 4px 8px; border-radius: 4px; transition: var(--transition); }
.cal__nav:hover { background: rgba(255,255,255,0.2); }
.cal__grid { padding: 14px; }
.cal__days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.cal__dname { text-align: center; font-size: 0.72rem; font-weight: 700; color: var(--muted); padding: 6px 0; text-transform: uppercase; }
.cal__day { text-align: center; padding: 7px 3px; border-radius: 7px; font-size: 0.85rem; cursor: pointer; transition: var(--transition); position: relative; }
.cal__day:hover:not(.dis):not(.emp) { background: var(--blue-pale); color: var(--blue); }
.cal__day.sel { background: var(--blue) !important; color: var(--white) !important; }
.cal__day.tod { font-weight: 700; color: var(--blue); }
.cal__day.dis { opacity: 0.3; cursor: not-allowed; }
.cal__day.emp { cursor: default; }
.cal__day.has::after { content: ''; display: block; width: 4px; height: 4px; border-radius: 50%; background: var(--blue); margin: 1px auto 0; }
.cal__day--full { opacity: 0.4; cursor: not-allowed; text-decoration: line-through; }

/* Créneaux */
.slots-label { font-size: 0.78rem; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 10px; }
.slots { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 24px; }
.slot { padding: 11px 6px; text-align: center; border: 2px solid rgba(92,130,166,0.2); border-radius: 8px; cursor: pointer; font-size: 0.85rem; font-weight: 600; transition: var(--transition); background: var(--white); }
.slot:hover:not(.full) { border-color: var(--blue); background: var(--blue-pale); }
.slot.sel { border-color: var(--blue); background: var(--blue); color: var(--white); }
.slot.full { opacity: 0.4; cursor: not-allowed; text-decoration: line-through; }
.slot__s { display: block; font-size: 0.7rem; font-weight: 400; opacity: 0.8; margin-top: 1px; }

/* Sélecteur cours */
.class-sel { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; margin-bottom: 22px; }
.citem { background: var(--bg); border: 2px solid transparent; border-radius: 10px; padding: 0; cursor: pointer; transition: var(--transition); overflow: hidden; }
.citem:hover { border-color: var(--blue-light); }
.citem.sel { border-color: var(--blue); background: var(--blue-pale); }
.citem__thumb { height: 90px; background: linear-gradient(135deg, var(--blue-pale), #c8def5); display: flex; align-items: center; justify-content: center; font-size: 2.2rem; position: relative; overflow: hidden; }
.citem__thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.citem__body  { padding: 12px 14px; }
.citem__name { font-weight: 700; font-size: 0.92rem; color: var(--text); margin-bottom: 4px; }
.citem__meta { font-size: 0.8rem; color: var(--muted); display: flex; flex-direction: column; gap: 2px; }
.badge { display: inline-block; padding: 2px 9px; border-radius: 50px; font-size: 0.74rem; font-weight: 700; margin-top: 6px; }
.badge--g { background: #d4edda; color: #2a7a4f; }
.badge--o { background: var(--cream); color: #7a5020; }
.badge--b { background: var(--blue-pale); color: var(--blue-dark); }
.badge--special { background: #fff3cd; color: #856404; border: 1px solid #ffc107; font-weight: 600; }

/* Section headers (utilisés dans tous les templates) */
.section-header { margin-bottom: 36px; }
.section__label { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--blue); margin-bottom: 10px; }
.section__title { font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 700; color: var(--text); margin-bottom: 10px; }
.section__sub   { color: var(--muted); max-width: 520px; font-size: 0.97rem; }
.event-carousel-hint { color: var(--muted); font-size: 0.9rem; font-style: italic; margin-top: 4px; }

/* Planning grid */
.planning-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin-top: 8px; }
.planning-card { flex: 0 1 calc((100% - 32px) / 3); }
@media (max-width: 860px) { .planning-card { flex-basis: calc((100% - 16px) / 2); } }
@media (max-width: 540px)  { .planning-card { flex-basis: 100%; } }
.planning-card { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; display: flex; flex-direction: column; transition: var(--transition); }
.planning-card:hover { transform: translateY(-3px); box-shadow: 0 12px 32px rgba(0,0,0,0.10); }
/* Photo area */
.planning-card__photo { position: relative; height: 150px; overflow: hidden; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.planning-card__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; z-index: 2; transition: transform 0.4s ease; mix-blend-mode: multiply; }
.planning-card:hover .planning-card__photo img { transform: scale(1.04); }
.planning-card__photo--aerial  { background: linear-gradient(135deg, var(--blue-pale), #c8def5); }
.planning-card__photo--vinyasa { background: linear-gradient(135deg, #daeaf6, #b5c8e0); }
.planning-card__photo--doux    { background: linear-gradient(135deg, #d4eae0, #b5d4c8); }
.planning-card__photo-icon { font-size: 2.8rem; position: relative; z-index: 1; pointer-events: none; }
/* Content */
.planning-card__head { padding: 16px 18px 10px; text-align: center; }
.planning-card__name { font-size: 1rem; font-weight: 700; color: var(--blue-dark); margin-bottom: 6px; }
.planning-card__schedule { font-size: 0.82rem; color: var(--muted); }
.planning-card__body { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 8px 18px 12px; flex-wrap: wrap; }
.planning-card__price { font-weight: 700; color: var(--blue); font-size: 1rem; }
.planning-card__note  { display: block; font-size: 0.75rem; color: var(--muted); margin-top: 4px; text-decoration: none; }
.planning-card__note:hover { text-decoration: underline; }
.planning-card__footer { display: flex; gap: 8px; padding: 12px 18px 16px; border-top: 1px solid rgba(0,0,0,0.05); margin-top: auto; justify-content: center; }

/* Formulaire */
.bform { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); padding: 24px; }
.bform h3 { margin-bottom: 18px; font-size: 1.05rem; }
.fg { margin-bottom: 15px; }
.fg label { display: block; font-size: 0.82rem; font-weight: 700; margin-bottom: 5px; }
.fg input, .fg select, .fg textarea { width: 100%; padding: 11px 14px; border: 2px solid rgba(0,0,0,0.07); border-radius: 8px; font-size: 0.92rem; font-family: inherit; color: var(--text); background: var(--bg); transition: var(--transition); outline: none; }
.fg input:focus, .fg select:focus, .fg textarea:focus { border-color: var(--blue); background: var(--white); }
.fg textarea { resize: vertical; min-height: 72px; }
.fg-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }

/* Récapitulatif */
.summary { background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); padding: 22px; position: sticky; top: 82px; }
.summary h3 { margin-bottom: 18px; padding-bottom: 12px; border-bottom: 1px solid rgba(0,0,0,0.07); font-size: 1rem; }
.sum-row { display: flex; justify-content: space-between; font-size: 0.88rem; margin-bottom: 10px; }
.sum-row__l { color: var(--muted); }
.sum-row__v { font-weight: 600; text-align: right; max-width: 150px; }
.sum-div { border: none; border-top: 1px solid rgba(0,0,0,0.07); margin: 14px 0; }
.sum-total { display: flex; justify-content: space-between; font-weight: 700; color: var(--blue); font-size: 1.05rem; }
.sum-note { margin-top: 16px; font-size: 0.8rem; color: var(--muted); line-height: 1.6; }

/* Modal confirmation */
.modal-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.45); z-index: 2000; align-items: center; justify-content: center; }
.modal-overlay.show { display: flex; }
.modal { background: var(--white); border-radius: var(--radius); padding: 44px; max-width: 420px; width: 90%; text-align: center; box-shadow: 0 20px 60px rgba(0,0,0,0.18); animation: pop .28s ease; }
@keyframes pop { from { transform: scale(0.88); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.modal__icon { font-size: 3.5rem; margin-bottom: 14px; }
.modal h2 { margin-bottom: 10px; color: var(--blue-dark); }
.modal p  { color: var(--muted); margin-bottom: 24px; font-size: 0.95rem; }
.modal__btns { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }

/* ===== FOOTER ===== */
.site-footer { background: #252c36; color: rgba(255,255,255,0.72); padding: 52px 0 26px; }
.footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 2.8fr; gap: 36px; margin-bottom: 40px; }
.footer__brand { font-size: 1.2rem; font-weight: 600; color: var(--white); margin-bottom: 10px; }
.footer__desc  { font-size: 0.88rem; line-height: 1.7; }
.site-footer h4 { color: var(--white); font-size: 0.82rem; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; margin-bottom: 14px; }
.site-footer ul { list-style: none; padding: 0; }
.site-footer ul li { margin-bottom: 7px; }
.site-footer ul li a { font-size: 0.88rem; color: rgba(255,255,255,0.62); transition: var(--transition); }
.site-footer ul li a:hover { color: var(--blue-light); }
.footer__bottom { border-top: 1px solid rgba(255,255,255,0.1); padding-top: 20px; display: flex; justify-content: space-between; align-items: center; font-size: 0.8rem; flex-wrap: wrap; gap: 10px; }
.socials { display: flex; gap: 10px; margin-top: 16px; }
.soc { width: 36px; height: 36px; background: rgba(255,255,255,0.1); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.95rem; transition: var(--transition); cursor: pointer; }
.soc:hover { background: var(--blue); }

/* ===== BACK TO TOP ===== */
.btt { position: fixed; bottom: 28px; right: 28px; width: 44px; height: 44px; background: var(--blue); color: var(--white); border-radius: 50%; display: none; align-items: center; justify-content: center; font-size: 1rem; box-shadow: 0 4px 14px rgba(92,130,166,0.4); cursor: pointer; z-index: 999; transition: var(--transition); border: none; }
.btt.show { display: flex; }
.btt:hover { background: var(--blue-dark); transform: translateY(-2px); }

/* ===== HORAIRES ===== */
.horaires-table { max-width: 480px; margin: 0 auto; background: var(--bg); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.horaires-table__head { background: var(--blue); color: white; padding: 14px 20px; font-weight: 700; font-size: 0.9rem; }
.horaires-row { display: flex; justify-content: space-between; padding: 12px 20px; font-size: 0.92rem; border-bottom: 1px solid rgba(0,0,0,0.05); }
.horaires-row--active { background: var(--blue-pale); }
.horaires-row--active span:last-child { color: var(--blue); font-weight: 600; }
.horaires-row span:last-child { color: var(--muted); }

/* ===== RESPONSIVE ===== */
@media (max-width: 860px) { .booking-wrap { grid-template-columns: 1fr; } .summary { position: static; } .footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .footer__grid { grid-template-columns: 1fr; } .fg-row { grid-template-columns: 1fr; } .slots { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 480px) { .booking-tabs { width: 100%; } .btab { flex: 1; font-size: 0.8rem; padding: 11px 6px; } }

/* ===== MODAL DÉTAIL SOIN ===== */
.md-overlay { }
.md-dialog { max-width: 680px; }
.md-body { padding: 28px 28px 32px; overflow-y: auto; }
.md-hero { display: flex; align-items: flex-start; gap: 20px; margin-bottom: 22px; }
.md-hero img { width: 120px; height: 120px; object-fit: cover; border-radius: var(--radius); flex-shrink: 0; box-shadow: var(--shadow); }
.md-quote { font-style: italic; color: var(--blue-dark); font-size: 1rem; line-height: 1.6; flex: 1; margin: 0; padding-top: 6px; }
.md-text { font-size: 0.93rem; line-height: 1.75; color: var(--text); margin-bottom: 20px; }
.md-benefits { list-style: none; padding: 0; margin: 0 0 28px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; }
.md-benefits li { font-size: 0.88rem; color: var(--blue-dark); padding-left: 18px; position: relative; }
.md-benefits li::before { content: '✓'; position: absolute; left: 0; color: var(--blue); font-weight: 700; }
.md-footer { text-align: center; padding-top: 4px; }
.btn--lg { padding: 14px 36px; font-size: 1rem; }

/* ===== CARTE MASSAGE — citation style ===== */
.massage-card__quote { font-style: italic; color: var(--blue-dark); font-size: 0.85rem; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: 0; }

/* ===== À PROPOS — section accueil ===== */
.about-section { background: linear-gradient(135deg, #f5ede0 0%, #eee8f5 100%); }
.about-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.about-wrap__text p.section__label { margin-bottom: 10px; }
.about-wrap__text h2 { font-size: 1.6rem; color: var(--blue-dark); margin-bottom: 20px; line-height: 1.3; }
.about-wrap__text p { color: var(--text); line-height: 1.8; margin-bottom: 14px; font-size: 0.95rem; }
.about-wrap__text p:last-of-type { margin-bottom: 28px; }
.about-values { display: flex; flex-direction: column; gap: 20px; }
.about-value { display: flex; gap: 16px; align-items: flex-start; }
.about-value__icon { font-size: 1.6rem; flex-shrink: 0; margin-top: 2px; }
.about-value__body h3 { font-size: 0.95rem; font-weight: 700; color: var(--blue-dark); margin-bottom: 5px; }
.about-value__body p { font-size: 0.88rem; line-height: 1.65; color: var(--text); margin: 0; }
@media (max-width: 860px) { .about-wrap { grid-template-columns: 1fr; gap: 36px; } .about-pillars { grid-template-columns: 1fr; } .md-benefits { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .md-hero { flex-direction: column; } .md-hero img { width: 100%; height: 180px; } }

/* ===== TEMOIGNAGES - bandeau defilant ===== */
.testimonials-section { background: var(--blue-pale); padding: 52px 0 48px; overflow: hidden; }
.testimonials-header { text-align: center; margin-bottom: 32px; }

.testimonials-ticker { overflow: hidden; width: 100%; }
.testimonials-track {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
  flex-wrap: nowrap;
  gap: 32px;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  -webkit-animation: ticker-scroll 160s linear infinite;
  animation: ticker-scroll 160s linear infinite;
  will-change: transform;
  padding: 8px 0 12px;
}
.testimonials-ticker:hover .testimonials-track {
  -webkit-animation-play-state: paused;
  animation-play-state: paused;
}

@-webkit-keyframes ticker-scroll {
  0%   { -webkit-transform: translateX(0); transform: translateX(0); }
  100% { -webkit-transform: translateX(-50%); transform: translateX(-50%); }
}
@keyframes ticker-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.testimonial-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
  -ms-flex-align: start;
  align-items: flex-start;
  gap: 18px;
  background: #ffffff;
  border-radius: 12px;
  padding: 32px 36px;
  -webkit-box-shadow: 0 4px 24px rgba(0,0,0,0.07);
  box-shadow: 0 4px 24px rgba(0,0,0,0.07);
  min-width: 560px;
  max-width: 680px;
  -ms-flex-negative: 0;
  flex-shrink: 0;
}
.testimonial-item__quote {
  font-size: 4rem;
  line-height: 1;
  color: #C4D9EC;
  font-family: Georgia, serif;
  margin-top: -6px;
  -ms-flex-negative: 0;
  flex-shrink: 0;
}
.testimonial-item__body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  gap: 12px;
}
.testimonial-item__tag {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  color: #3f6080;
  background: #EBF2F8;
  border-radius: 50px;
  padding: 3px 12px;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
.testimonial-item__text {
  font-size: 1.05rem;
  line-height: 1.75;
  color: #2C3340;
  font-style: italic;
  margin: 0;
}
.testimonial-item__author {
  font-size: 0.9rem;
  font-weight: 600;
  color: #3f6080;
}

@media (max-width: 640px) {
  .testimonial-item { min-width: 300px; max-width: 360px; padding: 22px 24px; }
  .testimonials-track { -webkit-animation-duration: 160s; animation-duration: 160s; }
}

/* ===== EVENT SECTION ===== */
.event-section {
  background: linear-gradient(135deg, #eef5ee 0%, #e6efe8 100%);
  position: relative;
  text-align: center;
}
.event-section .section-header { margin-bottom: 20px; }
.event-section .event-poster { display: block; margin: 0 auto; }
.event-wrap-vertical {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 24px;
  margin: 0 auto;
  text-align: center;
}
.event-wrap-vertical .event-wrap__info { text-align: center; max-width: 520px; margin: 0 auto; }
.event-wrap-vertical .event-wrap__meta { -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; }
.event-slide { display: none; }
.event-slide--active {
  display: block;
  -webkit-animation: eventFadeIn 0.35s ease;
  animation: eventFadeIn 0.35s ease;
}
@-webkit-keyframes eventFadeIn {
  from { opacity: 0; -webkit-transform: translateY(6px); transform: translateY(6px); }
  to   { opacity: 1; -webkit-transform: none; transform: none; }
}
@keyframes eventFadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: none; }
}
.event-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: flex-start;
  -ms-flex-align: flex-start;
  align-items: flex-start;
  gap: 52px;
}
.event-wrap__info {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
}
.event-wrap__title {
  font-size: clamp(1.05rem, 2vw, 1.25rem);
  font-weight: 600;
  color: #3f6080;
  letter-spacing: 0.01em;
  margin-bottom: 16px;
  text-transform: uppercase;
}
.event-meta__link {
  color: #3f6080;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.event-meta__link:hover { color: #2C3340; }
.event-wrap__meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 22px;
}
.event-meta__item {
  color: #60697A;
  font-size: 0.95rem;
  line-height: 1.5;
}
.event-meta__item strong { color: #2C3340; font-weight: 700; }
.event-meta__item--alert { color: #2a6138; font-size: 0.93rem; }
.event-meta__tag {
  display: inline-block;
  border-radius: 50px;
  padding: 3px 14px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-top: 2px;
  background: #d2ead5;
  color: #2a6138;
}
.event-meta__tag--sound { background: #dce8f5; color: #3f6080; }
.event-wrap__visual { display: flex; flex-direction: column; align-items: center; gap: 10px; position: relative; }
.event-meta__tag--past {
  background: #5a5a5a; color: #fff; margin: 0 auto;
  font-size: 0.8rem; padding: 5px 18px; letter-spacing: 0.08em;
}
.event-slide--past .event-poster,
.event-slide--past .event-photo { filter: grayscale(65%); opacity: 0.8; }
.event-slide--past .event-wrap__visual::before {
  content: 'PASS\00C9';
  position: absolute; top: 22px; left: -38px;
  width: 170px; text-align: center;
  background: #b23b3b; color: #fff;
  font-size: 0.8rem; font-weight: 700; letter-spacing: 0.12em;
  padding: 5px 0; transform: rotate(-35deg);
  box-shadow: 0 3px 10px rgba(0,0,0,0.25);
  z-index: 3; pointer-events: none;
}
.event-wrap__quote {
  font-style: italic;
  color: #3f6080;
  font-size: 1rem;
  line-height: 1.6;
  margin-bottom: 12px;
  border-left: none;
  padding-left: 0;
}
.event-wrap__desc {
  color: #60697A;
  font-size: 0.96rem;
  line-height: 1.75;
}
.event-wrap__program {
  margin: 12px 0 10px 0;
  padding: 0;
  list-style: none;
  color: #60697A;
  font-size: 0.93rem;
}
.event-wrap__program li {
  padding: 3px 0;
}
.event-wrap__by {
  font-size: 0.88rem;
  color: #8a95a3;
  margin-bottom: 4px;
}
.event-wrap__cta { margin-top: 16px; display: inline-block; }
.event-wrap__visual { -ms-flex-negative: 0; flex-shrink: 0; }
.event-poster {
  width: 100%;
  max-width: 500px;
  border-radius: 14px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.14);
}
.event-photo {
  width: 190px;
  height: 190px;
  -o-object-fit: cover;
  object-fit: cover;
  border-radius: 14px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.14);
}
/* Fleches navigation */
.event-carousel { position: relative; }
.event-nav {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  background: #5C82A6;
  border: none;
  color: transparent;
  font-size: 0;
  border-radius: 50px;
  width: 60px;
  height: 60px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(63,96,128,0.35);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  padding: 0;
  -webkit-transition: background 0.2s, box-shadow 0.2s, -webkit-transform 0.2s;
  transition: background 0.2s, box-shadow 0.2s, transform 0.2s;
  z-index: 2;
}
.event-nav::before {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
}
.event-nav--prev::before {
  border-width: 10px 13px 10px 0;
  border-color: transparent #ffffff transparent transparent;
  margin-right: 4px;
}
.event-nav--next::before {
  border-width: 10px 0 10px 13px;
  border-color: transparent transparent transparent #ffffff;
  margin-left: 4px;
}
.event-nav:hover {
  background: #3f6080;
  box-shadow: 0 6px 22px rgba(63,96,128,0.45);
  -webkit-transform: translateY(-50%) scale(1.08);
  -ms-transform: translateY(-50%) scale(1.08);
  transform: translateY(-50%) scale(1.08);
}
.event-nav--prev { left: 6px; }
.event-nav--next { right: 6px; }
@-webkit-keyframes eventPulse {
  0%, 100% { box-shadow: 0 4px 16px rgba(63,96,128,0.35); }
  50%       { box-shadow: 0 4px 28px rgba(63,96,128,0.65); }
}
@keyframes eventPulse {
  0%, 100% { box-shadow: 0 4px 16px rgba(63,96,128,0.35); }
  50%       { box-shadow: 0 4px 28px rgba(63,96,128,0.65); }
}
.event-nav--next[style*="visible"],
.event-nav--next:not([style*="hidden"]) {
  -webkit-animation: eventPulse 2s ease-in-out infinite;
  animation: eventPulse 2s ease-in-out infinite;
}
/* Indicateurs (dots) — flux normal, sous le carousel */
.event-dots {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  gap: 10px;
  margin-top: 24px;
}
.event-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #C4D9EC;
  border: none;
  cursor: pointer;
  padding: 0;
  -webkit-transition: background 0.2s, -webkit-transform 0.2s;
  transition: background 0.2s, transform 0.2s;
}
.event-dot--active { background: #5C82A6; -webkit-transform: scale(1.3); -ms-transform: scale(1.3); transform: scale(1.3); }
@media (max-width: 700px) {
  .event-wrap { -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; gap: 28px; text-align: center; }
  .event-wrap__quote { text-align: left; }
  .event-meta__tag { margin: 2px auto 0; }
  .event-poster { width: 180px; }
  .event-photo { width: 140px; height: 140px; }
  .event-nav { width: 48px; height: 48px; }
  .event-nav--prev::before { border-width: 8px 10px 8px 0; margin-right: 3px; }
  .event-nav--next::before { border-width: 8px 0 8px 10px; margin-left: 3px; }
  .event-nav--prev { left: 2px; }
  .event-nav--next { right: 2px; }
}

/* ===== CONTACT ===== */
.contact-section { background: var(--cream); }
.contact-wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: start;
}
.contact-wrap__text h2 { margin-bottom: 14px; }
.contact-wrap__text p { color: var(--muted); margin-bottom: 28px; }
.contact-info { display: flex; flex-direction: column; gap: 12px; }
.contact-info__item {
  display: flex; align-items: center; gap: 10px;
  color: var(--blue-dark); font-weight: 600; font-size: 0.95rem;
  transition: var(--transition);
}
.contact-info__item:hover { color: var(--blue); }
.contact-info__icon { font-size: 1.1rem; }

/* Styles CF7 intégrés */
.contact-wrap__form .wpcf7-form { display: flex; flex-direction: column; gap: 10px; }
.contact-wrap__form .wpcf7-form p { margin: 0; display: flex; flex-direction: column; gap: 4px; }
.contact-wrap__form .wpcf7-form p > br { display: none; }
.contact-wrap__form .wpcf7-form p > label,
.contact-wrap__form .wpcf7-form p > .wpcf7-form-control-wrap { display: block; width: 100%; }
.contact-wrap__form input[type="text"],
.contact-wrap__form input[type="email"],
.contact-wrap__form input[type="tel"],
.contact-wrap__form textarea {
  width: 100%;
  padding: 12px 16px;
  border: 1.5px solid #C4D9EC;
  border-radius: 12px;
  background: #FFFFFF;
  font-family: 'Segoe UI', Arial, sans-serif;
  font-size: 0.95rem;
  color: #2C3340;
  transition: border-color 0.28s ease;
  box-sizing: border-box;
  display: block;
}
.contact-wrap__form input[type="text"]:focus,
.contact-wrap__form input[type="email"]:focus,
.contact-wrap__form input[type="tel"]:focus,
.contact-wrap__form textarea:focus {
  outline: none;
  border-color: #5C82A6;
  box-shadow: 0 0 0 3px rgba(92,130,166,0.12);
}
.contact-wrap__form textarea { min-height: 120px; resize: vertical; }
.contact-wrap__form input[type="submit"] {
  background: #5C82A6;
  color: #FFFFFF;
  border: none;
  padding: 13px 28px;
  border-radius: 50px;
  font-family: 'Segoe UI', Arial, sans-serif;
  font-size: 0.92rem;
  font-weight: 700;
  cursor: pointer;
  transition: 0.28s ease;
  margin-top: 4px;
}
.contact-wrap__form input[type="submit"]:hover {
  background: #3f6080;
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(92,130,166,0.35);
}
.wpcf7-not-valid-tip { color: #c0392b; font-size: 0.82rem; margin-top: 4px; display: block; }
.wpcf7-response-output {
  border-radius: 12px;
  padding: 12px 16px;
  font-size: 0.9rem;
  margin-top: 8px !important;
  border: 1.5px solid;
}
.wpcf7-mail-sent-ok { border-color: #27ae60 !important; background: #eafaf1; color: #1e8449; }
.wpcf7-validation-errors { border-color: #e67e22 !important; background: #fef9f0; color: #b7770d; }
.contact-fallback { color: #60697A; font-style: italic; }
@media (max-width: 768px) {
  .contact-wrap { grid-template-columns: 1fr; gap: 32px; }
}
