@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Lora:wght@400;500;600&family=Inter:wght@300;400;500;600&display=swap");
/* ==========================================================================
   Design Tokens — Starter Theme
   API: --c-* (utilisés partout)
   Source DS: --starter-* (injectés par Customizer PHP)
   ========================================================================== */
/* --------------------------------------------------------------------------
   1) SOURCE (Customizer)
   -> customizer-design-system.php injecte :
   --starter-c-bg, --starter-c-surface, --starter-c-text, --starter-c-muted,
   --starter-c-primary, --starter-c-secondary, --starter-c-border, --starter-radius
   -------------------------------------------------------------------------- */
/* --------------------------------------------------------------------------
   2) BASE (DARK par défaut) = API vars mappées sur le DS
   -------------------------------------------------------------------------- */
:root {
  /* ======================
     Colors (API)
     ====================== */
  --c-bg: var(--starter-c-bg, #0b0f17);
  --c-surface: var(--starter-c-surface, #111827);
  --c-text: var(--starter-c-text, #e5e7eb);
  --c-muted: var(--starter-c-muted, #94a3b8);
  /* Primary / Secondary pilotés par DS (Customizer OK dans tous les modes) */
  --c-primary: var(--starter-c-primary, #60a5fa);
  --c-secondary: var(--starter-c-secondary, #C38B59);
  /* Border piloté par DS */
  --c-border: var(--starter-c-border, rgba(148,163,184,.22));
  /* Radius piloté par DS */
  --radius: var(--starter-radius, 16px);
  /* ======================
     Typography
     ====================== */
  --ff-sans: "Inter", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  --ff-serif: "Lora", ui-serif, Georgia, serif;
  --fs-0: 0.875rem;
  --fs-1: 1rem;
  --fs-2: 1.25rem;
  --fs-3: clamp(1.5rem, 2vw + 1rem, 2.25rem);
  --lh: 1.5;
  /* ======================
     Spacing
     ====================== */
  --s-1: 0.25rem;
  --s-2: 0.5rem;
  --s-3: 0.75rem;
  --s-4: 1rem;
  --s-6: 1.5rem;
  --s-8: 2rem;
  --s-12: 3rem;
  --s-16: 4rem;
  /* ======================
     Layout
     ====================== */
  --container: 72rem;
  --gutter: var(--s-4);
  /* ======================
     Shadows
     ====================== */
  --shadow: 0 10px 30px rgba(0,0,0,.35);
  /* ======================
     Header
     ====================== */
  --header-h: 72px;
  --header-h-sm: 64px;
  /* UA */
  color-scheme: dark light;
}

/* --------------------------------------------------------------------------
   3) AUTO MODE (si PAS de data-theme)
   -------------------------------------------------------------------------- */
@media (prefers-color-scheme: light) {
  html:not([data-theme]) {
    --c-bg: #F6F3ED;
    --c-surface: #FFFFFF;
    --c-text: #1F2933;
    --c-muted: #6B7280;
    /* primary/secondary restent pilotés par DS (Customizer) */
    /* --c-primary: var(--starter-c-primary, #2F5D4B); */
    /* --c-secondary: var(--starter-c-secondary, #C38B59); */
    --c-border: rgba(31,41,51,.12);
    --shadow: 0 10px 30px rgba(31,41,51,.10);
  }
}
/* --------------------------------------------------------------------------
   4) FORCED LIGHT MODE
   -------------------------------------------------------------------------- */
html[data-theme=light] {
  color-scheme: light;
  --c-bg: #F6F3ED;
  --c-surface: #FFFFFF;
  --c-text: #1F2933;
  --c-muted: #6B7280;
  /* primary/secondary restent DS */
  --c-border: rgba(31,41,51,.12);
  --shadow: 0 10px 30px rgba(31,41,51,.10);
}

/* --------------------------------------------------------------------------
   5) FORCED DARK MODE
   -------------------------------------------------------------------------- */
html[data-theme=dark] {
  color-scheme: dark;
  /* Retour aux valeurs DS (Customizer) */
  --c-bg: var(--starter-c-bg, #0b0f17);
  --c-surface: var(--starter-c-surface, #111827);
  --c-text: var(--starter-c-text, #e5e7eb);
  --c-muted: var(--starter-c-muted, #94a3b8);
  --c-primary: var(--starter-c-primary, #60a5fa);
  --c-secondary: var(--starter-c-secondary, #C38B59);
  --c-border: var(--starter-c-border, rgba(148,163,184,.22));
  --shadow: 0 10px 30px rgba(0,0,0,.35);
}

/* ==========================================================================
   Base Reset
   ========================================================================== */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  min-height: 100vh;
  background: var(--c-bg);
  color: var(--c-text);
  font-family: var(--ff-sans);
  line-height: var(--lh);
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

input,
button,
textarea,
select {
  font: inherit;
  color: inherit;
}

button {
  background: none;
  border: 0;
  padding: 0;
}

ul,
ol {
  margin: 0;
  padding: 0;
}

li {
  list-style: none;
}

.c-container {
  width: min(var(--container), 100% - var(--gutter) * 2);
  margin-inline: auto;
}

.c-section {
  position: relative;
  padding-block: var(--s-16);
  padding-inline: var(--gutter);
}

.c-section--alt {
  background: var(--c-surface);
}

.c-section__head {
  text-align: center;
  margin-bottom: var(--s-12);
}

.c-grid {
  display: grid;
  gap: var(--s-8);
}

.c-grid--3 {
  grid-template-columns: 1fr;
}
@media (min-width: 48rem) {
  .c-grid--3 {
    grid-template-columns: repeat(3, 1fr);
  }
}

.c-h2 {
  font-family: var(--ff-serif, var(--ff-sans));
  font-size: var(--fs-3);
  line-height: 1.15;
  margin: 0 0 var(--s-4);
  color: var(--c-text);
}

.c-h3 {
  font-family: var(--ff-serif, var(--ff-sans));
  font-size: var(--fs-2);
  line-height: 1.2;
  margin: var(--s-4) 0 var(--s-2);
  color: var(--c-text);
}

.c-subtitle {
  margin: 0;
  color: var(--c-muted);
  font-size: var(--fs-1);
  max-width: 42rem;
  margin-inline: auto;
}

.c-lead {
  margin: 0 0 var(--s-4);
  color: var(--c-muted);
  font-size: var(--fs-1);
  line-height: 1.75;
}

/* ==========================================================================
   Accessibility helpers
   ========================================================================== */
:where(a, button, input, textarea, select, summary) {
  outline: none;
}

:where(a, button, input, textarea, select, summary):focus-visible {
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--c-primary) 35%, transparent);
  border-color: color-mix(in srgb, var(--c-primary) 60%, var(--c-border));
}

.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.hr {
  height: 1px;
  background: var(--c-border);
  border: 0;
}

/* ==========================================================================
   Base typography & elements
   ========================================================================== */
a {
  color: inherit;
  text-decoration: none;
}

a:hover,
a:focus-visible {
  text-decoration: none;
}

.entry-content a {
  text-decoration: none;
}

.entry-content a:hover {
  text-decoration: none;
}

p {
  margin: 0;
}

.muted {
  color: var(--c-muted);
}

h1, h2, h3, h4, h5, h6 {
  margin: 0;
  font-family: var(--ff-serif);
  font-weight: 500;
}

/* ==========================================================================
   Base background
   ========================================================================== */
html,
body {
  min-height: 100%;
}

body {
  background: var(--c-bg);
}

/* ==========================================================================
   PAGES TEXTE (Mentions / Privacy / etc.)
   - Plein fond (grille via body)
   - Largeur de lecture
   - Typo propre avec variables DS
   ========================================================================== */
/* .page-basic__inner{
  max-width: 80ch;
} */
/* Titre + intro */
.page-basic__head {
  display: grid;
  gap: var(--s-2);
  padding-bottom: var(--s-5);
  /* border-bottom: 1px solid color-mix(in srgb, var(--c-border) 70%, transparent); */
}

.page-basic__title {
  font-weight: 900;
  letter-spacing: -0.35px;
  line-height: 1.05;
}

.page-basic__excerpt {
  margin: 0;
}

/* Contenu Gutenberg */
.page-basic__content {
  margin-top: var(--s-6);
  line-height: var(--lh);
  color: var(--c-text);
}

/* Paragraphes / listes */
.page-basic__content :is(p, ul, ol) {
  color: var(--c-muted);
  font-size: 1.02rem;
}

.page-basic__content :is(ul, ol) {
  padding-left: 1.25rem;
}

.page-basic__content li {
  margin: 0.35rem 0;
}

/* Titres */
.page-basic__content h2 {
  margin: var(--s-8) 0 var(--s-3);
  font-weight: 900;
  letter-spacing: -0.25px;
  font-size: 1.5rem;
  color: var(--c-text);
}

.page-basic__content h3 {
  margin: var(--s-6) 0 var(--s-2);
  font-weight: 800;
  letter-spacing: -0.15px;
  font-size: 1.15rem;
  color: var(--c-text);
}

/* Liens */
.page-basic__content a {
  color: color-mix(in srgb, var(--c-primary) 92%, white);
  text-decoration: none;
  border-bottom: 1px solid color-mix(in srgb, var(--c-primary) 40%, transparent);
}

.page-basic__content a:hover {
  border-bottom-color: color-mix(in srgb, var(--c-primary) 70%, transparent);
}

/* Séparateurs */
.page-basic__content hr {
  border: 0;
  height: 1px;
  margin: var(--s-7) 0;
  background: color-mix(in srgb, var(--c-border) 70%, transparent);
}

/* Quotes (si tu en as) */
.page-basic__content blockquote {
  margin: var(--s-6) 0;
  padding: var(--s-4) var(--s-5);
  border-left: 3px solid color-mix(in srgb, var(--c-primary) 55%, transparent);
  background: color-mix(in srgb, var(--c-surface) 70%, transparent);
  color: var(--c-text);
  border-radius: calc(var(--radius) + 6px);
}

/* Mobile */
@media (max-width: 900px) {
  .page-basic__inner {
    max-width: 100%;
  }
  .page-basic__content :is(p, ul, ol) {
    font-size: 1rem;
  }
}
.page-basic.section::before {
  background: transparent;
}

/* ==========================================================================
   Layout - Containers
   ========================================================================== */
.container {
  width: min(100% - 2 * var(--gutter), var(--container));
  margin-inline: auto;
}

/* zone contenu editor (si tu veux une classe dédiée) */
.editor-content {
  width: 100%;
}

/* ==========================================================================
   Layout - Sections
   ========================================================================== */
.section {
  padding-block: var(--s-16);
}

@media (max-width: 900px) {
  .section {
    padding-block: var(--s-8);
  }
}
/* ==========================================================================
   Layout - Grid helpers
   ========================================================================== */
.grid {
  display: grid;
  gap: var(--s-6);
  grid-template-columns: repeat(12, 1fr);
}

.col-12 {
  grid-column: span 12;
}

.col-8 {
  grid-column: span 8;
}

.col-6 {
  grid-column: span 6;
}

.col-4 {
  grid-column: span 4;
}

.col-3 {
  grid-column: span 3;
}

@media (max-width: 900px) {
  .col-8,
  .col-6,
  .col-4,
  .col-3 {
    grid-column: span 12;
  }
}
/* ==========================================================================
   Layout - Header / Nav
   ========================================================================== */
.header-inner {
  height: var(--header-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-4);
}

.brand {
  display: flex;
  align-items: center;
  gap: var(--s-2);
  height: 100%;
  font-family: var(--ff-serif);
  font-weight: 500;
  letter-spacing: -0.01em;
}

/* lien logo WP */
.custom-logo-link {
  display: flex;
  align-items: center;
  height: 100%;
}

.custom-logo {
  max-height: 60%;
  width: auto;
  height: auto;
  display: block;
}

.brand-title {
  font-weight: 800;
  letter-spacing: 0.2px;
}

.brand-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: var(--c-primary);
  box-shadow: 0 0 0 6px color-mix(in srgb, var(--c-primary) 18%, transparent);
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  isolation: isolate;
  background: transparent;
  border-bottom: 0;
  backdrop-filter: none;
  transition: color 0.2s ease;
}

.site-header .brand {
  color: var(--c-primary);
}

.site-header .brand-text {
  color: var(--c-primary);
  text-decoration: none;
}

.site-header .nav a {
  color: var(--c-primary);
}

.site-header .burger {
  border-color: var(--c-border);
}

.site-header .burger span {
  background: var(--c-primary);
}

/* calque blur */
.site-header::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  backdrop-filter: blur(10px);
  background: color-mix(in srgb, var(--c-bg) 75%, transparent);
  border-bottom: 1px solid var(--c-border);
  transition: background-color 0.2s ease, border-color 0.2s ease, backdrop-filter 0.2s ease;
}

body.has-overlay-header .site-header:not(.is-scrolled) .brand,
body.has-overlay-header .site-header:not(.is-scrolled) .brand-text,
body.has-overlay-header .site-header:not(.is-scrolled) .nav a {
  color: #fff;
}

body.has-overlay-header .site-header:not(.is-scrolled) .burger {
  border-color: rgba(255, 255, 255, 0.4);
}

body.has-overlay-header .site-header:not(.is-scrolled) .burger span {
  background: #fff;
}

body.has-overlay-header .site-header:not(.is-scrolled)::before {
  backdrop-filter: none;
  background: var(--c-primary);
  border-bottom-color: color-mix(in srgb, var(--c-primary) 78%, white);
}

.nav {
  display: flex;
  align-items: center;
  gap: var(--s-6);
}

.nav a {
  color: var(--c-text);
  opacity: 0.92;
}

.nav a:hover {
  opacity: 1;
}

.burger {
  display: none;
  width: 44px;
  height: 44px;
  border: 1px solid var(--c-border);
  border-radius: 14px;
  background: transparent;
  cursor: pointer;
}

.burger span {
  display: block;
  height: 2px;
  margin: 6px;
  background: var(--c-text);
  border-radius: 999px;
}

/* WP Menu fix */
.nav .menu,
.nav ul {
  display: flex;
  align-items: center;
  gap: var(--s-6);
  margin: 0;
  padding: 0;
  list-style: none;
}

.nav li {
  margin: 0;
  padding: 0;
}

/* Mobile nav */
@media (max-width: 900px) {
  .header-inner {
    height: var(--header-h-sm);
  }
  .burger {
    display: inline-block;
  }
  .nav {
    position: fixed;
    top: var(--header-h-sm, 64px);
    left: 0;
    right: 0;
    bottom: 0;
    padding: var(--s-6);
    background: var(--c-bg);
    overflow-y: auto;
    z-index: 60;
    display: grid;
    grid-auto-rows: max-content;
    gap: var(--s-6);
    transform: translateY(-8px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: transform 0.25s ease, opacity 0.2s ease, visibility 0s linear 0.25s;
  }
  .nav.is-open {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: transform 0.25s ease, opacity 0.2s ease;
  }
  body.has-overlay-header .site-header:not(.is-scrolled) .nav.is-open a {
    color: var(--c-primary);
  }
  .nav .menu ul {
    display: grid;
    gap: var(--s-4);
    margin: 0;
    padding: 0;
    list-style: none;
  }
  .nav > a.btn {
    width: 100%;
    justify-content: center;
  }
}
/* ==========================================================================
   BURGER — barres plus courtes + transformation en croix
   - Fonctionne avec ton HTML : nav + button.burger
   - Déclenché par .nav.is-open (ajouté par ton JS)
   ========================================================================== */
.burger {
  position: relative;
  -webkit-tap-highlight-color: transparent;
}

/* Barres : plus courtes, centrées, transitions propres */
.burger span {
  width: 22px; /* longueur des lignes */
  height: 2px;
  margin: 0 auto; /* centrage horizontal */
  margin-top: 6px; /* espace vertical */
  margin-bottom: 6px;
  background: var(--c-text);
  border-radius: 999px;
  display: block;
  transition: transform 0.22s ease, opacity 0.18s ease;
  transform-origin: center;
}

/* Etat ouvert : croix (nav.is-open + burger) */
.nav.is-open + .burger span:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
}

.nav.is-open + .burger span:nth-child(2) {
  opacity: 0;
  transform: scaleX(0.6);
}

.nav.is-open + .burger span:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}

/* Focus clavier DS */
.burger:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--c-primary) 45%, transparent);
  outline-offset: 3px;
}

/* ==========================================================================
   MOBILE NAV — Typo renforcée (lisibilité ++)
   ========================================================================== */
@media (max-width: 900px) {
  /* Liens principaux du menu */
  .nav a {
    font-size: 1.25rem;
    line-height: 1.4;
    opacity: 1;
  }
  /* Menu WP (liens empilés) */
  .nav .menu,
  .nav ul {
    gap: var(--s-4); /* plus d’air entre les items */
  }
  .nav li > a {
    padding: 0.85rem 0.75rem; /* zone tactile confortable */
    border-radius: 14px;
    letter-spacing: 0.2px;
  }
  /* Hover / tap feedback */
}
@media (max-width: 900px) and (hover: hover) {
  .nav li > a:hover {
    background: color-mix(in srgb, var(--c-surface) 86%, transparent);
  }
}
@media (max-width: 900px) {
  /* Bouton Contact */
  .nav > a.btn {
    font-size: 1.15rem; /* ⬅️ CTA plus visible */
    padding: 0.9rem 1rem;
    margin-top: var(--s-2);
  }
}
/* =========================================================
   Footer
========================================================= */
.site-footer {
  position: relative;
  border-top: 0;
  background: #fff;
  color: var(--c-text);
  padding-top: var(--s-12);
}

.site-main > .c-section:last-child:not(#inscription) {
  background: var(--c-bg) !important;
  color: var(--c-text);
}

.site-main > .c-section:last-child:not(#inscription) :is(.c-h2, .c-h3, [class$=__title]) {
  color: var(--c-text) !important;
}

.site-main > .c-section:last-child:not(#inscription) :is(.c-subtitle, .c-text-muted, [class$=__text]) {
  color: var(--c-muted) !important;
}

.site-main > .c-section:last-child:not(#inscription) .c-btn--primary,
.site-main > .c-section:last-child:not(#inscription) [class$=__actions] .c-btn:first-child {
  background: var(--c-primary) !important;
  border-color: var(--c-primary) !important;
  color: #fff !important;
}

.site-main > .c-section:last-child:not(#inscription) :is(.c-btn--secondary, .c-btn--ghost, .c-btn--ghost-white) {
  background: transparent !important;
  border-color: var(--c-primary) !important;
  color: var(--c-primary) !important;
}

.site-main > .c-section:last-child:not(#inscription) :is(.c-btn--secondary, .c-btn--ghost, .c-btn--ghost-white):hover {
  background: color-mix(in srgb, var(--c-primary) 10%, transparent) !important;
}

/* GRID 4 colonnes */
.footer-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--s-12);
  padding-bottom: var(--s-12);
}

.footer-col {
  display: flex;
  flex-direction: column;
  gap: var(--s-4);
}

/* Brand */
.footer-brand .brand {
  font-family: var(--ff-serif);
  font-size: var(--fs-2);
}

.footer-tagline {
  color: var(--c-muted);
  line-height: 1.6;
  max-width: 26ch;
}

.footer-logo img {
  max-height: 46px;
}

/* Titles */
.footer-title {
  font-family: var(--ff-serif);
  font-size: 1.05rem;
  margin: 0;
}

/* Links */
.footer-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
}

.footer-list a {
  color: var(--c-text);
  text-decoration: none;
}

.footer-list a:hover {
  text-decoration: underline;
}

/* Bottom */
.footer-bottom {
  padding: var(--s-6) 0 0;
}

.footer-bottom-inner {
  border-top: 1px solid var(--c-border);
  padding-top: var(--s-6);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--s-4);
  flex-wrap: wrap;
}

.footer-bottom-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--s-4);
  flex-wrap: wrap;
}

