/**
 * Cabinet – Widget-specific styles
 */

/* ═══════════════════════════════════════════════════════════
   INFOS PRATIQUES – FOOTER CTA
   Reprend le traitement de l'encart « Nous recrutons
   actuellement » de la page Équipe (.cabinet-recruitment, plus
   bas dans ce fichier) : carte turquoise arrondie posée sur le
   fond de page, titre Lora marine, texte gris, bouton corail.
   Le bouton passe par .btn.btn-primary — la classe partagée,
   comme sur l'encart Équipe — d'où l'absence de règle dédiée.
   ═══════════════════════════════════════════════════════════ */
.cabinet-footer__cta {
  background: var(--color-bg);
  padding: var(--space-10) var(--site-padding);
}

.cabinet-footer__cta-inner {
  max-width: 1120px;
  margin: 0 auto;
  padding: var(--space-8);
  border-radius: var(--radius-lg, 16px);
  background: var(--color-teal-light, #e6f7f7);
  text-align: center;
}

.cabinet-footer__cta-title {
  margin: 0 0 var(--space-3);
  font-family: var(--font-family-heading);
  font-size: 1.4rem;
  color: var(--color-navy);
}

/* Le jaune se lisait sur le bandeau marine, pas sur le turquoise clair :
   la mise en relief de « demande de soin » tient à l'italique seul. */
.cabinet-footer__cta-title span {
  color: inherit;
  font-style: italic;
}

.cabinet-footer__cta-text {
  max-width: 640px;
  margin: 0 auto var(--space-6);
  color: var(--color-muted);
  line-height: 1.6;
}

@media (max-width: 600px) {
  .cabinet-footer__cta {
    padding: var(--space-8) var(--site-padding);
  }

  .cabinet-footer__cta-inner {
    padding: var(--space-6) var(--space-5);
  }
}

/* ═══════════════════════════════════════════════════════════
   HERO
   ═══════════════════════════════════════════════════════════ */
.cabinet-hero {
  background: linear-gradient(135deg, #ebf8f8 0%, #f0faf5 60%, #fff8f0 100%);
  padding: 70px 60px 60px;
  position: relative;
  overflow: hidden;
}
.cabinet-hero::before {
  content: "";
  position: absolute;
  top: -80px;
  right: -80px;
  width: 360px;
  height: 360px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(58, 191, 191, 0.12) 0%, transparent 70%);
  pointer-events: none;
}

.cabinet-hero__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: var(--space-10);
  max-width: var(--wide-width);
  margin-left: auto;
  margin-right: auto;
}

.cabinet-hero__tag {
  display: inline-block;
  background: rgba(58, 191, 191, 0.15);
  color: var(--color-teal-dark);
  font-size: 0.75rem;
  font-weight: var(--font-weight-extrabold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 5px 14px;
  border-radius: 20px;
  margin-bottom: 18px;
}

.cabinet-hero__title {
  font-family: var(--font-family-heading);
  font-size: 2.5rem;
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tight);
  color: var(--color-navy);
  margin-bottom: var(--space-5);
}
.cabinet-hero__title strong {
  color: var(--color-teal-dark);
  font-style: italic;
}

.cabinet-hero__subtitle {
  font-size: var(--font-size-base);
  color: var(--color-muted);
  line-height: 1.7;
  margin-bottom: var(--space-8);
  max-width: 46ch;
}

/* Wraps the one or two CTA buttons. */
.cabinet-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
}

