/**
 * Sophie Drunet — Styles principaux
 * Charte : primaire = dégradé radial E6755B→FB5E3E, secondaire = dégradé linéaire E6755B→FFCFB9
 */

/* ========== Variables ========== */
:root {
  /* Fallbacks pour presets Gutenberg (patterns) */
  --wp--preset--spacing--30: 0.75rem;
  --wp--preset--spacing--50: 1.5rem;
  --wp--preset--spacing--60: 2.5rem;
  /* Couleurs principales */
  --sd-text: #151310;
  --sd-text-light: #4a4743;
  --sd-accent: #e6755b;
  --sd-accent-strong: #fb5e3e;
  --sd-accent-light: #ffcfb9;
  --sd-accent-hover: #d94d32;
  --sd-accent-focus: #e6755b;
  --sd-gradient-primary: radial-gradient(circle, #e6755b 0%, #fb5e3e 100%);
  --sd-gradient-secondary: linear-gradient(135deg, #e6755b 0%, #ffcfb9 100%);
  --sd-secondary: #e0ddd6;
  --sd-secondary-hover: #d2cfc7;
  /* Primary = gris doux (cartes, éléments secondaires) */
  --sd-primary: #e0ddd7;
  --sd-primary-hover: #d2cfc9;
  /* Couleurs d’accent utilisées pour les hovers (variées) */
  --sd-bg: #ffffff;
  --sd-bg-light: #f8f9f8;
  --sd-border: #e5e4e3;
  --sd-radius: 4px;
  --sd-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  --sd-container: min(100% - 2rem, 720px);
  --sd-container-wide: min(100% - 2rem, 1200px);
  --sd-stack: 1.5rem;
  --sd-stack-lg: 2.5rem;
  /* Typo */
  --sd-font-heading: Helvetica, Arial, "Helvetica Neue", sans-serif;
  --sd-font-body:
    "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --sd-font-header: Helvetica, Arial, "Helvetica Neue", sans-serif;
  --sd-focus-outline: 2px solid var(--sd-accent);
  --sd-focus-offset: 2px;
}

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

body.sd-body {
  margin: 0;
  font-family: var(--sd-font-body);
  font-size: 1.125rem;
  line-height: 1.7;
  color: var(--sd-text);
  background: var(--sd-bg);
}

/* ========== Skip link (accessibilité) ========== */
.sd-skip-link {
  position: absolute;
  top: -100px;
  left: 0.5rem;
  z-index: 100;
  padding: 0.75rem 1rem;
  background: var(--sd-bg);
  color: var(--sd-accent);
  text-decoration: none;
  border: 2px solid var(--sd-accent);
  border-radius: var(--sd-radius);
  font-weight: 600;
  transition: top 0.2s ease;
}
.sd-skip-link:focus {
  top: 0.5rem;
  outline: var(--sd-focus-outline);
  outline-offset: var(--sd-focus-offset);
}

/* ========== Layout : container, stack ========== */
.sd-container {
  width: 100%;
  max-width: var(--sd-container-wide);
  margin-left: auto;
  margin-right: auto;
}

.sd-content {
  max-width: var(--sd-container);
}

/* Zone principale pleine largeur : contenu aligné à 1200px, blocs alignfull en pleine page */
.sd-main {
  width: 100%;
  padding-left: 1rem;
  padding-right: 1rem;
}
.sd-main .sd-archive-header,
.sd-main .sd-entry-header {
  max-width: var(--sd-container-wide);
  margin-left: auto;
  margin-right: auto;
}
.sd-main .sd-entry-content > * {
  max-width: var(--sd-container-wide);
  margin-left: auto;
  margin-right: auto;
  padding-left: 1rem;
  padding-right: 1rem;
}
.sd-main .alignfull {
  max-width: none;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  padding-left: 1rem;
  padding-right: 1rem;
  box-sizing: border-box;
}
/* Groupes Gutenberg en pleine largeur (fonds bord à bord), contenu restant à 1200px */
.sd-main .sd-entry-content > .wp-block-group {
  max-width: none;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  padding-left: 1rem;
  padding-right: 1rem;
  box-sizing: border-box;
}
.sd-main
  .sd-entry-content
  > .wp-block-group
  > .wp-block-group__inner-container {
  max-width: var(--sd-container-wide);
  margin-left: auto;
  margin-right: auto;
}
.sd-main .sd-entry-content > .wp-block-cover {
  max-width: none;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  box-sizing: border-box;
}
.sd-main .sd-accompagnement-block,
.sd-main .sd-accompagnement-cta {
  max-width: var(--sd-container-wide);
  margin-left: auto;
  margin-right: auto;
}
.sd-main .sd-vignettes {
  max-width: var(--sd-container-wide);
  margin-left: auto;
  margin-right: auto;
}

.sd-stack > * + * {
  margin-top: var(--sd-stack);
}
.sd-stack-lg > * + * {
  margin-top: var(--sd-stack-lg);
}

/* ========== Header (deux lignes, style Sycho) ========== */
.sd-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: var(--sd-bg);
  transition: transform 0.3s ease;
  will-change: transform;
  box-shadow: 0 4px 12px rgba(21, 19, 16, 0.06);
}
.sd-header.sd-header-hidden {
  transform: translateY(-100%);
}

/* Ligne 1 — Barre supérieure (horaires, tél, email) — carousel sur tablette */
.sd-header-top {
  background-color: var(--sd-accent-strong);
  background-repeat: no-repeat;
  color: #fff;
}
.sd-header-top[style*="background-image"] {
  background-size: cover;
  background-position: center;
}
.sd-header-top-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 2.75rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-size: 0.9rem;
  gap: 0.5rem;
}
.sd-header-top-arrow {
  flex-shrink: 0;
  display: none;
  width: 2.25rem;
  height: 2.25rem;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.2);
  border: none;
  border-radius: var(--sd-radius);
  color: #fff;
  cursor: pointer;
  font-size: 1.25rem;
  line-height: 1;
  padding: 0;
  transition: background 0.2s;
}
.sd-header-top-arrow:hover,
.sd-header-top-arrow:focus-visible {
  background: rgba(255, 255, 255, 0.35);
}
.sd-header-top-prev:hover,
.sd-header-top-prev:focus-visible {
  color: var(--sd-accent);
}
.sd-header-top-next:hover,
.sd-header-top-next:focus-visible {
  color: var(--sd-accent);
}
.sd-header-top-arrow:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}
.sd-header-top-track-wrap {
  flex: 1;
  min-width: 0;
  overflow: hidden;
}
.sd-header-top-track {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  transition: transform 0.3s ease;
}
.sd-header-top-slide {
  flex: 0 0 auto;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.sd-header-top-item {
  color: inherit;
  text-decoration: none;
  opacity: 0.95;
}
.sd-header-top-item:hover,
.sd-header-top-item:focus-visible {
  opacity: 1;
  text-decoration: underline;
}
.sd-header-top-item:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}
@media (min-width: 1025px) {
  .sd-header-top-track {
    transform: none !important;
    flex-wrap: wrap;
    justify-content: end;
    gap: 1.25rem;
  }
  .sd-header-top-slide {
    width: auto;
    min-width: 0;
    flex: 0 0 auto;
    visibility: visible !important;
    position: static !important;
    pointer-events: auto !important;
  }
}
@media (max-width: 1024px) {
  .sd-header-top {
    display: none;
  }
}

/* Ligne 2 — Logo, nav, CTA */
.sd-header-main {
  background: var(--sd-bg);
  position: relative;
}
.sd-header-main-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 6.5rem;
  gap: 1rem;
}
@media (min-width: 1025px) {
  .sd-header-main-inner {
    gap: 2rem;
  }
  .sd-nav-menu {
    gap: 1.75rem;
  }
  .sd-nav-list {
    gap: 0.5rem 2rem;
  }
}
.sd-nav {
  position: relative;
}
.sd-header-brand a,
.sd-logo-text {
  color: var(--sd-text);
  text-decoration: none;
  font-family: var(--sd-font-header);
  font-weight: 500;
  font-size: 1.35rem;
  letter-spacing: -0.02em;
}
.sd-header-brand a:hover,
.sd-header-brand a:focus-visible,
.sd-logo-text:hover,
.sd-logo-text:focus-visible {
  color: var(--sd-accent);
}
.sd-header-brand img {
  max-width: var(--sd-header-logo-max-width, none);
  max-height: var(--sd-header-logo-max-height, 52px);
  width: auto;
  display: block;
}
/* Logo desktop visible, logo mobile caché par défaut */
.sd-header-brand .sd-logo-desktop {
  display: block;
}
.sd-header-brand .sd-logo-mobile {
  display: none;
}