.footer-bottom p {
  margin: 0;
  color: var(--c-muted);
  font-size: var(--fs-0);
}

.footer-legal {
  display: flex;
  gap: var(--s-4);
}

.footer-legal a {
  font-size: var(--fs-0);
  color: var(--c-muted);
  text-decoration: none;
}

.footer-legal a:hover {
  text-decoration: underline;
}

.author {
  display: flex;
  align-items: center;
  justify-content: center;
  width: auto;
  max-width: none;
  margin: var(--s-8) auto 0;
  padding: 20px;
  background: var(--c-primary);
  color: #fff;
  font-size: 16px;
  line-height: 1.4;
  text-align: center;
}

.author a {
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}

.author a:hover {
  color: rgba(255, 255, 255, 0.84);
  text-decoration: underline;
}

/* Responsive */
@media (max-width: 900px) {
  .footer-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 520px) {
  .footer-grid {
    grid-template-columns: 1fr;
  }
  .footer-bottom-inner {
    flex-direction: column;
    align-items: flex-start;
  }
  .author {
    display: grid;
    justify-items: center;
    gap: 0.2rem;
    padding: 18px var(--gutter);
    font-size: 0.92rem;
  }
  .author a {
    display: block;
    margin-top: 0.1rem;
  }
}
:root {
  /* Accent “sable” (fallback) – tu pourras le piloter plus tard via customizer si tu ajoutes --starter-c-accent */
  --c-accent: var(--starter-c-accent, #C9A88A);
  --c-accent-ink: #1a2b22;
}

.c-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--s-2);
  padding: 0.95rem 1.35rem;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 600;
  border: 1px solid transparent;
  transition: transform 0.15s ease, filter 0.15s ease, background-color 0.15s ease;
  will-change: transform;
  white-space: nowrap;
}

.c-btn:hover {
  transform: translateY(-1px);
  filter: brightness(0.98);
}

.c-btn:active {
  transform: translateY(0);
}

.c-btn__icon {
  font-size: 1.1em;
}

.c-btn--primary {
  background: var(--c-primary);
  color: #fff;
}

.c-btn--accent {
  background: var(--c-accent);
  color: #fff;
}

.c-btn--light {
  background: #fff;
  color: var(--c-accent-ink);
  border-color: rgba(255, 255, 255, 0.55);
}

.c-btn--accent {
  background: transparent;
  border: 2px solid var(--c-secondary);
  color: var(--c-secondary);
}

.c-btn--accent:hover {
  background: var(--c-secondary);
  color: white;
}

.c-btn--accent {
  background: var(--c-secondary);
  color: white;
  border: none;
}

.c-btn--accent:hover {
  background: color-mix(in srgb, var(--c-secondary) 85%, black);
}

.c-card {
  background: color-mix(in oklab, var(--c-bg) 65%, var(--c-surface));
  border: 1px solid var(--c-border);
  border-radius: var(--radius);
  overflow: hidden;
}

.c-card--hover {
  box-shadow: none;
  background: color-mix(in oklab, var(--c-bg) 80%, var(--c-surface));
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.c-card--hover:hover {
  transform: translateY(-2px);
  box-shadow: none;
}

.c-text-muted {
  color: var(--c-muted);
  line-height: 1.7;
}

.c-link {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  color: var(--c-primary);
  text-decoration: none;
  font-weight: 600;
}

.c-link:hover {
  text-decoration: underline;
}

.c-icon {
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: color-mix(in oklab, var(--c-primary) 18%, transparent);
  color: var(--c-primary);
  font-weight: 700;
  margin-bottom: var(--s-6);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.8rem;
}

.c-card {
  background: color-mix(in oklab, var(--c-bg) 65%, var(--c-surface));
  border: 1px solid var(--c-border);
  border-radius: var(--radius);
  overflow: hidden;
}

/* ✅ padding pour les cards "contenu" */
.feature-card {
  padding: var(--s-8);
}

/* Si tu veux une version responsive */
@media (max-width: 48rem) {
  .feature-card {
    padding: var(--s-6);
  }
}
.feature-card .c-text-muted {
  margin-bottom: var(--s-6);
}

/* ==========================================================================
   04-WP / GUTENBERG
   - Harmonisation Gutenberg avec ton design system
   - Boutons WP (wp-block-button)
   - Ajustements typographiques dans les sections
   - Embeds (Youtube, etc.) dans le hero
   ========================================================================== */
/* ----------------------------
   Gutenberg buttons
   Classes sur wrapper (.wp-block-button.btn etc)
   Style sur le <a> interne
   ---------------------------- */
/* Le wrapper Gutenberg ne doit rien dessiner */
.wp-block-button.btn,
.wp-block-button.btn-primary,
.wp-block-button.btn-ghost,
.wp-block-button.btn-sm,
.wp-block-button.btn-lg {
  background: transparent;
  padding: 0;
  border: 0;
}

/* Base du lien bouton Gutenberg */
.wp-block-button .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  border-radius: 14px;
  border: 1px solid var(--c-border);
  background: transparent;
  color: var(--c-text);
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.12s ease, background-color 0.12s ease, border-color 0.12s ease;
}

.wp-block-button .wp-block-button__link:hover {
  background: color-mix(in srgb, var(--c-surface) 55%, transparent);
}

.wp-block-button .wp-block-button__link:active {
  transform: translateY(1px);
}

/* Variantes */
.wp-block-button.btn-primary .wp-block-button__link {
  background: var(--c-primary);
  color: #08101f;
  border-color: color-mix(in srgb, var(--c-primary) 70%, black);
}

.wp-block-button.btn-primary .wp-block-button__link:hover {
  background: color-mix(in srgb, var(--c-primary) 90%, white);
}

.wp-block-button.btn-ghost .wp-block-button__link {
  background: transparent;
  border-color: transparent;
}

.wp-block-button.btn-ghost .wp-block-button__link:hover {
  border-color: var(--c-border);
  background: color-mix(in srgb, var(--c-surface) 55%, transparent);
}

/* Tailles */
.wp-block-button.btn-sm .wp-block-button__link {
  padding: 0.55rem 0.75rem;
  border-radius: 12px;
  font-size: var(--fs-0);
}

.wp-block-button.btn-lg .wp-block-button__link {
  padding: 0.9rem 1.15rem;
  border-radius: 16px;
  font-size: 1.05rem;
}

/* ----------------------------
   Hero: fix H1 Gutenberg
   -> tu voulais mt-4 sur le H1 des wp-block
   ---------------------------- */
.hero .wp-block-heading:is(h1) {
  margin-top: var(--s-4);
}

/* ----------------------------
   Hero embeds: video fill container
   ---------------------------- */
.hero-media.hero-media--embed {
  display: block; /* override flex centering */
  position: relative;
  overflow: hidden;
}

/* Gutenberg embed wrapper */
.hero-media.hero-media--embed .wp-block-embed {
  margin: 0;
  width: 100%;
  height: 100%;
}