.cabinet-hero__illustration {
  display: flex;
  justify-content: center;
  align-items: center;
}
.cabinet-hero__illustration-bg {
  width: 100%;
  max-width: 420px;
  aspect-ratio: 420 / 380;
  background: linear-gradient(135deg, rgba(58, 191, 191, 0.18) 0%, rgba(245, 200, 66, 0.12) 100%);
  border-radius: 60% 40% 50% 50% / 50% 60% 40% 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.cabinet-hero__illustration img {
  width: 85%;
  height: 85%;
  object-fit: cover;
  border-radius: 50%;
}

.cabinet-hero--centered .cabinet-hero__inner {
  grid-template-columns: 1fr;
}
.cabinet-hero--centered .cabinet-hero__text {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.cabinet-hero--centered .cabinet-hero__subtitle {
  margin-left: auto;
  margin-right: auto;
}
.cabinet-hero--centered .cabinet-hero__actions {
  justify-content: center;
}

@media (max-width: 900px) {
  .cabinet-hero__inner {
    grid-template-columns: 1fr;
  }
  .cabinet-hero__illustration {
    display: none;
  }
  .cabinet-hero__title {
    font-size: 1.9rem;
  }
  .cabinet-hero__text .btn {
    width: 100%;
  }
}
@media (max-width: 480px) {
  .cabinet-hero {
    padding: var(--space-12) var(--site-padding);
  }
  .cabinet-hero__title {
    font-size: 1.6rem;
  }
}

/* ═══════════════════════════════════════════════════════════
   SERVICES (Carousel)
   ═══════════════════════════════════════════════════════════ */

.cabinet-service-card {
  flex: 0 0 280px;
  background: var(--color-white);
  border-radius: var(--radius-lg);
  padding: 28px 24px;
  margin: 14px 12px;
  box-shadow: var(--shadow-card);
  border: 1.5px solid transparent;
  display: flex;
  flex-direction: column;
  gap: 12px;
  cursor: pointer;
  transition:
    border-color var(--transition-normal),
    transform var(--transition-normal),
    box-shadow var(--transition-normal);
}
.cabinet-service-card:hover {
  transform: translateY(-4px);
}

.cabinet-service-card__icon {
  width: 52px;
  height: 52px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.cabinet-service-card__icon svg,
.cabinet-service-card__icon .dashicons {
  width: 26px;
  height: 26px;
  font-size: 26px;
  color: var(--color-teal);
}

/* Thumbnail fallback (if service has a featured image) */
.cabinet-service-card__thumb {
  width: 52px;
  height: 52px;
  border-radius: 12px;
  overflow: hidden;
  background: var(--color-teal-light);
  flex-shrink: 0;
}
.cabinet-service-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cabinet-service-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.cabinet-service-card__body p {
  margin: 0;
}

.cabinet-service-card__title {
  font-size: 0.98rem;
  font-weight: var(--font-weight-extrabold);
  color: var(--color-navy);
  line-height: 1.3;
  margin: 0;
  margin-bottom: 12px;
}
.cabinet-service-card__excerpt {
  font-size: 0.84rem;
  color: var(--color-muted);
  line-height: 1.6;
}
.cabinet-service-card__space {
  flex: 1;
}
.cabinet-service-card__link {
  font-size: 0.83rem;
  font-weight: var(--font-weight-extrabold);
  color: var(--color-teal-dark);
  display: inline-flex;
  align-items: center;
  gap: 4px;
  text-decoration: none;
  transition:
    gap var(--transition-fast),
    color var(--transition-fast);
  margin-top: 12px;
}
.cabinet-service-card:hover .cabinet-service-card__link {
  gap: 8px;
}
.cabinet-services-splide .cabinet-service-card {
  flex: 1;
  height: 100%;
  margin: 14px 0;
}

/* Splide: make slides full height so cards stretch evenly */
.splide__slide {
  height: auto;
}
.splide__track {
  padding-bottom: 28px;
}

/* Splide: arrow buttons */
.splide__arrow {
  background: var(--color-white);
  border: 2px solid var(--color-teal-light);
  box-shadow: var(--shadow-md);
  border-radius: 100%;
  width: 42px;
  height: 42px;
  opacity: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 54px;
  position: absolute;
  margin: 0 -21px;
  top: calc(50% - 54px);
  z-index: 1;
}
.splide__arrow:hover {
  background: var(--color-teal);
  border-color: var(--color-teal);
  cursor: pointer;
}
.splide__arrow:disabled {
  display: none;
}
.splide__arrow svg {
  fill: var(--color-teal-dark);
  width: 16px;
  height: 16px;
}
.splide__arrow:hover svg {
  fill: var(--color-white);
}

.splide__arrow--prev {
  transform: rotate(180deg);
}

.splide__arrow--next {
  right: 0px;
}

/* Splide: pagination dots */
.splide__pagination {
  bottom: -1.5rem;
  gap: 7px;
}
.splide__pagination__page {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #cbd5e0;
  border: none;
  cursor: pointer;
  transition:
    background 0.2s,
    width 0.2s;
  padding: 0;
  transition:
    background var(--transition-fast),
    width var(--transition-normal);
}
.splide__pagination__page.is-active {
  background: var(--color-teal);
  transform: none;
  width: 24px;
  border-radius: 4px;
}

/* Extra bottom padding to make room for dots */
.cabinet-services-splide {
  padding-bottom: 2.5rem;
}

/* ═══════════════════════════════════════════════════════════
   VALUES
   ═══════════════════════════════════════════════════════════ */
.cabinet-values {
  background: linear-gradient(135deg, #ebf8f8 0%, #f5fdfd 100%);
}

.cabinet-values__title,
.cabinet-team__title {
  text-align: center;
  font-family: var(--font-family-heading);
  font-size: 1.85rem;
  font-weight: var(--font-weight-bold);
  color: var(--color-navy);
  margin-bottom: var(--space-2);
}

.cabinet-values__subtitle,
.cabinet-team__subtitle {
  text-align: center;
  font-size: var(--font-size-base);
  color: var(--color-muted);
  margin: auto;
  margin-bottom: var(--space-10);
  max-width: 60ch;
  line-height: var(--line-height-normal);
}

.cabinet-values__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-bottom: var(--space-8);
}

.cabinet-value-card {
  background: var(--color-white);
  border-radius: var(--radius-lg);
  padding: 32px 20px;
  text-align: center;
  box-shadow: var(--shadow-card);
  transition: transform var(--transition-normal);
}
.cabinet-value-card:hover {
  transform: translateY(-4px);
}

.cabinet-value-card__circle {
  width: 68px;
  height: 68px;
  border-radius: 50%;
  margin: 0 auto var(--space-4);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.cabinet-value-card__circle svg,
.cabinet-value-card__circle .dashicons {
  width: 32px;
  height: 32px;
  font-size: 32px;
  color: currentColor;
}

.cabinet-value-card__name {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-extrabold);
  color: var(--color-navy);
  margin: 0;
}

.cabinet-value-card__text {
  font-size: var(--font-size-sm);
  color: var(--color-muted);
  line-height: var(--line-height-normal);
  margin: var(--space-2) 0 0;
}

.cabinet-values__tagline {
  text-align: center;
  font-size: 1.1rem;
  font-weight: var(--font-weight-bold);
  color: var(--color-navy);
  margin-bottom: var(--space-6);
}
.cabinet-values__tagline em {
  color: var(--color-teal-dark);
  font-style: italic;
}

/* Legacy: formula text fallback */
.cabinet-values__formula {
  text-align: center;
  font-size: 1.1rem;
  font-weight: var(--font-weight-bold);
  color: var(--color-navy);
  margin-bottom: var(--space-6);
}

.cabinet-values__cta {
  text-align: center;
}

@media (max-width: 768px) {
  .cabinet-values__grid {
    grid-template-columns: 1fr;
  }
  .cabinet-values {
    padding-bottom: calc(var(--space-12) + 12px);
  }
}

/* ═══════════════════════════════════════════════════════════
   TEAM GRID
   ═══════════════════════════════════════════════════════════ */
.cabinet-team {
  background: var(--bg);
}

/* ── Carousel layout (homepage) ───────────────────────────── */
.cabinet-team__top {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-10);
  align-items: end;
  margin-bottom: var(--space-8);
}
.cabinet-team__left .cabinet-section-title {
  margin-bottom: var(--space-2);
}
.cabinet-team__left .cabinet-section-subtitle {
  margin-bottom: var(--space-6);
}

.cabinet-section-title {
  margin-bottom: var(--space-2);
}

.cabinet-section-subtitle {
  font-size: var(--font-size-base);
  color: var(--color-muted);
  margin-bottom: var(--space-10);
  line-height: var(--line-height-normal);
}

.cabinet-team__synergy {
  margin-bottom: var(--space-8);
}

.cabinet-team__synergy-text {
  margin: 0 auto var(--space-6);
  color: var(--color-muted);
  font-size: var(--font-size-base);
  line-height: var(--line-height-normal);
  text-align: center;
}

.cabinet-team__btns {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: var(--space-5);
}

.cabinet-see-all-link {
  font-size: 0.88rem;
  font-weight: var(--font-weight-extrabold);
  color: var(--color-teal-dark);
  display: inline-flex;
  align-items: center;
  gap: 4px;
  text-decoration: none;
  transition: gap var(--transition-fast);
}
.cabinet-see-all-link:hover {
  gap: 8px;
}

.cabinet-team-map {
  position: relative;
  isolation: isolate;
  max-width: 100%;
  /* overflow-x: hidden; */
}

.cabinet-team-logo-demo {
  display: grid;
  justify-items: center;
  gap: var(--space-3);
  margin: var(--space-8) auto 0;
}

.cabinet-team-logo-demo__svg {
  display: block;
  width: clamp(150px, 18vw, 220px);
  aspect-ratio: 43.228878 / 37.369198;
}

.cabinet-team-logo-demo figcaption {
  color: var(--color-text-muted);
  font-size: var(--font-size-sm);
  text-align: center;
}

.cabinet-team-map__figure {
  position: relative;
  max-width: 620px;
  margin: 0 auto var(--space-8);
}

.cabinet-team__bottom {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: clamp(24px, 4vw, 48px);
  align-items: start;
}
.cabinet-team__bottom > * {
  min-width: 0;
}

.cabinet-team-map__svg {
  position: relative;
  z-index: 1;
  width: 100%;
  height: auto;
  margin: 0 auto;
  overflow: visible;
}

.cabinet-team-map.has-selection .cabinet-team-map__svg {
  z-index: 5;
}

.cabinet-team-map__bubble {
  animation: cabinet-bubble-fall 2400ms cubic-bezier(0.2, 0.8, 0.22, 1) both;
  transition:
    fill-opacity var(--transition-normal),
    filter var(--transition-normal),
    transform var(--transition-normal);
  transform-box: fill-box;
  transform-origin: center;
}

/* Pétale sans service : dessinée pour ne pas trouer le logo, mais inerte. */
.cabinet-team-map__bubble.is-inactive {
  cursor: default;
  pointer-events: none;
  filter: grayscale(1);
  fill-opacity: 0.28;
}

body.cabinet-leaf-intro-pending .cabinet-team .cabinet-team-map__bubble,
body.cabinet-leaf-intro-pending .cabinet-team .cabinet-team-map__label {
  animation-play-state: paused;
}

.cabinet-team-map.is-settled .cabinet-team-map__bubble {
  animation: none;
}

.cabinet-team-map__bubble--green {
  animation-delay: 180ms;
}

.cabinet-team-map__bubble--purple {
  animation-delay: 460ms;
}

.cabinet-team-map__bubble--coral {
  animation-delay: 740ms;
}

.cabinet-team-map__bubble--orange {
  animation-delay: 1020ms;
}

@keyframes cabinet-bubble-fall {
  0% {
    opacity: 0;
    transform: translate(-12px, -115vh) rotate(-7deg) scale(0.94);
  }
  70% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    transform: translate(0, 0) rotate(0) scale(1);
  }
}

.cabinet-leaf-intro-overlay .cabinet-team-map__bubble {
  animation-duration: 1150ms;
  animation-name: cabinet-leaf-assemble;
  animation-play-state: running;
  animation-timing-function: cubic-bezier(0.18, 0.86, 0.22, 1);
}

.cabinet-leaf-intro-overlay .cabinet-team-map__bubble--green {
  --leaf-start-x: -86vw;
  --leaf-start-y: -24vh;
  --leaf-start-rotate: -18deg;
}

.cabinet-leaf-intro-overlay .cabinet-team-map__bubble--purple {
  --leaf-start-x: 18vw;
  --leaf-start-y: -88vh;
  --leaf-start-rotate: 16deg;
}

.cabinet-leaf-intro-overlay .cabinet-team-map__bubble--coral {
  --leaf-start-x: -28vw;
  --leaf-start-y: 88vh;
  --leaf-start-rotate: 14deg;
}

.cabinet-leaf-intro-overlay .cabinet-team-map__bubble--orange {
  --leaf-start-x: 88vw;
  --leaf-start-y: 28vh;
  --leaf-start-rotate: -15deg;
}

@keyframes cabinet-leaf-assemble {
  0% {
    opacity: 0;
    transform: translate(var(--leaf-start-x), var(--leaf-start-y)) rotate(var(--leaf-start-rotate)) scale(0.92);
  }
  48% {
    opacity: 0.84;
    transform: translate(calc(var(--leaf-start-x) * 0.12), calc(var(--leaf-start-y) * 0.12)) rotate(calc(var(--leaf-start-rotate) * -0.24)) scale(1.02);
  }
  76% {
    opacity: 1;
    transform: translate(8px, -6px) rotate(2deg) scale(1.01);
  }
  100% {
    opacity: 1;
    transform: translate(0, 0) rotate(0) scale(1);
  }
}

.cabinet-team-map__bubble.is-active {
  position: relative;
  z-index: 5;
}

.cabinet-team-map__bubble.is-linked {
  cursor: pointer;
}

.cabinet-team-map__bubble.is-active,
.cabinet-team-map__bubble.is-linked:hover,
.cabinet-team-map__bubble.is-linked:focus {
  fill-opacity: 0.94;
  filter: saturate(1.08) drop-shadow(0 14px 22px rgba(30, 74, 92, 0.14));
  outline: none;
  transform: scale(1.04);
}

.cabinet-team-map.has-selection .cabinet-team-map__bubble.is-linked:not(.is-active) {
  fill-opacity: 0.42;
}

.cabinet-team-map:not(.has-selection) .cabinet-team-map__bubble.is-linked:hover,
.cabinet-team-map:not(.has-selection) .cabinet-team-map__bubble.is-linked:focus {
  fill-opacity: 0.94;
  transform: scale(1.04);
}

.cabinet-team-map__label {
  animation: cabinet-bubble-label-in 760ms ease-out 2600ms both;
  position: absolute;
  left: var(--label-x);
  top: var(--label-y);
  z-index: 4;
  width: 180px;
  padding: 0;
  border: 0;
  color: var(--color-navy);
  font-family: var(--font-family-base);
  font-size: 1rem;
  font-weight: var(--font-weight-black);
  line-height: var(--line-height-tight);
  text-align: center;
  transform: translate(-50%, -50%);
  pointer-events: none;
  transition:
    color var(--transition-fast),
    opacity var(--transition-fast),
    transform var(--transition-fast);
}

.cabinet-team-map.has-selection .cabinet-team-map__label {
  animation: none;
  opacity: 1;
  visibility: visible;
  z-index: 3;
}

@keyframes cabinet-bubble-label-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* ── Animations d'entrée des bulles : désactivées ──────────
   Ni l'assemblage plein écran au chargement (cabinet-leaf-assemble), ni la
   chute des pétales à leur place (cabinet-bubble-fall), ni le fondu retardé
   des libellés (cabinet-bubble-label-in). Rien n'est supprimé : keyframes,
   délais par pétale et overlay restent définis ci-dessus — retirer ce bloc
   (et repasser CABINET_LEAF_INTRO_ENABLED / BUBBLE_FALL_ENABLED à true) suffit
   à tout réactiver.

   Le sélecteur de l'overlay est repris à l'identique : sans lui, sa règle
   `animation-name` plus spécifique continuerait de s'appliquer. */
.cabinet-team-map__bubble,
.cabinet-team-map__label,
.cabinet-leaf-intro-overlay .cabinet-team-map__bubble {
  animation: none;
}

.cabinet-team-map__label--green {
  color: #486c53;
}

.cabinet-team-map__label--purple {
  color: #735596;
}

.cabinet-team-map__label--coral {
  color: #bd5f4e;
}

.cabinet-team-map__label--orange {
  color: #b96c10;
}

.cabinet-team-map.has-selection .cabinet-team-map__label.is-active {
  animation: none;
  opacity: 1;
  visibility: visible;
  z-index: 7;
  transform: translate(-50%, -50%) scale(1.04);
}

.cabinet-team-service-panel {
  min-height: 210px;
  margin-top: 14px;
}

.cabinet-team-service-card {
  display: none;
  padding: 22px 24px;
  border: 1px solid rgba(58, 191, 191, 0.24);
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.82);
  /* box-shadow: var(--shadow-card); */
  cursor: pointer;
  will-change: transform;
  transition:
    transform var(--transition-normal),
    border-color var(--transition-normal);
}