/* Nav + CTA */
.sd-nav-menu {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.sd-nav-list {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
  gap: 0.25rem 1.5rem;
}
.sd-nav-list li {
  position: relative;
}
.sd-nav-list a {
  color: var(--sd-text);
  text-decoration: none;
  padding: 0.5rem 0;
  font-weight: 500;
  font-family: var(--sd-font-header);
}
/* Header nav : une couleur par lien, alternance accent-5 → accent-6 → accent-1 → … */
.sd-nav-list li:nth-child(6n + 1) a:hover,
.sd-nav-list li:nth-child(6n + 1) a:focus-visible {
  color: var(--sd-accent);
}
.sd-nav-list li:nth-child(6n + 2) a:hover,
.sd-nav-list li:nth-child(6n + 2) a:focus-visible {
  color: var(--sd-accent);
}
.sd-nav-list li:nth-child(6n + 3) a:hover,
.sd-nav-list li:nth-child(6n + 3) a:focus-visible {
  color: var(--sd-accent);
}
.sd-nav-list li:nth-child(6n + 4) a:hover,
.sd-nav-list li:nth-child(6n + 4) a:focus-visible {
  color: var(--sd-accent);
}
.sd-nav-list li:nth-child(6n + 5) a:hover,
.sd-nav-list li:nth-child(6n + 5) a:focus-visible {
  color: var(--sd-accent);
}
.sd-nav-list li:nth-child(6n + 6) a:hover,
.sd-nav-list li:nth-child(6n + 6) a:focus-visible {
  color: var(--sd-accent);
}
.sd-nav-list a[aria-current="page"] {
  color: var(--sd-accent);
}
/* Flèche sur les items avec sous-menu (header) */
.sd-nav-list .menu-item-has-children > a {
  padding-right: 0.25rem;
}
.sd-nav-list .menu-item-has-children > a::after {
  content: "";
  display: inline-block;
  width: 0.4em;
  height: 0.4em;
  margin-left: 0.35em;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  vertical-align: 0.15em;
  transition: transform 0.2s ease;
}
.sd-nav-list .menu-item-has-children:hover > a::after,
.sd-nav-list .menu-item-has-children.open > a::after {
  transform: rotate(-135deg);
}
/* Sous-menus : affichage au hover */
.sd-nav-list .sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 12rem;
  list-style: none;
  margin: 0;
  padding: 0.5rem 0;
  background: var(--sd-bg);
  border: 1px solid var(--sd-border);
  border-radius: var(--sd-radius);
  box-shadow: var(--sd-shadow);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  transition:
    opacity 0.2s ease,
    visibility 0.2s,
    transform 0.2s;
  z-index: 100;
  margin-top: 20px;
}

.sd-nav-list li:hover > .sub-menu,
.sd-nav-list li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.sd-nav-list .sub-menu a {
  display: block;
  padding: 0.5rem 1rem;
  font-size: 0.95rem;
  white-space: nowrap;
}
.sd-header-cta {
  flex-shrink: 0;
  white-space: nowrap;
  border-radius: 50px !important;
}
/* Header CTA : couleur de hover gérée comme les autres CTA (aléatoire via cta-hover-accent.js) */
.sd-header-cta:hover,
.sd-header-cta:focus-visible {
  color: #fff !important;
}

/* Focus visible (accessibilité) */
.sd-nav-list a:focus-visible,
.sd-btn:focus-visible,
.sd-footer-list a:focus-visible {
  outline: var(--sd-focus-outline);
  outline-offset: var(--sd-focus-offset);
}

/* Infos (horaires, tél, email) en bas du menu mobile — cachées sur desktop */
.sd-nav-menu-footer {
  display: none;
}
.sd-nav-close {
  display: none;
}
.sd-nav-menu-heading {
  display: none;
}
.sd-nav-submenu-toggle {
  display: none;
}
/* Toggle mobile */
.sd-nav-toggle-text {
  display: none;
}
.sd-nav-toggle-icon {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.sd-nav-toggle {
  display: none;
  background: none;
  border: none;
  padding: 0.5rem;
  cursor: pointer;
  align-items: center;
  gap: 5px;
}
.sd-nav-toggle-bar {
  width: 24px;
  height: 2px;
  background: var(--sd-text);
  border-radius: 1px;
}
.sd-nav-toggle:focus-visible {
  outline: var(--sd-focus-outline);
  outline-offset: var(--sd-focus-offset);
}
/* Menu mobile / tablette : plein écran avec animation (≤ 1024px) */
@media (max-width: 1024px) {
  .sd-header-brand .sd-logo-desktop {
    display: none !important;
  }
  .sd-header-brand .sd-logo-mobile {
    display: block;
  }
  .sd-header-brand img {
    max-height: var(--sd-header-logo-max-height-mobile, 36px);
  }
  .sd-footer-logo .sd-logo-desktop {
    display: none !important;
  }
  .sd-footer-logo .sd-logo-mobile {
    display: block;
  }
  .sd-logo-text {
    font-size: 1.1rem;
  }
  .sd-nav-toggle {
    display: flex;
    background: var(--sd-text);
    color: #fff;
    padding: 0.5rem 1rem;
    border-radius: 50px;
    gap: 0.5rem;
    font-family: var(--sd-font-header);
    font-size: 0.95rem;
    font-weight: 500;
  }
  .sd-nav-toggle-text {
    display: inline;
  }
  .sd-nav-toggle-bar {
    background: #fff;
  }
  .sd-nav-close {
    display: flex;
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    border: none;
    background: transparent;
    color: var(--sd-text);
    font-size: 1.75rem;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--sd-radius);
    z-index: 10;
  }
  .sd-nav-close:hover,
  .sd-nav-close:focus-visible {
    background: var(--sd-bg-light);
    color: var(--sd-accent);
  }
  .sd-nav-close:focus-visible {
    outline: var(--sd-focus-outline);
    outline-offset: var(--sd-focus-offset);
  }
  .sd-nav-menu-heading {
    display: flex !important;
    align-items: center;
    position: absolute;
    top: 1rem;
    left: 1.5rem;
    margin: 0;
    min-height: 2.5rem;
    font-family: var(--sd-font-header);
    font-size: 1.35rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    color: var(--sd-text);
  }
  .sd-nav-menu {
    position: fixed;
    inset: 0;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--sd-bg);
    z-index: 9999;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    padding: 5rem 1.5rem 2rem;
    gap: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition:
      opacity 0.3s ease,
      visibility 0.3s ease;
    overflow-y: auto;
  }
  body.sd-nav-open .sd-nav-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
  .sd-nav-menu .sd-nav-list {
    flex-direction: column;
    gap: 0;
    align-items: stretch;
    width: 100%;
    max-width: none;
    transform: translateY(-12px);
    transition: transform 0.35s ease 0.05s;
  }
  body.sd-nav-open .sd-nav-menu .sd-nav-list {
    transform: translateY(0);
  }
  .sd-nav-list li {
    position: static;
    width: 100%;
  }
  .sd-nav-list .menu-item-has-children > a::after {
    display: none;
  }
  .sd-nav-list > .menu-item-has-children {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    align-items: center;
  }
  .sd-nav-list > .menu-item-has-children > a {
    flex: 1 1 auto;
    min-width: 0;
  }
  .sd-nav-submenu-toggle {
    display: flex;
    flex: 0 0 auto;
    width: 2.75rem;
    height: 2.75rem;
    padding: 0;
    border: none;
    background: var(--sd-bg-light);
    color: var(--sd-text);
    font-size: 0.875rem;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    border-radius: var(--sd-radius);
    transition:
      transform 0.25s ease,
      background 0.2s,
      color 0.2s;
    touch-action: manipulation;
  }
  .sd-nav-submenu-toggle:hover,
  .sd-nav-submenu-toggle:focus-visible {
    background: rgba(230, 117, 91, 0.15);
    color: var(--sd-accent);
  }
  .sd-nav-list > .menu-item-has-children.open > .sd-nav-submenu-toggle {
    background: rgba(230, 117, 91, 0.2);
    color: var(--sd-accent);
  }
  .sd-nav-submenu-toggle:focus-visible {
    outline: var(--sd-focus-outline);
    outline-offset: var(--sd-focus-offset);
  }
  .sd-nav-submenu-toggle span {
    display: inline-block;
    transition: transform 0.25s ease;
  }
  .sd-nav-list > .menu-item-has-children.open > .sd-nav-submenu-toggle span {
    transform: rotate(-90deg);
  }
  .sd-nav-list a {
    display: block;
    padding: 0.875rem 0;
    font-size: 1.125rem;
    min-height: 2.75rem;
    align-items: center;
  }
  .sd-nav-list .sub-menu {
    position: static;
    flex: 1 1 100%;
    width: 100%;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    transform: none;
    border: none;
    box-shadow: none;
    padding: 0 0 0 1rem;
    margin: 0;
    background: var(--sd-bg-light);
    border-radius: var(--sd-radius);
    transition:
      max-height 0.3s ease,
      opacity 0.2s ease,
      visibility 0.2s,
      margin 0.2s;
  }
  .sd-nav-list .menu-item-has-children.open .sub-menu {
    max-height: 500px;
    opacity: 1;
    visibility: visible;
    margin-top: 0.25rem;
    margin-bottom: 0.5rem;
    padding: 0.5rem 0 0.5rem 1rem;
  }
  .sd-nav-list .sub-menu a {
    padding: 0.5rem 0.75rem;
    font-size: 1rem;
  }
  .sd-nav-menu .sd-header-cta {
    align-self: flex-start;
    width: auto;
    margin-top: 1.5rem;
    transform: translateY(-12px);
    transition: transform 0.35s ease 0.1s;
  }
  body.sd-nav-open .sd-nav-menu .sd-header-cta {
    transform: translateY(0);
  }
  .sd-nav-menu-footer {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: auto;
    padding-top: 2rem;
    padding-bottom: 1rem;
    border-top: 1px solid var(--sd-border);
    width: 100%;
    max-width: none;
    font-size: 0.95rem;
    color: var(--sd-text-light);
    transform: translateY(-12px);
    transition: transform 0.35s ease 0.15s;
  }
  body.sd-nav-open .sd-nav-menu-footer {
    transform: translateY(0);
  }
  .sd-nav-menu-footer-item {
    color: inherit;
    text-decoration: none;
  }
  .sd-nav-menu-footer-item[href]:hover,
  .sd-nav-menu-footer-item[href]:focus-visible {
    color: var(--sd-accent);
    text-decoration: underline;
  }
  body.sd-nav-open {
    overflow: hidden;
  }
}