.hero-media.hero-media--embed .wp-block-embed__wrapper {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.hero-media.hero-media--embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* ----------------------------
   Images Gutenberg dans ton hero-media
   (si tu utilises un bloc Image dans .hero-media)
   ---------------------------- */
.hero-media__img,
.hero-media .wp-block-image,
.hero-media img {
  width: 100%;
  height: 100%;
  display: block;
}

.hero-media img {
  object-fit: cover;
}

/* ----------------------------
   Optionnel: editor-content (si tu wraps le contenu Gutenberg)
   -> évite les marges WP trop agressives
   ---------------------------- */
.editor-content :where(p, ul, ol) {
  line-height: 1.6;
}

/* Si besoin: garder les liens sans underline (tu l’as déjà globalement) */
.editor-content a {
  text-decoration: none;
}

.wp-block-columns.pricing {
  align-items: stretch;
}

/* ==========================================================================
   WPForms + Contact — Starter Theme (PRO / vendable)
   Objectif:
   - Forcer WPForms à respecter ton Design System (tokens CSS)
   - Neutraliser les styles “modern” WPForms (vars + max-width 60% etc.)
   - Garder un layout propre (Nom/Prénom en 2 colonnes, stack mobile)
   - Helpers pour la section Contact en split (form + média)
   ========================================================================== */
/* --------------------------------------------------------------------------
   0) Bridge Design System -> Variables WPForms
   WPForms “modern” pilote beaucoup via des custom properties.
   Ici on mappe WPForms -> DS pour que tout s’aligne automatiquement.
   -------------------------------------------------------------------------- */
.wpforms-container,
.wpforms-container-full,
.wp-core-ui div.wpforms-container,
.wp-core-ui div.wpforms-container-full {
  /* Champs */
  --wpforms-field-background-color: color-mix(in srgb, var(--c-surface) 70%, transparent);
  --wpforms-field-text-color: var(--c-text);
  --wpforms-field-border-color: var(--c-border);
  --wpforms-field-border-radius: var(--radius);
  --wpforms-field-border-size: 1px;
  --wpforms-field-border-style: solid;
  /* Labels */
  --wpforms-label-color: var(--c-muted);
  --wpforms-label-sublabel-color: var(--c-muted);
  --wpforms-field-description-color: var(--c-muted);
  /* Bouton */
  --wpforms-button-background-color: var(--c-primary);
  --wpforms-button-text-color: #08101f;
}

/* --------------------------------------------------------------------------
   1) Container / spacing
   -------------------------------------------------------------------------- */
.wpforms-container {
  margin: 0; /* WPForms met parfois des marges */
}

/* .wpforms-container .wpforms-form .wpforms-field {
  margin-bottom: var(--s-4);
} */
/* --------------------------------------------------------------------------
   2) KILL les limitations WPForms “medium” (le fameux max-width: 60%)
   IMPORTANT: c’est souvent la cause #1 des formulaires trop étroits.
   -------------------------------------------------------------------------- */
.wpforms-container input.wpforms-field-small,
.wpforms-container input.wpforms-field-medium,
.wpforms-container input.wpforms-field-large,
.wpforms-container select.wpforms-field-small,
.wpforms-container select.wpforms-field-medium,
.wpforms-container select.wpforms-field-large,
.wpforms-container textarea.wpforms-field-small,
.wpforms-container textarea.wpforms-field-medium,
.wpforms-container textarea.wpforms-field-large,
.wpforms-container .wpforms-field-row.wpforms-field-small,
.wpforms-container .wpforms-field-row.wpforms-field-medium,
.wpforms-container .wpforms-field-row.wpforms-field-large,
.wp-core-ui div.wpforms-container input.wpforms-field-small,
.wp-core-ui div.wpforms-container input.wpforms-field-medium,
.wp-core-ui div.wpforms-container input.wpforms-field-large,
.wp-core-ui div.wpforms-container select.wpforms-field-small,
.wp-core-ui div.wpforms-container select.wpforms-field-medium,
.wp-core-ui div.wpforms-container select.wpforms-field-large,
.wp-core-ui div.wpforms-container textarea.wpforms-field-small,
.wp-core-ui div.wpforms-container textarea.wpforms-field-medium,
.wp-core-ui div.wpforms-container textarea.wpforms-field-large,
.wp-core-ui div.wpforms-container .wpforms-field-row.wpforms-field-small,
.wp-core-ui div.wpforms-container .wpforms-field-row.wpforms-field-medium,
.wp-core-ui div.wpforms-container .wpforms-field-row.wpforms-field-large {
  max-width: 100% !important;
  width: 100% !important;
}

/* --------------------------------------------------------------------------
   3) Labels (principaux + sublabels Prénom/Nom)
   WPForms met la couleur via --wpforms-label-sublabel-color.
   On garde un fallback au cas où un thème/plugin écrase les variables.
   -------------------------------------------------------------------------- */
.wpforms-container .wpforms-form label,
.wp-core-ui div.wpforms-container .wpforms-form label {
  display: block;
  font-size: var(--fs-0);
  color: var(--c-muted);
  margin-bottom: var(--s-2);
}

.wpforms-container .wpforms-field-sublabel,
.wp-core-ui div.wpforms-container .wpforms-field-sublabel {
  font-size: var(--fs-0);
  color: var(--c-muted) !important; /* fallback solide */
  margin-top: var(--s-2);
}

/* --------------------------------------------------------------------------
   4) Champs (inputs, select, textarea) — style DS
   On cible large pour couvrir WPForms modern + variations.
   -------------------------------------------------------------------------- */
.wpforms-container .wpforms-form :is(input[type=text],
input[type=email],
input[type=tel],
input[type=url],
input[type=number],
input[type=password],
select,
textarea) {
  width: 100%;
  max-width: 100%;
  font-family: var(--ff-sans);
  font-size: var(--fs-1);
  line-height: var(--lh);
  padding: 0.75rem 0.9rem;
  border-radius: 12px;
  border: 1px solid var(--c-border);
  background: color-mix(in srgb, var(--c-surface) 70%, transparent);
  color: var(--c-text);
  box-shadow: none;
}

/* Textarea: WPForms force parfois line-height:100% et height fixe */
.wpforms-container .wpforms-form textarea {
  min-height: 140px;
  height: auto;
  line-height: var(--lh);
  resize: vertical;
}

/* Focus (aligné DS) */
.wpforms-container .wpforms-form :is(input, select, textarea):focus {
  outline: none;
  border-color: color-mix(in srgb, var(--c-primary) 60%, var(--c-border));
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--c-primary) 35%, transparent);
}

/* --------------------------------------------------------------------------
   5) Errors / confirmation
   -------------------------------------------------------------------------- */
.wpforms-container .wpforms-error {
  color: #ff6b6b;
  margin-top: var(--s-2);
}

.wpforms-container .wpforms-confirmation-container {
  border: 1px solid var(--c-border);
  background: color-mix(in srgb, var(--c-surface) 70%, transparent);
  border-radius: var(--radius);
  padding: var(--s-4);
}

/* --------------------------------------------------------------------------
   6) Submit button (style = btn-primary)
   NOTE: on cible .wpforms-submit (WPForms) + fallback button[type="submit"].
   -------------------------------------------------------------------------- */
.wpforms-container .wpforms-submit-container :is(.wpforms-submit, button[type=submit]) {
  appearance: none;
  border: 1px solid color-mix(in srgb, var(--c-primary) 70%, black);
  background: var(--c-primary);
  color: #08101f;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.9rem 1.15rem;
  border-radius: calc(var(--radius) + 2px);
  font-size: 1.05rem;
  font-weight: 600;
  cursor: pointer;
  transition: transform 0.12s ease, background-color 0.12s ease, border-color 0.12s ease;
}

.wpforms-container .wpforms-submit-container :is(.wpforms-submit, button[type=submit]):hover {
  background: color-mix(in srgb, var(--c-primary) 90%, white);
}

.wpforms-container .wpforms-submit-container :is(.wpforms-submit, button[type=submit]):active {
  transform: translateY(1px);
}

.wpforms-container .wpforms-submit-container :is(.wpforms-submit, button[type=submit]):disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

/* --------------------------------------------------------------------------
   7) Champ “Nom” (Prénom / Nom) — layout 2 colonnes desktop, stack mobile
   WPForms peut utiliser floats + widths : on neutralise proprement.
   -------------------------------------------------------------------------- */
.wpforms-container .wpforms-field-row {
  display: flex;
  gap: var(--s-4);
  width: 100%;
}

.wpforms-container .wpforms-field-name .wpforms-field-row {
  box-sizing: border-box;
  margin-inline: 0 !important;
  padding-inline: 0 !important;
}

.wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block {
  box-sizing: border-box;
  flex: 1 1 0;
  min-width: 0; /* évite overflow */
  margin-inline: 0 !important;
  padding-inline: 0 !important;
}

/* Neutralise widths/floats WPForms pour ne pas casser le flex */
.wpforms-container .wpforms-field .wpforms-field-row :is(.wpforms-one-half, .wpforms-three-sixths, .wpforms-two-fourths) {
  box-sizing: border-box;
  width: auto !important;
  max-width: none !important;
  float: none !important;
  margin-inline: 0 !important;
  padding-inline: 0 !important;
}

.wpforms-container .wpforms-field-name .wpforms-field-row input {
  box-sizing: border-box;
  margin-inline: 0 !important;
}

@media (max-width: 900px) {
  .wpforms-container .wpforms-field-row {
    flex-direction: column;
    gap: var(--s-3);
  }
  .wpforms-container .wpforms-field .wpforms-field-row .wpforms-field-row-block,
  .wpforms-container .wpforms-field .wpforms-field-row :is(.wpforms-one-half, .wpforms-three-sixths, .wpforms-two-fourths) {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 100%;
  }
}
/* --------------------------------------------------------------------------
   8) Contact split helpers (form + image)
   - “moins large” : on limite le formulaire dans la colonne (vendable)
   - ajustable via --contact-form-max
   -------------------------------------------------------------------------- */
.contact-split {
  align-items: stretch;
}

.contact-split .wpforms-container {
  --contact-form-max: 520px;
  max-width: var(--contact-form-max);
  margin-inline: auto; /* centre dans sa colonne */
}

/* Colonne media */
.contact-media {
  padding: 0;
  overflow: hidden;
  min-height: clamp(260px, 30vw, 420px);
}

.contact-media :is(.wp-block-image, img) {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

@media (max-width: 900px) {
  .contact-media {
    min-height: 240px;
  }
}
/* --------------------------------------------------------------------------
   9) (Optionnel) Fond “premium” sur les cards contact (si tu l’utilises)
   -------------------------------------------------------------------------- */
#contact .wp-block-group.card.stack,
#contact-modal .wp-block-group.card.stack {
  background: radial-gradient(900px circle at 20% 20%, color-mix(in srgb, var(--c-primary) 26%, transparent), transparent 55%);
}

/* WPForms — bouton submit aligné DS */
div.wpforms-container-full input[type=submit],
div.wpforms-container-full button[type=submit],
div.wpforms-container-full .wpforms-page-button,
.wp-core-ui div.wpforms-container-full input[type=submit],
.wp-core-ui div.wpforms-container-full button[type=submit],
.wp-core-ui div.wpforms-container-full .wpforms-page-button {
  border-radius: var(--radius);
}

div.wpforms-container-full input[type=submit],
div.wpforms-container-full button[type=submit] {
  border-radius: var(--radius) !important;
}

/* ==========================================================
   WPFORMS — Confirmation (DS)
   Scope: uniquement le formulaire #169
   ========================================================== */
#wpforms-169 .wpforms-confirmation-container-full {
  margin: 0;
  padding: var(--s-6);
  border-radius: calc(var(--radius) + 6px);
  border: 1px solid color-mix(in srgb, var(--c-primary) 18%, var(--c-border));
  background: radial-gradient(900px circle at 20% 15%, color-mix(in srgb, var(--c-primary) 12%, transparent), transparent 60%), color-mix(in srgb, var(--c-surface) 92%, transparent);
  box-shadow: var(--shadow);
}
#wpforms-169 {
  /* Texte de confirmation */
}
#wpforms-169 .wpforms-confirmation-container-full p {
  margin: 0;
  line-height: var(--lh);
  font-weight: 700;
  color: color-mix(in srgb, var(--c-primary) 85%, var(--c-text));
}

/* Optionnel : éviter le scroll auto “confirmation-scroll” si tu n’aimes pas */
#wpforms-169 .wpforms-confirmation-scroll {
  max-height: none;
  overflow: visible;
}

/* =========================================================
   HOME — Event banner
========================================================= */
.home-event {
  background: linear-gradient(90deg, color-mix(in oklab, var(--c-primary) 30%, black), color-mix(in oklab, var(--c-primary) 18%, black));
  color: #fff;
  padding: var(--s-4) 0;
}

.home-event__inner {
  width: min(var(--container), 100% - var(--gutter) * 2);
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--s-4);
  align-items: flex-start;
}
@media (min-width: 48rem) {
  .home-event__inner {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

.home-event__left {
  display: flex;
  align-items: center;
  gap: var(--s-3);
}

.home-event__emoji {
  font-size: 1.5rem;
}

.home-event__kicker {
  margin: 0;
  font-size: var(--fs-0);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  opacity: 0.9;
}

.home-event__title {
  margin: 0;
  font-family: var(--ff-serif);
  font-size: var(--fs-2);
}

/* =========================================================
   HOME — Hero
========================================================= */
.home-hero {
  position: relative;
  min-height: clamp(420px, 70vh, 720px);
  display: grid;
  align-items: center;
  overflow: hidden;
  background-size: cover;
  background-position: center bottom;
  background-repeat: no-repeat;
  background-color: var(--c-bg);
}

.home-hero__slider,
.home-hero__slide {
  position: absolute;
  inset: 0;
}

.home-hero__slider {
  z-index: 0;
}

.home-hero__slide {
  background-size: cover;
  background-position: center bottom;
  background-repeat: no-repeat;
  opacity: 0;
  transform: scale(1.06);
  transition: opacity 1.2s ease, transform 6s ease;
}

.home-hero__slide.is-active {
  opacity: 1;
  transform: scale(1);
}

.home-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.34) 0%, rgba(0, 0, 0, 0.16) 48%, rgba(0, 0, 0, 0.06) 100%);
}

@media (max-width: 47.98rem) {
  .home-hero__overlay {
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.48) 0%, rgba(0, 0, 0, 0.24) 52%, rgba(0, 0, 0, 0.08) 100%);
  }
}
.home-hero__content {
  position: relative;
  z-index: 2;
  max-width: 60rem;
  text-align: center;
  padding-inline: var(--gutter);
}
@media (min-width: 48rem) {
  .home-hero__content {
    margin-top: var(--s-12);
  }
}

.home-hero__title {
  margin: 0 0 4px;
  color: #fff;
  font-family: var(--ff-serif, var(--ff-sans));
  font-size: clamp(2.6rem, 4vw + 1rem, 4.6rem);
  letter-spacing: -0.02em;
  text-shadow: 0 8px 22px rgba(0, 0, 0, 0.28);
}
@media (min-width: 48rem) {
  .home-hero__title {
    margin-bottom: 8px;
  }
}

.home-hero__subtitle {
  margin: 0 0 calc(var(--s-8) + var(--s-2));
  color: rgba(255, 255, 255, 0.92);
  font-size: clamp(1.05rem, 1.2vw + 0.9rem, 1.5rem);
  line-height: 1.6;
}
@media (min-width: 48rem) {
  .home-hero__subtitle {
    margin-bottom: var(--s-12);
  }
}
.home-hero__subtitle p {
  margin: 0;
}
.home-hero__subtitle p + p {
  margin-top: var(--s-3);
}

.home-hero__actions {
  display: flex;
  flex-direction: column;
  gap: var(--s-4);
  justify-content: center;
}
@media (min-width: 48rem) {
  .home-hero__actions {
    flex-direction: row;
  }
}
.home-hero__actions .c-btn--primary {
  background: #fff;
  color: var(--c-primary);
}
.home-hero__actions .c-btn--primary:hover {
  background: rgba(255, 255, 255, 0.92);
  color: var(--c-primary);
}
.home-hero__actions .c-btn--accent {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.9);
  color: #fff;
}
.home-hero__actions .c-btn--accent:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: #fff;
  color: #fff;
}

/* =========================================================
   HOME — About
========================================================= */
.home-about__grid {
  display: grid;
  gap: var(--s-12);
  align-items: center;
}
@media (min-width: 48rem) {
  .home-about__grid {
    grid-template-columns: 1.1fr 0.9fr;
  }
}

.home-about__media {
  border-radius: calc(var(--radius) + 8px);
}

.home-about__img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
  display: block;
}

.home-about__img--placeholder {
  background: color-mix(in oklab, var(--c-primary) 10%, var(--c-surface));
}