.cabinet-team-service-card:hover {
  transform: translateY(-4px);
  border-color: var(--color-teal);
}

.cabinet-team-service-card.is-active {
  display: block;
}

.cabinet-team-service-card h3 {
  margin: 0 0 var(--space-2);
  color: var(--color-navy);
  font-family: var(--font-family-heading);
  font-size: 1.25rem;
}

.cabinet-team-service-card a {
  color: var(--color-teal-dark);
  font-size: 0.85rem;
  font-weight: var(--font-weight-extrabold);
}

/* Team Splide carousel */
.cabinet-team-splide {
  padding-bottom: 2.5rem;
}

.cabinet-team-splide .splide__slide {
  height: auto;
}
.cabinet-team-splide .cabinet-member-card {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Sélection d'un service : aucune carte n'est atténuée — un gris se lit comme
   « indisponible » alors que tous les thérapeutes restent consultables. Les
   thérapeutes du service remontent en tête du carrousel (navigation.js) et
   sont signalés par un liseré et un badge de service cerclé. */
.cabinet-team-splide.has-service-selection .splide__slide.is-service-active .cabinet-member-card {
  border-color: var(--color-teal);
  box-shadow: 0 4px 22px rgba(58, 191, 191, 0.2);
}

/* Member card in carousel */
.cabinet-member-card {
  width: 100%;
  min-height: 220px;
  background: var(--color-white);
  border-radius: var(--radius-lg);
  padding: 28px 20px;
  text-align: center;
  box-shadow: var(--shadow-card);
  border: 1.5px solid transparent;
  margin: 14px 0;
  display: flex;
  flex-direction: column;
  cursor: pointer;
  transition:
    transform var(--transition-normal),
    border-color var(--transition-normal),
    box-shadow var(--transition-normal);
}
.cabinet-member-card:hover {
  transform: translateY(-4px);
  border-color: var(--color-teal);
  cursor: pointer;
}

.cabinet-member-card__photo {
  width: 72px;
  height: 72px;
  margin: 0 32px var(--space-4);
}

.cabinet-member-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: center;
}
.cabinet-member-card__avatar {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid var(--color-white);
  box-shadow: 0 4px 12px rgba(58, 191, 191, 0.2);
}
.cabinet-member-card__avatar-placeholder {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--color-teal-light), #d0efef);
  display: flex;
  align-items: center;
  justify-content: center;
  border: 3px solid var(--color-white);
  box-shadow: 0 4px 12px rgba(58, 191, 191, 0.2);
}
.cabinet-member-card__avatar-placeholder .dashicons {
  font-size: 2rem;
  width: 2rem;
  height: 2rem;
  color: var(--color-teal);
}
.cabinet-member-card__name {
  font-size: 0.92rem;
  font-weight: var(--font-weight-extrabold);
  color: var(--color-navy);
  margin-bottom: 4px;
}
.cabinet-member-card__service {
  font-size: 0.76rem;
  color: var(--color-muted);
}