/* ========== Main ========== */
.sd-main {
  min-height: 50vh;
}

/* ========== Typography ========== */
.sd-entry-title,
.sd-archive-title,
.sd-section-title {
  font-family: var(--sd-font-heading);
  font-weight: 600;
  color: var(--sd-text);
  line-height: 1.3;
  margin-top: 0;
}
.sd-entry-title {
  font-size: clamp(1.5rem, 4vw, 2rem);
}
.sd-archive-title {
  font-size: 1.75rem;
}
.sd-section-title {
  font-size: 1.5rem;
}

.sd-entry-content p,
.sd-entry-content ul,
.sd-entry-content ol {
  margin-top: 0;
  margin-bottom: 1rem;
}
.sd-entry-content ul,
.sd-entry-content ol {
  padding-left: 1.5rem;
}

/* ========== Buttons ========== */
.sd-btn {
  display: inline-block;
  padding: 0.75rem 1.5rem;
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  border-radius: var(--sd-radius);
  border: 2px solid transparent;
  cursor: pointer;
  transition:
    background 0.2s,
    color 0.2s,
    border-color 0.2s;
}
/* Primaire : dégradé radial E6755B → FB5E3E */
.sd-btn--primary,
.sd-btn-cta .wp-block-button__link,
.has-accent-cta-background-color {
  background: var(--sd-gradient-primary);
  color: #fff;
  border: none;
}
.sd-btn--primary:focus-visible,
.sd-btn-cta .wp-block-button__link:focus-visible,
.has-accent-cta-background-color:focus-visible {
  background: var(--sd-gradient-primary);
  color: #fff;
}
/* Secondaire / complémentaire : dégradé linéaire diagonal E6755B → FFCFB9 */
.sd-btn--secondary {
  background: var(--sd-gradient-secondary);
  color: var(--sd-text);
  border: none;
}
.sd-btn--secondary:hover {
  opacity: 0.95;
  color: var(--sd-text);
}

/* Gutenberg buttons alignment with theme */
.wp-block-button__link:focus-visible {
  outline: var(--sd-focus-outline);
  outline-offset: var(--sd-focus-offset);
}