/* =========================================================
   HOME — Features
========================================================= */
.home-features .feature-card {
  padding: var(--s-8);
  border: 1px solid var(--c-primary);
  background: var(--c-surface);
  transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.home-features .feature-card .c-icon,
.home-features .feature-card .c-h3,
.home-features .feature-card .c-text-muted,
.home-features .feature-card .c-link {
  transition: color 0.25s ease;
}

.home-features .feature-card .c-icon,
.home-features .feature-card .c-link {
  color: var(--c-primary);
}

.home-features .feature-card:hover,
.home-features .feature-card.is-active {
  background: var(--c-primary);
  border-color: var(--c-primary);
  transform: translateY(-2px);
}

.home-features .feature-card:hover .c-icon,
.home-features .feature-card:hover .c-h3,
.home-features .feature-card:hover .c-text-muted,
.home-features .feature-card:hover .c-link,
.home-features .feature-card.is-active .c-icon,
.home-features .feature-card.is-active .c-h3,
.home-features .feature-card.is-active .c-text-muted,
.home-features .feature-card.is-active .c-link {
  color: #fff;
}

@media (max-width: 47.98rem) {
  .home-features__grid {
    --home-mobile-rail-offset: calc(var(--gutter) * 2);
    display: flex;
    gap: var(--s-6);
    width: 100vw;
    max-width: none;
    margin-left: calc(var(--home-mobile-rail-offset) * -1);
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x proximity;
    scroll-padding-inline: var(--home-mobile-rail-offset) 0;
    scrollbar-width: none;
    padding-block: var(--s-3);
    padding-inline: var(--home-mobile-rail-offset) 0;
  }
  .home-features__grid::-webkit-scrollbar {
    display: none;
  }
  .home-features__grid::after {
    content: "";
    flex: 0 0 max(var(--s-6), 18vw);
  }
  .home-features__grid > * {
    flex: 0 0 min(18rem, 84vw);
    scroll-snap-align: start;
  }
}
/* =========================================================
   HOME — Workshops
========================================================= */
.workshop-card {
  display: block;
  color: inherit;
  text-decoration: none;
}

.workshop-card__media {
  position: relative;
  border-radius: calc(var(--radius) + 8px);
  overflow: hidden;
}

.workshop-card__img {
  width: 100%;
  height: 20rem;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
}

.workshop-card:hover .workshop-card__img {
  transform: scale(1.04);
}

.workshop-card__img--placeholder {
  height: 20rem;
  background: color-mix(in oklab, var(--c-accent) 20%, var(--c-surface));
}

.workshop-card__time {
  position: absolute;
  top: var(--s-4);
  right: var(--s-4);
  background: #fff;
  color: #111;
  padding: 0.5rem 0.8rem;
  border-radius: 999px;
  font-size: 0.85rem;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.18);
}

.workshop-card__meta {
  margin-top: var(--s-4);
  display: grid;
  gap: var(--s-2);
}

.workshop-card__date {
  margin: 0;
  color: var(--c-primary);
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.home-workshops__cta {
  margin-top: var(--s-12);
  text-align: center;
}

@media (max-width: 47.98rem) {
  .home-workshops__cta .c-btn {
    width: 100%;
    justify-content: center;
  }
}
/* =========================================================
   HOME — Testimonials
========================================================= */
.testimonial-card {
  padding: var(--s-8);
  border: 1px solid var(--c-primary);
  background: var(--c-surface);
  transition: background-color 0.25s ease, border-color 0.25s ease, transform 0.25s ease, color 0.25s ease;
}

.testimonial-card:hover {
  background: var(--c-primary);
  border-color: var(--c-primary);
  transform: translateY(-2px);
}

.stars {
  display: flex;
  gap: 0.25rem;
  margin-bottom: var(--s-4);
  line-height: 1;
}

.stars__star {
  color: var(--c-primary);
  font-size: 1.1rem;
  transition: color 0.25s ease;
}

.testimonial__name {
  margin-top: var(--s-6);
  font-family: var(--ff-serif);
  color: var(--c-text);
  transition: color 0.25s ease;
}

.testimonial-card .c-text-muted {
  transition: color 0.25s ease;
}

.testimonial-card:hover .c-text-muted,
.testimonial-card:hover .testimonial__name,
.testimonial-card:hover .stars__star {
  color: #fff;
}

/* =========================================================
   HOME — CTA
========================================================= */
.home-cta {
  background: var(--c-primary);
}

.home-cta__inner {
  max-width: 56rem;
  text-align: center;
  display: grid;
  gap: var(--s-4);
}

.home-cta .c-h2,
.home-cta .c-subtitle {
  color: #fff;
}

.home-cta .c-subtitle {
  margin-bottom: var(--s-6);
}

.home-cta__actions {
  display: flex;
  flex-direction: column;
  gap: var(--s-4);
  justify-content: center;
}
@media (min-width: 48rem) {
  .home-cta__actions {
    flex-direction: row;
  }
}

.home-cta__actions .c-btn {
  width: 100%;
  justify-self: center;
}
@media (min-width: 48rem) {
  .home-cta__actions .c-btn {
    width: fit-content;
  }
}

/* =========================================================
   HOME — Immersive leaves
========================================================= */
.immersive-leaves {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 40;
}

.immersive-leaves__leaf {
  position: absolute;
  width: min(340px, 28vw);
  height: auto;
  color: color-mix(in srgb, var(--c-primary) 58%, var(--c-secondary));
  opacity: 1;
  filter: saturate(1.08) contrast(1.12);
  transform-origin: center;
  transition: transform 900ms cubic-bezier(0.2, 0.85, 0.2, 1), opacity 900ms cubic-bezier(0.2, 0.85, 0.2, 1), color 600ms ease;
}

/* feuille gauche */
.immersive-leaves__leaf--left {
  top: 22vh;
  left: 0;
  transform: translateX(-56%) translateY(calc(var(--leaf-parallax, 0px) * -1)) rotate(-132deg);
}

/* feuille droite principale */
.immersive-leaves__leaf--right-big {
  top: 18vh;
  right: 0;
  transform: translateX(56%) translateY(var(--leaf-parallax, 0px)) rotate(142deg);
}

/* petite feuille signature */
.immersive-leaves__leaf--right-small {
  top: 46vh;
  right: 0;
  width: min(200px, 18vw);
  opacity: 0.8;
  transform: translateX(42%) translateY(var(--leaf-parallax, 0px)) rotate(158deg);
}

body.is-leaf-left-out .immersive-leaves__leaf--left {
  opacity: 0;
  transform: translateX(-120%) rotate(-162deg);
}

body.is-leaf-right-out .immersive-leaves__leaf--right-big,
body.is-leaf-right-out .immersive-leaves__leaf--right-small {
  opacity: 0;
  transform: translateX(120%) rotate(162deg);
}

body:not(.is-immersive-out) .immersive-leaves__leaf--right-big,
body:not(.is-immersive-out) .immersive-leaves__leaf--right-small {
  transition-delay: 0ms;
}

/* feuilles vertes en bas */
body.is-leaf-accent .immersive-leaves__leaf {
  color: var(--c-primary);
  opacity: 0.5;
  filter: saturate(1.1) contrast(1.1);
}

/* =========================================================
   Responsive
========================================================= */
@media (max-width: 900px) {
  .immersive-leaves__leaf {
    width: min(260px, 55vw);
    opacity: 0.2;
  }
  .immersive-leaves__leaf--left {
    top: 12vh;
    transform: translateX(-55%) translateY(calc(var(--leaf-parallax, 0px) * -1)) rotate(-132deg);
  }
  .immersive-leaves__leaf--right-big {
    top: 14vh;
    transform: translateX(60%) translateY(var(--leaf-parallax, 0px)) rotate(142deg);
  }
  .immersive-leaves__leaf--right-small {
    top: 34vh;
    width: min(190px, 42vw);
    transform: translateX(92%) translateY(var(--leaf-parallax, 0px)) rotate(156deg);
  }
}
/* =========================================================
   Accessibility
========================================================= */
@media (prefers-reduced-motion: reduce) {
  .immersive-leaves__leaf,
  .home-features .feature-card,
  .testimonial-card,
  .workshop-card__img {
    transition: none;
  }
}
/* =========================================================
   Page — Event / Soirée d'ouverture
========================================================= */
/* -------------------------
   Hero
------------------------- */
.event-hero {
  position: relative;
  min-height: clamp(460px, 68vh, 720px);
  display: flex;
  align-items: center;
  background-size: cover;
  background-position: center 40%;
  background-repeat: no-repeat;
  overflow: hidden;
}

.event-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.38), rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0.18));
}

.event-hero__content {
  position: relative;
  z-index: 2;
  max-width: 60rem;
  margin-inline: auto;
  text-align: center;
  padding-inline: var(--gutter);
}

.event-hero__title {
  margin: 0 0 var(--s-3);
  font-family: var(--ff-serif);
  font-size: clamp(2.3rem, 2.7vw + 1rem, 3.6rem);
  color: #fff;
  letter-spacing: -0.02em;
}

.event-hero__text {
  max-width: 38rem;
  margin: 0 auto;
  font-size: 1.05rem;
  color: rgba(255, 255, 255, 0.92);
  line-height: 1.65;
}
.event-hero__text p {
  margin: 0;
}
.event-hero__text p + p {
  margin-top: var(--s-2);
}
.event-hero__text a {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

.event-hero__details {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-4);
  max-width: 56rem;
  margin: var(--s-8) auto 0;
}

@media (min-width: 48rem) {
  .event-hero__details {
    grid-template-columns: repeat(3, 1fr);
  }
}
.event-hero-detail {
  display: flex;
  align-items: flex-start;
  gap: var(--s-4);
  padding: var(--s-6);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(8px);
  text-align: left;
}

.event-hero-detail__icon {
  width: 3rem;
  height: 3rem;
  border-radius: 999px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.16);
  color: #fff;
  font-size: 1rem;
}

.event-hero-detail__copy {
  min-width: 0;
  padding-top: 0.1rem;
}

.event-hero-detail__label {
  margin: 0 0 0.4rem;
  color: rgba(255, 255, 255, 0.72);
  font-size: var(--fs-0);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.event-hero-detail__value {
  margin: 0;
  color: #fff;
  font-size: 1rem;
  line-height: 1.5;
}

.event-hero__actions {
  display: flex;
  justify-content: center;
  margin-top: var(--s-8);
}

/* -------------------------
   Grid helper
------------------------- */
.c-grid--2 {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-8);
}

@media (min-width: 48rem) {
  .c-grid--2 {
    grid-template-columns: repeat(2, 1fr);
  }
}
/* -------------------------
   Highlights / Au programme
------------------------- */
.event-highlights__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--s-8);
}

.event-highlight-card {
  padding: var(--s-8);
  background: var(--c-surface);
  border: 1px solid var(--c-primary);
  border-radius: var(--radius);
  transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.event-highlight-card__icon {
  width: 3.25rem;
  height: 3.25rem;
  display: grid;
  place-items: center;
  border-radius: 999px;
  margin-bottom: var(--s-6);
  background: color-mix(in srgb, var(--c-secondary) 18%, transparent);
  color: var(--c-secondary);
  font-size: 1.2rem;
  transition: background-color 0.25s ease, color 0.25s ease;
}

.event-highlight-card .c-h3,
.event-highlight-card .c-text-muted {
  transition: color 0.25s ease;
}

.event-highlight-card:hover,
.event-highlight-card.is-active {
  background: var(--c-primary);
  border-color: var(--c-primary);
  transform: translateY(-2px);
}

.event-highlight-card:hover .c-h3,
.event-highlight-card:hover .c-text-muted,
.event-highlight-card.is-active .c-h3,
.event-highlight-card.is-active .c-text-muted {
  color: #fff;
}

.event-highlight-card:hover .event-highlight-card__icon,
.event-highlight-card.is-active .event-highlight-card__icon {
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
}

/* -------------------------
   Timeline
------------------------- */
.event-timeline__container {
  max-width: 56rem;
}

.event-timeline__list {
  display: grid;
  gap: var(--s-8);
}

.event-step {
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: var(--s-6);
  align-items: start;
}

.event-step__time {
  font-family: var(--ff-serif);
  font-size: 1.5rem;
  line-height: 1;
  color: var(--c-primary);
  text-align: right;
  padding-top: 0.2rem;
}

.event-step__content {
  padding-left: var(--s-6);
  border-left: 2px solid color-mix(in srgb, var(--c-primary) 18%, var(--c-border));
}

/* -------------------------
   Registration
------------------------- */
.event-registration {
  background: color-mix(in srgb, var(--c-primary) 92%, black);
}

.event-registration__container {
  max-width: 56rem;
}

.event-registration__title,
.event-registration__subtitle {
  color: #fff;
}

.event-registration__card {
  max-width: 48rem;
  margin: 0 auto;
  padding: var(--s-8);
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: calc(var(--radius) + 8px);
}

.event-registration__fallback {
  display: grid;
  gap: var(--s-6);
  justify-items: center;
  text-align: center;
}

/* -------------------------
   Share / Partagez l'événement
------------------------- */
.event-share {
  background: linear-gradient(90deg, color-mix(in oklab, var(--c-primary) 30%, black), color-mix(in oklab, var(--c-primary) 18%, black));
}

.event-share__inner {
  max-width: 56rem;
  margin: 0 auto;
  text-align: center;
  display: grid;
  gap: var(--s-3);
}

.event-share .c-h2,
.event-share .c-subtitle {
  color: #fff;
}

.event-share .c-subtitle {
  margin-bottom: var(--s-8);
}

.event-share__actions {
  display: flex;
  justify-content: center;
  gap: var(--s-4);
  flex-wrap: wrap;
}

.event-share__actions .c-btn {
  width: fit-content;
}

/* bouton contour blanc */
.c-btn--ghost-white {
  background: transparent;
  color: #fff;
  border: 1px solid #fff;
}

.c-btn--ghost-white:hover {
  background: rgba(255, 255, 255, 0.12);
}

/* -------------------------
   FAQ
------------------------- */
.event-faq__container {
  max-width: 56rem;
}

.event-faq__list {
  display: grid;
  gap: var(--s-4);
}

.event-faq__item {
  overflow: hidden;
  padding: 0;
  background: var(--c-surface);
  border: 1px solid var(--c-primary);
  border-radius: var(--radius);
  transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}

.event-faq__question {
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  padding: var(--s-6);
  font-family: var(--ff-serif);
  font-size: var(--fs-2);
  list-style: none;
  color: var(--c-text);
  transition: color 0.25s ease;
}

.event-faq__question::-webkit-details-marker {
  display: none;
}

.event-faq__icon {
  font-size: 1.4rem;
  color: var(--c-primary);
  transition: transform 0.25s ease, color 0.25s ease;
}

.event-faq__answer {
  padding: 0 var(--s-6) var(--s-6);
  color: var(--c-muted);
  line-height: 1.6;
  transition: color 0.25s ease;
}

.event-faq__answer p {
  margin: 0;
  color: inherit;
}

/* card ouverte = verte */
.event-faq__item[open] {
  background: var(--c-primary);
  border-color: var(--c-primary);
}

.event-faq__item[open] .event-faq__question,
.event-faq__item[open] .event-faq__answer,
.event-faq__item[open] .event-faq__answer p,
.event-faq__item[open] .event-faq__icon {
  color: #fff;
}

.event-faq__item[open] .event-faq__icon {
  transform: rotate(45deg);
}

.event-faq__item:hover {
  border-color: var(--c-primary);
}

/* -------------------------
   Responsive
------------------------- */
@media (max-width: 48rem) {
  .event-step {
    grid-template-columns: 1fr;
    gap: var(--s-3);
  }
  .event-step__time {
    text-align: left;
  }
  .event-step__content {
    padding-left: var(--s-4);
  }
}
/* =========================================================
   Event — Registration
========================================================= */
.event-registration {
  background: var(--c-bg); /* fond blanc / fond global */
}

.event-registration__container {
  max-width: 56rem;
}

.event-registration__title {
  color: var(--c-text);
}

.event-registration__subtitle {
  color: var(--c-muted);
}

/* carte formulaire */
.event-registration__card {
  max-width: 48rem;
  margin: 0 auto;
  padding: var(--s-8);
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: calc(var(--radius) + 8px);
  box-shadow: 0 16px 32px rgba(0, 0, 0, 0.06);
}

/* fallback */
.event-registration__fallback {
  display: grid;
  gap: var(--s-6);
  justify-items: center;
  text-align: center;
}

/* =========================================================
   WPForms — Bouton submit (form 122)
========================================================= */
#wpforms-submit-122 {
  width: 100%;
  display: block;
  background: var(--c-primary);
  color: #fff;
  border: none;
  border-radius: var(--radius);
  padding: 0.9rem 1.2rem;
  font-family: var(--ff-sans);
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.25s ease, transform 0.15s ease;
}