/* ── Service badges ───────────────────────────────────────── */
.cabinet-member-card__services {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
  margin-bottom: 4px;
}

.cabinet-service-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: var(--radius-pill);
  background: var(--color-teal-light, #e6f7f7);
  color: var(--color-teal-dark);
  font-size: 0.7rem;
  font-weight: var(--font-weight-extrabold);
  line-height: 1.4;
}

.cabinet-service-badge--more {
  background: var(--color-border, #e5e7eb);
  color: var(--color-muted);
}

/* Badge du service actif (pétale sélectionnée ou onglet de filtre) : c'est lui
   qui explique la mise en avant de la carte. */
.cabinet-service-badge.is-priority {
  /* Un aplati teal foncé serait sous les 4,5:1 avec du blanc à cette taille :
     on marque le badge par un cerclage plutôt que par un remplissage. */
  box-shadow: inset 0 0 0 1.5px var(--color-teal-dark);
}

/* `display: inline-flex` bat la règle UA de [hidden] : sans ceci, le compteur
   « +N » resterait visible (pastille vide) quand il n'y a rien à replier. */
.cabinet-service-badge[hidden] {
  display: none;
}

/* Au-delà de 2 badges, le reste est replié — et révélé au survol (desktop). */
.cabinet-service-badge.is-collapsed {
  display: none;
}

@media (hover: hover) {
  .cabinet-member-card:hover .cabinet-service-badge.is-collapsed,
  .cabinet-member-card:focus-within .cabinet-service-badge.is-collapsed {
    display: inline-flex;
  }
  .cabinet-member-card:hover .cabinet-service-badge--more,
  .cabinet-member-card:focus-within .cabinet-service-badge--more {
    display: none;
  }
}

/* ── Arrivée à venir (profil pas encore publié) ───────────── */
.cabinet-member-card__arrival {
  align-self: stretch;
  padding: 4px 10px;
  border-radius: var(--radius-pill);
  background: var(--color-butter, #fdf3d8);
  color: var(--color-navy);
  font-size: 0.7rem;
  font-weight: var(--font-weight-extrabold);
  text-align: center;
}

/* La carte grille espace ses blocs avec `gap` ; celle du carrousel non, d'où
   la marge ajoutée uniquement là. */
.cabinet-member-card:not(.cabinet-member-card--grid) .cabinet-member-card__arrival {
  margin-bottom: var(--space-3);
}

.cabinet-member-card__cta.is-disabled {
  opacity: 0.45;
  cursor: not-allowed;
  pointer-events: none;
}

.cabinet-member-card__more {
  display: inline-flex;
  margin-top: auto;
  color: var(--color-teal-dark);
  font-size: 0.78rem;
  font-weight: var(--font-weight-extrabold);
  transition:
    color var(--transition-fast),
    gap var(--transition-fast),
    transform var(--transition-fast);
}

.cabinet-member-card__more:hover,
.cabinet-member-card__more:focus {
  color: var(--color-navy);
  gap: 4px;
  outline: none;
  transform: translateX(2px);
}
.cabinet-member-card__cta {
  margin-top: var(--space-3);
  font-size: 0.78rem;
}

/* ── Grid layout (equipe page) ────────────────────────────── */
.cabinet-team__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: var(--space-6);
}
.cabinet-member-card--grid {
  flex: unset;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: var(--space-6);
  gap: var(--space-4);
  background: var(--color-white);
  position: relative;
}

/* Toute la carte est cliquable : le lien du bouton est étiré sur la carte. */
.cabinet-member-card--grid .cabinet-member-card__cta::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
}