/* ========== Cards / Vignettes ========== */
.sd-vignettes {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: var(--sd-stack-lg);
}
.sd-vignette {
  background: var(--sd-bg);
  border: 1px solid var(--sd-border);
  border-radius: var(--sd-radius);
  box-shadow: var(--sd-shadow);
  overflow: hidden;
}
.sd-vignette-inner {
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.sd-vignette-icon {
  color: var(--sd-primary);
  line-height: 0;
}
.sd-vignette-icon .sd-icon-svg {
  width: 48px;
  height: 48px;
}
.sd-vignette-title {
  font-family: var(--sd-font-heading);
  font-size: 1.25rem;
  margin: 0;
}
.sd-vignette-title a {
  color: var(--sd-text);
  text-decoration: none;
}
.sd-vignette-title a:hover,
.sd-vignette-title a:focus-visible {
  color: var(--sd-accent);
}
.sd-vignette-excerpt {
  font-size: 0.95rem;
  color: var(--sd-text-light);
  flex-grow: 1;
}
.sd-vignette-excerpt p:last-child {
  margin-bottom: 0;
}
.sd-vignette-link {
  align-self: flex-start;
}

/* ========== Single accompagnement ========== */
.sd-article--accompagnement .sd-entry-header--accompagnement {
  text-align: center;
  margin-bottom: var(--sd-stack-lg);
}
.sd-article--accompagnement .sd-entry-header--accompagnement .sd-icon {
  margin-bottom: 0.5rem;
}
.sd-entry-excerpt {
  font-size: 1.125rem;
  color: var(--sd-text-light);
  margin-top: 0.5rem;
}
.sd-accompagnement-sections .sd-accompagnement-block {
  margin-top: var(--sd-stack-lg);
  padding-top: var(--sd-stack);
  border-top: 1px solid var(--sd-border);
}
.sd-accompagnement-block-title {
  font-size: 1.25rem;
  margin-top: 0;
  margin-bottom: 0.75rem;
  color: var(--sd-primary);
}
.sd-accompagnement-cta {
  margin-top: var(--sd-stack-lg);
  padding: var(--sd-stack);
  background: var(--sd-bg-light);
  border-radius: var(--sd-radius);
  text-align: center;
}
.sd-cta-text {
  margin-bottom: 1rem;
}

/* ========== Archive ========== */
.sd-archive-header {
  margin-bottom: var(--sd-stack-lg);
}
.sd-archive-description {
  color: var(--sd-text-light);
  margin-top: 0.5rem;
}

/* ========== Front page (même largeur et espacements que .sd-main) ========== */
.sd-front-page {
  width: 100%;
  padding-left: 1rem;
  padding-right: 1rem;
}
.sd-front-page .sd-entry-content--front {
  max-width: none;
}
.sd-front-page .sd-entry-content--front > * {
  max-width: var(--sd-container-wide);
  margin-left: auto;
  margin-right: auto;
  padding-left: 1rem;
  padding-right: 1rem;
}
.sd-front-page .alignfull {
  max-width: none;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  padding-left: 1rem;
  padding-right: 1rem;
  box-sizing: border-box;
}
/* Groupes Gutenberg en pleine largeur sur l’accueil (fonds bord à bord) */
.sd-front-page .sd-entry-content--front > .wp-block-group {
  max-width: none;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  padding-left: 1rem;
  padding-right: 1rem;
  box-sizing: border-box;
}
.sd-front-page
  .sd-entry-content--front
  > .wp-block-group
  > .wp-block-group__inner-container {
  max-width: var(--sd-container-wide);
  margin-left: auto;
  margin-right: auto;
}
.sd-front-page .sd-entry-content--front > .wp-block-cover {
  max-width: none;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  box-sizing: border-box;
}

/* ========== Formulaire de contact ========== */
.sd-contact-form-wrap {
  margin: var(--sd-stack-lg) 0;
  max-width: none;
  width: 100%;
}
.sd-contact-form-message {
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
  border-radius: 8px;
  font-size: 1rem;
}
.sd-contact-form-success {
  background: var(--sd-primary);
  color: var(--sd-text);
  border: 1px solid var(--sd-border);
}
.sd-contact-form-error {
  background: #fef2f2;
  color: #991b1b;
  border: 1px solid #fecaca;
}
.sd-contact-form .sd-contact-form-row {
  margin: 0 0 1.25rem;
}
.sd-contact-form label {
  display: block;
  font-weight: 600;
  margin-bottom: 0.4rem;
  color: var(--sd-text);
  font-size: 0.8125rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.sd-contact-form .required {
  color: var(--sd-accent);
}
.sd-contact-form input[type="text"],
.sd-contact-form input[type="email"],
.sd-contact-form input[type="tel"],
.sd-contact-form textarea {
  width: 100%;
  padding: 0.75rem 1rem;
  font-family: var(--sd-font-body);
  font-size: 1rem;
  line-height: 1.5;
  color: var(--sd-text);
  background: #fff;
  border: 1px solid var(--sd-border);
  border-radius: 8px;
  transition:
    border-color 0.2s,
    box-shadow 0.2s;
}
.sd-contact-form input::placeholder,
.sd-contact-form textarea::placeholder {
  color: var(--sd-text-light);
}
.sd-contact-form input:focus,
.sd-contact-form textarea:focus {
  outline: none;
  border-color: var(--sd-accent);
  box-shadow: 0 0 0 2px rgba(21, 19, 16, 0.06);
}
.sd-contact-form textarea {
  min-height: 8rem;
  resize: vertical;
}
.sd-contact-form-consent-label {
  display: flex !important;
  align-items: flex-start;
  gap: 0.5rem;
  margin-bottom: 0;
}
.sd-contact-form-consent-label input[type="checkbox"] {
  width: auto;
  margin-top: 0.2rem;
  flex: 0 0 auto;
}
.sd-contact-form-consent-text {
  text-transform: none;
  font-size: 0.95rem;
  letter-spacing: normal;
  font-weight: 400;
  line-height: 1.5;
}
.sd-contact-form-consent-text a {
  text-transform: none;
  font-weight: 600;
}
.sd-contact-form-submit {
  margin-top: 1.75rem;
  margin-bottom: 0;
}
.sd-pattern-contact-form {
  max-width: none;
}
.sd-contact-form-submit .sd-btn {
  width: 100%;
  max-width: none;
  padding: 0.85rem 1.5rem;
  font-weight: 600;
  border-radius: 10px;
  border: none;
  cursor: pointer;
  transition:
    background 0.2s,
    color 0.2s;
}

/* ========== Footer (4 colonnes + barre basse) ========== */
.sd-footer {
  background: var(--sd-bg);
  border-top: 1px solid var(--sd-border);
  margin-top: auto;
}
.sd-footer-top {
  padding: 2.5rem 0;
}
.sd-footer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  text-align: left;
}
.sd-footer-title {
  font-family: var(--sd-font-header);
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--sd-text);
  margin: 0 0 0.75rem;
  letter-spacing: -0.01em;
}
.sd-footer-logo {
  margin-bottom: 0.75rem;
}
.sd-footer-logo .sd-logo-desktop {
  display: block;
}
.sd-footer-logo .sd-logo-mobile {
  display: none;
}
.sd-footer-logo img {
  max-width: var(--sd-footer-logo-max-width, none);
  max-height: var(--sd-footer-logo-max-height, 48px);
  width: auto;
  display: block;
}
.sd-footer-logo-text {
  font-family: var(--sd-font-header);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--sd-text);
  text-decoration: none;
}
.sd-footer-logo-text:hover,
.sd-footer-logo-text:focus-visible {
  color: var(--sd-accent);
}
.sd-footer-desc,
.sd-footer-contact-content p {
  font-size: 0.95rem;
  color: var(--sd-text-light);
  line-height: 1.6;
  margin: 0 0 0.5rem;
}
.sd-footer-contact-content p:last-child {
  margin-bottom: 0;
}
.sd-footer-links-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.sd-footer-links-list li {
  margin: 0;
}
.sd-footer-links-list li {
  margin: 0;
  position: relative;
}
.sd-footer-links-list a {
  display: inline-block;
  color: var(--sd-text);
  text-decoration: none;
  padding: 0.35rem 0;
  font-size: 0.95rem;
}
/* Footer liens utiles : une couleur par lien, alternance accent-2 → accent-3 → … */
.sd-footer-links-list > li:nth-child(6n + 1) > a:hover,
.sd-footer-links-list > li:nth-child(6n + 1) > a:focus-visible {
  color: var(--sd-accent);
}
.sd-footer-links-list > li:nth-child(6n + 2) > a:hover,
.sd-footer-links-list > li:nth-child(6n + 2) > a:focus-visible {
  color: var(--sd-accent);
}
.sd-footer-links-list > li:nth-child(6n + 3) > a:hover,
.sd-footer-links-list > li:nth-child(6n + 3) > a:focus-visible {
  color: var(--sd-accent);
}
.sd-footer-links-list > li:nth-child(6n + 4) > a:hover,
.sd-footer-links-list > li:nth-child(6n + 4) > a:focus-visible {
  color: var(--sd-accent);
}
.sd-footer-links-list > li:nth-child(6n + 5) > a:hover,
.sd-footer-links-list > li:nth-child(6n + 5) > a:focus-visible {
  color: var(--sd-accent);
}
.sd-footer-links-list > li:nth-child(6n + 6) > a:hover,
.sd-footer-links-list > li:nth-child(6n + 6) > a:focus-visible {
  color: var(--sd-accent);
}
.sd-footer-links-list .sub-menu a:hover,
.sd-footer-links-list .sub-menu a:focus-visible {
  color: var(--sd-accent);
}
/* Flèche + sous-menus footer (desktop : hover) */
.sd-footer-links-list .menu-item-has-children > a::after {
  content: "";
  display: inline-block;
  width: 0.35em;
  height: 0.35em;
  margin-left: 0.3em;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  vertical-align: 0.1em;
  transition: transform 0.2s ease;
}
.sd-footer-links-list .menu-item-has-children:hover > a::after,
.sd-footer-links-list .menu-item-has-children.open > a::after {
  transform: rotate(-135deg);
}
.sd-footer-links-list .sub-menu {
  list-style: none;
  margin: 0;
  padding: 0.5rem 0;
  padding-left: 1rem;
}
.sd-footer-links-list .sub-menu a {
  padding: 0.35rem 0 0.35rem;
  font-size: 0.9rem;
}
@media (min-width: 1025px) {
  .sd-footer-links-list .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 16rem;
    padding: 0.5rem 0 0.5rem 1rem;
    background: var(--sd-bg);
    border: 1px solid var(--sd-border);
    border-radius: var(--sd-radius);
    box-shadow: var(--sd-shadow);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    transition:
      opacity 0.2s,
      visibility 0.2s,
      transform 0.2s;
    z-index: 10;
  }
  .sd-footer-links-list .menu-item-has-children:hover > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
}
@media (max-width: 1024px) {
  .sd-footer-links-list .sub-menu {
    max-height: 0;
    overflow: hidden;
    padding: 0 0 0 1rem;
    margin: 0;
    background: var(--sd-bg-light);
    border-radius: var(--sd-radius);
    transition: max-height 0.3s ease;
  }
  .sd-footer-links-list .menu-item-has-children.open .sub-menu {
    max-height: 500px;
    margin-top: 0.25rem;
    padding: 0.5rem 0 0.5rem 1rem;
  }
}
.sd-footer-link {
  color: var(--sd-text) !important;
  text-decoration: none;
}
/* Footer contact : une couleur par lien (tél, email), alternance */
.sd-footer-contact-content a:nth-of-type(1):hover,
.sd-footer-contact-content a:nth-of-type(1):focus-visible {
  color: var(--sd-accent) !important;
  text-decoration: underline;
}
.sd-footer-contact-content a:nth-of-type(2):hover,
.sd-footer-contact-content a:nth-of-type(2):focus-visible {
  color: var(--sd-accent) !important;
  text-decoration: underline;
}
.sd-footer-contact-content a:nth-of-type(3):hover,
.sd-footer-contact-content a:nth-of-type(3):focus-visible {
  color: var(--sd-accent) !important;
  text-decoration: underline;
}
.sd-footer-link:hover,
.sd-footer-link:focus-visible {
  color: var(--sd-accent) !important;
  text-decoration: underline;
}
.sd-footer-address {
  white-space: pre-line;
}
.sd-footer-social-icons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}
.sd-footer-social-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid var(--sd-border);
  border-radius: 50%;
  color: var(--sd-text);
  background: var(--sd-bg);
  transition:
    color 0.2s,
    border-color 0.2s,
    background 0.2s;
}
.sd-footer-social-icon:hover,
.sd-footer-social-icon:focus-visible {
  color: var(--sd-accent);
  border-color: var(--sd-accent);
  background: var(--sd-bg-light);
}
.sd-footer-social-icon:focus-visible {
  outline: var(--sd-focus-outline);
  outline-offset: var(--sd-focus-offset);
}
.sd-footer-social-icon svg {
  width: 1.25rem;
  height: 1.25rem;
}
.sd-footer-sep {
  height: 1px;
  background: var(--sd-border);
}
.sd-footer-bottom {
  padding: 1rem 0;
}
.sd-footer-bottom .sd-container {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}
.sd-footer-credits {
  font-size: 0.875rem;
  color: var(--sd-text-light);
  margin: 0;
}
.sd-footer-legal {
  font-size: 0.875rem;
}
.sd-footer-legal a {
  color: var(--sd-text-light);
  text-decoration: none;
}
/* Footer légal : une couleur par lien, alternance */
.sd-footer-legal a:nth-of-type(1):hover,
.sd-footer-legal a:nth-of-type(1):focus-visible {
  color: var(--sd-accent);
  text-decoration: underline;
}
.sd-footer-legal a:nth-of-type(2):hover,
.sd-footer-legal a:nth-of-type(2):focus-visible {
  color: var(--sd-accent);
  text-decoration: underline;
}
.sd-footer-legal a:hover,
.sd-footer-legal a:focus-visible {
  text-decoration: underline;
}
.sd-footer-sep-dot {
  color: var(--sd-border);
  margin: 0 0.25rem;
}
@media (min-width: 640px) {
  .sd-footer-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1025px) {
  .sd-footer-grid {
    grid-template-columns: 1.5fr 1fr 1fr;
    gap: 2.5rem;
  }
  .sd-footer-top {
    padding: 3rem 0;
  }
}