#wpforms-submit-122:hover {
  background: color-mix(in srgb, var(--c-primary) 85%, black);
  transform: translateY(-1px);
}

#wpforms-submit-122:active {
  transform: translateY(0);
}

/* =========================================================
   Page — Plantes & Produits
========================================================= */
/* -------------------------
   Hero
------------------------- */
.plantes-hero {
  position: relative;
  min-height: clamp(210px, 30vh, 300px);
  display: flex;
  align-items: center;
  background-size: cover;
  background-position: center 35%;
  background-repeat: no-repeat;
  overflow: hidden;
}

.plantes-hero__slider,
.plantes-hero__slide {
  position: absolute;
  inset: 0;
}

.plantes-hero__slider {
  z-index: 0;
}

.plantes-hero__slide {
  background-size: cover;
  background-position: center 35%;
  background-repeat: no-repeat;
  opacity: 0;
  transform: scale(1.06);
  transition: opacity 1.2s ease, transform 6s ease;
}

.plantes-hero__slide.is-active {
  opacity: 1;
  transform: scale(1);
}

.plantes-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.32), rgba(0, 0, 0, 0.24), rgba(0, 0, 0, 0.18));
}

.plantes-hero__content {
  position: relative;
  z-index: 2;
  max-width: 42rem;
  margin-inline: auto;
  text-align: center;
  padding-inline: var(--gutter);
}

.plantes-hero__title {
  margin: 0 0 var(--s-3);
  font-family: var(--ff-serif);
  font-size: clamp(2rem, 2vw + 1rem, 2.7rem);
  color: #fff;
  letter-spacing: -0.02em;
}

.plantes-hero__text {
  max-width: 34rem;
  margin-inline: auto;
  font-size: 1rem;
  color: rgba(255, 255, 255, 0.9);
  line-height: 1.6;
}
.plantes-hero__text p {
  margin: 0;
}
.plantes-hero__text p + p {
  margin-top: var(--s-2);
}

/* -------------------------
   Intro
------------------------- */
.plantes-intro__container {
  max-width: 56rem;
  text-align: center;
}

.plantes-intro__text {
  max-width: 46rem;
  margin-inline: auto;
}

/* -------------------------
   Categories
------------------------- */
.plantes-categories {
  position: relative;
  z-index: 4;
  padding-top: var(--s-16);
  padding-bottom: calc(var(--s-16) + var(--s-8));
}

.plantes-categories__layout {
  display: grid;
  gap: var(--s-8);
  min-width: 0;
}

.plantes-categories__side {
  min-width: 0;
}

.plantes-categories__carousel {
  --plantes-category-card-size: clamp(13rem, 72vw, 17.5rem);
  position: relative;
  margin-top: var(--s-6);
  margin-bottom: var(--s-12);
}

.plantes-categories__viewport {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: var(--s-6);
  scrollbar-width: none;
  padding: var(--s-6);
}

.plantes-categories__viewport::-webkit-scrollbar {
  display: none;
}

.plantes-categories__grid {
  display: flex;
  gap: var(--s-3);
}

.plantes-categories__grid::after {
  content: "";
  flex: 0 0 var(--s-6);
}

.plantes-categories__grid > * {
  flex: 0 0 var(--plantes-category-card-size);
  scroll-snap-align: start;
}

.plantes-categories__arrow {
  display: none;
  position: absolute;
  top: 50%;
  z-index: 2;
  width: 2.75rem;
  height: 2.75rem;
  border: 1px solid var(--c-border);
  border-radius: 999px;
  place-items: center;
  background: var(--c-surface);
  color: var(--c-primary);
  font-size: 2rem;
  line-height: 1;
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
  cursor: pointer;
  transform: translateY(-50%);
  transition: opacity 0.18s ease, transform 0.18s ease, border-color 0.18s ease;
}

.plantes-categories__arrow:hover {
  border-color: var(--c-primary);
  transform: translateY(-50%) scale(1.04);
}

.plantes-categories__arrow:disabled {
  opacity: 0.35;
  cursor: default;
  transform: translateY(-50%);
}

.plantes-categories__arrow--prev {
  left: calc(var(--s-8) * -1);
}

.plantes-categories__arrow--next {
  right: calc(var(--s-8) * -1);
}

@media (min-width: 48rem) {
  .plantes-categories__carousel {
    --plantes-category-card-size: calc((100% - (3 * var(--s-3))) / 4);
  }
  .plantes-categories__arrow {
    display: grid;
  }
}
@media (min-width: 64rem) {
  .plantes-categories__layout {
    grid-template-columns: minmax(13rem, 16rem) minmax(0, 1fr);
    align-items: start;
    gap: var(--s-8);
  }
  .plantes-categories__side {
    position: sticky;
    top: 6rem;
  }
  .plantes-categories__carousel {
    --plantes-category-card-size: auto;
    margin-top: 0;
    margin-bottom: 0;
  }
  .plantes-categories__viewport {
    max-height: calc(100vh - 8rem);
    overflow-x: hidden;
    overflow-y: auto;
    padding: var(--s-2);
    margin: calc(var(--s-2) * -1);
  }
  .plantes-categories__grid {
    flex-direction: column;
  }
  .plantes-categories__grid::after {
    display: none;
  }
  .plantes-categories__grid > * {
    flex: 0 0 auto;
  }
  .plantes-categories__arrow {
    display: none;
  }
}
.plantes-category-card {
  overflow: hidden;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  color: inherit;
  display: flex;
  flex-direction: column;
  min-width: 0;
  text-decoration: none;
  transition: transform 0.18s ease, border-color 0.18s ease;
}

.plantes-category-card:hover {
  transform: translateY(-3px);
  border-color: color-mix(in srgb, var(--c-primary) 36%, var(--c-border));
}

.plantes-category-card.is-active {
  border-color: var(--c-primary);
  border-width: 2px;
  background: color-mix(in srgb, var(--c-primary) 7%, var(--c-surface));
  color: var(--c-primary);
}

.plantes-category-card.is-active .c-h3,
.plantes-category-card.is-active .c-h3 a,
.plantes-category-card.is-active .c-text-muted {
  color: var(--c-primary);
}

.plantes-category-card__media {
  position: relative;
  aspect-ratio: 1;
  overflow: hidden;
}

.plantes-category-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
}

.plantes-category-card:hover .plantes-category-card__img {
  transform: scale(1.04);
}

.plantes-category-card__overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.plantes-category-card__body {
  padding: var(--s-3);
  display: grid;
  gap: var(--s-2);
  flex: 1;
}

.plantes-category-card__body .c-h3 {
  margin: 0;
  font-size: clamp(0.92rem, 0.25vw + 0.86rem, 1rem);
  line-height: 1.25;
}

.plantes-category-card__body .c-h3 a {
  color: inherit;
  text-decoration: none;
}

.plantes-category-card__body .c-h3 a:hover {
  text-decoration: underline;
  text-underline-offset: 0.16em;
}

.plantes-category-card__body .c-text-muted {
  margin: 0;
  display: -webkit-box;
  font-size: 0.88rem;
  line-height: 1.45;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

@media (min-width: 64rem) {
  .plantes-categories__side .plantes-category-card {
    display: grid;
    grid-template-columns: 4rem minmax(0, 1fr);
    align-items: center;
  }
  .plantes-categories__side .plantes-category-card__body {
    padding: var(--s-2);
  }
  .plantes-categories__side .plantes-category-card__body .c-h3 {
    font-size: 0.9rem;
  }
  .plantes-categories__side .plantes-category-card__body .c-text-muted {
    display: none;
  }
}
.plantes-products {
  min-width: 0;
  position: relative;
  margin-top: var(--s-12);
  scroll-margin-top: 6rem;
}

@media (max-width: 47.98rem) {
  .plantes-categories {
    padding-top: var(--s-8);
    padding-bottom: var(--s-12);
  }
  .plantes-categories__layout {
    gap: var(--s-4);
  }
  .plantes-categories__carousel {
    --plantes-category-card-size: clamp(8.25rem, 40vw, 10.5rem);
    margin-top: 0;
    margin-bottom: var(--s-4);
  }
  .plantes-categories__viewport {
    --plantes-mobile-rail-offset: calc(var(--gutter) * 2);
    width: 100vw;
    max-width: none;
    margin-left: calc(var(--plantes-mobile-rail-offset) * -1);
    -webkit-overflow-scrolling: touch;
    overflow-x: scroll;
    scroll-snap-type: x proximity;
    scroll-padding-inline: var(--plantes-mobile-rail-offset) 0;
    padding-block: var(--s-3);
    padding-inline: var(--plantes-mobile-rail-offset) 0;
  }
  .plantes-categories__grid::after {
    flex-basis: max(var(--s-6), 18vw);
  }
  .plantes-category-card__body {
    padding: var(--s-2);
  }
  .plantes-category-card__body .c-h3 {
    font-size: 0.86rem;
  }
  .plantes-category-card__body .c-text-muted {
    display: none;
  }
  .plantes-products {
    margin-top: 0;
  }
}
@media (min-width: 64rem) {
  .plantes-products {
    margin-top: 0;
  }
}
.plantes-products__head {
  display: grid;
  gap: var(--s-4);
  margin-bottom: var(--s-8);
}

@media (min-width: 48rem) {
  .plantes-products__head {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
  }
}
.plantes-products__title {
  margin-bottom: var(--s-2);
}

.plantes-products__count {
  margin: 0;
}

.plantes-products .products-archive__grid {
  gap: var(--s-4);
}

.plantes-products__scroll-hint {
  display: none;
}

@media (max-width: 47.98rem) {
  .plantes-products__scroll-hint {
    position: absolute;
    top: 56%;
    right: 0;
    z-index: 5;
    width: 3rem;
    height: 3rem;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.54);
    border-radius: 999px;
    background: color-mix(in srgb, #fff 52%, transparent);
    color: var(--c-primary);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    box-shadow: 0 14px 34px rgba(31, 41, 51, 0.16);
    font-size: 1.35rem;
    line-height: 1;
    cursor: pointer;
    pointer-events: auto;
    touch-action: manipulation;
  }
  .plantes-products__scroll-hint[hidden] {
    display: none;
  }
  .plantes-products__scroll-hint span {
    transform: translateX(1px);
  }
  .plantes-products .products-archive__grid {
    --plantes-mobile-rail-offset: calc(var(--gutter) * 2);
    display: flex;
    width: 100vw;
    max-width: none;
    margin-left: calc(var(--plantes-mobile-rail-offset) * -1);
    -webkit-overflow-scrolling: touch;
    overflow-x: scroll;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x proximity;
    scroll-padding-inline: var(--plantes-mobile-rail-offset) 0;
    scrollbar-width: none;
    padding-block: var(--s-3);
    padding-inline: var(--plantes-mobile-rail-offset) 0;
  }
  .plantes-products .products-archive__grid::after {
    content: "";
    flex: 0 0 max(var(--s-6), 18vw);
  }
  .plantes-products .products-archive__grid::-webkit-scrollbar {
    display: none;
  }
  .plantes-products .products-archive__grid > * {
    flex: 0 0 min(16rem, 84vw);
    scroll-snap-align: start;
  }
}
@media (min-width: 48rem) {
  .plantes-products .products-archive__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 64rem) {
  .plantes-products .products-archive__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.plantes-products .product-card__media {
  aspect-ratio: 20/21;
}

.plantes-products .product-card__body {
  padding: var(--s-5, 1.25rem);
}

.plantes-products .product-card__body .c-h3 {
  font-size: clamp(1rem, 0.35vw + 0.92rem, 1.12rem);
}

.plantes-products .product-card__body .c-text-muted {
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}

/* -------------------------
   Lifestyle
------------------------- */
.plantes-lifestyle__grid {
  display: grid;
  gap: var(--s-12);
  align-items: center;
}

@media (min-width: 48rem) {
  .plantes-lifestyle__grid {
    grid-template-columns: 0.95fr 1.05fr;
  }
}
.plantes-lifestyle__media {
  overflow: hidden;
  border: 1px solid var(--c-border);
}

.plantes-lifestyle__img {
  width: 100%;
  height: 100%;
  min-height: 32rem;
  object-fit: cover;
  display: block;
}

.plantes-lifestyle__content {
  display: grid;
  gap: var(--s-6);
}

.plantes-lifestyle__tips {
  display: grid;
  gap: var(--s-4);
}

.plantes-tip {
  display: flex;
  align-items: flex-start;
  gap: var(--s-3);
}

.plantes-tip__dot {
  width: 0.55rem;
  height: 0.55rem;
  margin-top: 0.6rem;
  border-radius: 999px;
  flex-shrink: 0;
  background: var(--c-primary);
}

.plantes-tip__title {
  margin: 0 0 0.35rem;
  color: var(--c-text);
  font-family: var(--ff-sans);
  font-size: 1rem;
}

/* -------------------------
   CTA
------------------------- */
.plantes-cta {
  background: color-mix(in srgb, var(--c-primary) 92%, black);
}

.plantes-cta__inner {
  max-width: 56rem;
  margin: 0 auto;
  text-align: center;
  display: grid;
  gap: var(--s-2);
}

.plantes-cta__title,
.plantes-cta__text {
  color: #fff;
}

.plantes-cta__title {
  margin-bottom: var(--s-2);
}

.plantes-cta__text {
  margin-bottom: var(--s-8);
}

.plantes-cta .c-btn {
  width: fit-content;
  justify-self: center;
}

#primary > section.plantes-cta.c-section > div > a.c-btn,
#primary > section.plantes-cta.c-section > div > a.c-btn--light,
.plantes-cta .c-btn,
.plantes-cta .c-btn--light {
  background: var(--c-primary) !important;
  border-color: var(--c-primary) !important;
  color: #fff !important;
}

/* =========================================================
   Page — Ateliers
========================================================= */
.ateliers-hero {
  position: relative;
  min-height: clamp(340px, 52vh, 520px);
  display: flex;
  align-items: center;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow: hidden;
}

.ateliers-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.38), rgba(0, 0, 0, 0.28), rgba(0, 0, 0, 0.18));
}

.ateliers-hero__content {
  position: relative;
  z-index: 2;
  max-width: 42rem;
  margin-inline: auto;
  text-align: center;
  padding-inline: var(--gutter);
}