.cabinet-member-card--grid:hover {
  border-color: var(--color-teal);
}

/* Les badges restent au-dessus du lien étiré pour rester lisibles dépliés,
   mais ne captent pas le pointeur : le survol se joue sur la carte entière et
   un clic sur un badge suit le lien du profil comme partout ailleurs. */
.cabinet-member-card--grid .cabinet-member-card__services {
  position: relative;
  z-index: 1;
  pointer-events: none;
}
.cabinet-member-card--grid .cabinet-member-card__photo {
  width: 100px;
  height: 100px;
}
.cabinet-member-card--grid .cabinet-member-card__avatar,
.cabinet-member-card--grid .cabinet-member-card__avatar-placeholder {
  width: 100px;
  height: 100px;
}
.cabinet-member-card--grid .cabinet-member-card__name {
  font-size: var(--font-size-base);
}
.cabinet-member-card--grid .cabinet-member-card__service {
  font-size: var(--font-size-sm);
}

/* ── Mise en avant du recrutement (bas de la page Équipe) ─── */
.cabinet-recruitment {
  margin-top: var(--space-10);
  padding: var(--space-8);
  border-radius: var(--radius-lg, 16px);
  background: var(--color-teal-light, #e6f7f7);
  text-align: center;
}

.cabinet-recruitment__title {
  font-family: "Lora", serif;
  font-size: 1.4rem;
  color: var(--color-navy);
  margin: 0 0 var(--space-3);
}

.cabinet-recruitment__text {
  max-width: 640px;
  margin: 0 auto var(--space-6);
  color: var(--color-muted);
  line-height: 1.6;
}

/* Legacy actions below grid */
.cabinet-team__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  margin-top: var(--space-10);
  justify-content: center;
}
.cabinet-team__see-all {
  text-align: center;
  margin-top: var(--space-6);
}