/* ========== Hero Sophie (pattern avec titre animé) ========== */
/* Pas de padding vertical par défaut — l’utilisateur ajoute des espaceurs si besoin */
.sd-hero-sophie {
  text-align: center;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.sd-hero-sophie .wp-block-group > * {
  margin-left: auto;
  margin-right: auto;
}
.sd-hero-sophie-info-wrap {
  margin-bottom: 0.5rem;
  text-align: center;
}
.sd-hero-info-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.5rem 0.9rem;
  font-size: 0.9rem;
  color: var(--sd-text);
  background: var(--sd-bg-light);
  border: 1px solid var(--sd-border);
  border-radius: var(--sd-radius);
  text-decoration: none;
  transition:
    border-color 0.2s,
    color 0.2s;
}
.sd-hero-info-link:hover,
.sd-hero-info-link:focus-visible {
  color: var(--sd-accent);
  border-color: var(--sd-accent);
}
.sd-hero-info-link:focus-visible {
  outline: var(--sd-focus-outline);
  outline-offset: var(--sd-focus-offset);
}
.sd-hero-info-arrow {
  font-style: normal;
}
.sd-hero-title {
  font-family: var(--sd-font-heading);
  font-size: clamp(1.75rem, 5vw, 2.75rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--sd-text);
  margin: 0.5rem 0 1rem;
}
.sd-hero-rotating-text {
  display: inline-block;
  min-width: 8em;
  text-align: center;
  color: var(--sd-accent);
}
.sd-hero-desc {
  max-width: 36em;
  margin-left: auto;
  margin-right: auto;
  color: var(--sd-text-light);
  line-height: 1.65;
  margin-bottom: 1.5rem;
}
.sd-hero-sophie-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 0;
}
.sd-hero-sophie-buttons .wp-block-button {
  margin: 0;
}
.sd-hero-sophie-buttons .sd-btn-outline .wp-block-button__link {
  background: transparent !important;
  color: var(--sd-text) !important;
  border: 2px solid var(--sd-border);
}
.sd-hero-sophie-buttons .sd-btn-outline .wp-block-button__link:hover {
  border-color: var(--sd-accent);
  color: var(--sd-accent) !important;
}
@media (max-width: 480px) {
  .sd-hero-sophie-buttons {
    flex-direction: column;
    align-items: stretch;
  }
  .sd-hero-sophie-buttons .wp-block-button__link {
    justify-content: center;
  }
  .sd-hero-rotating-text {
    min-width: 6em;
  }
}

/* ========== Hero stratégie (titre + texte + photo + CTA + visuel pleine largeur) ========== */
.sd-hero-strategie-content {
  padding-left: 1rem;
  padding-right: 1rem;
}
.sd-hero-strategie-content > .wp-block-group {
  padding-left: 0;
  padding-right: 0;
}
.sd-hero-strategie-eyebrow {
  font-family: var(--sd-font-heading);
  font-size: 0.875rem;
  color: var(--sd-text-light);
  margin: 0 0 0.5rem;
  letter-spacing: 0.02em;
}
.sd-hero-strategie-columns {
  margin-top: 0;
}
.sd-hero-strategie-col-title {
  margin-bottom: 1.5rem;
}
.sd-hero-strategie-title {
  font-family: var(--sd-font-heading);
  font-size: clamp(2rem, 5.5vw, 3.25rem);
  font-weight: 700;
  line-height: 1.15;
  color: var(--sd-text);
  margin: 0;
  letter-spacing: -0.02em;
}
.sd-hero-strategie-deco {
  font-size: 1.5rem;
  color: var(--sd-text);
  margin: 0 0 0.25rem;
  line-height: 1;
}
.sd-hero-strategie-text {
  font-size: 1.125rem;
  line-height: 1.7;
  color: var(--sd-text);
  margin: 0;
}

/* Header de page (style Séances & cadre) — bandeau pleine largeur, contenu intérieur 1200px */
.sd-page-header {
  max-width: none !important;
  width: 100%;
  padding-left: 1rem;
  padding-right: 1rem;
}
.sd-page-header-eyebrow {
  font-family: var(--sd-font-heading);
  font-size: 0.875rem;
  color: var(--sd-text-light);
  margin: 0 0 0.5rem;
  letter-spacing: 0.02em;
}
.sd-page-header-title {
  font-family: var(--sd-font-heading);
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--sd-text);
  margin: 0 0 0.75rem;
  letter-spacing: -0.02em;
}
.sd-page-header-intro {
  font-size: 1.125rem;
  line-height: 1.7;
  color: var(--sd-text-light);
  margin: 0;
}

.sd-hero-strategie-row {
  margin-top: 0;
}
.sd-hero-strategie-photo {
  margin: 0;
  border-radius: 1.25rem;
  overflow: hidden;
}
.sd-hero-strategie-photo img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  aspect-ratio: 1;
}
.sd-hero-strategie-cta-box {
  border-radius: 1.25rem;
  overflow: hidden;
}
.sd-hero-strategie-cta-title {
  font-family: var(--sd-font-heading);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--sd-text);
  margin: 0 0 0.35rem;
}
.sd-hero-strategie-cta-sub {
  font-size: 1rem;
  color: var(--sd-text-light);
  margin: 0 0 1rem;
  line-height: 1.7;
}
.sd-hero-strategie-cta-btn .wp-block-button__link {
  background: transparent;
  color: #fff;
  border: 2px solid #fff;
  text-decoration: none;
  font-family: var(--sd-font-heading);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  padding: 0.6rem 1rem;
  border-radius: 50px;
  transition:
    background 0.2s,
    border-color 0.2s;
}
.sd-hero-strategie-cta-btn .wp-block-button__link:hover,
.sd-hero-strategie-cta-btn .wp-block-button__link:focus-visible {
  background: #fff;
  border-color: #fff;
  color: var(--sd-text);
}
.sd-hero-strategie-visual {
  position: relative;
}
.sd-hero-strategie-visual .wp-block-cover__inner-container {
  position: relative;
  z-index: 1;
}
/* Formes organiques légères en overlay (optionnel) */
.sd-hero-strategie-visual::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 60%;
  background: linear-gradient(to top, rgba(255, 255, 255, 0.4), transparent);
  pointer-events: none;
}

.sd-hero-strategie-columns {
  margin-bottom: 0;
}

@media (min-width: 1025px) {
  .sd-hero-strategie-columns {
    align-items: flex-start;
  }
  .sd-hero-strategie-col-title {
    flex: 0 0 42%;
    margin-bottom: 0;
  }
  .sd-hero-strategie-col-right {
    flex: 1 1 58%;
  }
  .sd-hero-strategie-row .sd-hero-strategie-col-photo {
    flex: 0 0 200px;
  }
  .sd-hero-strategie-row .sd-hero-strategie-col-cta {
    flex: 1 1 auto;
  }
}
@media (max-width: 1024px) {
  .sd-hero-strategie-row {
    flex-direction: column;
  }
  .sd-hero-strategie-col-photo {
    max-width: 220px;
  }
  .sd-hero-strategie-photo img {
    aspect-ratio: 1;
  }
}