.ateliers-hero__title {
  margin: 0 0 var(--s-3);
  font-family: var(--ff-serif);
  font-size: clamp(2.2rem, 2.6vw + 1rem, 3.2rem);
  color: #fff;
}

.ateliers-hero__text {
  max-width: 34rem;
  margin-inline: auto;
  color: rgba(255, 255, 255, 0.92);
  line-height: 1.65;
}
.ateliers-hero__text p {
  margin: 0;
}
.ateliers-hero__text p + p {
  margin-top: var(--s-2);
}

.ateliers-intro__container {
  max-width: 56rem;
  text-align: center;
}

.ateliers-intro__text {
  max-width: 44rem;
  margin-inline: auto;
}

.ateliers-section-head {
  margin-bottom: var(--s-12);
}

.ateliers-section-head__badge {
  display: inline-flex;
  margin-bottom: var(--s-4);
  padding: 0.55rem 0.9rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--c-secondary) 18%, transparent);
  color: var(--c-secondary);
  font-size: var(--fs-0);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.ateliers-section-head__badge--primary {
  background: color-mix(in srgb, var(--c-primary) 18%, transparent);
  color: var(--c-primary);
}

.ateliers-autonomous__steps {
  gap: var(--s-8);
  margin-bottom: var(--s-12);
}

@media (max-width: 47.98rem) {
  .ateliers-autonomous__steps {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(17.5rem, 88vw);
    grid-template-columns: none;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    padding: var(--s-3);
    margin-inline: calc(var(--s-3) * -1);
  }
  .ateliers-autonomous__steps::-webkit-scrollbar {
    display: none;
  }
  .ateliers-autonomous__steps > * {
    scroll-snap-align: start;
  }
}
.ateliers-step-card {
  padding: var(--s-8);
}

.ateliers-step-card__number {
  width: 3rem;
  height: 3rem;
  display: grid;
  place-items: center;
  border-radius: 999px;
  margin-bottom: var(--s-6);
  background: var(--c-primary);
  color: #fff;
  font-family: var(--ff-serif);
  font-size: 1.2rem;
}

.ateliers-autonomous__infos {
  padding: var(--s-8);
}

.ateliers-autonomous__infos-grid {
  display: grid;
  gap: var(--s-8);
}

@media (min-width: 48rem) {
  .ateliers-autonomous__infos-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
.ateliers-autonomous__list {
  display: grid;
  gap: var(--s-3);
}

.ateliers-autonomous__list p {
  margin: 0;
  color: var(--c-muted);
}

.ateliers-guided__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-8);
}

@media (max-width: 47.98rem) {
  .ateliers-guided__grid {
    grid-auto-flow: column;
    grid-auto-columns: minmax(18rem, 88vw);
    grid-template-columns: none;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    padding: var(--s-3);
    margin-inline: calc(var(--s-3) * -1);
  }
  .ateliers-guided__grid::-webkit-scrollbar {
    display: none;
  }
  .ateliers-guided__grid > * {
    scroll-snap-align: start;
  }
}
@media (min-width: 48rem) {
  .ateliers-guided__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 72rem) {
  .ateliers-guided__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
.ateliers-guided-card {
  overflow: hidden;
}

.ateliers-guided-card__media {
  position: relative;
  height: 16rem;
  overflow: hidden;
}

.ateliers-guided-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ateliers-guided-card__price {
  position: absolute;
  top: var(--s-4);
  right: var(--s-4);
  padding: 0.5rem 0.85rem;
  border-radius: 999px;
  background: #fff;
  color: var(--c-text);
  font-size: var(--fs-0);
}

.ateliers-guided-card__body {
  padding: var(--s-6);
  display: grid;
  gap: var(--s-4);
}

.ateliers-guided-card__meta {
  display: grid;
  gap: var(--s-2);
}

.ateliers-guided-card__meta p {
  margin: 0;
  font-size: var(--fs-0);
  color: var(--c-muted);
}

.ateliers-guided-card__btn {
  width: 100%;
  justify-content: center;
}

.ateliers-included__card {
  padding: var(--s-8);
}

.ateliers-included__title {
  text-align: center;
  margin-bottom: var(--s-8);
}

.ateliers-included__grid {
  display: grid;
  gap: var(--s-6);
}

@media (min-width: 48rem) {
  .ateliers-included__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 72rem) {
  .ateliers-included__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
.ateliers-included__item {
  display: flex;
  align-items: flex-start;
  gap: var(--s-3);
}

.ateliers-included__check {
  color: var(--c-primary);
  font-weight: 700;
  flex-shrink: 0;
}

.ateliers-booking__container {
  max-width: 74rem;
}

.ateliers-booking {
  background: #fff;
}

#inscription {
  background: #fff;
}

.ateliers-booking__card {
  margin: 0 auto;
  padding: 0;
  border-color: transparent;
  background: var(--c-surface);
}

.ateliers-booking__media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border-radius: 0;
  overflow: hidden;
  background: color-mix(in srgb, var(--c-primary) 10%, var(--c-surface));
}

.ateliers-booking__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ateliers-booking__grid {
  display: grid;
  gap: 0;
  padding: 0;
}

@media (min-width: 64rem) {
  .ateliers-booking__grid {
    grid-template-columns: minmax(14rem, 0.58fr) minmax(0, 1.42fr);
    align-items: stretch;
    min-height: 34rem;
  }
}
.ateliers-booking__intro {
  position: relative;
  display: block;
  overflow: hidden;
  min-height: 18rem;
  height: 100%;
  border-bottom: 1px solid var(--c-border);
  background: var(--c-primary);
}

@media (min-width: 64rem) {
  .ateliers-booking__intro {
    min-height: 26rem;
    border-right: 1px solid var(--c-border);
    border-bottom: 0;
  }
}
.ateliers-booking__intro.has-image::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.58), rgba(0, 0, 0, 0.24) 48%, rgba(0, 0, 0, 0.16));
  pointer-events: none;
}

.ateliers-booking__copy {
  position: relative;
  z-index: 2;
  padding: clamp(var(--s-6), 3vw, var(--s-8));
}

.ateliers-booking__kicker {
  margin: 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: var(--fs-0);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ateliers-booking__title {
  margin: 0;
  color: #fff !important;
}

#inscription .ateliers-booking__title,
#inscription .c-h2.ateliers-booking__title {
  color: #fff !important;
}

.ateliers-booking__text {
  margin: var(--s-4) 0 0;
  margin-inline: 0;
  color: rgba(255, 255, 255, 0.9) !important;
  line-height: 1.75;
}

#inscription .ateliers-booking__text,
#inscription .c-subtitle.ateliers-booking__text {
  color: rgba(255, 255, 255, 0.9) !important;
}

.ateliers-booking__form {
  min-width: 0;
  background: color-mix(in oklab, var(--c-bg) 65%, var(--c-surface));
  padding: clamp(var(--s-6), 3vw, var(--s-8));
}

.ateliers-booking__form .wpforms-container {
  margin: 0;
}

@media (min-width: 64rem) {
  .ateliers-booking__form .wpforms-field-container {
    --starter-wpforms-name-gap: var(--s-5, 1.25rem);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--s-5, 1.25rem);
    row-gap: var(--s-4);
  }
  .ateliers-booking__form .wpforms-field {
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
  }
  .ateliers-booking__form .wpforms-field-name,
  .ateliers-booking__form .wpforms-field-select,
  .ateliers-booking__form .wpforms-field-textarea,
  .ateliers-booking__form .wpforms-field-html,
  .ateliers-booking__form .wpforms-field-checkbox,
  .ateliers-booking__form .wpforms-field-radio,
  .ateliers-booking__form .wpforms-field-divider {
    grid-column: 1/-1;
  }
  .ateliers-booking__form .wpforms-submit-container {
    margin-top: var(--s-8);
  }
}
.ateliers-booking__form .wpforms-field-name .wpforms-field-row {
  gap: var(--starter-wpforms-name-gap, var(--s-5, 1.25rem));
}

.ateliers-booking__form .wpforms-field-name .wpforms-field-row-block,
.ateliers-booking__form .wpforms-field-name .wpforms-one-half,
.ateliers-booking__form .wpforms-field-name .wpforms-three-sixths,
.ateliers-booking__form .wpforms-field-name .wpforms-two-fourths {
  flex: 0 0 calc((100% - var(--starter-wpforms-name-gap, var(--s-5, 1.25rem))) / 2) !important;
  width: calc((100% - var(--starter-wpforms-name-gap, var(--s-5, 1.25rem))) / 2) !important;
  max-width: calc((100% - var(--starter-wpforms-name-gap, var(--s-5, 1.25rem))) / 2) !important;
}

.ateliers-booking__form .wpforms-field-select {
  padding-top: var(--s-1) !important;
}

.ateliers-booking__form .wpforms-field-checkbox {
  padding-top: var(--s-2) !important;
}

.ateliers-booking__form .wpforms-field-checkbox ul {
  margin: 0;
}

.ateliers-booking__form .wpforms-field-checkbox li {
  margin: 0;
}

.ateliers-booking__form .wpforms-field-checkbox label {
  display: flex;
  align-items: flex-start;
  gap: var(--s-2);
  line-height: 1.5;
}

.ateliers-booking__form .wpforms-form textarea {
  min-height: 112px;
}

.ateliers-note {
  background: var(--c-primary);
  color: #fff;
  padding: var(--s-6) 0;
}

.ateliers-note__inner {
  text-align: center;
}

.ateliers-note__inner p {
  margin: 0;
  font-size: var(--fs-0);
}

.ateliers-guided .c-subtitle,
.ateliers-autonomous .c-subtitle {
  margin-inline: 0;
}

.ateliers-autonomous__infos {
  background: var(--c-primary);
  border: 1px solid var(--c-primary);
  color: #fff;
}

.ateliers-autonomous__infos .c-h3,
.ateliers-autonomous__infos p {
  color: #fff;
}

.ateliers-hero {
  position: relative;
  min-height: clamp(300px, 42vh, 420px);
  display: flex;
  align-items: center;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow: hidden;
}

/* =========================================================
   WPForms — Bouton submit formulaire ateliers
========================================================= */
#wpforms-submit-114 {
  width: 100%;
  display: block;
  margin-top: var(--s-8) !important;
  background: var(--c-primary);
  color: #fff;
  border: none;
  border-radius: var(--radius);
  padding: 0.9rem 1.2rem;
  font-family: var(--ff-sans);
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.25s ease, transform 0.15s ease, box-shadow 0.15s ease;
}

#wpforms-submit-114:hover {
  background: color-mix(in srgb, var(--c-primary) 85%, black);
  transform: translateY(-1px);
}

#wpforms-submit-114:active {
  transform: translateY(0);
}

@media (max-width: 47.98rem) {
  .ateliers-booking {
    padding-inline: 0;
  }
  .ateliers-booking > .ateliers-booking__container {
    width: 100vw;
    max-width: none;
    margin-inline: calc(50% - 50vw);
    padding-inline: 0;
  }
  .ateliers-booking__card {
    width: 100%;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    overflow: hidden;
  }
  .ateliers-booking__grid {
    width: 100%;
  }
  .ateliers-booking__intro {
    min-height: 13rem;
    border-bottom: 0;
  }
  .ateliers-booking__form {
    padding: var(--s-5) 0 var(--s-6) !important;
  }
  .ateliers-booking__form .wpforms-container {
    width: 100%;
    margin: 0;
    padding-inline: var(--gutter) !important;
    box-sizing: border-box;
  }
  .ateliers-booking__form .wpforms-field-container {
    --starter-wpforms-name-gap: .75rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 0.75rem;
    row-gap: var(--s-4);
    align-items: start;
    padding-inline: 0 !important;
  }
  .ateliers-booking__form .wpforms-field {
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
  }
  .ateliers-booking__form .wpforms-field-name,
  .ateliers-booking__form .wpforms-field-select,
  .ateliers-booking__form .wpforms-field-textarea,
  .ateliers-booking__form .wpforms-field-html,
  .ateliers-booking__form .wpforms-field-checkbox,
  .ateliers-booking__form .wpforms-field-radio,
  .ateliers-booking__form .wpforms-field-divider {
    grid-column: 1/-1;
  }
  .ateliers-booking__form .wpforms-field-name .wpforms-field-row {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
    box-sizing: border-box;
  }
  .ateliers-booking__form .wpforms-container .wpforms-field-name .wpforms-field-row {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
    box-sizing: border-box;
  }
  .ateliers-booking__form .wpforms-field-name .wpforms-field-row::before,
  .ateliers-booking__form .wpforms-field-name .wpforms-field-row::after {
    content: none !important;
    display: none !important;
  }
  .ateliers-booking__form .wpforms-field-name .wpforms-field-row-block,
  .ateliers-booking__form .wpforms-field-name .wpforms-one-half,
  .ateliers-booking__form .wpforms-field-name .wpforms-three-sixths,
  .ateliers-booking__form .wpforms-field-name .wpforms-two-fourths {
    width: auto !important;
    max-width: none !important;
    min-width: 0;
    flex: initial !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .ateliers-booking__form .wpforms-container .wpforms-field-name .wpforms-field-row .wpforms-field-row-block,
  .ateliers-booking__form .wpforms-container .wpforms-field-name .wpforms-field-row .wpforms-one-half,
  .ateliers-booking__form .wpforms-container .wpforms-field-name .wpforms-field-row .wpforms-three-sixths,
  .ateliers-booking__form .wpforms-container .wpforms-field-name .wpforms-field-row .wpforms-two-fourths {
    flex: initial !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    box-sizing: border-box;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .ateliers-booking__form .wpforms-container .wpforms-field-name .wpforms-field-row .wpforms-field-row-block input,
  .ateliers-booking__form .wpforms-container .wpforms-field-name .wpforms-field-row .wpforms-field-row-block label {
    box-sizing: border-box;
    width: 100% !important;
    max-width: 100% !important;
  }
  .ateliers-booking__form input,
  .ateliers-booking__form select,
  .ateliers-booking__form textarea {
    min-width: 0;
    width: 100% !important;
  }
  .ateliers-booking__form .wpforms-field-checkbox ul {
    display: grid;
    gap: var(--s-2);
    margin: 0;
    padding: 0;
  }
  .ateliers-booking__form .wpforms-field-checkbox li {
    display: flex !important;
    align-items: flex-start;
    gap: var(--s-2);
    margin: 0 !important;
    padding: 0 !important;
  }
  .ateliers-booking__form .wpforms-field-checkbox input[type=checkbox] {
    flex: 0 0 auto;
    width: 1rem !important;
    height: 1rem;
    margin: 0.2rem 0 0 !important;
  }
  .ateliers-booking__form .wpforms-field-checkbox label,
  .ateliers-booking__form .wpforms-field-checkbox .wpforms-field-label-inline {
    display: inline !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.4;
  }
  .ateliers-booking__form .wpforms-submit-container {
    margin-top: var(--s-10) !important;
    padding-inline: 0 !important;
  }
}
.ateliers-details__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-6);
}