@media (max-width: 1080px) {
  .cabinet-team__synergy {
    margin-bottom: var(--space-6);
  }
}

@media (max-width: 900px) {
  .cabinet-team-map__figure {
    max-width: 420px;
  }

  .cabinet-team__bottom {
    grid-template-columns: 1fr;
  }

  .cabinet-team-map__label {
    position: absolute;
    width: min(142px, 38vw);
    font-size: 0.82rem;
    transform: translate(-50%, -50%);
    pointer-events: none;
  }

  .cabinet-team-map__label.is-active {
    transform: translate(-50%, -50%) scale(1.04);
  }

  .cabinet-team-service-panel {
    min-height: 0;
    margin-top: 0px;
  }

  .cabinet-team__top {
    grid-template-columns: 1fr;
  }
  .cabinet-team__nav {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cabinet-team-map__bubble,
  .cabinet-team-map__label,
  .cabinet-leaf-intro-overlay {
    animation: none;
    transition: none;
  }
}

/* ═══════════════════════════════════════════════════════════
   STATS BAR
   ═══════════════════════════════════════════════════════════ */
.cabinet-stats-bar {
  padding: var(--space-10) var(--site-padding);
}
.cabinet-stats-bar__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-8);
  flex-wrap: wrap;
  max-width: var(--wide-width);
  margin-left: auto;
  margin-right: auto;
}
.cabinet-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-1);
}
.cabinet-stat__number {
  font-family: var(--font-family-heading);
  font-size: var(--font-size-3xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-teal);
  line-height: 1;
}
.cabinet-stat__label {
  font-size: var(--font-size-sm);
  color: var(--color-muted);
  font-weight: var(--font-weight-semibold);
}
.cabinet-stat__divider {
  width: 1px;
  height: 48px;
  background: var(--color-border);
  opacity: 0.6;
}
@media (max-width: 600px) {
  .cabinet-stat__divider {
    display: none;
  }
}

/* ═══════════════════════════════════════════════════════════
   CARE REQUEST COLUMNS
   ═══════════════════════════════════════════════════════════ */
.cabinet-care-request__cols {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--space-6);
}
.cabinet-care-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: var(--space-8) var(--space-6);
  gap: var(--space-4);
  background: var(--color-white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  transition: transform var(--transition-normal);
}
.cabinet-care-col:hover {
  transform: translateY(-4px);
}
.cabinet-care-col__icon .dashicons {
  font-size: 2.5rem;
  width: 2.5rem;
  height: 2.5rem;
  color: var(--color-teal);
}
.cabinet-care-col__role {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-extrabold);
  color: var(--color-navy);
}
.cabinet-care-col__tagline {
  font-size: var(--font-size-sm);
  color: var(--color-muted);
  flex: 1;
}
.cabinet-care-col__cta {
  margin-top: auto;
  width: 100%;
  justify-content: center;
}

/* ═══════════════════════════════════════════════════════════
   INFOS PRATIQUES
   ═══════════════════════════════════════════════════════════ */
.cabinet-infos__location {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-10);
  align-items: start;
}
.cabinet-infos__details address {
  font-style: normal;
  margin-bottom: var(--space-4);
  line-height: var(--line-height-normal);
}
.cabinet-infos__details p {
  margin-bottom: var(--space-6);
  color: var(--color-muted);
}
.cabinet-directions {
  padding-left: var(--space-6);
  line-height: var(--line-height-normal);
}
.cabinet-directions li {
  margin-bottom: var(--space-3);
  color: var(--color-text);
}
@media (max-width: 768px) {
  .cabinet-infos__location {
    grid-template-columns: 1fr;
  }
}