/* ========== Patterns — blocs de composition (mobile first) ========== */
.sd-pattern-texte-ligne,
.sd-pattern-media-text,
.sd-pattern-quote,
.sd-pattern-stats,
.sd-pattern-cta-bande,
.sd-pattern-separator,
.sd-pattern-list-accroche,
.sd-pattern-image-pleine,
.sd-pattern-presentation-faq,
.sd-pattern-image-texte-transparent {
  padding-left: 1rem;
  padding-right: 1rem;
}
/* Pas de padding vertical par défaut — l’utilisateur ajoute des espaceurs si besoin */
.sd-pattern-image-pleine {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
/* Responsive : dans ce bloc, tout le texte à gauche et largeur contrainte */
@media (max-width: 1024px) {
  .sd-pattern-image-pleine {
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
  }
  .sd-pattern-image-pleine .wp-block-group,
  .sd-pattern-image-pleine .wp-block-columns {
    max-width: 100% !important;
    min-width: 0;
    box-sizing: border-box;
  }
  .sd-pattern-image-pleine .has-text-align-right,
  .sd-pattern-image-pleine .sd-parcours-desc.has-text-align-right,
  .sd-pattern-image-pleine p.has-text-align-right,
  .sd-pattern-image-pleine h1.has-text-align-right,
  .sd-pattern-image-pleine h2.has-text-align-right,
  .sd-pattern-image-pleine h3.has-text-align-right {
    text-align: left !important;
  }
  .sd-pattern-image-pleine .sd-parcours-sub,
  .sd-pattern-image-pleine .sd-parcours-title,
  .sd-pattern-image-pleine .sd-parcours-desc,
  .sd-pattern-image-pleine .sd-process-steps,
  .sd-pattern-image-pleine .sd-process-step-summary,
  .sd-pattern-image-pleine p,
  .sd-pattern-image-pleine h1,
  .sd-pattern-image-pleine h2,
  .sd-pattern-image-pleine h3 {
    text-align: left !important;
  }
}
.sd-pattern-texte-ligne .wp-block-group,
.sd-pattern-quote .wp-block-group,
.sd-pattern-stats .wp-block-group,
.sd-pattern-cta-bande .wp-block-group,
.sd-pattern-separator .wp-block-group,
.sd-pattern-list-accroche .wp-block-group,
.sd-pattern-image-pleine .wp-block-group,
.sd-pattern-presentation-faq > .wp-block-group,
.sd-pattern-image-texte-transparent > .wp-block-group {
  padding-left: 0;
  padding-right: 0;
}

/* ========== Pattern Présentation + FAQ (2 colonnes, accordéon) ========== */
.sd-presentation-faq-title {
  font-family: var(--sd-font-heading);
  font-size: clamp(1.5rem, 4vw, 2rem);
  font-weight: 700;
  line-height: 1.3;
  color: var(--sd-text);
  margin: 0 0 1rem;
  letter-spacing: -0.01em;
}
.sd-presentation-faq-intro {
  font-size: 1.125rem;
  line-height: 1.7;
  color: var(--sd-text);
  margin: 0 0 1rem;
}
.sd-presentation-faq-sub {
  font-size: 1.125rem;
  line-height: 1.7;
  color: var(--sd-text-light);
  margin: 0 0 1.5rem;
}
.sd-presentation-faq-cta .wp-block-button__link {
  border-radius: 2rem;
  font-family: var(--sd-font-heading);
  font-weight: 600;
  padding: 0.65rem 1.25rem;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.sd-faq-accordion {
  border: none;
  margin: 0;
  padding: 0;
}
.sd-faq-item {
  margin: 0;
  border-bottom: 1px solid var(--sd-border);
  padding: 1rem 0;
}
.sd-faq-item:first-child {
  padding-top: 0;
}
.sd-faq-question {
  font-family: var(--sd-font-body);
  font-size: 1rem;
  font-weight: 400;
  color: var(--sd-text);
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0;
  margin: 0;
}
.sd-faq-question::-webkit-details-marker,
.sd-faq-question::marker {
  display: none;
}
.sd-faq-question::after {
  content: "+";
  flex-shrink: 0;
  font-size: 1.25rem;
  font-weight: 400;
  color: var(--sd-text);
  line-height: 1;
}
.sd-faq-item[open] .sd-faq-question::after {
  content: "−";
}
.sd-faq-answer {
  padding: 0.75rem 0 0;
  margin: 0;
}
.sd-faq-answer p {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--sd-text-light);
  margin: 0;
}
@media (min-width: 769px) {
  .sd-presentation-faq-columns {
    align-items: flex-start;
  }
  .sd-presentation-faq-col-left {
    flex: 0 0 50%;
  }
  .sd-presentation-faq-col-right {
    flex: 1 1 50%;
  }
}
@media (max-width: 768px) {
  .sd-presentation-faq-columns {
    flex-direction: column;
  }
  .sd-presentation-faq-col-left {
    margin-bottom: 1.5rem;
  }
}

/* ========== Parcours + Process (grille 2×2) ========== */
.sd-pattern-parcours-process {
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.sd-pattern-parcours-process > .wp-block-group {
  padding-left: 0;
  padding-right: 0;
}
/* Pas de margin vertical par défaut — l’utilisateur ajoute des espaceurs si besoin */
.sd-parcours-row {
  margin: 0 !important;
  align-items: flex-start;
}
.sd-parcours-row-1,
.sd-parcours-row-2 {
  margin-bottom: 0 !important;
}
.sd-parcours-col-image,
.sd-parcours-col-text {
  flex: 1 1 100%;
}
.sd-parcours-img {
  margin: 0;
}
.sd-parcours-img img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  vertical-align: middle;
}

/* Image à mettre en avant (shortcode [sd_featured_image]) */
.sd-featured-image {
  max-width: 100%;
  height: auto;
  display: block;
  vertical-align: middle;
}
.sd-parcours-sub {
  font-family: var(--sd-font-body);
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--sd-text-light);
  margin: 0 0 0.5rem;
}
.sd-parcours-title {
  font-family: var(--sd-font-heading);
  font-size: clamp(1.5rem, 4vw, 2rem);
  font-weight: 700;
  line-height: 1.3;
  color: var(--sd-text);
  margin: 0 0 1rem;
}
.sd-parcours-desc {
  font-size: 1.125rem;
  line-height: 1.7;
  color: var(--sd-text);
  margin: 0 0 1.25rem;
}
.sd-parcours-cta-wrap {
  margin: 0;
}
.sd-parcours-cta-link {
  font-family: var(--sd-font-heading);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--sd-text);
  text-decoration: none;
  display: inline-block;
  border-bottom: 2px solid var(--sd-text);
  padding-bottom: 2px;
  min-width: 12rem;
  transition:
    color 0.2s,
    border-color 0.2s;
}
.sd-parcours-cta-link:hover,
.sd-parcours-cta-link:focus-visible {
  color: var(--sd-accent);
  border-bottom-color: var(--sd-accent);
}
/* Accordéon étapes */
.sd-process-steps {
  margin: 0;
  padding: 0;
  border: none;
}
.sd-process-step {
  margin: 0;
  border-bottom: 1px solid var(--sd-border);
  padding: 1rem 0;
}
.sd-process-step:first-child {
  padding-top: 0;
}
.sd-process-step-summary {
  font-family: var(--sd-font-body);
  font-size: 1rem;
  color: var(--sd-text);
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0;
  margin: 0;
}
.sd-process-step-summary::-webkit-details-marker,
.sd-process-step-summary::marker {
  display: none;
}
.sd-process-step-summary::after {
  content: "+";
  flex-shrink: 0;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--sd-text);
  line-height: 1;
}
.sd-process-step[open] .sd-process-step-summary::after {
  content: "−";
}
.sd-process-step-content {
  padding: 0.75rem 0 0;
  margin: 0;
  text-align: left;
}
.sd-process-step-content p {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--sd-text-light);
  margin: 0;
}
@media (min-width: 768px) {
  .sd-parcours-row {
    flex-wrap: nowrap;
  }
  .sd-parcours-col-image,
  .sd-parcours-col-text {
    flex: 1 1 50%;
  }
  .sd-parcours-row-2 .sd-parcours-col-text {
    order: 1;
  }
  .sd-parcours-row-2 .sd-parcours-col-image {
    order: 2;
  }
}
@media (max-width: 767px) {
  .sd-parcours-row-1 .sd-parcours-col-image {
    margin-bottom: 1.5rem;
  }
  .sd-parcours-row-2 .sd-parcours-col-text {
    margin-bottom: 1.5rem;
  }
}

/* Ligne 2 parcours : en responsive, texte à gauche et largeur contrainte */
@media (max-width: 1024px) {
  .sd-parcours-row-2 {
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
  }
  .sd-parcours-row-2 .sd-parcours-col-text,
  .sd-parcours-row-2 .sd-parcours-col-image {
    max-width: 100%;
    min-width: 0;
  }
  .sd-parcours-row-2 .sd-parcours-sub,
  .sd-parcours-row-2 .sd-parcours-title,
  .sd-parcours-row-2 .sd-parcours-desc,
  .sd-parcours-row-2 .sd-process-steps,
  .sd-parcours-row-2 .sd-process-step-summary,
  .sd-parcours-row-2 p,
  .sd-parcours-row-2 h1,
  .sd-parcours-row-2 h2,
  .sd-parcours-row-2 h3 {
    text-align: left !important;
  }
  .sd-parcours-row-2 .has-text-align-right {
    text-align: left !important;
  }
}

/* ========== Grille sujets accompagnement (6 cartes) ========== */
.sd-pattern-grille-sujets {
  padding-left: 1rem;
  padding-right: 1rem;
}
.sd-pattern-grille-sujets > .wp-block-group {
  padding-left: 0;
  padding-right: 0;
}
.sd-sujets-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
@media (min-width: 640px) {
  .sd-sujets-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
  }
}
@media (min-width: 900px) {
  .sd-sujets-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
  }
}
.sd-sujet-card {
  background: var(--sd-bg);
  border: 1px solid var(--sd-border);
  border-radius: 12px;
  overflow: hidden;
}
/* Dégradé par défaut ; si une image de fond est définie dans l’éditeur, elle n’est pas écrasée */
.sd-sujet-card--highlight:not([style*="background-image"]) {
  background: var(--sd-gradient-secondary);
  border-color: transparent;
}
.sd-sujet-card--highlight[style*="background-image"] {
  background-size: cover;
  background-position: center;
  border-color: transparent;
}
/* Couleur d’accent unifiée (remplace l’ancien teal en inline) */
/* Couleur par défaut ; si une image de fond est définie dans l’éditeur, elle n’est pas écrasée */
.sd-hero-strategie-cta-box.has-background:not([style*="background-image"]) {
  background-color: var(--sd-accent);
}
.sd-hero-strategie-cta-box.has-background[style*="background-image"] {
  background-size: cover;
  background-position: center;
}
.sd-sujet-card-title {
  font-family: var(--sd-font-heading);
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--sd-text);
  margin: 0 0 0.75rem;
}
/* Couleur par défaut sur card highlight ; l’éditeur peut la surcharger (has-text-color / style) */
.sd-sujet-card--highlight .sd-sujet-card-title:not(.has-text-color) {
  color: #fff;
}
.wp-block-image {
  margin: 0rem !important;
}
.wp-block-columns.has-small-font-size.is-layout-flex.wp-container-core-columns-is-layout-9d6595d7.wp-block-columns-is-layout-flex {
  margin-bottom: 1rem;
}
.sd-sujet-card-desc {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--sd-text-light);
  margin: 0 0 1rem;
}
.sd-sujet-card--highlight .sd-sujet-card-desc:not(.has-text-color) {
  color: rgba(255, 255, 255, 0.95);
}
.sd-sujet-card-cta {
  margin: 0;
  font-size: 0.9rem;
}
.sd-sujet-card-cta a {
  font-family: var(--sd-font-heading);
  font-weight: 600;
  letter-spacing: 0.02em;
  text-decoration: none;
  color: #a19c93;
  border-bottom: 1px solid currentColor;
  padding-bottom: 1px;
  transition:
    color 0.2s,
    border-color 0.2s;
}
.sd-sujet-card-cta a:hover,
.sd-sujet-card-cta a:focus-visible {
  color: var(--sd-accent);
}
.sd-sujet-card--highlight .sd-sujet-card-cta a:not(.has-text-color) {
  color: #fff;
  border-bottom-color: rgba(255, 255, 255, 0.8);
}
.sd-sujet-card--highlight .sd-sujet-card-cta a:hover,
.sd-sujet-card--highlight .sd-sujet-card-cta a:focus-visible {
  border-bottom-color: currentColor;
  opacity: 0.95;
}