@media (max-width: 47.98rem) {
  .ateliers-details__grid {
    grid-auto-flow: column;
    grid-auto-columns: minmax(17.5rem, 88vw);
    grid-template-columns: none;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    padding: var(--s-3);
    margin-inline: calc(var(--s-3) * -1);
  }
  .ateliers-details__grid::-webkit-scrollbar {
    display: none;
  }
  .ateliers-details__grid > * {
    scroll-snap-align: start;
  }
}
@media (min-width: 48rem) {
  .ateliers-details__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 64rem) {
  .ateliers-details__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.ateliers-details__item {
  height: 100%;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.ateliers-details__media {
  width: 100%;
  aspect-ratio: 4/3;
  overflow: hidden;
  background: color-mix(in srgb, var(--c-primary) 10%, var(--c-surface));
}

.ateliers-details__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ateliers-details__content {
  padding: var(--s-6);
  display: grid;
  gap: var(--s-3);
  flex: 1;
}

.ateliers-details__item-title {
  margin: 0;
  font-size: clamp(1.05rem, 0.4vw + 0.95rem, 1.2rem);
}

.ateliers-details__item-text {
  margin: 0;
}

@media (max-width: 47.98rem) {
  .ateliers-autonomous__steps,
  .ateliers-guided__grid,
  .ateliers-details__grid {
    --ateliers-mobile-rail-offset: calc(var(--gutter) * 2);
    display: flex;
    grid-template-columns: none;
    gap: var(--s-6);
    width: 100vw;
    max-width: none;
    margin-left: calc(var(--ateliers-mobile-rail-offset) * -1);
    margin-right: 0;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x proximity;
    scroll-padding-inline: var(--ateliers-mobile-rail-offset) 0;
    scrollbar-width: none;
    padding-block: var(--s-3);
    padding-inline: var(--ateliers-mobile-rail-offset) 0;
  }
  .ateliers-autonomous__steps::-webkit-scrollbar,
  .ateliers-guided__grid::-webkit-scrollbar,
  .ateliers-details__grid::-webkit-scrollbar {
    display: none;
  }
  .ateliers-autonomous__steps::after,
  .ateliers-guided__grid::after,
  .ateliers-details__grid::after {
    content: "";
    flex: 0 0 max(var(--s-6), 18vw);
  }
  .ateliers-autonomous__steps > *,
  .ateliers-guided__grid > *,
  .ateliers-details__grid > * {
    flex: 0 0 min(18rem, 84vw);
    scroll-snap-align: start;
  }
}
/* =========================================================
   Page — Espace Cosy
========================================================= */
/* -------------------------
   Hero
------------------------- */
.cosy-hero {
  position: relative;
  min-height: clamp(340px, 54vh, 520px);
  display: flex;
  align-items: center;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow: hidden;
}

.cosy-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.28), rgba(0, 0, 0, 0.2), rgba(255, 255, 255, 0.16));
}

.cosy-hero__content {
  position: relative;
  z-index: 2;
  max-width: 42rem;
  margin-inline: auto;
  text-align: center;
  padding-inline: var(--gutter);
}

.cosy-hero__title {
  margin: 0 0 var(--s-3);
  font-family: var(--ff-serif);
  font-size: clamp(2.2rem, 2.6vw + 1rem, 3.2rem);
  color: #fff;
}

.cosy-hero__text {
  max-width: 34rem;
  margin-inline: auto;
  color: rgba(255, 255, 255, 0.94);
  line-height: 1.65;
}
.cosy-hero__text p {
  margin: 0;
}
.cosy-hero__text p + p {
  margin-top: var(--s-2);
}

/* -------------------------
   Intro / Terrasse
------------------------- */
.cosy-intro__grid,
.cosy-terrace__grid {
  display: grid;
  gap: var(--s-12);
  align-items: center;
}

@media (min-width: 48rem) {
  .cosy-intro__grid,
  .cosy-terrace__grid {
    grid-template-columns: 1fr 1fr;
  }
}
.cosy-intro__img,
.cosy-terrace__img {
  width: 100%;
  height: 100%;
  min-height: 30rem;
  object-fit: cover;
  display: block;
}

/* -------------------------
   Features
------------------------- */
.cosy-features__grid {
  gap: var(--s-8);
}

.cosy-feature {
  text-align: center;
}

.cosy-feature__icon {
  width: 4rem;
  height: 4rem;
  margin: 0 auto var(--s-4);
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: #fff;
  color: var(--c-primary);
  font-size: 1.8rem;
  box-shadow: var(--shadow);
}

/* -------------------------
   Menu
------------------------- */
.cosy-menu__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-8);
}

@media (min-width: 48rem) {
  .cosy-menu__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 47.98rem) {
  .cosy-menu__grid {
    --cosy-mobile-rail-offset: calc(var(--gutter) * 2);
    display: flex;
    gap: var(--s-6);
    width: 100vw;
    max-width: none;
    margin-left: calc(var(--cosy-mobile-rail-offset) * -1);
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x proximity;
    scroll-padding-inline: var(--cosy-mobile-rail-offset) 0;
    scrollbar-width: none;
    padding-block: var(--s-3);
    padding-inline: var(--cosy-mobile-rail-offset) 0;
  }
  .cosy-menu__grid::-webkit-scrollbar {
    display: none;
  }
  .cosy-menu__grid::after {
    content: "";
    flex: 0 0 max(var(--s-6), 18vw);
  }
  .cosy-menu__grid > * {
    flex: 0 0 min(19rem, 86vw);
    scroll-snap-align: start;
  }
}
.cosy-menu-card {
  padding: var(--s-8);
  border: 1px solid var(--c-border);
  background: var(--c-surface);
  transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.cosy-menu-card__title {
  margin: 0 0 var(--s-6);
  padding-bottom: var(--s-4);
  border-bottom: 1px solid color-mix(in srgb, var(--c-primary) 28%, transparent);
  font-family: var(--ff-serif);
  font-size: 1.6rem;
  color: var(--c-text);
  transition: color 0.25s ease, border-color 0.25s ease;
}

.cosy-menu-card__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--s-4);
}

.cosy-menu-card__item {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--s-4);
  color: var(--c-text);
  transition: color 0.25s ease;
}

.cosy-menu-card__item span:last-child {
  color: var(--c-primary);
  white-space: nowrap;
  font-weight: 600;
  transition: color 0.25s ease;
}

.cosy-menu-card:hover,
.cosy-menu-card.is-active {
  background: var(--c-primary);
  border-color: var(--c-border);
  transform: translateY(-2px);
}

.cosy-menu-card:hover .cosy-menu-card__title,
.cosy-menu-card:hover .cosy-menu-card__item,
.cosy-menu-card:hover .cosy-menu-card__item span:last-child,
.cosy-menu-card.is-active .cosy-menu-card__title,
.cosy-menu-card.is-active .cosy-menu-card__item,
.cosy-menu-card.is-active .cosy-menu-card__item span:last-child {
  color: #fff;
}

.cosy-menu-card:hover .cosy-menu-card__title,
.cosy-menu-card.is-active .cosy-menu-card__title {
  border-bottom-color: rgba(255, 255, 255, 0.22);
}

.cosy-menu__note {
  margin: var(--s-8) 0 0;
  text-align: center;
  font-size: var(--fs-0);
  color: var(--c-muted);
}

/* -------------------------
   Ambiance
------------------------- */
.cosy-ambiance__container {
  max-width: 54rem;
  text-align: center;
}

.cosy-ambiance__text {
  max-width: 44rem;
  margin-inline: auto;
}

/* -------------------------
   CTA
------------------------- */
.cosy-cta {
  background: var(--c-primary);
}

.cosy-cta__inner {
  max-width: 56rem;
  margin: 0 auto;
  text-align: center;
  display: grid;
  gap: var(--s-3);
}

.cosy-cta__title,
.cosy-cta__text {
  color: #fff;
}

.cosy-cta__text {
  margin-bottom: var(--s-8);
}

.cosy-cta__actions {
  display: flex;
  flex-direction: column;
  gap: var(--s-4);
  justify-content: center;
}

@media (min-width: 48rem) {
  .cosy-cta__actions {
    flex-direction: row;
  }
}
.cosy-cta .c-btn {
  width: 100%;
  justify-self: center;
}

@media (min-width: 48rem) {
  .cosy-cta .c-btn {
    width: fit-content;
  }
}
/* -------------------------
   Bouton outline blanc
------------------------- */
.c-btn--ghost-white {
  background: transparent;
  color: #fff;
  border: 2px solid #fff;
}

.c-btn--ghost-white:hover {
  background: rgba(255, 255, 255, 0.1);
}

/* =========================================================
   Page — Produits / Sous-catégorie
========================================================= */
/* -------------------------
   Hero
------------------------- */
.products-hero {
  position: relative;
  min-height: clamp(340px, 52vh, 520px);
  display: flex;
  align-items: center;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-color: var(--c-bg);
}

.products-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.2), rgba(255, 255, 255, 0.1));
}

.products-hero__content {
  position: relative;
  z-index: 1;
  max-width: 48rem;
  margin-inline: auto;
  text-align: center;
  padding-inline: var(--gutter);
}

.products-hero__title {
  margin: 0 0 var(--s-3);
  color: #fff;
  font-family: var(--ff-serif);
  font-size: clamp(2.2rem, 2.8vw + 1rem, 3.3rem);
  letter-spacing: -0.02em;
}

.products-hero__text {
  max-width: 36rem;
  margin-inline: auto;
  color: rgba(255, 255, 255, 0.92);
  line-height: 1.65;
}
.products-hero__text p {
  margin: 0;
}
.products-hero__text p + p {
  margin-top: var(--s-3);
}

/* -------------------------
   Archive grid
------------------------- */
.products-archive__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--s-8);
}

@media (min-width: 48rem) {
  .products-archive__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 75rem) {
  .products-archive__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
.product-card {
  overflow: hidden;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.product-card:hover {
  cursor: pointer;
  transform: translateY(-2px);
  border-color: var(--c-primary);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.06);
}

.product-card__media {
  display: block;
  aspect-ratio: 20/21;
  overflow: hidden;
}

.product-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
}

.product-card:hover .product-card__img {
  transform: scale(1.04);
}

.product-card__body {
  padding: var(--s-8);
}

.product-card__body .c-h3 {
  margin-bottom: var(--s-3);
}

.product-card__info {
  margin: var(--s-4) 0 0;
  padding: 0.7rem 0.85rem;
  border-radius: calc(var(--radius) - 2px);
  background: color-mix(in srgb, var(--c-primary) 8%, var(--c-surface));
  color: color-mix(in srgb, var(--c-text) 78%, var(--c-primary));
  font-size: 0.9rem;
  line-height: 1.45;
}

.products-archive__empty {
  text-align: center;
  max-width: 36rem;
  margin: 0 auto;
}

.product-card__actions {
  margin-top: var(--s-6);
}

.product-card__actions .c-btn {
  width: 100%;
}

@media (max-width: 47.98rem) {
  .product-card__body {
    padding: var(--s-4);
  }
  .product-card__body .c-h3 {
    margin-bottom: var(--s-2);
    font-size: 1rem;
    line-height: 1.2;
  }
  .product-card__body .c-text-muted {
    margin-bottom: 0;
    font-size: 0.9rem;
    line-height: 1.45;
  }
  .product-card__info {
    margin-top: var(--s-3);
    padding: 0.6rem 0.7rem;
    font-size: 0.84rem;
    line-height: 1.35;
  }
  .product-card__actions {
    margin-top: var(--s-4);
  }
  .product-card__actions .c-btn {
    min-height: 0;
    padding: 0.72rem 0.85rem;
    font-size: 0.9rem;
  }
}
.product-card__actions .c-btn--primary {
  background: var(--c-primary);
  border-color: var(--c-primary);
  color: #fff;
}

.product-card:hover .product-card__actions .c-btn--primary {
  background: var(--c-primary);
  border-color: var(--c-primary);
  color: #fff;
}

.product-card__media {
  position: relative;
  display: block;
  overflow: hidden;
}

.product-card__price {
  position: absolute;
  top: var(--s-4);
  right: var(--s-4);
  z-index: 2;
  padding: 0.55rem 0.9rem;
  border-radius: 999px;
  background: #fff;
  color: var(--c-primary);
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.12);
}

.product-card__price--formats {
  display: grid;
  gap: 0.28rem;
  min-width: 7rem;
  padding: 0.65rem 0.75rem;
  border-radius: calc(var(--radius) + 2px);
  line-height: 1.15;
}

.product-card__price-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--c-muted);
}

.product-card__price-row strong {
  color: var(--c-primary);
  font-size: 0.9rem;
  font-weight: 700;
  white-space: nowrap;
}

@media (max-width: 47.98rem) {
  .product-card__price {
    top: var(--s-3);
    right: var(--s-3);
  }
  .product-card__price--formats {
    min-width: 6.5rem;
    padding: 0.55rem 0.65rem;
  }
}
.products-care__grid {
  gap: var(--s-6);
}

.products-care__item {
  padding: var(--s-8);
  height: 100%;
}

.products-care__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  margin-bottom: var(--s-4);
  border-radius: 999px;
  background: color-mix(in oklab, var(--c-primary) 10%, white);
  font-size: 1.4rem;
  line-height: 1;
}

.products-care__title {
  margin-bottom: var(--s-3);
}

.products-care__text {
  margin: 0;
}

/* =========================================================
   Page — Contact
========================================================= */
.contact-hero {
  background: var(--c-surface);
  padding-block: var(--s-12);
}

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

.contact-hero__title {
  margin: 0 0 var(--s-4);
  font-family: var(--ff-serif);
  font-size: clamp(2.3rem, 2.8vw + 1rem, 3.4rem);
  color: var(--c-text);
}

.contact-hero__text {
  max-width: 38rem;
  margin-inline: auto;
  color: var(--c-muted);
  line-height: 1.7;
}
.contact-hero__text p {
  margin: 0;
}
.contact-hero__text p + p {
  margin-top: var(--s-2);
}

.contact-form-info {
  background-color: #fff;
}

.contact-form-info__grid {
  display: grid;
  gap: var(--s-12);
}

@media (min-width: 64rem) {
  .contact-form-info__grid {
    grid-template-columns: 1.1fr 0.9fr;
  }
}
.contact-form-info__form-card {
  padding: 0;
}

.contact-form-info__media {
  position: relative;
  min-height: 14rem;
  display: grid;
  align-items: end;
  padding: var(--s-8);
  overflow: hidden;
  background: linear-gradient(135deg, color-mix(in srgb, var(--c-primary) 86%, black), color-mix(in srgb, var(--c-primary) 72%, var(--c-surface)));
  background-size: cover;
  background-position: center;
}

.contact-form-info__slider,
.contact-form-info__slide {
  position: absolute;
  inset: 0;
}

.contact-form-info__slider {
  z-index: 0;
}

.contact-form-info__slide {
  background-size: cover;
  background-position: center;
  opacity: 0;
  transform: scale(1.06);
  transition: opacity 1.2s ease, transform 6s ease;
}