/* ═══════════════════════════════════════════════════════════
   PRACTITIONER PROFILE
   ═══════════════════════════════════════════════════════════ */
.cabinet-profile {
  padding: var(--space-12) var(--site-padding) var(--space-20);
  max-width: var(--wide-width);
  margin: 0 auto;
}
.cabinet-profile__back-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--color-teal);
  text-decoration: none;
  font-weight: var(--font-weight-bold);
  font-size: var(--font-size-sm);
  margin-bottom: var(--space-8);
  transition: color var(--transition-fast);
}
.cabinet-profile__back-link:hover {
  color: var(--color-navy);
}
.cabinet-profile__header {
  display: flex;
  align-items: center;
  gap: var(--space-8);
  margin-bottom: var(--space-10);
}
.cabinet-profile__avatar img {
  width: 160px;
  height: 160px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  box-shadow: var(--shadow-card);
  border: 4px solid var(--color-white);
}
.cabinet-profile__name {
  font-family: var(--font-family-heading);
  font-size: var(--font-size-3xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-navy);
  margin: 0 0 var(--space-2);
}
.cabinet-profile__service {
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-semibold);
  color: var(--color-teal);
}
.cabinet-profile__body {
  line-height: var(--line-height-normal);
  max-width: 70ch;
  color: var(--color-text);
}
@media (max-width: 600px) {
  .cabinet-profile__header {
    flex-direction: column;
    align-items: flex-start;
  }
  .cabinet-profile__name {
    font-size: var(--font-size-2xl);
  }
}

/* ═══════════════════════════════════════════════════════════
   PAGE HERO – DEMANDE DE SOIN
   ═══════════════════════════════════════════════════════════ */
.cabinet-page-hero {
  background: linear-gradient(135deg, #EBF8F8 0%, #F0FAF5 60%, #FFF8F0 100%);
  padding: var(--space-16) var(--site-padding) var(--space-12);
  text-align: center;
  position: relative;
  overflow: hidden;
}
.cabinet-page-hero::before {
  content: '';
  position: absolute;
  top: -100px;
  right: -100px;
  width: 400px;
  height: 400px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(58,191,191,.10) 0%, transparent 70%);
  pointer-events: none;
}
.cabinet-page-hero__tag {
  display: inline-block;
  background: rgba(58,191,191,.15);
  color: var(--color-teal-dark);
  font-size: 0.75rem;
  font-weight: var(--font-weight-extrabold);
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 5px 14px;
  border-radius: var(--radius-full);
  margin-bottom: var(--space-4);
}
.cabinet-page-hero__title {
  font-family: var(--font-family-heading);
  font-size: 2.2rem;
  font-weight: var(--font-weight-bold);
  color: var(--color-navy);
  line-height: var(--line-height-snug);
  margin-bottom: var(--space-4);
}
.cabinet-page-hero__title em {
  color: var(--color-teal-dark);
  font-style: italic;
}
.cabinet-page-hero__subtitle {
  font-size: var(--font-size-base);
  color: var(--color-muted);
  max-width: 520px;
  margin: 0 auto;
  line-height: var(--line-height-normal);
}
@media (max-width: 720px) {
  .cabinet-page-hero__title { font-size: 1.65rem; }
}

/* ═══════════════════════════════════════════════════════════
   PROFILE CARD
   ═══════════════════════════════════════════════════════════ */
.cabinet-profile-card {
  background: var(--color-white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
  padding: 24px 24px 24px 20px;
  margin: 18px;
  display: flex;
  align-items: flex-start;
  gap: 18px;
  border: 2.5px solid transparent;
  position: relative;
  overflow: hidden;
  cursor: pointer;
  height: 100%;
  box-sizing: border-box;
  transition:
    border-color var(--transition-normal),
    box-shadow var(--transition-normal),
    transform var(--transition-fast);
}
.cabinet-profile-card:hover {
  box-shadow: 0 8px 32px rgba(30,74,92,.13);
  transform: translateY(-2px);
}

/* Left accent bar */
.cabinet-profile-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 4px; height: 100%;
  border-radius: 4px 0 0 4px;
  opacity: 0;
  transition: opacity var(--transition-normal);
}
.cabinet-profile-card[data-color="teal"]::before   { background: var(--color-teal); }
.cabinet-profile-card[data-color="coral"]::before  { background: var(--color-coral); }
.cabinet-profile-card[data-color="navy"]::before   { background: var(--color-navy); }
.cabinet-profile-card[data-color="yellow"]::before { background: var(--color-yellow); }

/* ── Selected state ── */
.cabinet-profile-card.is-selected {
  box-shadow: 0 6px 28px rgba(58,191,191,.20);
}
.cabinet-profile-card.is-selected::before { opacity: 1; }

.cabinet-profile-card[data-color="teal"].is-selected   { border-color: var(--color-teal);   box-shadow: 0 6px 28px rgba(58,191,191,.20); }
.cabinet-profile-card[data-color="coral"].is-selected  { border-color: var(--color-coral);  box-shadow: 0 6px 28px rgba(240,130,106,.20); }
.cabinet-profile-card[data-color="navy"].is-selected   { border-color: var(--color-navy);   box-shadow: 0 6px 28px rgba(30,74,92,.20); }
.cabinet-profile-card[data-color="yellow"].is-selected { border-color: var(--color-yellow); box-shadow: 0 6px 28px rgba(245,200,66,.20); }