/* ========== CTA sur image (bandeau bleu en bas) ========== */
/* L’image de fond est gérée par le bloc Cover (remplaçable dans l’éditeur). Ne pas définir de background ici. */
.sd-pattern-cta-sur-image {
  display: flex;
  align-items: flex-end;
}
/* S’assurer que l’image de fond du Cover reste visible (position/z-index gérés par le bloc core) */
.sd-pattern-cta-sur-image .wp-block-cover__image-background {
  object-fit: cover;
}
.sd-pattern-cta-sur-image .wp-block-cover__inner-container {
  width: 100%;
  max-width: var(--sd-container-wide);
  margin-left: auto;
  margin-right: auto;
  padding: 1.5rem 1rem 1.5rem;
  box-sizing: border-box;
}
.sd-cta-sur-image-bar {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
  border-radius: var(--sd-radius);
}
@media (min-width: 769px) {
  .sd-cta-sur-image-bar {
    margin-left: 0;
    margin-right: auto;
  }
}
.sd-cta-sur-image-bar > * {
  margin-left: 0;
  margin-right: 0;
}
.sd-cta-sur-image-title {
  font-family: var(--sd-font-heading);
  font-size: 1.5rem;
  font-weight: 300;
  line-height: 1.3;
  color: #fff;
  margin: 0 0 1.25rem;
}
@media (max-width: 1024px) {
  .sd-cta-sur-image-bar {
    font-size: 0.9375rem;
  }
  .sd-cta-sur-image-bar .sd-cta-sur-image-title,
  .sd-cta-sur-image-bar h2,
  .sd-cta-sur-image-bar h3 {
    font-size: 1.5rem !important;
    margin-bottom: 0.75rem;
  }
  .sd-cta-sur-image-bar .sd-cta-sur-image-buttons .wp-block-button__link,
  .sd-cta-sur-image-bar .sd-cta-sur-image-phone {
    font-size: 0.9rem;
    padding: 0.5rem 1rem;
  }
}
@media (min-width: 769px) {
  .sd-cta-sur-image-title {
    font-size: clamp(1.5rem, 4vw, 2rem);
  }
}
.sd-cta-sur-image-buttons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin: 0;
}
.sd-cta-sur-image-buttons .wp-block-button {
  margin: 0;
}
.sd-cta-sur-image-btn .wp-block-button__link {
  background: #fff !important;
  color: var(--sd-text) !important;
  border: 2px solid rgba(255, 255, 255, 0.6);
  border-radius: 2rem;
  padding: 0.6rem 1.25rem;
  font-family: var(--sd-font-heading);
  font-size: 1rem;
  font-weight: 600;
  transition:
    background 0.2s,
    color 0.2s,
    border-color 0.2s;
}
.sd-cta-sur-image-btn .wp-block-button__link:hover,
.sd-cta-sur-image-btn .wp-block-button__link:focus-visible {
  background: var(--sd-bg-light) !important;
  color: var(--sd-text) !important;
  border-color: #fff;
}
.sd-cta-sur-image-btn .wp-block-button__link:focus-visible {
  outline: 2px solid var(--sd-text);
  outline-offset: 2px;
}
.sd-cta-sur-image-phone {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: #fff !important;
  color: var(--sd-text) !important;
  border: 2px solid rgba(255, 255, 255, 0.6);
  border-radius: 2rem;
  padding: 0.6rem 1.25rem;
  font-family: var(--sd-font-heading);
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  transition:
    background 0.2s,
    color 0.2s,
    border-color 0.2s;
}
.sd-cta-sur-image-phone::before {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72 12.84 12.84 0 00.7 2.81 2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45 12.84 12.84 0 002.81.7A2 2 0 0122 16.92z'/%3E%3C/svg%3E")
    no-repeat center;
  mask-size: contain;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72 12.84 12.84 0 00.7 2.81 2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45 12.84 12.84 0 002.81.7A2 2 0 0122 16.92z'/%3E%3C/svg%3E")
    no-repeat center;
  -webkit-mask-size: contain;
  flex-shrink: 0;
}
.sd-cta-sur-image-phone:hover,
.sd-cta-sur-image-phone:focus-visible {
  background: var(--sd-bg-light) !important;
  color: var(--sd-text) !important;
  border-color: #fff;
}
.sd-cta-sur-image-phone:focus-visible {
  outline: 2px solid var(--sd-text);
  outline-offset: 2px;
}
@media (max-width: 767px) {
  .sd-cta-sur-image-buttons {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* Desktop : largeur des contenus de sections au moins égale au header (--sd-container-wide) */
@media (min-width: 1025px) {
  .sd-pattern-texte-ligne > .wp-block-group,
  .sd-pattern-quote > .wp-block-group,
  .sd-pattern-stats > .wp-block-group,
  .sd-pattern-cta-bande > .wp-block-group,
  .sd-pattern-separator > .wp-block-group,
  .sd-pattern-list-accroche > .wp-block-group,
  .sd-pattern-image-pleine > .wp-block-group,
  .sd-hero-sophie > .wp-block-group,
  .sd-pattern-posture > .wp-block-group,
  .sd-pattern-hero > .wp-block-group,
  .sd-pattern-espace > .wp-block-group,
  .sd-pattern-grille > .wp-block-group,
  .sd-pattern-ateliers > .wp-block-group,
  .sd-pattern-reassurance > .wp-block-group,
  .sd-pattern-cta > .wp-block-group,
  .sd-pattern-contact > .wp-block-group,
  .sd-pattern-deux-colonnes > .wp-block-group,
  .sd-hero-strategie-content > .wp-block-group,
  .sd-pattern-presentation-faq > .wp-block-group,
  .sd-pattern-grille-sujets > .wp-block-group,
  .sd-pattern-image-texte-transparent > .wp-block-group,
  .sd-pattern-parcours-process > .wp-block-group,
  .sd-page-header > .wp-block-group,
  .sd-pattern-media-text > .wp-block-columns {
    max-width: var(--sd-container-wide);
  }
}

/* Largeur identique pour les contenus des pages (header + blocs 720px) */
.sd-page-header > .wp-block-group {
  max-width: var(--sd-container-wide);
  margin-left: auto;
  margin-right: auto;
}

/* Contenu des pages Mentions légales et Politique de confidentialité (même largeur que le reste) */
.sd-content-wide {
  max-width: var(--sd-container-wide);
  margin-left: auto;
  margin-right: auto;
  padding-left: 1rem;
  padding-right: 1rem;
}
.sd-pattern-texte-ligne .sd-title-with-line {
  position: relative;
  padding-bottom: 0.75rem;
}
.sd-pattern-texte-ligne .sd-title-with-line::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 3rem;
  height: 3px;
  background: var(--sd-primary);
  border-radius: 2px;
  animation: sd-line-in 0.5s ease forwards;
}
@keyframes sd-line-in {
  from {
    width: 0;
    opacity: 0;
  }
  to {
    width: 3rem;
    opacity: 1;
  }
}
.sd-pattern-desc {
  color: var(--sd-text-light);
  margin-top: 0.5rem;
}

/* Image + Texte / Texte + Image */
.sd-pattern-media-text .sd-media-columns {
  gap: 1.5rem;
}
.sd-pattern-media-text .sd-media-col-image,
.sd-pattern-media-text .sd-media-col-content {
  flex: 1 1 100%;
}
.sd-pattern-media-text .sd-pattern-img img {
  width: 100%;
  height: auto;
  border-radius: var(--sd-radius);
  object-fit: cover;
}
.sd-pattern-media-text .sd-media-col-content .sd-section-title {
  margin-top: 0;
}
@media (min-width: 768px) {
  .sd-pattern-media-text .sd-media-columns {
    flex-wrap: nowrap;
  }
  .sd-pattern-media-text .sd-media-col-image,
  .sd-pattern-media-text .sd-media-col-content {
    flex: 1 1 0;
  }
  .sd-pattern-media-text.sd-media-text-first .sd-media-columns {
    flex-direction: row;
  }
  .sd-pattern-media-text.sd-media-image-first .sd-media-columns {
    flex-direction: row;
  }
}
@media (min-width: 1025px) {
  .sd-pattern-media-text .sd-media-columns {
    gap: 2.5rem;
  }
}

/* Image + Texte (fond transparent) */
.sd-pattern-image-texte-transparent {
  background: transparent !important;
  padding-left: 1rem;
  padding-right: 1rem;
}
.sd-pattern-image-texte-transparent > .wp-block-group {
  padding-left: 0;
  padding-right: 0;
}
.sd-image-texte-transparent-columns {
  gap: 1.5rem;
  margin: 0;
}
.sd-image-texte-transparent-col-image,
.sd-image-texte-transparent-col-content {
  flex: 1 1 100%;
}
.sd-image-texte-transparent-img {
  margin: 0;
  border-radius: 12px;
  overflow: hidden;
}
.sd-image-texte-transparent-img img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  vertical-align: middle;
}
.sd-image-texte-transparent-title {
  font-family: var(--sd-font-heading);
  font-size: clamp(1.5rem, 4vw, 2rem);
  font-weight: 700;
  line-height: 1.3;
  color: var(--sd-text);
  margin: 0 0 1.25rem;
  letter-spacing: -0.01em;
}
.sd-image-texte-transparent-p {
  font-size: 1.125rem;
  line-height: 1.7;
  color: var(--sd-text);
  margin: 0 0 1rem;
}
.sd-image-texte-transparent-p:last-child {
  margin-bottom: 0;
}
@media (min-width: 768px) {
  .sd-image-texte-transparent-columns {
    flex-wrap: nowrap;
    align-items: flex-start;
  }
  .sd-image-texte-transparent-col-image {
    flex: 0 0 42%;
  }
  .sd-image-texte-transparent-col-content {
    flex: 1 1 58%;
  }
}
@media (min-width: 1025px) {
  .sd-image-texte-transparent-columns {
    gap: 2.5rem;
  }
}