.contact-form-info__slide.is-active {
  opacity: 1;
  transform: scale(1);
}

.contact-form-info__media::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0.52));
  pointer-events: none;
}

.contact-form-info__title {
  position: relative;
  z-index: 2;
  margin: 0;
  color: #fff;
}

.contact-form-info__form-body {
  padding: var(--s-8);
}

@media (min-width: 64rem) {
  .contact-form-info__form-body .wpforms-field-container {
    --starter-wpforms-name-gap: var(--s-5, 1.25rem);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--s-5, 1.25rem);
    row-gap: var(--s-4);
  }
  .contact-form-info__form-body .wpforms-field {
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
  }
  .contact-form-info__form-body .wpforms-field-name,
  .contact-form-info__form-body .wpforms-field-textarea,
  .contact-form-info__form-body .wpforms-field-html,
  .contact-form-info__form-body .wpforms-field-checkbox,
  .contact-form-info__form-body .wpforms-field-radio,
  .contact-form-info__form-body .wpforms-field-divider {
    grid-column: 1/-1;
  }
  .contact-form-info__form-body .wpforms-submit-container {
    margin-top: var(--s-8);
  }
}
.contact-form-info__form-body .wpforms-field-name .wpforms-field-row {
  gap: var(--starter-wpforms-name-gap, var(--s-5, 1.25rem));
}

.contact-form-info__form-body .wpforms-field-name .wpforms-field-row-block,
.contact-form-info__form-body .wpforms-field-name .wpforms-one-half,
.contact-form-info__form-body .wpforms-field-name .wpforms-three-sixths,
.contact-form-info__form-body .wpforms-field-name .wpforms-two-fourths {
  flex: 0 0 calc((100% - var(--starter-wpforms-name-gap, var(--s-5, 1.25rem))) / 2) !important;
  width: calc((100% - var(--starter-wpforms-name-gap, var(--s-5, 1.25rem))) / 2) !important;
  max-width: calc((100% - var(--starter-wpforms-name-gap, var(--s-5, 1.25rem))) / 2) !important;
}

.contact-info-stack {
  display: grid;
  gap: var(--s-6);
}

.contact-info-card {
  display: flex;
  align-items: flex-start;
  gap: var(--s-4);
  padding: var(--s-6);
}

.contact-info-card__icon {
  width: 3rem;
  height: 3rem;
  border-radius: 999px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  background: var(--c-surface);
  color: var(--c-primary);
  font-size: 1.2rem;
}

.contact-info-card p,
.contact-info-card a {
  color: var(--c-muted);
  text-decoration: none;
}

.contact-info-card a:hover {
  color: var(--c-primary);
}

.contact-hours {
  display: grid;
  gap: var(--s-2);
}

.contact-hours__row {
  display: flex;
  justify-content: space-between;
  gap: var(--s-4);
  font-size: var(--fs-0);
  color: var(--c-muted);
}

.contact-map__box {
  overflow: hidden;
  padding: 0;
  min-height: 31rem;
  border-color: transparent;
}

.contact-map__embed,
.contact-map__embed iframe {
  width: 100%;
  height: 31rem;
  border: 0;
  display: block;
}

.contact-map__placeholder {
  min-height: 31rem;
  display: grid;
  place-items: center;
  align-content: center;
  gap: var(--s-4);
  padding: var(--s-8);
  text-align: center;
  background: color-mix(in srgb, var(--c-primary) 10%, var(--c-surface));
}

.contact-map__placeholder-icon {
  font-size: 3rem;
}

.contact-map__placeholder-title {
  margin: 0;
  font-family: var(--ff-serif);
  font-size: 1.3rem;
  color: var(--c-text);
}

.contact-access__container {
  max-width: 56rem;
}

.contact-access {
  background: #fff;
}

.contact-access__grid {
  gap: var(--s-8);
}

.contact-access__item {
  text-align: center;
}

.contact-access__icon {
  font-size: 2.4rem;
  margin-bottom: var(--s-3);
}

@media (max-width: 47.98rem) {
  .contact-access__grid {
    --contact-mobile-rail-offset: calc(var(--gutter) * 2);
    display: flex;
    gap: var(--s-6);
    width: 100vw;
    max-width: none;
    margin-left: calc(var(--contact-mobile-rail-offset) * -1);
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x proximity;
    scroll-padding-inline: var(--contact-mobile-rail-offset) 0;
    scrollbar-width: none;
    padding-block: var(--s-3);
    padding-inline: var(--contact-mobile-rail-offset) 0;
  }
  .contact-access__grid::-webkit-scrollbar {
    display: none;
  }
  .contact-access__grid::after {
    content: "";
    flex: 0 0 max(var(--s-6), 18vw);
  }
  .contact-access__grid > * {
    flex: 0 0 min(17rem, 82vw);
    scroll-snap-align: start;
  }
}
.contact-cta {
  background: var(--c-primary);
}

.contact-cta__inner {
  max-width: 56rem;
  margin: 0 auto;
  text-align: center;
  display: grid;
  gap: var(--s-3);
}

.contact-cta__title,
.contact-cta__text {
  color: #fff;
}

.contact-cta__text {
  margin-bottom: var(--s-8);
}

.contact-cta__actions {
  display: flex;
  flex-direction: column;
  gap: var(--s-4);
  justify-content: center;
}

@media (min-width: 48rem) {
  .contact-cta__actions {
    flex-direction: row;
  }
}
.contact-cta .c-btn {
  width: 100%;
  justify-self: center;
}

@media (min-width: 48rem) {
  .contact-cta .c-btn {
    width: fit-content;
  }
}
/* =========================================================
   Hero
========================================================= */
.contact-hero {
  position: relative;
  min-height: clamp(280px, 38vh, 400px);
  display: flex;
  align-items: center;
  background-size: cover;
  background-position: center 35%;
  background-repeat: no-repeat;
  overflow: hidden;
}

.contact-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.34), rgba(0, 0, 0, 0.24), rgba(0, 0, 0, 0.18));
}

.contact-hero__content {
  position: relative;
  z-index: 2;
  max-width: 42rem;
  margin-inline: auto;
  text-align: center;
  padding-inline: var(--gutter);
}

.contact-hero__title {
  margin: 0 0 var(--s-3);
  font-family: var(--ff-serif);
  font-size: clamp(2rem, 2vw + 1rem, 2.8rem);
  color: #fff;
}

.contact-hero__text {
  max-width: 34rem;
  margin-inline: auto;
  color: rgba(255, 255, 255, 0.92);
  line-height: 1.65;
}
.contact-hero__text p {
  margin: 0;
}
.contact-hero__text p + p {
  margin-top: var(--s-2);
}

/* =========================================================
   WPForms — Bouton submit
========================================================= */
#wpforms-submit-109 {
  width: 100%;
  display: block;
  margin-top: var(--s-8) !important;
  background: var(--c-primary);
  color: #fff;
  border: none;
  border-radius: var(--radius);
  padding: 0.9rem 1.2rem;
  font-family: var(--ff-sans);
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.15s ease, box-shadow 0.15s ease;
}

#wpforms-submit-109:hover {
  background: color-mix(in srgb, var(--c-primary) 85%, black);
  transform: translateY(-1px);
}

#wpforms-submit-109:active {
  transform: translateY(0);
  box-shadow: none;
}

/* =========================================================
   Contact — Form card
========================================================= */
.contact-form-info__form-card {
  border-color: transparent;
  box-shadow: none;
}

/* =========================================================
   Contact — Info cards (hover / active comme cosy menu)
========================================================= */
.contact-info-card {
  display: flex;
  gap: var(--s-4);
  align-items: flex-start;
  border-color: transparent;
  background: var(--c-surface);
  box-shadow: 0 14px 34px rgba(31, 41, 51, 0.08);
  transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

/* Icon */
.contact-info-card__icon {
  font-size: 1.4rem;
  color: var(--c-primary);
  transition: color 0.25s ease;
}

/* Texte */
.contact-info-card .c-h3,
.contact-info-card .c-text-muted,
.contact-info-card a,
.contact-info-card__hours,
.contact-hours__row {
  color: var(--c-text);
  transition: color 0.25s ease;
}

/* -------------------------
   Hover + Active
------------------------- */
.contact-info-card:hover,
.contact-info-card.is-active {
  background: var(--c-primary);
  border-color: transparent;
  box-shadow: 0 18px 42px color-mix(in srgb, var(--c-primary) 22%, transparent);
  transform: translateY(-2px);
}

/* Texte en blanc */
.contact-info-card:hover .c-h3,
.contact-info-card:hover .c-text-muted,
.contact-info-card:hover a,
.contact-info-card:hover .contact-hours__row,
.contact-info-card:hover .contact-info-card__icon,
.contact-info-card.is-active .c-h3,
.contact-info-card.is-active .c-text-muted,
.contact-info-card.is-active a,
.contact-info-card.is-active .contact-hours__row,
.contact-info-card.is-active .contact-info-card__icon {
  color: #fff;
}

/* Liens */
.contact-info-card a {
  text-decoration: none;
}

.contact-info-card:hover a,
.contact-info-card.is-active a {
  text-decoration: underline;
}

@media (max-width: 47.98rem) {
  .contact-form-info {
    padding-top: 0;
    padding-inline: 0;
  }
  .contact-form-info > .c-container {
    width: 100%;
  }
  .contact-form-info__grid {
    gap: var(--s-5, 1.25rem);
  }
  .contact-form-info__form-card {
    border: 0;
    border-radius: 0;
    box-shadow: none;
    overflow: hidden;
  }
  .contact-form-info__media {
    min-height: 10rem;
    padding: var(--s-5, 1.25rem);
  }
  .contact-form-info__form-body {
    padding: var(--s-5, 1.25rem);
  }
  .contact-form-info__form-body .wpforms-field-container {
    --starter-wpforms-name-gap: var(--s-3);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--s-3);
    row-gap: var(--s-4);
    align-items: start;
  }
  .contact-form-info__form-body .wpforms-field {
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
  }
  .contact-form-info__form-body .wpforms-field-name,
  .contact-form-info__form-body .wpforms-field-textarea,
  .contact-form-info__form-body .wpforms-field-html,
  .contact-form-info__form-body .wpforms-field-checkbox,
  .contact-form-info__form-body .wpforms-field-radio,
  .contact-form-info__form-body .wpforms-field-divider {
    grid-column: 1/-1;
  }
  .contact-form-info__form-body .wpforms-field-name .wpforms-field-row {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--starter-wpforms-name-gap, var(--s-3));
    width: 100% !important;
    max-width: none;
  }
  .contact-form-info__form-body .wpforms-container .wpforms-field-name .wpforms-field-row {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--starter-wpforms-name-gap, var(--s-3));
    width: 100% !important;
    max-width: none !important;
  }
  .contact-form-info__form-body .wpforms-field-name .wpforms-field-row::before,
  .contact-form-info__form-body .wpforms-field-name .wpforms-field-row::after {
    content: none !important;
    display: none !important;
  }
  .contact-form-info__form-body .wpforms-field-name .wpforms-field-row-block,
  .contact-form-info__form-body .wpforms-field-name .wpforms-one-half,
  .contact-form-info__form-body .wpforms-field-name .wpforms-three-sixths,
  .contact-form-info__form-body .wpforms-field-name .wpforms-two-fourths {
    width: auto !important;
    max-width: none !important;
    min-width: 0;
    flex: initial !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .contact-form-info__form-body .wpforms-container .wpforms-field-name .wpforms-field-row .wpforms-field-row-block,
  .contact-form-info__form-body .wpforms-container .wpforms-field-name .wpforms-field-row .wpforms-one-half,
  .contact-form-info__form-body .wpforms-container .wpforms-field-name .wpforms-field-row .wpforms-three-sixths,
  .contact-form-info__form-body .wpforms-container .wpforms-field-name .wpforms-field-row .wpforms-two-fourths {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    flex: initial !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .contact-form-info__form-body .wpforms-container .wpforms-field-name .wpforms-field-row .wpforms-field-row-block input,
  .contact-form-info__form-body .wpforms-container .wpforms-field-name .wpforms-field-row .wpforms-field-row-block label {
    width: 100% !important;
    max-width: 100% !important;
  }
  .contact-form-info__form-body input,
  .contact-form-info__form-body select,
  .contact-form-info__form-body textarea {
    min-width: 0;
    width: 100% !important;
  }
  .contact-form-info__form-body .wpforms-field-checkbox ul {
    display: grid;
    gap: var(--s-2);
    margin: 0;
    padding: 0;
  }
  .contact-form-info__form-body .wpforms-field-checkbox li {
    display: flex;
    align-items: flex-start;
    gap: var(--s-2);
    margin: 0 !important;
    padding: 0 !important;
  }
  .contact-form-info__form-body .wpforms-field-checkbox input[type=checkbox] {
    flex: 0 0 auto;
    width: 1rem !important;
    height: 1rem;
    margin: 0.2rem 0 0 !important;
  }
  .contact-form-info__form-body .wpforms-field-checkbox label,
  .contact-form-info__form-body .wpforms-field-checkbox .wpforms-field-label-inline {
    display: inline;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    line-height: 1.4;
  }
  .contact-info-stack {
    display: grid;
    gap: var(--s-4);
    width: 100%;
    max-width: none;
    overflow: visible;
    padding: 0 var(--gutter) var(--s-5, 1.25rem);
  }
  .contact-info-card {
    width: 100%;
    min-width: 0;
    min-height: 0;
    padding: var(--s-4);
  }
  .contact-info-card__icon {
    width: 2.45rem;
    height: 2.45rem;
    font-size: 1.05rem;
  }
  .contact-info-card .c-h3 {
    margin-top: 0;
    margin-bottom: var(--s-2);
    font-size: 1.05rem;
  }
  .contact-info-card--hours {
    margin: 0;
  }
  .contact-info-card--hours .contact-hours {
    gap: 0.35rem;
  }
  .contact-info-card--hours .contact-hours__row {
    gap: var(--s-3);
    font-size: 0.78rem;
  }
  .contact-info-card:hover,
  .contact-info-card.is-active {
    background: var(--c-surface);
    border-color: transparent;
    box-shadow: 0 14px 34px rgba(31, 41, 51, 0.08);
    transform: none;
  }
  .contact-info-card:hover .c-h3,
  .contact-info-card:hover .c-text-muted,
  .contact-info-card:hover a,
  .contact-info-card:hover .contact-hours__row,
  .contact-info-card:hover .contact-info-card__icon,
  .contact-info-card.is-active .c-h3,
  .contact-info-card.is-active .c-text-muted,
  .contact-info-card.is-active a,
  .contact-info-card.is-active .contact-hours__row,
  .contact-info-card.is-active .contact-info-card__icon {
    color: var(--c-text);
  }
  .contact-info-card:hover a,
  .contact-info-card.is-active a {
    text-decoration: none;
  }
}

/*# sourceMappingURL=main.css.map */