/* ── Radio button (top-right) ── */
.cabinet-profile-card__radio {
  position: absolute;
  top: 18px; right: 18px;
  width: 20px; height: 20px;
  border-radius: 50%;
  border: 2px solid #C8D8DF;
  background: var(--color-white);
  flex-shrink: 0;
  transition: border-color var(--transition-fast);
}
.cabinet-profile-card__radio::after {
  content: '';
  display: block;
  width: 10px; height: 10px;
  border-radius: 50%;
  background: transparent;
  margin: auto;
  position: absolute;
  inset: 0;
  transition: background var(--transition-fast);
}
.cabinet-profile-card[data-color="teal"].is-selected   .cabinet-profile-card__radio { border-color: var(--color-teal); }
.cabinet-profile-card[data-color="teal"].is-selected   .cabinet-profile-card__radio::after { background: var(--color-teal); }
.cabinet-profile-card[data-color="coral"].is-selected  .cabinet-profile-card__radio { border-color: var(--color-coral); }
.cabinet-profile-card[data-color="coral"].is-selected  .cabinet-profile-card__radio::after { background: var(--color-coral); }
.cabinet-profile-card[data-color="navy"].is-selected   .cabinet-profile-card__radio { border-color: var(--color-navy); }
.cabinet-profile-card[data-color="navy"].is-selected   .cabinet-profile-card__radio::after { background: var(--color-navy); }
.cabinet-profile-card[data-color="yellow"].is-selected .cabinet-profile-card__radio { border-color: #B89300; }
.cabinet-profile-card[data-color="yellow"].is-selected .cabinet-profile-card__radio::after { background: #B89300; }

/* ── Icon wrap ── */
.cabinet-profile-card__icon-wrap {
  width: 58px; height: 58px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: transform var(--transition-fast);
}
.cabinet-profile-card:hover .cabinet-profile-card__icon-wrap { transform: scale(1.05); }
.cabinet-profile-card__icon-wrap svg { width: 28px; height: 28px; }

.cabinet-profile-card[data-color="teal"]   .cabinet-profile-card__icon-wrap { background: linear-gradient(135deg, #E6F7F7, #C8EDED); color: var(--color-teal-dark); }
.cabinet-profile-card[data-color="coral"]  .cabinet-profile-card__icon-wrap { background: linear-gradient(135deg, #FFF0ED, #F9D0C4); color: var(--color-coral-dark); }
.cabinet-profile-card[data-color="navy"]   .cabinet-profile-card__icon-wrap { background: linear-gradient(135deg, #E0EEF4, #BDD4DF); color: var(--color-navy); }
.cabinet-profile-card[data-color="yellow"] .cabinet-profile-card__icon-wrap { background: linear-gradient(135deg, #FEF8E0, #FAEAB8); color: #B89300; }

/* ── Content ── */
.cabinet-profile-card__content {
  flex: 1;
  padding-right: 24px; /* avoid overlap with radio */
}
.cabinet-profile-card__label {
  font-size: 0.68rem;
  font-weight: var(--font-weight-extrabold);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--color-muted);
  margin-bottom: 4px;
}
.cabinet-profile-card__title {
  font-size: 1.05rem;
  font-weight: var(--font-weight-extrabold);
  color: var(--color-navy);
  margin-bottom: 5px;
}
.cabinet-profile-card__subtitle {
  font-size: 0.85rem;
  color: var(--color-muted);
  line-height: var(--line-height-normal);
}

/* ═══════════════════════════════════════════════════════════
   ENCART CTA — cabinet/cta-panel
   Shared light two-action panel (/nos-valeurs, /nos-services).
   Lives here rather than in a page stylesheet so the block can be
   dropped on any page.
   ═══════════════════════════════════════════════════════════ */
.cabinet-cta-panel {
  /* Full-bleed band: opt out of the editor flow gap
     (:where(.is-layout-constrained) > * { margin-block-start: 1.2rem }),
     which would otherwise show the page background between this section and
     the one above it. .cabinet-section does the same in global.css. */
  margin-block-start: 0;
  padding: 60px var(--space-8) 70px;
  background: var(--color-white);
}

.cabinet-cta-panel__box {
  max-width: 1060px;
  margin: 0 auto;
  padding: 42px var(--space-8);
  border-radius: var(--radius-xl);
  text-align: center;
  background: linear-gradient(135deg, #ebf8f8 0%, #f0faf5 60%, #fff8f0 100%);
  box-shadow: var(--shadow-card);
}

.cabinet-cta-panel__title {
  margin: 0 0 var(--space-3);
  font-family: var(--font-family-heading);
  font-size: 1.6rem;
  font-weight: var(--font-weight-bold);
  color: var(--color-navy);
}

.cabinet-cta-panel__text {
  max-width: 520px;
  margin: 0 auto var(--space-6);
  font-size: 0.96rem;
  line-height: 1.7;
  color: var(--color-muted);
}

.cabinet-cta-panel__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-4);
}

@media (max-width: 540px) {
  .cabinet-cta-panel {
    padding: 46px var(--space-5) 54px;
  }
  .cabinet-cta-panel__actions {
    flex-direction: column;
    align-items: stretch;
  }
}

/* ═══════════════════════════════════════════════════════════
   SCROLL REVEAL — src/js/reveal.js
   The hidden state is only applied once the script has flagged the
   document — without JS the sections stay visible.
   ═══════════════════════════════════════════════════════════ */
.cabinet-anim .cabinet-fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition:
    opacity 0.6s ease,
    transform 0.6s ease;
}
.cabinet-anim .cabinet-fade-up.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .cabinet-anim .cabinet-fade-up {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