/* Citation */
.sd-pattern-quote .sd-blockquote {
  margin: 0;
  padding: 0 0 0 1.25rem;
  border: none;
  border-left: 4px solid var(--sd-primary);
}
.sd-pattern-quote .sd-quote-text {
  font-family: var(--sd-font-heading);
  font-size: 1.25rem;
  line-height: 1.5;
  color: var(--sd-text);
  margin: 0 0 0.5rem;
}
.sd-pattern-quote .sd-quote-cite {
  font-size: 0.95rem;
  color: var(--sd-text-light);
  font-style: normal;
}

/* Chiffres / Réassurance */
.sd-pattern-stats .sd-stats-columns {
  gap: 1.5rem;
  margin-top: 1.5rem;
}
.sd-pattern-stats .sd-stat-item {
  text-align: center;
  padding: 1rem 0;
  border-bottom: 1px solid var(--sd-border);
}
.sd-pattern-stats .sd-stat-item:last-child {
  border-bottom: none;
}
.sd-pattern-stats .sd-stat-value {
  font-family: var(--sd-font-heading);
  font-size: 1.75rem;
  font-weight: 600;
  color: var(--sd-primary);
  margin: 0 0 0.25rem;
}
.sd-pattern-stats .sd-stat-label {
  font-size: 0.95rem;
  color: var(--sd-text-light);
  margin: 0;
}
@media (min-width: 640px) {
  .sd-pattern-stats .sd-stats-columns {
    flex-wrap: nowrap;
  }
  .sd-pattern-stats .sd-stat-item {
    border-bottom: none;
    border-right: 1px solid var(--sd-border);
  }
  .sd-pattern-stats .sd-stat-item:last-child {
    border-right: none;
  }
}

/* CTA bande */
.sd-pattern-cta-bande .sd-section-title {
  margin-top: 0;
}

/* Séparateur */
.sd-sep-line {
  border: none;
  height: 0;
  border-top: 2px solid var(--sd-primary);
  margin: 0;
  opacity: 0.6;
  max-width: 4rem;
}

/* Liste accroche */
.sd-pattern-list-accroche .sd-list-bullets {
  list-style: none;
  margin: 0.75rem 0 0;
  padding: 0;
}
.sd-pattern-list-accroche .sd-list-bullets li {
  position: relative;
  padding-left: 1.5rem;
  margin-bottom: 0.75rem;
}
.sd-pattern-list-accroche .sd-list-bullets li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 0.5rem;
  height: 2px;
  background: var(--sd-primary);
  border-radius: 1px;
}
.sd-pattern-list-accroche .sd-list-bullets li:last-child {
  margin-bottom: 0;
}

/* Image pleine */
.sd-pattern-image-pleine .sd-image-pleine {
  margin: 0;
}
.sd-pattern-image-pleine .sd-image-pleine img {
  width: 100%;
  height: auto;
  border-radius: var(--sd-radius);
  display: block;
}
.sd-pattern-image-pleine .wp-element-caption {
  font-size: 0.9rem;
  color: var(--sd-text-light);
  margin-top: 0.5rem;
  text-align: center;
}

/* ========== Block patterns (alignement avec palette) ========== */
.sd-pattern-hero .sd-hero-quote,
.sd-block-hero .wp-block-quote {
  border-left-color: var(--sd-primary);
  color: var(--sd-text);
}
.sd-hero-citation {
  font-size: 1.5rem;
  font-family: var(--sd-font-heading);
}
.sd-hero-sub {
  color: var(--sd-text-light);
}
.sd-hero-buttons {
  margin-top: 1.5rem;
}

/* ========== Gutenberg block alignment ========== */
.wp-block-group.alignfull {
  max-width: none;
}
.has-accent-cta-background-color {
  background: var(--sd-gradient-primary) !important;
  color: #fff;
}
.has-primary-teal-background-color {
  background-color: var(--sd-primary) !important;
}

/* ========== Maintenance ========== */
body.sd-maintenance {
  min-height: 100vh;
}
.sd-maintenance-shell {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 2rem 1rem;
  background: var(--sd-bg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  position: relative;
  overflow: hidden;
}
.sd-maintenance-overlay {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(
      circle at 20% 20%,
      rgba(230, 117, 91, 0.28),
      transparent 55%
    ),
    radial-gradient(
      circle at 80% 30%,
      rgba(255, 207, 185, 0.35),
      transparent 60%
    ),
    rgba(255, 255, 255, 0.72);
}
.sd-maintenance-card {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 42rem;
  border-radius: 16px;
  border: 1px solid rgba(21, 19, 16, 0.08);
  background: rgba(255, 255, 255, 0.86);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  padding: 2rem 1.5rem;
  box-shadow: 0 20px 60px rgba(21, 19, 16, 0.08);
}
.sd-maintenance-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--sd-font-heading);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sd-text);
  margin: 0 0 0.75rem;
}
.sd-maintenance-title {
  font-family: var(--sd-font-heading);
  font-size: clamp(1.8rem, 4vw, 2.4rem);
  line-height: 1.15;
  margin: 0 0 0.75rem;
  color: var(--sd-text);
}
.sd-maintenance-message {
  margin: 0 0 1.25rem;
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--sd-text-light);
}
.sd-maintenance-form {
  margin-top: 1rem;
}
.sd-maintenance-label {
  display: block;
  font-size: 0.95rem;
  color: var(--sd-text);
  margin: 0 0 0.35rem;
}
.sd-maintenance-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}
.sd-maintenance-input {
  flex: 1 1 14rem;
  height: 44px;
  border-radius: 12px;
  border: 1px solid rgba(21, 19, 16, 0.15);
  padding: 0 0.9rem;
  font-size: 1rem;
  outline: none;
  background: #fff;
}
.sd-maintenance-input:focus {
  border-color: var(--sd-accent);
  box-shadow: 0 0 0 3px rgba(230, 117, 91, 0.18);
}
.sd-maintenance-btn {
  flex: 0 0 auto;
  height: 44px;
  padding: 0 1rem;
  border: none;
  border-radius: 999px;
  cursor: pointer;
  font-family: var(--sd-font-heading);
  font-weight: 700;
  color: #fff;
  background: var(--sd-gradient-primary);
}
.sd-maintenance-btn:focus-visible {
  outline: var(--sd-focus-outline);
  outline-offset: var(--sd-focus-offset);
}
.sd-maintenance-error {
  margin: 0.75rem 0 0;
  color: #991b1b;
  font-size: 0.95rem;
}
.sd-maintenance-hint {
  margin: 1.25rem 0 0;
  font-size: 0.95rem;
  color: var(--sd-text-light);
}
