@charset "UTF-8";
.center {
  text-align: center;
}

.uppercase {
  text-transform: uppercase;
}

a {
  text-decoration: none;
  color: inherit;
}

.white {
  color: white;
}

.underline {
  text-decoration: underline;
}

.nowrap {
  white-space: nowrap;
}
@media (max-width: 767px) {
  .nowrap {
    white-space: inherit;
  }
}

p {
  margin-block-start: 0;
  margin-block-end: 0;
}

h1, h2, h3 {
  margin-block-start: 0;
  margin-block-end: 0;
  font-weight: inherit;
}

.vce {
  margin-bottom: 0;
}

strong {
  font-weight: 700;
}

.semibold {
  font-weight: 600;
}

em {
  font-style: normal;
  white-space: nowrap;
}
@media (max-width: 768px) {
  em {
    white-space: initial;
  }
}

ul {
  margin-block-start: 0;
  margin-block-end: 0;
  padding-inline-start: 0;
}

.test-bloc {
  display: flex;
  align-items: center;
  justify-content: center;
}

.full-width .vce.vce-single-image-wrapper {
  width: 100%;
  height: auto;
}
.full-width .vce.vce-single-image-wrapper figure {
  width: 100%;
  height: auto;
}
.full-width .vce.vce-single-image-wrapper figure .vce-single-image-figure-inner {
  width: 100% !important;
  height: auto;
}

/* ============================================================
   HEADER — Clinique Dentaire Geneviève Lafrance
   Fichier : sass/header.scss
   Tous les px convertis en vw pour responsive fluide
   ============================================================ */
/* --- Variables locales --- */
/* ============================================================
   HEADER PRINCIPAL
   ============================================================ */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background: #ffffff;
  padding: 0 7.3vw;
  min-height: 7.5vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
  transition: box-shadow 0.4s ease, height 0.4s ease, background 0.4s ease;
}
.site-header.scrolled {
  min-height: 3.1vw;
  box-shadow: 0 2px 20px rgba(0, 0, 0, 0.08);
  background: rgba(255, 255, 255, 0.97);
  backdrop-filter: blur(8px);
}

/* ============================================================
   LOGO (custom logo WordPress)
   ============================================================ */
.custom-logo-link,
.site-logo {
  display: flex;
  align-items: center;
  text-decoration: none;
  flex-shrink: 0;
  opacity: 0;
  transform: translateX(-20px);
  animation: fadeInLeft 0.6s ease 0.1s forwards;
}
.custom-logo-link img.custom-logo,
.site-logo img.custom-logo {
  height: 2.6vw;
  min-height: 36px;
  width: auto;
  display: block;
  transition: all 0.3s ease;
}
.custom-logo-link:hover img,
.site-logo:hover img {
  opacity: 0.85;
}

/* ============================================================
   NAVIGATION WORDPRESS — #primary-menu
   ============================================================ */
.site-header nav > div {
  display: flex;
  align-items: center;
}

#primary-menu {
  display: flex;
  align-items: center;
  gap: 1.15vw;
  list-style: none;
  margin: 0;
  padding: 0;
  /* ============================================================
     BOUTONS DANS LE MENU
     ============================================================ */
}
#primary-menu > li {
  position: relative;
  opacity: 0;
  animation: fadeInDown 0.5s ease forwards;
  /* ---- Sous-menu (Services) ---- */
}
#primary-menu > li:nth-child(1) {
  animation-delay: 0.15s;
}
#primary-menu > li:nth-child(2) {
  animation-delay: 0.22s;
}
#primary-menu > li:nth-child(3) {
  animation-delay: 0.29s;
}
#primary-menu > li:nth-child(4) {
  animation-delay: 0.36s;
}
#primary-menu > li:nth-child(5) {
  animation-delay: 0.43s;
}
#primary-menu > li:nth-child(6) {
  animation-delay: 0.5s;
}
#primary-menu > li:nth-child(7) {
  animation-delay: 0.57s;
}
#primary-menu > li:nth-child(8) {
  animation-delay: 0.64s;
}
#primary-menu > li:nth-child(9) {
  animation-delay: 0.71s;
}
#primary-menu > li > a {
  font-family: "SuperBlue", serif;
  font-weight: 400;
  color: #383839;
  text-decoration: none;
  position: relative;
  padding-bottom: 3px;
  white-space: nowrap;
  transition: color 0.3s ease;
  display: inline-block;
}
#primary-menu > li > a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 1.5px;
  background: #C58E80;
  transition: width 0.3s ease;
}
#primary-menu > li > a:hover {
  color: #C58E80;
}
#primary-menu > li > a:hover::after {
  width: 100%;
}
#primary-menu > li.current-menu-item > a, #primary-menu > li.current-menu-ancestor > a {
  color: #C58E80;
  text-decoration: underline;
  text-underline-offset: 5px;
  text-decoration-color: #C58E80;
}
#primary-menu > li.menu-item-has-children > a {
  padding-right: 18px;
}
#primary-menu > li.menu-item-has-children > a::before {
  content: "▾";
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  color: #C58E80;
  transition: transform 0.3s ease;
}
#primary-menu > li.menu-item-has-children:hover > a::before {
  transform: translateY(-50%) rotate(180deg);
}
#primary-menu > li.menu-item-has-children > .sub-menu {
  display: block;
  visibility: hidden;
  opacity: 0;
  position: absolute;
  top: calc(100% + 12px);
  left: 0;
  min-width: 280px;
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
  padding: 8px 0;
  list-style: none;
  margin: 0;
  transform: translateY(-8px);
  transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s;
  z-index: 999;
}
#primary-menu > li.menu-item-has-children > .sub-menu::before {
  content: "";
  position: absolute;
  top: -6px;
  left: 24px;
  width: 12px;
  height: 12px;
  background: #ffffff;
  transform: rotate(45deg);
  box-shadow: -2px -2px 5px rgba(0, 0, 0, 0.05);
}
#primary-menu > li.menu-item-has-children > .sub-menu li {
  opacity: 1;
  animation: none;
}
#primary-menu > li.menu-item-has-children > .sub-menu li a {
  display: block;
  padding: 10px 20px;
  font-family: "Manrope", sans-serif;
  font-weight: 500;
  color: #383839;
  text-decoration: none;
  transition: all 0.3s ease;
  border-left: 3px solid transparent;
}
#primary-menu > li.menu-item-has-children > .sub-menu li a:hover {
  color: #C58E80;
  background: #F3F1ED;
  border-left-color: #C58E80;
  padding-left: 24px;
}
#primary-menu > li.menu-item-has-children > .sub-menu li.current-menu-item a {
  color: #C58E80;
  border-left-color: #C58E80;
  padding-left: 24px;
  background: #F3F1ED;
}
#primary-menu > li.menu-item-has-children:hover > .sub-menu {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
}
#primary-menu li.btn-phone {
  opacity: 1;
  animation: fadeInRight 0.6s ease 0.5s forwards;
}
#primary-menu li.btn-phone > a {
  display: inline-flex;
  align-items: center;
  padding: 0.47vw 0.94vw;
  background: #C58E80;
  color: #ffffff !important;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  border-radius: 50px;
  text-decoration: none !important;
  white-space: nowrap;
  transition: all 0.3s ease;
}
#primary-menu li.btn-phone > a::after {
  display: none;
}
#primary-menu li.btn-phone > a::before {
  display: none;
}
#primary-menu li.btn-phone > a:hover {
  background: #b87564;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(197, 142, 128, 0.35);
  color: #ffffff !important;
}
#primary-menu li.btn-coin-enfant {
  opacity: 1;
  animation: fadeInRight 0.6s ease 0.58s forwards;
}
#primary-menu li.btn-coin-enfant > a {
  display: inline-flex;
  align-items: center;
  padding: 0.47vw 1vw;
  background: #242424;
  color: #ffffff !important;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  border-radius: 50px;
  text-decoration: none !important;
  white-space: nowrap;
  transition: all 0.3s ease;
}
#primary-menu li.btn-coin-enfant > a::after {
  display: none;
}
#primary-menu li.btn-coin-enfant > a::before {
  display: none;
}
#primary-menu li.btn-coin-enfant > a:hover {
  background: #4a4a4a;
  transform: translateY(-1px);
  color: #ffffff !important;
}

/* ============================================================
   HAMBURGER — MOBILE
   ============================================================ */
.hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  padding: 4px;
  background: none;
  border: none;
}
.hamburger span {
  display: block;
  width: 24px;
  height: 2px;
  background: #242424;
  border-radius: 2px;
  transition: all 0.3s ease;
}
.hamburger.open span:nth-child(1) {
  transform: rotate(45deg) translate(5px, 5px);
}
.hamburger.open span:nth-child(2) {
  opacity: 0;
}
.hamburger.open span:nth-child(3) {
  transform: rotate(-45deg) translate(5px, -5px);
}

/* ============================================================
   HERO SIDEBAR — Fixed
   ============================================================ */
.hero-sidebar {
  position: fixed;
  right: 0;
  top: 30%;
  transform: translateY(-50%);
  z-index: 999;
  display: flex;
  flex-direction: column;
  gap: 2px;
  opacity: 0;
  animation: fadeInRight 0.7s ease 0.9s forwards;
}

.hero-sidebar-item {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 7.3vw;
  height: 7.3vw;
  min-width: 60px;
  min-height: 60px;
  background: #BF9F94;
  color: #ffffff;
  text-decoration: none;
  transition: all 0.3s ease;
  backdrop-filter: blur(4px);
}
.hero-sidebar-item svg {
  width: 3.6vw;
  height: 3.4vw;
  min-width: 28px;
  min-height: 26px;
}
.hero-sidebar-item:hover {
  background: #625756;
  width: 7.8vw;
}

/* ============================================================
   ANIMATIONS KEYFRAMES
   ============================================================ */
@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translateX(-30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translateX(30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translateY(-15px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes heroZoom {
  from {
    transform: scale(1.05);
  }
  to {
    transform: scale(1);
  }
}
/* ============================================================
   Current page — toutes les classes WordPress
   ============================================================ */
#primary-menu > li.current-menu-item > a,
#primary-menu > li.current-menu-ancestor > a,
#primary-menu > li.current-page-ancestor > a,
#primary-menu > li.current_page_item > a,
#primary-menu > li.current_page_ancestor > a {
  color: #C58E80;
  text-decoration: underline;
  text-underline-offset: 5px;
  text-decoration-color: #C58E80;
}

/* ============================================================
   HERO SECTION — Clinique Dentaire Geneviève Lafrance
   Fichier : sass/hero.scss
   Classes réutilisables — pas d'IDs Visual Composer
   Utilisation dans VC : Extra class name → "cd-hero"
   ============================================================ */
/* ============================================================
   ROW HERO PRINCIPALE
   Dans VC : ajoutez "cd-hero" dans Extra class name de la Row
   ============================================================ */
.cd-hero {
  margin-top: 145px; /* Compense le header fixed */
  min-height: calc(100vh - 145px);
  position: relative;
  display: flex;
  align-items: center;
  /* Zoom sur l'image de fond au chargement */
  /* Contenu au-dessus de l'overlay */
}
.cd-hero .vce-asset-background-simple-item {
  transform: scale(1.05);
  animation: cdHeroZoom 8s ease forwards;
}
.cd-hero .vce-row-content {
  position: relative;
  z-index: 2;
  width: 100%;
}

/* ============================================================
   COLONNE CONTENU HERO
   Dans VC : ajoutez "cd-hero-col" dans Extra class name de la Colonne
   ============================================================ */
.cd-hero-col .vce-col-inner,
.cd-hero-col .vce-col-content {
  padding: 150px 70px !important;
  max-width: 840px;
  text-align: left !important;
}
.cd-hero-col .vce-text-block,
.cd-hero-col .vce-text-block-wrapper {
  text-align: left !important;
}

/* ============================================================
   TITRE HERO
   Dans VC : classe sur le Text Block ou H1 → "hero-title"
   ============================================================ */
.hero-title {
  font-family: "SuperBlue", serif;
  font-weight: 400;
  color: #ffffff;
  line-height: 1;
  margin: 0 0 49px 0;
  padding: 0;
  text-align: left;
  max-width: 25vw;
  opacity: 0;
  transform: translateX(-30px);
  animation: cdFadeInLeft 0.8s ease 0.3s forwards;
}

/* ============================================================
   ADRESSE HERO
   Dans VC : Custom HTML avec class="hero-address"
   ============================================================ */
.hero-address {
  display: flex;
  align-items: center;
  gap: 10px;
  font-style: normal;
  color: rgba(255, 255, 255, 0.88);
  font-family: "Manrope", sans-serif;
  margin: 0;
  text-align: left;
  margin-bottom: 50px;
  opacity: 0;
  transform: translateX(-20px);
  animation: cdFadeInLeft 0.7s ease 0.6s forwards;
  /* Nettoyage balises parasites générées par VC Text Block */
}
.hero-address span {
  display: block;
  line-height: 1.33;
  max-width: 20vw;
}
.hero-address img {
  max-width: 4vw;
}
.hero-address > p {
  display: none;
}
.hero-address > br {
  display: none;
}

/* ============================================================
   VARIANTES DE FOND — pages intérieures
   Dans VC : ajoutez "cd-hero cd-hero-sm" pour une version plus petite
   ============================================================ */
/* Hero réduit pour pages intérieures (équipe, services, etc.) */
.cd-hero-sm {
  min-height: 340px;
}
.cd-hero-sm .cd-hero-col .vce-col-inner,
.cd-hero-sm .cd-hero-col .vce-col-content {
  padding: 60px 60px !important;
}
.cd-hero-sm .hero-title {
  margin-bottom: 0;
}

/* Overlay plus sombre pour pages intérieures */
.cd-hero-dark .vce-content-background-container::after {
  background: linear-gradient(to right, rgba(36, 36, 36, 0.75) 0%, rgba(36, 36, 36, 0.5) 60%, rgba(36, 36, 36, 0.3) 100%);
}

/* ============================================================
   ANIMATIONS KEYFRAMES
   ============================================================ */
@keyframes cdHeroZoom {
  from {
    transform: scale(1.05);
  }
  to {
    transform: scale(1);
  }
}
@keyframes cdFadeInLeft {
  from {
    opacity: 0;
    transform: translateX(-30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes cdFadeInRight {
  from {
    opacity: 0;
    transform: translateX(30px) translateY(-50%);
  }
  to {
    opacity: 1;
    transform: translateX(0) translateY(-50%);
  }
}
/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
  .cd-hero-col .vce-col-inner {
    padding: 345px 40px 40px !important;
  }
  .cd-hero-col .vce-col-content {
    padding: 0 !important;
  }
}
@media (max-width: 768px) {
  .cd-hero {
    background-color: #625756 !important;
    min-height: auto !important;
  }
  /* Cache l'image de fond */
  .cd-hero .vce-asset-background-simple-item {
    display: none !important;
  }
  /* Cache l'overlay — inutile sans image */
  .cd-hero .vce-content-background-container::after {
    display: none !important;
  }
  .cd-hero {
    min-height: 85vh;
  }
  .cd-hero .vce-content-background-container::after {
    background: rgba(36, 36, 36, 0.45);
  }
  .cd-hero-col .vce-col-inner {
    padding: 40px 24px !important;
    max-width: 100%;
  }
  .cd-hero-col .vce-col-content {
    padding: 0 !important;
  }
}
/* ============================================================
   COMPONENTS — Classes globales réutilisables
   Clinique Dentaire Geneviève Lafrance
   Tous les font-size supprimés — gérés par _typography.scss
   Tous les paddings en vw
   ============================================================ */
/* ============================================================
   1. VARIABLES GLOBALES
   ============================================================ */
:root {
  /* Couleurs */
  --cd-primary: #849994;
  --cd-primary-dark: #6d8480;
  --cd-primary-light: #e8efee;
  --cd-accent: #C58E80;
  --cd-accent-dark: #b07060;
  --cd-accent-light: #f5e8e4;
  --cd-brown: #625756;
  --cd-brown-dark: #4e4342;
  --cd-rose: #BF9F94;
  --cd-dark: #242424;
  --cd-text: #383839;
  --cd-text-light: #8896A6;
  --cd-bg: #FFFFFF;
  --cd-bg-alt: #F4F3EF;
  --cd-bg-warm: #F3F1ED;
  --cd-border: #e5e3df;
  /* Polices */
  --cd-font-heading: "SuperBlue", serif;
  --cd-font-body: "Manrope", sans-serif;
  /* Espacements */
  --cd-radius: 12px;
  --cd-radius-full: 50px;
  --cd-transition: all 0.3s ease;
}

/* ============================================================
   2. TYPOGRAPHIE GLOBALE
   font-size gérés par _typography.scss
   ============================================================ */
body {
  font-family: var(--cd-font-body);
  color: var(--cd-text);
  line-height: 1.38;
  -webkit-font-smoothing: antialiased;
}

/* Titres — font-size dans _typography.scss */
.cd-h1 {
  font-family: var(--cd-font-heading);
  font-weight: 400;
  line-height: 1.1;
  color: var(--cd-dark);
  margin: 0 0 1.25vw;
}

.cd-h2 {
  font-family: var(--cd-font-heading);
  font-weight: 400;
  line-height: 1.11;
  color: var(--cd-brown);
  margin: 0 0 0.8vw;
}

.cd-h3 {
  font-family: var(--cd-font-heading);
  font-weight: 400;
  line-height: 1.14;
  color: var(--cd-dark);
  margin: 0 0 0.6vw;
}

.cd-h4 {
  font-family: var(--cd-font-heading);
  font-weight: 400;
  line-height: 1.3;
  color: var(--cd-dark);
  margin: 0 0 0.4vw;
}

/* Titre de section centré */
.cd-section-title {
  font-family: var(--cd-font-heading);
  font-weight: 400;
  color: var(--cd-brown);
  text-align: center;
  line-height: 1.2;
  margin: 0 0 0.8vw;
}

/* Sous-titre de section centré */
.cd-section-subtitle {
  font-family: var(--cd-font-body);
  color: var(--cd-text);
  line-height: 1.7;
  text-align: center;
  max-width: 27vw;
  margin: 0 auto 2.9vw;
}

/* Texte courant */
.cd-text {
  font-family: var(--cd-font-body);
  color: var(--cd-text);
  line-height: 1.75;
}

.cd-text-sm {
  line-height: 1.75;
  color: var(--cd-text);
}

.cd-text-center {
  text-align: center;
}

.cd-text-left {
  text-align: left;
}

.cd-text-white {
  color: #ffffff;
}

.cd-text-primary {
  color: var(--cd-primary);
}

.cd-text-accent {
  color: var(--cd-accent);
}

.cd-text-brown {
  color: var(--cd-brown);
}

/* H2 global */
.cd-h2,
.cd-section-title,
h2.cd-title-service,
h2 {
  font-family: "SuperBlue", serif;
  font-weight: 400;
  color: #625756;
  line-height: 1.2;
}

/* ============================================================
   3. BOUTONS — Système complet
   font-size gérés par _typography.scss
   ============================================================ */
.cd-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4vw;
  padding: 0.7vw 1.9vw;
  font-family: "SuperBlue", serif;
  font-weight: 400;
  border-radius: var(--cd-radius-full);
  text-decoration: none !important;
  cursor: pointer;
  transition: var(--cd-transition);
  white-space: nowrap;
  line-height: 1.5;
  text-align: center;
  /* Tailles */
  /* --- Variantes --- */
}
@media (max-width: 768px) {
  .cd-btn {
    padding: 13px 20px;
    display: block;
    max-width: 200px;
    margin-left: auto;
    margin-right: auto;
  }
}
.cd-btn.cd-btn-sm {
  padding: 0.47vw 1.25vw;
}
.cd-btn.cd-btn-lg {
  padding: 0.83vw 2.5vw;
}
.cd-btn.cd-btn-full {
  width: 100%;
}
.cd-btn.cd-btn-primary {
  background: var(--cd-primary);
  color: #ffffff !important;
}
.cd-btn.cd-btn-primary:hover {
  background: var(--cd-primary-dark);
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(132, 153, 148, 0.35);
}
.cd-btn.cd-btn-accent {
  background: var(--cd-accent);
  color: #ffffff !important;
}
.cd-btn.cd-btn-accent:hover {
  background: var(--cd-accent-dark);
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(197, 142, 128, 0.35);
}
.cd-btn.cd-btn-brown {
  background: var(--cd-brown);
  color: #ffffff !important;
}
.cd-btn.cd-btn-brown:hover {
  background: var(--cd-brown-dark);
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(98, 87, 86, 0.3);
}
.cd-btn.cd-btn-rose {
  background: var(--cd-rose);
  color: #ffffff !important;
}
.cd-btn.cd-btn-rose:hover {
  background: var(--cd-brown-dark);
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(98, 87, 86, 0.3);
}
.cd-btn.cd-btn-dark {
  background: var(--cd-dark);
  color: #ffffff !important;
}
.cd-btn.cd-btn-dark:hover {
  background: #383839;
  transform: translateY(-2px);
}
.cd-btn.cd-btn-outline {
  background: transparent;
  border-color: var(--cd-primary);
  color: var(--cd-primary) !important;
}
.cd-btn.cd-btn-outline:hover {
  background: var(--cd-primary);
  color: #ffffff !important;
}
.cd-btn.cd-btn-outline-dark {
  background: transparent;
  border-color: var(--cd-dark);
  color: var(--cd-dark) !important;
}
.cd-btn.cd-btn-outline-dark:hover {
  background: var(--cd-dark);
  color: #ffffff !important;
  transform: translateY(-2px);
}
.cd-btn.cd-btn-white {
  background: #ffffff;
  color: var(--cd-primary) !important;
}
.cd-btn.cd-btn-white:hover {
  background: var(--cd-primary-light);
  transform: translateY(-2px);
}
.cd-btn.cd-btn-arrow::after {
  content: "→";
  transition: transform 0.2s ease;
}
.cd-btn.cd-btn-arrow:hover::after {
  transform: translateX(4px);
}

/* ============================================================
   4. SECTIONS — Fonds et espacements (en vw)
   ============================================================ */
.cd-section {
  padding: 4.2vw 3.1vw;
}

.cd-section-sm {
  padding: 2.9vw 3.1vw;
}

.cd-section-lg {
  padding: 5.2vw 3.1vw;
}

/* Fonds */
.cd-bg-white {
  background-color: var(--cd-bg);
}

.cd-bg-alt {
  background-color: var(--cd-bg-alt);
}

.cd-bg-warm {
  background-color: var(--cd-bg-warm);
}

.cd-bg-primary {
  background-color: var(--cd-primary);
}

.cd-bg-dark {
  background-color: var(--cd-dark);
}

/* ============================================================
   5. CARTES GÉNÉRIQUES (en vw)
   ============================================================ */
.cd-card {
  background: #ffffff;
  border-radius: var(--cd-radius);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.07);
  overflow: hidden;
  transition: var(--cd-transition);
}
.cd-card:hover {
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.12);
  transform: translateY(-6px);
}
.cd-card .cd-card-body {
  padding: 1.25vw 1.46vw 1.67vw;
}
.cd-card .cd-card-img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  object-position: center top;
  transition: transform 0.5s ease;
}
.cd-card:hover .cd-card-img {
  transform: scale(1.05);
}

/* ============================================================
   6. BANNIÈRE PAGE INTÉRIEURE (en vw)
   ============================================================ */
.cd-page-banner {
  margin-top: 7.5vw;
  min-height: 14.6vw;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 3.1vw;
  position: relative;
  background-size: cover;
  background-position: center;
  overflow: hidden;
}
.cd-page-banner::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(36, 36, 36, 0.5);
  z-index: 1;
}
.cd-page-banner .vce-row-content,
.cd-page-banner .cd-page-banner-content {
  position: relative;
  z-index: 2;
}
.cd-page-banner h1 {
  font-family: var(--cd-font-heading);
  font-weight: 400;
  color: #ffffff;
  margin: 0;
}

/* ============================================================
   7. ANIMATIONS AU SCROLL
   ============================================================ */
.cd-fade-in {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.cd-fade-in.cd-visible {
  opacity: 1;
  transform: translateY(0);
}

.cd-fade-left {
  opacity: 0;
  transform: translateX(-24px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.cd-fade-left.cd-visible {
  opacity: 1;
  transform: translateX(0);
}

.cd-fade-right {
  opacity: 0;
  transform: translateX(24px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.cd-fade-right.cd-visible {
  opacity: 1;
  transform: translateX(0);
}

.cd-delay-1 {
  transition-delay: 0.1s;
}

.cd-delay-2 {
  transition-delay: 0.25s;
}

.cd-delay-3 {
  transition-delay: 0.4s;
}

.cd-delay-4 {
  transition-delay: 0.55s;
}

/* ============================================================
   8. UTILITAIRES (en vw)
   ============================================================ */
/* Marges */
.cd-mt-0 {
  margin-top: 0 !important;
}

.cd-mt-2 {
  margin-top: 0.26vw !important;
}

.cd-mt-4 {
  margin-top: 0.52vw !important;
}

.cd-mt-6 {
  margin-top: 0.78vw !important;
}

.cd-mt-8 {
  margin-top: 1.04vw !important;
}

.cd-mt-12 {
  margin-top: 1.56vw !important;
}

.cd-mt-16 {
  margin-top: 2.08vw !important;
}

.cd-mb-0 {
  margin-bottom: 0 !important;
}

.cd-mb-2 {
  margin-bottom: 0.26vw !important;
}

.cd-mb-4 {
  margin-bottom: 0.52vw !important;
}

.cd-mb-6 {
  margin-bottom: 0.78vw !important;
}

.cd-mb-8 {
  margin-bottom: 1.04vw !important;
}

.cd-mb-12 {
  margin-bottom: 1.56vw !important;
}

/* Arrondis */
.cd-rounded {
  border-radius: var(--cd-radius) !important;
}

.cd-rounded-lg {
  border-radius: 20px !important;
}

.cd-rounded-full {
  border-radius: var(--cd-radius-full) !important;
}

/* Ombres */
.cd-shadow {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.07);
}

.cd-shadow-lg {
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.12);
}

/* Images */
.cd-img-cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cd-img-circle {
  border-radius: 50%;
  object-fit: cover;
}

/* Visibilité responsive */
.cd-hide-mobile {
  display: block;
}

.cd-show-mobile {
  display: none;
}

@media (max-width: 768px) {
  .cd-hide-mobile {
    display: none !important;
  }
  .cd-show-mobile {
    display: block !important;
  }
}
.pb-25 {
  padding-bottom: 1.3vw;
}
@media (max-width: 768px) {
  .pb-25 {
    padding-bottom: 2.5vw;
  }
}

.pb-45 {
  padding-bottom: 2.3vw;
}
@media (max-width: 768px) {
  .pb-45 {
    padding-bottom: 4.5vw;
  }
}

.pb-35 {
  padding-bottom: 1.82vw;
}
@media (max-width: 768px) {
  .pb-35 {
    padding-bottom: 3.5vw;
  }
}

.pt-100 {
  padding-top: 5.2vw;
}
@media (max-width: 768px) {
  .pt-100 {
    padding-top: 8vw;
  }
}

.pt-130 {
  padding-top: 6.77vw;
}
@media (max-width: 768px) {
  .pt-130 {
    padding-top: 8vw;
  }
}

.pb-50 {
  padding-bottom: 2.6vw;
}
@media (max-width: 768px) {
  .pb-50 {
    padding-bottom: 5.5vw;
  }
}

.plr-100 {
  padding-left: 10vw;
  padding-right: 10vw;
}

.pr-txt {
  padding-right: 25vw;
}
@media (max-width: 768px) {
  .pr-txt {
    padding-right: 0;
  }
}

/* ============================================================
   BLOG.SCSS — Clinique Dentaire Geneviève Lafrance
   Sections : 
   1. Section blog accueil (fond brun)
   2. Page blogue (grille + pagination)
   3. Page article single
   4. Hero blog
   ============================================================ */
/* ============================================================
   1. SECTION BLOG — ACCUEIL (fond brun #625756)
   Classe : .cd-blog-section
   ============================================================ */
.cd-blog-section {
  background: #625756;
  padding: 4.47vw 8.33vw;
}

.cd-blog-header {
  text-align: center;
  margin-bottom: 2.9vw;
}
.cd-blog-header h2 {
  font-family: var(--cd-font-heading);
  font-weight: 400;
  color: #ffffff;
  margin: 0 0 1.04vw;
}
@media (max-width: 768px) {
  .cd-blog-header h2 {
    margin-bottom: 2vw;
  }
}
.cd-blog-header p {
  font-family: var(--cd-font-body);
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.7;
  max-width: 32.29vw;
  margin: 0 auto;
}
@media (max-width: 768px) {
  .cd-blog-header p {
    max-width: 90%;
  }
}

/* Grille accueil */
.cd-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.86vw;
  max-width: 100%;
  margin: 0 auto;
}

/* Carte accueil — fond blanc, texte blanc sur fond brun */
.cd-blog-section .cd-blog-card {
  display: flex;
  flex-direction: column;
  background: transparent;
  min-width: 0; /* ← Empêche le débordement */
  width: 100%; /* ← Prend toute la colonne */
}
.cd-blog-section .cd-blog-card .cd-blog-card-img {
  display: block;
  border-radius: 1.04vw;
  overflow: hidden;
  margin-bottom: 1.04vw;
  aspect-ratio: 4/3;
  background: var(--cd-bg-warm);
}
@media (max-width: 768px) {
  .cd-blog-section .cd-blog-card .cd-blog-card-img {
    margin-bottom: 4vw;
  }
}
.cd-blog-section .cd-blog-card .cd-blog-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
  transition: transform 0.4s ease;
}
.cd-blog-section .cd-blog-card .cd-blog-card-img:hover img {
  transform: scale(1.05);
}
.cd-blog-section .cd-blog-card .cd-blog-card-no-img {
  width: 100%;
  aspect-ratio: 4/3;
  background: var(--cd-bg-warm);
  border-radius: 1.04vw;
  margin-bottom: 1.04vw;
}
@media (max-width: 768px) {
  .cd-blog-section .cd-blog-card .cd-blog-card-no-img {
    margin-bottom: 4vw;
    border-radius: 20px;
  }
}
.cd-blog-section .cd-blog-card .cd-blog-card-title {
  font-family: var(--cd-font-heading);
  font-weight: 400;
  color: #ffffff;
  margin: 0 0 0.62vw;
  line-height: 1.3;
  flex-grow: 0;
}
@media (max-width: 768px) {
  .cd-blog-section .cd-blog-card .cd-blog-card-title {
    margin-bottom: 2.5vw;
  }
}
.cd-blog-section .cd-blog-card .cd-blog-card-title a {
  color: #ffffff;
  text-decoration: none;
  transition: opacity 0.3s ease;
}
.cd-blog-section .cd-blog-card .cd-blog-card-title a:hover {
  opacity: 0.8;
}
.cd-blog-section .cd-blog-card .cd-blog-card-excerpt {
  font-family: var(--cd-font-body);
  color: rgba(255, 255, 255, 0.8);
  line-height: 1.7;
  margin-bottom: 0.83vw;
  flex-grow: 1;
}
.cd-blog-section .cd-blog-card .cd-blog-card-excerpt p {
  margin: 0;
}
@media (max-width: 768px) {
  .cd-blog-section .cd-blog-card .cd-blog-card-excerpt {
    margin-bottom: 1.5vw;
  }
}
.cd-blog-section .cd-blog-card .cd-blog-card-link {
  font-family: var(--cd-font-body);
  color: #ffffff;
  text-decoration: underline;
  text-underline-offset: 0.15vw;
  transition: opacity 0.3s ease;
  align-self: flex-start;
}
.cd-blog-section .cd-blog-card .cd-blog-card-link:hover {
  opacity: 0.7;
}

/* Responsive section accueil */
@media (max-width: 1024px) {
  .cd-blog-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 768px) {
  .cd-blog-section {
    padding: 10vw 5vw;
  }
  .cd-blog-grid {
    grid-template-columns: 1fr;
    max-width: 100%;
  }
}
/* ============================================================
   2. PAGE BLOGUE — Grille d'articles
   Classe : .cd-blog-grid-wrap
   ============================================================ */
.cd-content-section.blog-cd {
  padding: 1.56vw 21.66vw 2.86vw;
}

.grid-blog-item {
  padding: 0 8.33vw 7.29vw;
}

.cd-blog-grid-wrap {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2vw;
}

/* Carte page blogue — fond blanc */
.cd-blog-grid-wrap .cd-blog-card {
  display: flex;
  flex-direction: column;
  background: #ffffff;
  border-radius: 1vw;
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.cd-blog-grid-wrap .cd-blog-card:hover {
  transform: translateY(-0.3vw);
  box-shadow: 0 0.5vw 2vw rgba(0, 0, 0, 0.1);
}
.cd-blog-grid-wrap .cd-blog-card .cd-blog-card-img-wrap {
  display: block;
  overflow: hidden;
  aspect-ratio: 4/3;
  flex-shrink: 0;
}
.cd-blog-grid-wrap .cd-blog-card .cd-blog-card-img-wrap img.cd-blog-card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: transform 0.4s ease;
}
.cd-blog-grid-wrap .cd-blog-card .cd-blog-card-img-wrap:hover img {
  transform: scale(1.05);
}
.cd-blog-grid-wrap .cd-blog-card .cd-blog-card-no-img {
  width: 100%;
  aspect-ratio: 4/3;
  background: var(--cd-bg-warm);
  flex-shrink: 0;
}
.cd-blog-grid-wrap .cd-blog-card .cd-blog-card-body {
  padding: 1.5vw;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}
.cd-blog-grid-wrap .cd-blog-card .cd-blog-card-title {
  font-family: "SuperBlue", serif;
  font-size: clamp(0.9rem, 1.04vw, 1.25rem);
  font-weight: 400;
  color: var(--cd-brown);
  margin: 0 0 0.8vw;
  line-height: 1.45;
  flex-grow: 0;
}
.cd-blog-grid-wrap .cd-blog-card .cd-blog-card-title a {
  color: #BF9F94;
  text-decoration: none;
  transition: color 0.3s ease;
}
.cd-blog-grid-wrap .cd-blog-card .cd-blog-card-title a:hover {
  color: var(--cd-accent);
}
.cd-blog-grid-wrap .cd-blog-card .cd-blog-card-excerpt {
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.875rem, 0.9375vw, 1.125rem);
  color: var(--cd-text);
  line-height: 1.65;
  margin-bottom: 1vw;
  flex-grow: 1;
}
.cd-blog-grid-wrap .cd-blog-card .cd-blog-card-link {
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.875rem, 0.9375vw, 1.125rem);
  color: var(--cd-brown);
  text-decoration: underline;
  text-underline-offset: 0.2vw;
  transition: color 0.3s ease;
  margin-top: auto;
  align-self: flex-start;
}
.cd-blog-grid-wrap .cd-blog-card .cd-blog-card-link:hover {
  color: var(--cd-accent);
}

/* Pagination */
.cd-blog-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5vw;
  padding: 3vw 0 0;
}
.cd-blog-pagination .cd-page-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5vw;
  height: 2.5vw;
  min-width: 36px;
  min-height: 36px;
  border-radius: 50%;
  border: 0.1vw solid var(--cd-border);
  background: #ffffff;
  color: var(--cd-brown);
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.8rem, 0.83vw, 1rem);
  text-decoration: none;
  transition: all 0.3s ease;
}
.cd-blog-pagination .cd-page-btn:hover {
  background: var(--cd-brown);
  border-color: var(--cd-brown);
  color: #ffffff;
}
.cd-blog-pagination .cd-page-btn.cd-page-active {
  background: var(--cd-brown);
  border-color: var(--cd-brown);
  color: #ffffff;
  font-weight: 700;
}
.cd-blog-pagination .cd-page-prev,
.cd-blog-pagination .cd-page-next {
  border-color: var(--cd-brown);
  color: var(--cd-brown);
  font-size: clamp(0.9rem, 1vw, 1.2rem);
}

/* Responsive page blogue */
@media (max-width: 1024px) {
  .cd-blog-grid-wrap {
    grid-template-columns: repeat(2, 1fr);
    gap: 3vw;
  }
}
@media (max-width: 768px) {
  .cd-blog-grid-wrap {
    grid-template-columns: 1fr;
    gap: 6vw;
  }
  .cd-blog-grid-wrap .cd-blog-card .cd-blog-card-body {
    padding: 4vw;
  }
  .cd-blog-pagination {
    gap: 2vw;
    padding: 6vw 0 8vw;
  }
  .cd-blog-pagination .cd-page-btn {
    width: 8vw;
    height: 8vw;
  }
}
/* ============================================================
   3. PAGE ARTICLE SINGLE
   ============================================================ */
.cd-single-article {
  padding: 4vw 21.66vw 1.87vw;
}

.cd-article-header {
  text-align: center;
  margin-bottom: 2vw;
}

.cd-blog-main-title {
  font-family: "SuperBlue", serif;
  font-size: clamp(1.5rem, 2.35vw, 2.8125rem);
  font-weight: 400;
  color: #625756;
  text-align: center;
  margin: 0 0 1.5vw;
  /* Point décoratif en dessous */
}

.cd-blog-intro {
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.875rem, 0.9375vw, 1.125rem);
  color: var(--cd-text);
  line-height: 1.38;
  text-align: center;
  padding-bottom: 2.9vw;
}

.cd-article-title {
  font-family: "SuperBlue", serif;
  font-size: clamp(1.5rem, 2.34375vw, 2.8125rem);
  font-weight: 400;
  color: #625756;
  margin: 0 0 0.8vw;
  line-height: 1.11;
  text-align: center;
}
.cd-article-title::after {
  content: "•";
  display: block;
  color: #BF9F94;
  font-size: clamp(1rem, 1.25vw, 1.5rem);
  margin-top: 0.5vw;
  line-height: 1;
}

.cd-article-meta {
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.875rem, 0.9375vw, 1.125rem);
  color: #383839;
  margin-bottom: 1.87vw;
  text-align: center;
}

.cd-article-thumbnail {
  margin-bottom: 2vw;
  border-radius: 1vw;
  overflow: hidden;
}
.cd-article-thumbnail img {
  width: 100%;
  height: auto;
  display: block;
}

.cd-article-content {
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.875rem, 0.9375vw, 1.125rem);
  color: var(--cd-text);
  line-height: 1.75;
}
.cd-article-content p {
  margin-bottom: 1.2vw;
}
.cd-article-content h2 {
  font-family: "SuperBlue", serif;
  font-size: clamp(1.5rem, 2.35vw, 2.8125rem);
  color: #BF9F94;
  margin: 2vw 0 1vw;
}
.cd-article-content h3 {
  font-family: "SuperBlue", serif;
  font-size: clamp(1rem, 1.25vw, 1.5rem);
  color: #BF9F94;
  margin: 2vw 0 1vw;
}
.cd-article-content img {
  max-width: 100%;
  border-radius: 0.5vw;
  margin: 1vw 0;
}
.cd-article-content a {
  color: var(--cd-accent);
  text-decoration: underline;
}
.cd-article-content a:hover {
  color: var(--cd-brown);
}
.cd-article-content strong {
  color: var(--cd-dark);
}
.cd-article-content ul, .cd-article-content ol {
  padding-left: 1.5vw;
  margin-bottom: 1.2vw;
}
.cd-article-content ul li, .cd-article-content ol li {
  margin-bottom: 0.4vw;
}

.cd-article-nav {
  display: flex;
  justify-content: space-between;
  gap: 2vw;
  margin-top: 4vw;
  padding-top: 2vw;
  border-top: 0.05vw solid var(--cd-border);
}

.cd-article-nav-btn {
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.8rem, 0.83vw, 1rem);
  color: var(--cd-brown);
  text-decoration: none;
  transition: color 0.3s ease;
  max-width: 45%;
  line-height: 1.4;
}
.cd-article-nav-btn:hover {
  color: var(--cd-accent);
}
.cd-article-nav-btn.cd-article-nav-next {
  text-align: right;
  margin-left: auto;
}

.cd-back-to-blog {
  max-width: 48vw;
  margin: 0 auto;
  padding: 1.5vw 0;
  border-top: 0.05vw solid var(--cd-border);
}
.cd-back-to-blog .cd-back-link {
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.875rem, 0.9375vw, 1.125rem);
  color: var(--cd-text);
  text-decoration: none;
  transition: color 0.3s ease;
}
.cd-back-to-blog .cd-back-link:hover {
  color: var(--cd-accent);
}

/* Responsive article */
@media (max-width: 1024px) {
  .cd-single-article {
    padding: 4vw 10vw;
  }
  .cd-back-to-blog {
    max-width: 70vw;
  }
}
@media (max-width: 768px) {
  .cd-single-article {
    padding: 8vw 5vw 10vw;
  }
  .cd-back-to-blog {
    max-width: 100%;
    padding: 4vw 0;
  }
  .cd-article-nav {
    flex-direction: column;
    gap: 4vw;
  }
  .cd-article-nav-btn.cd-article-nav-next {
    text-align: left;
    margin-left: 0;
  }
}
/* ============================================================
   4. HERO BLOG — single.php + page blogue
   ============================================================ */
.cd-hero-blog {
  position: relative;
  min-height: 22vw;
  display: flex;
  align-items: center;
  margin-top: 7.5vw;
  overflow: hidden;
}
.cd-hero-blog .vce-asset-background-simple-item {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  transform: scale(1.05);
  animation: cdHeroZoom 8s ease forwards;
}
.cd-hero-blog .vce-content-background-container {
  position: absolute;
  inset: 0;
  z-index: 1;
}
.cd-hero-blog .cd-hero-col {
  position: relative;
  z-index: 2;
  padding: 15.1vw 72.9vw 15vw 7.3vw;
}
.cd-hero-blog .cd-hero-col .hero-title_page {
  font-family: "SuperBlue", serif;
  font-size: clamp(1.8rem, 3.9vw, 4.7rem);
  font-weight: 400;
  color: #ffffff;
  line-height: 1.12;
  margin: 0;
  opacity: 0;
  transform: translateX(-30px);
  animation: cdFadeInLeft 0.8s ease 0.3s forwards;
}

@media (max-width: 768px) {
  .cd-hero-blog {
    min-height: 55vw !important;
    margin-top: 60px !important;
  }
  .cd-hero-blog .cd-hero-col {
    padding: 10vw 5vw !important;
  }
}
/* ============================================================
   5. URGENCE CTA — Page article
   ============================================================ */
.cd-urgence-cta {
  display: flex;
}
.cd-urgence-cta .cd-urgence-cta-img {
  flex: 0 0 50%;
  overflow: hidden;
}
.cd-urgence-cta .cd-urgence-cta-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
  transition: transform 0.5s ease;
}
.cd-urgence-cta .cd-urgence-cta-img:hover img {
  transform: scale(1.03);
}
.cd-urgence-cta .cd-urgence-cta-text {
  flex: 1;
  background: #BF9F94;
  padding: 9.3vw 17.96vw 9.3vw 6.77vw;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1vw;
}
.cd-urgence-cta .cd-urgence-cta-text h2 {
  font-family: "SuperBlue", serif;
  font-size: clamp(1.5rem, 2.35vw, 2.8125rem);
  font-weight: 400;
  color: #ffffff;
  line-height: 1.11;
  margin: 0;
}
.cd-urgence-cta .cd-urgence-cta-text p {
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.875rem, 0.94vw, 1.125rem);
  color: #ffffff;
  line-height: 1.38;
  margin: 0;
}

@media (max-width: 768px) {
  .cd-urgence-cta {
    flex-direction: column;
  }
  .cd-urgence-cta .cd-urgence-cta-img {
    height: 50vw;
  }
  .cd-urgence-cta .cd-urgence-cta-text {
    padding: 8vw 5vw;
    gap: 4vw;
  }
  .cd-urgence-cta .cd-urgence-cta-text h2 {
    font-size: clamp(1.2rem, 4vw, 1.8rem);
  }
}
/* ============================================================
   FOOTER — Clinique Dentaire Geneviève Lafrance
   Tous les px convertis en vw
   ============================================================ */
.cd-footer {
  background: #ffffff;
  border-top: 1px solid var(--cd-border);
  padding: 4.2vw 16.8vw 4.2vw 16.8vw;
}
@media (max-width: 1200px) {
  .cd-footer {
    padding-left: 5vw;
    padding-right: 5vw;
  }
}

.cd-footer-inner {
  display: grid;
  grid-template-columns: 1fr 2fr 1fr;
  gap: 1.5vw;
  margin: 0 auto;
  padding-bottom: 2.5vw;
}

/* --- Logo + Adresse --- */
.cd-footer-brand .cd-footer-logo {
  display: block;
  margin-bottom: 1.4vw;
}
.cd-footer-brand .cd-footer-logo img {
  max-width: 17.6vw;
  min-width: 160px;
  height: auto;
}

.cd-footer-col.cd-footer-nav {
  padding-left: 3.1vw;
}

.cd-footer-address {
  font-style: normal;
  font-family: var(--cd-font-body);
  color: #625756;
  line-height: 1.35;
}

/* --- Titres colonnes --- */
.cd-footer-title {
  font-family: "SuperBlue", serif;
  font-weight: 400;
  color: #BF9F94;
  margin: 0 0 0.8vw;
  padding-bottom: 0.6vw;
  border-bottom: 1px solid #BF9F94;
}

/* --- Menu 2 colonnes --- */
.cd-footer-menu-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 1vw;
  margin-bottom: 1.5vw;
}

.cd-footer-menu-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.cd-footer-menu-list li {
  padding-bottom: 0.26vw;
}
.cd-footer-menu-list a {
  font-family: "SuperBlue", serif;
  font-weight: 700;
  color: #625756;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  transition: color 0.3s ease;
  line-height: 1.66;
}
.cd-footer-menu-list a:hover {
  color: var(--cd-accent);
}

/* --- Boutons footer --- */
.cd-footer-actions {
  display: flex;
  align-items: center;
  gap: 0.6vw;
  flex-wrap: wrap;
}

.cd-footer-facebook {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5vw;
  height: 2.5vw;
  min-width: 3.5vw;
  min-height: 3.5vw;
  border-radius: 50%;
  border: 1.5px solid var(--cd-dark);
  color: var(--cd-dark);
  text-decoration: none;
  transition: all 0.3s ease;
}
@media (max-width: 768px) {
  .cd-footer-facebook {
    width: 40px;
    height: 40px;
  }
}
.cd-footer-facebook svg {
  width: 1vw;
  height: auto;
}
@media (max-width: 768px) {
  .cd-footer-facebook svg {
    width: 10px;
  }
}
.cd-footer-facebook:hover {
  background: #1877f2;
  border-color: #1877f2;
  color: #ffffff;
}

/* --- Heures --- */
.cd-footer-hours-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--cd-font-body);
  margin-bottom: 2vw;
}
.cd-footer-hours-table td {
  padding: 0.15vw 0;
  color: var(--cd-text);
}
.cd-footer-hours-table td:first-child {
  color: #625756;
  padding-right: 1vw;
}
.cd-footer-hours-table td:last-child {
  text-align: right;
}

/* --- Bas de footer --- */
.cd-footer-bottom {
  border-top: 1px solid var(--cd-border);
  padding: 1vw 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 0 auto;
}
.cd-footer-bottom p {
  color: var(--cd-text-light);
  margin: 0;
}
.cd-footer-bottom a {
  color: var(--cd-text-light);
  text-decoration: none;
}
.cd-footer-bottom a:hover {
  color: var(--cd-accent);
}

/* ============================================================
   POPUP RENDEZ-VOUS
   ============================================================ */
.cd-rdv-overlay {
  position: fixed;
  inset: 0;
  background: rgba(36, 36, 36, 0.6);
  backdrop-filter: blur(4px);
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 2vw;
  /* Ouvert */
}
.cd-rdv-overlay.active {
  display: flex;
}

.cd-rdv-popup {
  background: #ffffff;
  border-radius: 1.5vw;
  max-width: 40vw;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  padding: 2vw;
  position: relative;
  box-shadow: 0 1.5vw 4vw rgba(0, 0, 0, 0.2);
  /* Animation entrée */
  transform: translateY(1.5vw);
  opacity: 0;
  transition: transform 0.4s ease, opacity 0.4s ease;
}
.cd-rdv-overlay.active .cd-rdv-popup {
  transform: translateY(0);
  opacity: 1;
}

/* Bouton fermer */
.cd-rdv-close {
  position: absolute;
  top: 1.2vw;
  right: 1.2vw;
  width: 2vw;
  height: 2vw;
  min-width: 32px;
  min-height: 32px;
  border-radius: 50%;
  border: none;
  background: var(--cd-bg-warm);
  color: #625756;
  font-size: clamp(0.9rem, 1vw, 1.2rem);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
}
.cd-rdv-close:hover {
  background: #625756;
  color: #ffffff;
}

/* Header */
.cd-rdv-header {
  text-align: center;
  margin-bottom: 2vw;
}
.cd-rdv-header h2 {
  font-family: "SuperBlue", serif;
  font-size: clamp(1.2rem, 1.875vw, 2.25rem);
  font-weight: 400;
  color: #625756;
  margin: 0 0 0.8vw;
}
.cd-rdv-header p {
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.8rem, 0.83vw, 1rem);
  color: var(--cd-text);
  line-height: 1.65;
  margin: 0;
}

.cd-rdv-form {
  background: #F3F1ED;
  border-radius: 1vw;
  padding: 2.5vw;
}
.cd-rdv-form .wpcf7 {
  /* Téléphone + Courriel côte à côte */
}
.cd-rdv-form .wpcf7 br {
  display: none;
}
.cd-rdv-form .wpcf7 p {
  margin: 0;
  padding-bottom: 0;
}
.cd-rdv-form .wpcf7 label {
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.875rem, 0.9375vw, 1.125rem);
  font-weight: 400;
  color: #625756;
  display: block;
  margin-bottom: 1.2vw;
}
.cd-rdv-form .wpcf7 .wpcf7-form-control-wrap {
  display: block;
  margin-top: 0.5vw;
}
.cd-rdv-form .wpcf7 input[type=text],
.cd-rdv-form .wpcf7 input[type=email],
.cd-rdv-form .wpcf7 input[type=tel] {
  width: 100%;
  height: 2.8vw;
  min-height: 44px;
  padding: 0 1.2vw;
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.875rem, 0.9375vw, 1.125rem);
  color: #383839;
  background: #ffffff;
  border: none;
  border-radius: 50px;
  outline: none;
  transition: all 0.3s ease;
}
.cd-rdv-form .wpcf7 input[type=text]:focus,
.cd-rdv-form .wpcf7 input[type=email]:focus,
.cd-rdv-form .wpcf7 input[type=tel]:focus {
  box-shadow: 0 0 0 0.15vw rgba(191, 159, 148, 0.3);
}
.cd-rdv-form .wpcf7 textarea.wpcf7-textarea {
  width: 100%;
  min-height: 7vw;
  padding: 1vw 1.2vw;
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.875rem, 0.9375vw, 1.125rem);
  color: #383839;
  background: #ffffff;
  border: none;
  border-radius: 1.2vw;
  outline: none;
  resize: vertical;
  transition: all 0.3s ease;
}
.cd-rdv-form .wpcf7 textarea.wpcf7-textarea:focus {
  box-shadow: 0 0 0 0.15vw rgba(191, 159, 148, 0.3);
}
.cd-rdv-form .wpcf7 .cd-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.2vw;
}
.cd-rdv-form .wpcf7 input[type=submit].wpcf7-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.7vw 2.5vw;
  min-height: 44px;
  background: #625756;
  color: #ffffff;
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.875rem, 0.9375vw, 1.125rem);
  font-weight: 600;
  border: none;
  border-radius: 50px;
  cursor: pointer;
  transition: all 0.3s ease;
  margin-top: 0.5vw;
}
.cd-rdv-form .wpcf7 input[type=submit].wpcf7-submit:hover {
  background: #4e4342;
  transform: translateY(-0.2vw);
  box-shadow: 0 0.3vw 1vw rgba(98, 87, 86, 0.3);
}

/* Responsive */
@media (max-width: 768px) {
  .cd-rdv-form {
    padding: 5vw;
    border-radius: 3vw;
  }
  .cd-rdv-form .wpcf7 .cd-form-row {
    grid-template-columns: 1fr !important;
  }
  .cd-rdv-form textarea.wpcf7-textarea {
    border-radius: 4vw !important;
    min-height: 25vw !important;
  }
}
/* Responsive */
@media (max-width: 1024px) {
  .cd-rdv-popup {
    max-width: 60vw;
  }
}
@media (max-width: 768px) {
  .cd-rdv-overlay {
    padding: 5vw;
  }
  .cd-rdv-popup {
    max-width: 100%;
    padding: 6vw;
    border-radius: 3vw;
  }
  .cd-rdv-close {
    top: 3vw;
    right: 3vw;
  }
}
/* ============================================================
   GUIDE DES TAILLES DE POLICE EN clamp()
   Clinique Dentaire Geneviève Lafrance

   Formule : clamp(min-mobile, valeur-vw, max-desktop)
   Calcul vw : taille-px / 1920 * 100

   Remplacez chaque font-size dans vos fichiers
   ============================================================ */
/* ============================================================
   TITRES
   ============================================================ */
/* H1 Hero — 75px sur 1920 */
.hero-title {
  font-size: clamp(2rem, 3.9vw, 4.7rem); /* min 32px → 3.9vw → max 75px */
}

/* H2 Section — 45px sur 1920 */
h2,
.cd-h2,
.cd-section-title,
h2.cd-title-service,
.cd-about-title {
  font-size: clamp(1.5rem, 2.35vw, 2.8125rem); /* min 24px → 2.35vw → max 45px */
}

/* H3 Carte service — 35px sur 1920 */
.cd-service-card h3 {
  font-size: clamp(1.1rem, 1.82vw, 2.18rem); /* min 18px → 1.82vw → max 35px */
}

/* H2 Blog header */
.cd-blog-header h2 {
  font-size: clamp(1.5rem, 2.35vw, 2.8125rem); /* min 24px → max 45px */
}

/* ============================================================
   SOUS-TITRES / INTRO
   ============================================================ */
/* Intro about — SuperBlue 24px sur 1920 */
.cd-about-intro {
  font-size: clamp(1rem, 1.25vw, 1.5rem); /* min 16px → max 24px */
}

/* Sous-titre services — 24px sur 1920 */
.cd-text-service {
  font-size: clamp(1rem, 1.25vw, 1.5rem); /* min 16px → max 24px */
}

/* ============================================================
   CORPS DE TEXTE
   ============================================================ */
/* Body text — 18px sur 1920 */
body {
  font-size: clamp(0.875rem, 0.94vw, 1.125rem); /* min 14px → max 18px */
}

/* Texte about droite — 18px sur 1920 */
.cd-about-text .vce-text-block-wrapper p {
  font-size: clamp(0.875rem, 0.94vw, 1.125rem); /* min 14px → max 18px */
}

/* Description carte service — 18px sur 1920 */
.cd-desc-service {
  font-size: clamp(0.875rem, 0.94vw, 1.12rem); /* min 14px → max 18px */
}

/* ============================================================
   ADRESSES / HERO
   ============================================================ */
/* Adresse hero span — 24px sur 1920 */
.hero-address span {
  font-size: clamp(0.9rem, 1.25vw, 1.5rem); /* min 14px → max 24px */
}

/* ============================================================
   NAVIGATION
   ============================================================ */
/* Menu principal — 20px sur 1920 */
#primary-menu > li > a {
  font-size: clamp(0.875rem, 1.04vw, 1.25rem); /* min 14px → max 20px */
}

/* Sous-menu — 15px sur 1920 */
#primary-menu .sub-menu li a {
  font-size: clamp(0.8rem, 0.78vw, 0.94rem); /* min 13px → max 15px */
}

/* ============================================================
   BOUTONS
   ============================================================ */
/* Bouton action brown — 20px sur 1920 */
.btn-action-brown {
  font-size: clamp(0.9rem, 1.04vw, 1.25rem); /* min 14px → max 20px */
}

/* Boutons header phone/coin enfant — 15px sur 1920 */
#primary-menu li.btn-phone > a,
#primary-menu li.btn-coin-enfant > a {
  font-size: clamp(0.75rem, 0.78vw, 0.94rem); /* min 12px → max 15px */
}

/* Bouton services — 16px sur 1920 */
.btn-services {
  font-size: clamp(0.8rem, 0.83vw, 1rem); /* min 13px → max 16px */
}

/* Bouton CD global — 20px sur 1920 */
.cd-btn {
  font-size: clamp(0.9rem, 1.04vw, 1.25rem); /* min 14px → max 20px */
}

/* ============================================================
   FOOTER
   ============================================================ */
/* Footer adresse — 20px sur 1920 */
.cd-footer-address {
  font-size: clamp(0.875rem, 1.04vw, 1.25rem); /* min 14px → max 20px */
}

/* Footer titre colonne — 22px sur 1920 */
.cd-footer-title {
  font-size: clamp(0.9rem, 1.15vw, 1.37rem); /* min 14px → max 22px */
}

/* Footer menu liens — 18px sur 1920 */
.cd-footer-menu-list a {
  font-size: clamp(0.8rem, 0.94vw, 1.12rem); /* min 13px → max 18px */
}

/* Footer heures — 18px sur 1920 */
.cd-footer-hours-table {
  font-size: clamp(0.8rem, 0.94vw, 1.12rem); /* min 13px → max 18px */
}

/* Footer bottom — 18px sur 1920 */
.cd-footer-bottom p {
  font-size: clamp(0.75rem, 0.94vw, 1.12rem); /* min 12px → max 18px */
}

/* ============================================================
   HORAIRES (section about)
   ============================================================ */
.horaire table {
  font-size: clamp(0.75rem, 0.73vw, 0.875rem); /* min 12px → max 14px */
}

/* ============================================================
   FORMULAIRE CF7
   ============================================================ */
/* Labels */
.wpcf7 label {
  font-size: clamp(0.875rem, 0.94vw, 1.12rem); /* min 14px → max 18px */
}

/* Inputs */
.wpcf7 input[type=text],
.wpcf7 input[type=email],
.wpcf7 input[type=tel],
.wpcf7 textarea.wpcf7-textarea {
  font-size: clamp(0.875rem, 0.94vw, 1.12rem); /* min 14px → max 18px */
}

/* Bouton submit */
.wpcf7 input[type=submit].wpcf7-submit {
  font-size: clamp(0.8rem, 0.83vw, 1rem); /* min 13px → max 16px */
}

/* ============================================================
   BLOG
   ============================================================ */
/* Blog header paragraphe */
.cd-blog-header p {
  font-size: clamp(0.8rem, 0.78vw, 0.95rem); /* min 13px → max 15px */
}

/* Blog card titre — 20px sur 1920 */
.cd-blog-card-title {
  font-size: clamp(0.9rem, 1.04vw, 1.25rem); /* min 14px → max 20px */
}

/* Blog card extrait */
.cd-blog-card-excerpt {
  font-size: clamp(0.75rem, 0.73vw, 0.875rem); /* min 12px → max 14px */
}

/* Blog card lien */
.cd-blog-card-link {
  font-size: clamp(0.75rem, 0.73vw, 0.875rem); /* min 12px → max 14px */
}

/* ============================================================
   PAGES INTÉRIEURES — sass/parts/pages.scss
   100% vw + clamp() — zéro px/rem
   ============================================================ */
/* ============================================================
   HERO PAGE INTÉRIEURE — cd-hero-page
   ============================================================ */
.cd-hero-page {
  position: relative;
  display: flex;
  align-items: center;
  margin-top: 145px;
}
.cd-hero-page .cd-hero-col-page {
  text-align: left !important;
  padding: 12.76vw 56.94vw 13.39vw 7.29vw;
}

.hero-title_page {
  font-family: "SuperBlue", serif;
  font-size: clamp(2rem, 3.906vw, 4.688rem);
  font-weight: 400;
  color: #ffffff;
  line-height: 1.12;
  margin: 0;
  opacity: 0;
  transform: translateX(-30px);
  animation: cdFadeInLeft 0.8s ease 0.3s forwards;
}

.hero-title_page.pr-text {
  padding-right: 10vw;
}

/* ============================================================
   BREADCRUMB
   ============================================================ */
.cd-breadcrumb {
  padding: 0.8vw 7.3vw;
  background: #ffffff;
}
.cd-breadcrumb a, .cd-breadcrumb span {
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.75rem, 0.73vw, 0.875rem);
  color: var(--cd-text-light);
  text-decoration: none;
  transition: color 0.3s ease;
}
.cd-breadcrumb a:hover {
  color: var(--cd-accent);
}
.cd-breadcrumb .separator {
  margin: 0 0.4vw;
  color: var(--cd-border);
}
.cd-breadcrumb .current {
  color: var(--cd-brown);
  font-weight: 600;
}

/* ============================================================
   SECTION TEXTE CENTRÉ — cd-content-section
   ============================================================ */
.cd-content-section {
  padding: 1.2vw 19vw 7.5vw;
  text-align: center;
  background: #ffffff;
}
.cd-content-section .vce-col-inner,
.cd-content-section .vce-col-content {
  padding: 0 !important;
}
.cd-content-section h2 {
  padding-bottom: 2.6vw;
}
.cd-content-section p {
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.875rem, 0.94vw, 1.125rem);
  color: var(--cd-text);
  line-height: 1.38;
  margin-bottom: 1.7vw;
}
.cd-content-section p:last-child {
  margin-bottom: 0;
}

.cd-content-section.team-cd {
  padding: 1.4vw 23.64vw 3vw 23vw;
}

.cd-team-circles-section {
  padding: 0 24.47vw 6.9vw 25.15vw;
}
@media (max-width: 1200px) and (min-width: 769px) {
  .cd-team-circles-section {
    padding-left: 17vw;
    padding-right: 17vw;
  }
}
@media (max-width: 768px) {
  .cd-team-circles-section {
    padding-left: 6vw;
    padding-right: 6vw;
  }
}
.cd-team-circles-section .cd-team-circles {
  padding-bottom: 0;
}

.cd-team-member {
  padding: 0 21.66vw 4.16vw;
  /* ---- Animation au scroll ---- */
  transform: translateY(1.5vw);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
@media (max-width: 1200px) and (min-width: 769px) {
  .cd-team-member {
    padding-left: 17vw;
    padding-right: 17vw;
  }
}
@media (max-width: 768px) {
  .cd-team-member {
    padding-left: 6vw;
    padding-right: 6vw;
  }
}
.cd-team-member.cd-visible {
  transform: translateY(0);
}
.cd-team-member h3 {
  font-family: "SuperBlue", serif;
  font-size: clamp(1rem, 1.5625vw, 1.875rem);
  padding-bottom: 1.56vw;
  color: #BF9F94;
}
.cd-team-member .cd-team-member-img {
  transform: translateX(1.5vw);
  transition: opacity 0.7s ease 0.3s, transform 0.7s ease 0.3s;
}
@media (max-width: 768px) {
  .cd-team-member .cd-team-member-img {
    padding-bottom: 30px;
  }
}
.cd-team-member.cd-visible .cd-team-member .cd-team-member-img {
  transform: translateX(0);
}
.cd-team-member .cd-team-member-img img {
  border-radius: 2.08vw;
}
.cd-team-member:last-child {
  padding-bottom: 5.8vw;
}

.cd-other-team {
  padding: 6.66vw 14.47vw 12.13vw 14.79vw;
}
.cd-other-team h2 {
  padding-bottom: 3.12vw;
}
.cd-other-team .cd-team-grid-item {
  margin-bottom: 3.64vw;
}
.cd-other-team .cd-team-grid-item .vce-single-image-figure-inner {
  width: 15.62vw !important;
  height: 15.62vw !important;
  margin-bottom: 2.08vw;
}
@media (max-width: 767px) {
  .cd-other-team .cd-team-grid-item .vce-single-image-figure-inner {
    width: 300px !important;
    height: auto !important;
  }
}
.cd-other-team .cd-team-grid-item .name {
  font-family: "SuperBlue", serif;
  font-size: clamp(1rem, 1.5625vw, 1.875rem);
  line-height: 1.6;
  padding-bottom: 1vw;
}
.cd-other-team .cd-team-grid.last .cd-team-grid-item {
  margin-bottom: 0;
}

/* ============================================================
   CITATION — cd-quote-section
   ============================================================ */
.cd-quote-section p {
  font-family: "SuperBlue", serif;
  font-size: clamp(1rem, 1.25vw, 1.625rem);
  color: #BF9F94;
  line-height: 1.25;
  font-weight: 700;
  margin: 0;
}

.cd-txt-visite {
  padding: 5.36vw 28.9vw 3.38vw;
}
.cd-txt-visite h2 {
  padding-bottom: 1.04vw;
}

.cd-visite-col .cd-gallery-slider {
  padding-bottom: 10vw;
}

/* ============================================================
   SECTION VALEURS — cd-values-section + cd-value-card
   ============================================================ */
.cd-values-section {
  padding: 5vw 7.8vw;
}
.cd-values-section h2 {
  text-align: center;
  margin-bottom: 3.65vw;
}

.cd-value-card > .vce-col-inner {
  padding: 2.5vw 2vw !important;
  background: #625756;
  border-radius: 1.04vw;
  height: 100%;
  transition: all 0.3s ease;
}
.cd-value-card:hover > .vce-col-inner {
  background: #4e4342;
  transform: translateY(-0.21vw);
  box-shadow: 0 0.42vw 1.25vw rgba(98, 87, 86, 0.3);
}
.cd-value-card h3, .cd-value-card h4 {
  font-family: "SuperBlue", serif;
  font-size: clamp(1rem, 1.5625vw, 1.875rem);
  font-weight: 400;
  color: #ffffff;
  margin: 0 0 0.8vw;
  line-height: 1.16;
  min-height: 3.5vw;
}
.cd-value-card p {
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.8rem, 0.93vw, 1.125rem);
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.38;
  margin: 0;
  padding-bottom: 0;
}

.cd-value-card.last h3 {
  padding-right: 3vw;
}

/* ============================================================
   SECTION ÉQUIPE CTA — cd-team-cta
   ============================================================ */
.cd-team-cta-text {
  padding: 9.37vw 18vw 9.37vw 6.77vw !important;
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
}
@media (max-width: 1200px) and (min-width: 769px) {
  .cd-team-cta-text {
    padding-right: 10vw !important;
  }
}
@media (max-width: 768px) {
  .cd-team-cta-text {
    padding: 5vw 6vw !important;
  }
}
.cd-team-cta-text h2 {
  font-size: clamp(1.5rem, 2.35vw, 2.8125rem);
  color: #ffffff;
  line-height: 1.11;
  margin: 0 0 0.5vw;
}
@media (max-width: 768px) {
  .cd-team-cta-text h2 {
    margin-bottom: 2vw;
  }
}
.cd-team-cta-text p {
  font-size: clamp(0.875rem, 0.94vw, 1.125rem);
  color: rgba(255, 255, 255, 0.9);
  line-height: 1.38;
  margin-bottom: 1.71vw;
}
.cd-team-cta-text p:last-of-type {
  margin-bottom: 2vw;
}
.cd-team-cta-text a.btn-action-brown,
.cd-team-cta-text .cd-btn {
  align-self: flex-start;
  background: #625756 !important;
  color: #ffffff !important;
}
.cd-team-cta-text a.btn-action-brown:hover,
.cd-team-cta-text .cd-btn:hover {
  background: #4e4342 !important;
}

/* ============================================================
   RESPONSIVE — uniquement les changements structurels
   Les vw + clamp() gèrent les tailles automatiquement
   ============================================================ */
@media (max-width: 1024px) {
  .cd-content-section {
    padding: 5vw 10vw;
  }
  .cd-quote-section {
    padding: 3vw 8vw;
  }
  .cd-values-section {
    padding: 5vw 4vw;
  }
}
@media (max-width: 768px) {
  /* Hero */
  .cd-hero-page {
    min-height: 55vw !important;
    margin-top: 60px !important;
  }
  .cd-hero-page .cd-hero-col .vce-col-inner,
  .cd-hero-page .cd-hero-col .vce-col-content {
    padding: 10vw 5vw !important;
  }
  /* Breadcrumb */
  .cd-breadcrumb {
    padding: 3vw 5vw !important;
  }
  /* Content */
  .cd-content-section {
    padding: 10vw 5vw !important;
  }
  .cd-quote-section {
    padding: 8vw 5vw !important;
  }
  /* Valeurs — empilées */
  .cd-values-section {
    padding: 10vw 5vw !important;
  }
  .cd-value-card > .vce-col-inner {
    padding: 5vw !important;
    margin-bottom: 3vw !important;
    border-radius: 3vw !important;
  }
  /* Team CTA — image dessus, texte dessous */
  .cd-team-cta-text > .vce-col-inner {
    padding: 10vw 5vw !important;
  }
  .cd-team-cta-text a.btn-action-brown {
    width: 100% !important;
    justify-content: center !important;
  }
}
/* ============================================================
   SECTION TECHNOLOGIES — cd-technologies-section
   Structure zigzag : texte/image alternés
   ============================================================ */
/* Titre + intro section */
.cd-technologies-section {
  padding: 6.45vw 20vw;
  background: #F4F3EF;
}
@media (max-width: 1200px) and (min-width: 769px) {
  .cd-technologies-section {
    padding-left: 15vw;
    padding-right: 15vw;
  }
}
.cd-technologies-section .cd-tech-intro {
  text-align: center;
  max-width: 45vw;
  margin: 0 auto 4vw;
}
.cd-technologies-section .cd-tech-intro h2 {
  margin-bottom: 1.5vw;
}
.cd-technologies-section .cd-tech-intro p {
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.875rem, 0.938vw, 1.125rem);
  color: var(--cd-text);
  line-height: 1.38;
}
.cd-technologies-section h3 {
  font-size: clamp(1.5rem, 2.35vw, 2.8125rem);
  padding-bottom: 1vw;
  color: #625756;
}
.cd-technologies-section .cd-tech-item {
  padding-bottom: 2.45vw;
}

.cd-urgence-txt-form > .vce-col-inner {
  padding: 2.6vw 0 !important;
}
.cd-urgence-txt-form .cd-img-teeth {
  width: 6.6vw;
  height: auto;
  padding-bottom: 1vw;
}
@media (max-width: 767px) {
  .cd-urgence-txt-form .cd-img-teeth {
    width: 100px;
    padding-bottom: 20px;
  }
}
.cd-urgence-txt-form h3 {
  font-size: clamp(1.1rem, 1.82vw, 2.18rem);
  line-height: 1.14;
  padding-bottom: 0.5vw;
}
@media (max-width: 767px) {
  .cd-urgence-txt-form h3 {
    padding-bottom: 20px;
    font-size: 20px;
  }
}
.cd-urgence-txt-form p {
  padding-bottom: 0.7vw;
}
@media (max-width: 767px) {
  .cd-urgence-txt-form p {
    padding-bottom: 20px;
  }
}
.cd-urgence-txt-form .cd-tel {
  font-size: clamp(1rem, 1.5625vw, 1.875rem);
  font-weight: 700;
  font-family: "SuperBlue", serif;
  cursor: pointer;
}
.cd-urgence-txt-form .cd-tel:hover {
  color: #625756;
  text-decoration: underline;
}
@media (max-width: 767px) {
  .cd-urgence-txt-form .cd-tel {
    font-size: 18px;
  }
}

.bt {
  margin-top: 1.5vw;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
  .cd-tech-item {
    gap: 3vw;
  }
  .cd-tech-img {
    flex: 0 0 28vw;
    width: 28vw;
  }
  .cd-technologies-section .cd-tech-intro {
    max-width: 70vw;
  }
}
@media (max-width: 768px) {
  p {
    padding-bottom: 15px !important;
  }
  .cd-hero-page .cd-hero-col-page {
    padding: 12.76vw 21vw 13.39vw 7.29vw !important;
  }
  .cd-txt-visite {
    padding: 10vw 12vw !important;
  }
  .cd-value-card {
    margin-bottom: 30px;
  }
  .cd-value-card h3 {
    margin-bottom: 20px !important;
  }
  .bb-3 {
    padding-bottom: 30px;
  }
  .cd-technologies-section {
    padding: 10vw 5vw !important;
  }
  .cd-technologies-section h3 {
    padding-bottom: 3vw !important;
  }
  .cd-technologies-section .cd-tech-intro {
    max-width: 100% !important;
    margin-bottom: 8vw !important;
  }
  .cd-tech-text {
    width: 100% !important;
  }
  .cd-tech-text h3 {
    margin-bottom: 3vw !important;
  }
}
.section-acces {
  padding: 0 23.43vw 7vw;
}
.section-acces h2 {
  padding-bottom: 1.83vw;
}

.cd-conseil {
  padding: 0 21.66vw 5.88vw;
}
.cd-conseil h3 {
  font-family: "SuperBlue", serif;
  font-size: clamp(1rem, 1.25vw, 1.5rem);
  color: #BF9F94;
  margin-bottom: 1.5vw;
}
.cd-conseil h2 {
  font-family: "SuperBlue", serif;
  font-size: clamp(1rem, 1.5625vw, 1.875rem);
  color: #BF9F94;
  margin-bottom: 1vw;
  padding-left: 11vw;
  padding-right: 11vw;
}
.cd-conseil h2::after {
  content: "•";
  display: block;
  color: var(--cd-accent);
  font-size: clamp(1rem, 1.25vw, 1.5rem);
  margin-top: 0.5vw;
  line-height: 1;
}
.cd-conseil .cd-row {
  padding-top: 5.88vw;
}
.cd-conseil .cd-row.row2 {
  padding-top: 2.34vw;
}
.cd-conseil .cd-row.row3 {
  padding-top: 0;
}
.cd-conseil img {
  border-radius: 40px;
}
.cd-conseil .cd-list-soins h3.cd-pb {
  margin-bottom: 2.8vw;
}
.cd-conseil .cd-list-soins h3.min-pb {
  margin-bottom: 0.5vw;
}
.cd-conseil .cd-list-soins ul {
  list-style: none;
  padding: 0;
  margin: 0;
  padding-bottom: 1.71vw;
}
.cd-conseil .cd-list-soins ul li {
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.875rem, 0.94vw, 1.125rem);
  color: var(--cd-text);
  padding: 0.2vw 0;
  display: flex;
}
.cd-conseil .cd-list-soins ul li::before {
  content: "›";
  color: #383839;
  font-size: clamp(0.875rem, 0.94vw, 1.125rem);
  padding-right: 1.1vw;
}

.txt-infos {
  font-family: "SuperBlue", serif;
  font-size: clamp(0.875rem, 1.04vw, 1.25rem);
  color: #BF9F94;
  line-height: 1.2;
}

.cd-infos {
  background-color: #F4F3EF;
  padding: 1.87vw 1.66vw;
}
.cd-infos h3 {
  margin-bottom: 1.04vw !important;
}

.cd-conseil.cd-greffe .cd-row {
  padding-top: 2.9vw;
}

.cd-conseil.cd-coin {
  padding-top: 4vw;
}
.cd-conseil.cd-coin .cd-row {
  padding-top: 0;
}
.cd-conseil.cd-coin .cd-row-visite {
  padding-top: 2.7vw;
  padding-bottom: 4.27vw;
}
.cd-conseil.cd-coin .h3-title {
  font-family: "SuperBlue", serif;
  font-size: clamp(1rem, 1.25vw, 1.5rem);
  color: #BF9F94;
  margin-bottom: 0.5vw;
}
.cd-conseil.cd-coin .cd-p {
  letter-spacing: 0.5px;
}

.cd-txt-color {
  font-size: clamp(1rem, 1.25vw, 1.5rem);
  color: #BF9F94;
  line-height: 1.5;
  padding-bottom: 3.54vw;
  padding-top: 2.9vw;
}
.cd-txt-color p {
  font-size: clamp(1rem, 1.25vw, 1.5rem);
  color: #BF9F94;
  line-height: 1.5;
  padding-bottom: 3.54vw;
  padding-top: 2.9vw;
}

.cd-conseil.cd-carie {
  color: white;
}
.cd-conseil.cd-carie h3, .cd-conseil.cd-carie h2, .cd-conseil.cd-carie h2::after, .cd-conseil.cd-carie ul li, .cd-conseil.cd-carie ul li::before {
  color: white;
}

.cd-service-quote p {
  font-family: "SuperBlue", serif;
  font-size: clamp(1rem, 1.5625vw, 1.875rem);
  color: #BF9F94;
  text-align: center;
  line-height: 1.3;
  padding: 2vw 7vw;
}
@media (max-width: 768px) {
  .cd-service-quote p {
    padding: 2vw 4vw;
  }
}

.cd-service-block {
  padding: 4.6vw 18.5vw 6.35vw 21.66vw;
  color: white;
}
@media (max-width: 1200px) and (min-width: 769px) {
  .cd-service-block {
    padding-left: 15vw;
    padding-right: 15vw;
  }
}
@media (max-width: 768px) {
  .cd-service-block {
    padding: 5vw 6vw;
  }
}
.cd-service-block h2 {
  color: white;
  padding-bottom: 1.04vw;
}
@media (max-width: 768px) {
  .cd-service-block h2 {
    padding-bottom: 2.5vw;
  }
}

.cd-service-block.min {
  padding-top: 3.38vw;
  padding-bottom: 2.96vw;
}
@media (max-width: 768px) {
  .cd-service-block.min {
    padding-top: 5vw;
    padding-bottom: 5vw;
  }
}

.cd-service-infos {
  padding: 6.77vw 21.66vw 3.64vw;
}
@media (max-width: 1200px) and (min-width: 769px) {
  .cd-service-infos {
    padding-left: 17vw;
    padding-right: 17vw;
  }
}
@media (max-width: 768px) {
  .cd-service-infos {
    padding: 5vw 6vw;
  }
}
.cd-service-infos img {
  border-radius: 40px;
}
.cd-service-infos h2 {
  padding-bottom: 1.2vw;
  line-height: 1.1;
}
@media (max-width: 768px) {
  .cd-service-infos h2 {
    padding-bottom: 2.5vw;
  }
}
.cd-service-infos ul {
  list-style: none;
  padding: 0;
  margin: 0;
  padding-bottom: 1.71vw;
}
.cd-service-infos ul li {
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.875rem, 0.94vw, 1.125rem);
  color: var(--cd-text);
  padding: 0.1vw 0;
  display: flex;
}
.cd-service-infos ul li::before {
  content: "›";
  color: #383839;
  font-size: clamp(0.875rem, 0.94vw, 1.125rem);
  padding-right: 1.1vw;
}

.cd-service-text-center {
  padding: 0 23.69vw 5.78vw;
}
@media (max-width: 1200px) and (min-width: 769px) {
  .cd-service-text-center {
    padding-left: 15vw;
    padding-right: 15vw;
  }
}
@media (max-width: 768px) {
  .cd-service-text-center {
    padding: 0 5vw 5vw;
  }
}

.cd-techno-service {
  padding: 0 22.08vw 6.87vw 21.66vw;
}
@media (max-width: 1200px) and (min-width: 769px) {
  .cd-techno-service {
    padding-left: 15vw;
    padding-right: 15vw;
  }
}
@media (max-width: 768px) {
  .cd-techno-service {
    padding: 0 5vw 5vw;
  }
}
.cd-techno-service h2 {
  padding-bottom: 0.78vw;
}
@media (max-width: 767px) {
  .cd-techno-service h2 {
    padding-bottom: 2.5vw;
  }
}
.cd-techno-service p {
  padding-bottom: 1.04vw;
}
.cd-techno-service img {
  border-radius: 40px;
}

.cd-service-block.simple {
  padding: 5.9vw 22.76vw 6.14vw 21.92vw;
}
@media (max-width: 1200px) and (min-width: 769px) {
  .cd-service-block.simple {
    padding-left: 15vw;
    padding-right: 15vw;
  }
}
@media (max-width: 768px) {
  .cd-service-block.simple {
    padding: 30px 26px;
  }
}

ul.list {
  list-style: none;
  padding: 0;
  margin: 0;
  padding-bottom: 0;
}
ul.list li {
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.875rem, 0.94vw, 1.125rem);
  color: white;
  padding: 0;
  padding-left: 1.5vw;
  position: relative;
}
ul.list li::before {
  content: "›";
  color: white;
  position: absolute;
  left: 0;
  top: 0.3vw;
}
@media (max-width: 768px) {
  ul.list li::before {
    top: 0;
    left: -10px;
  }
}
ul.list li strong {
  font-weight: 700;
}

ul.list.fixed li::before {
  top: 0;
}

ul.list-black {
  list-style: none;
  padding: 0;
  margin: 0;
  padding-bottom: 0;
}
ul.list-black li {
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.875rem, 0.94vw, 1.125rem);
  color: #383839;
  padding: 0;
  padding-left: 1.5vw;
  position: relative;
}
ul.list-black li::before {
  content: "›";
  color: #383839;
  position: absolute;
  left: 0;
  top: 0;
}
@media (max-width: 768px) {
  ul.list-black li::before {
    left: -10px;
  }
}
ul.list-black li strong {
  font-weight: 700;
}

/* ============================================================
   SECTION AXES DE PRATIQUE — Réutilisable
   Même style que cd-service-card avec fond crème
   ============================================================ */
.cd-axes-section {
  padding: 5.5vw 8.5vw 8vw;
  background: #BF9F94;
  text-align: center;
}
@media (max-width: 768px) {
  .cd-axes-section {
    padding: 5vw 6vw;
  }
}
.cd-axes-section h2 {
  font-family: "SuperBlue", serif;
  font-size: clamp(1.5rem, 2.34375vw, 2.8125rem);
  font-weight: 400;
  color: white;
  margin: 0 20vw 3vw;
  text-align: center;
}
@media (max-width: 768px) {
  .cd-axes-section h2 {
    margin: 0 10vw 4vw;
  }
}

.cd-axes-section.p-dentaire {
  padding-left: 15.62vw;
  padding-right: 15.62vw;
}
@media (max-width: 768px) {
  .cd-axes-section.p-dentaire {
    padding-left: 6vw;
    padding-right: 6vw;
  }
}
.cd-axes-section.p-dentaire h3 {
  min-height: 4vw;
  padding-right: 5vw;
}

.cd-axe-card {
  /* Contenu texte */
}
.cd-axe-card > .vce-col-inner {
  padding: 0 !important;
  border-radius: 2.08vw;
  overflow: hidden;
  background: #ffffff;
  transition: all 0.35s ease;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.cd-axe-card:hover > .vce-col-inner {
  box-shadow: 0 0.6vw 1.8vw rgba(0, 0, 0, 0.12);
  transform: translateY(-0.3vw);
}
.cd-axe-card:hover img {
  transform: scale(1.04);
}
.cd-axe-card .vce-text-block {
  padding: 1.3vw 2.5vw 1.56vw;
  text-align: left;
}
.cd-axe-card h3 {
  font-family: "SuperBlue", serif;
  font-size: clamp(0.9rem, 1.25vw, 1.5rem);
  font-weight: 700;
  color: #BF9F94;
  margin: 0 0 0.5vw;
  line-height: 1.25;
  min-height: 5vw;
}
@media (max-width: 768px) {
  .cd-axe-card h3 {
    min-height: inherit;
    margin-bottom: 2vw;
  }
}
.cd-axe-card p {
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.875rem, 0.94vw, 1.12rem);
  color: var(--cd-text);
  line-height: 1.38;
  margin: 0;
  padding-bottom: 0;
}

/* Responsive */
@media (max-width: 1024px) {
  .cd-axes-section {
    padding: 5vw 4vw;
  }
}
@media (max-width: 768px) {
  .cd-axes-section {
    padding: 8vw 5vw !important;
  }
  .cd-axes-grid > .vce-row-content {
    flex-direction: column !important;
    gap: 5vw !important;
  }
  .cd-axe-card .vce-text-block {
    padding: 4vw !important;
  }
}
.cd-top {
  padding-top: 6.9vw;
}

ul.list-style {
  list-style: none;
  padding: 0;
  margin: 0;
  padding-bottom: 1.71vw;
}
ul.list-style li {
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.875rem, 0.94vw, 1.125rem);
  color: var(--cd-text);
  padding: 0.2vw 0;
  display: flex;
}
ul.list-style li::before {
  content: "›";
  color: #383839;
  font-size: clamp(0.875rem, 0.94vw, 1.125rem);
  padding-right: 1.1vw;
}

.cd-urgence-section.no-top {
  padding-top: 0;
}

.cd-service-text-center.min {
  padding-left: 21.66vw;
  padding-right: 21.66vw;
}
@media (max-width: 768px) {
  .cd-service-text-center.min {
    padding-left: 6vw;
    padding-right: 6vw;
  }
}

.cd-service-text-center.medium-pd {
  padding-left: 22.66vw;
  padding-right: 22.66vw;
}
@media (max-width: 1200px) and (min-width: 769px) {
  .cd-service-text-center.medium-pd {
    padding-left: 15vw;
    padding-right: 15vw;
  }
}
@media (max-width: 768px) {
  .cd-service-text-center.medium-pd {
    padding-left: 6vw;
    padding-right: 6vw;
  }
}

.cd-content-section.cd-pb-min {
  padding-bottom: 2.34vw;
}
@media (max-width: 768px) {
  .cd-content-section.cd-pb-min {
    padding-bottom: 4vw;
  }
}

.pt-100.cd-service-text-center {
  padding-top: 5.2vw;
}
@media (max-width: 768px) {
  .pt-100.cd-service-text-center {
    padding-bottom: 6vw;
  }
}

.pt-80.cd-service-text-center {
  padding-top: 4.1vw;
}
@media (max-width: 768px) {
  .pt-80.cd-service-text-center {
    padding-top: 8vw;
  }
}

.cd-techno-service.pt-130 {
  padding-top: 6.77vw;
}
@media (max-width: 768px) {
  .cd-techno-service.pt-130 {
    padding-top: 8vw;
  }
}

h2.pb-25 {
  padding-bottom: 1.28vw;
}
@media (max-width: 768px) {
  h2.pb-25 {
    padding-bottom: 4vw;
  }
}

h2.pb-45 {
  padding-bottom: 2.3vw;
}
@media (max-width: 768px) {
  h2.pb-45 {
    padding-bottom: 4.5vw;
  }
}

.cd-section-center {
  padding: 6.87vw 21.66vw 6.66vw;
}
@media (max-width: 1200px) and (min-width: 769px) {
  .cd-section-center {
    padding-left: 15vw;
    padding-right: 15vw;
  }
}
@media (max-width: 768px) {
  .cd-section-center {
    padding: 5vw 6vw;
  }
}

.cd-bloc-solution {
  padding: 3.9vw 19.63vw 4.27vw 21.66vw;
  color: white;
}
@media (max-width: 1200px) and (min-width: 769px) {
  .cd-bloc-solution {
    padding-left: 15vw;
    padding-right: 15vw;
  }
}
@media (max-width: 768px) {
  .cd-bloc-solution {
    padding: 6vw 7vw;
  }
}
.cd-bloc-solution h3 {
  font-family: "SuperBlue", serif;
  font-size: clamp(1rem, 1.5625vw, 1.875rem);
  line-height: 1.16;
  margin-bottom: 15px;
}
@media (max-width: 768px) {
  .cd-bloc-solution h3 {
    font-size: 20px;
  }
}

/* ============================================================
PAGE 404
============================================================ */
.cd-404 {
  min-height: calc(100vh - 7.5vw);
  margin-top: 7.5vw;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--cd-bg-warm);
  position: relative;
  overflow: hidden;
  padding: 5vw;
  text-align: center;
}

.cd-404-content {
  position: relative;
  z-index: 2;
  max-width: 35vw;
}

.cd-404-number {
  font-family: "SuperBlue", serif;
  font-size: clamp(5rem, 10.4vw, 12.5rem);
  font-weight: 400;
  color: #BF9F94;
  opacity: 0.3;
  display: block;
  line-height: 1;
  margin-bottom: 1vw;
}

.cd-404-title {
  font-family: "SuperBlue", serif;
  font-size: clamp(1.5rem, 2.34375vw, 2.8125rem);
  font-weight: 400;
  color: #625756;
  margin: 0 0 1.5vw;
  line-height: 1.2;
}

.cd-404-text {
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.875rem, 0.9375vw, 1.125rem);
  color: var(--cd-text);
  line-height: 1.75;
  margin: 0 0 2.5vw;
}

.cd-404-actions {
  display: flex;
  gap: 1vw;
  justify-content: center;
  flex-wrap: wrap;
}

.cd-btn-outline-brown {
  display: inline-flex;
  align-items: center;
  padding: 0.7vw 2vw;
  background: transparent;
  color: #625756 !important;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  border: 0.1vw solid #625756;
  border-radius: 50px;
  text-decoration: none !important;
  transition: all 0.3s ease;
}
.cd-btn-outline-brown:hover {
  background: #625756;
  color: #ffffff !important;
  transform: translateY(-0.2vw);
}

/* Image décorative dent */
.cd-404-deco {
  position: absolute;
  bottom: -3vw;
  right: -2vw;
  width: 25vw;
  opacity: 0.06;
  z-index: 1;
  pointer-events: none;
}

/* Responsive */
@media (max-width: 1024px) {
  .cd-404-content {
    max-width: 60vw;
  }
}
@media (max-width: 768px) {
  .cd-404 {
    margin-top: 60px !important;
    padding: 15vw 5vw;
  }
  .cd-404-content {
    max-width: 100%;
  }
  .cd-404-actions {
    flex-direction: column;
    gap: 3vw;
  }
  .cd-404-actions .cd-btn,
  .cd-404-actions .cd-btn-outline-brown {
    width: 100%;
    justify-content: center;
    padding: 3vw 5vw;
  }
  .cd-404-deco {
    width: 40vw;
    bottom: -5vw;
    right: -5vw;
  }
}
/* ============================================================
   GLOBAL
   ============================================================ */
*, *::before, *::after {
  box-sizing: border-box;
}

body {
  margin: 0;
}

body::-webkit-scrollbar {
  width: 5px !important;
}

body::-webkit-scrollbar-track {
  background: #BF9F94;
}

body::-webkit-scrollbar-thumb {
  background-color: white;
  border-radius: 20px;
  border: 5px solid #BF9F94;
}

p {
  padding-bottom: 0.8vw;
}
p:last-child {
  padding-bottom: 0;
}

/* ============================================================
   CF7 VALIDATION
   ============================================================ */
.wpcf7-not-valid-tip {
  display: none !important;
}

body input[type=text].wpcf7-not-valid,
body input[type=email].wpcf7-not-valid,
body input[type=tel].wpcf7-not-valid,
body textarea.wpcf7-not-valid {
  border: 1px solid #ec3c06;
}

body div.wpcf7-validation-errors {
  background: #ffe2e2;
  border: 1px solid #ff8a8a;
  color: #ec3c06;
}

body div.wpcf7-response-output {
  margin: 10px 0;
  padding: 20px;
  box-sizing: border-box;
  border-radius: 5px;
}

body .wpcf7-mail-sent-ng {
  background: #fff2e2;
  border: 1px solid #ffbc8a;
  color: #e17731;
}

body .wpcf7-mail-sent-ok {
  background: #e8ffe2;
  border: 1px solid #6fdf51;
  color: #1ea524;
}

/* ============================================================
   ABOUT SECTION
   ============================================================ */
.cd-about-section {
  position: relative;
  overflow: hidden;
  padding: 8vw 15vw 7vw 14vw;
}
.cd-about-section > .vce-row-content {
  align-items: stretch;
}
@media (max-width: 1200px) {
  .cd-about-section {
    padding: 8vw 10vw 7vw;
  }
}

.cd-deco-tooth {
  position: absolute !important;
  top: 15%;
  right: -3vw;
  transform: translateY(-50%);
  z-index: 0;
  pointer-events: none;
}
.cd-deco-tooth .vce-single-image-figure-inner {
  width: 15vw !important;
  height: auto;
}
.cd-deco-tooth img {
  width: 100%;
  height: auto;
  display: block;
}

.cd-about-col-left {
  position: relative;
  z-index: 1;
  padding-right: 6vw;
}

.cd-about-title {
  font-family: "SuperBlue", serif;
  font-weight: 400;
  color: #625756;
  line-height: 1.33;
  padding: 5vw 0 1.5vw 0;
  opacity: 0;
  transform: translateX(-20px);
  animation: cdFadeInLeft 0.7s ease 0.2s forwards;
}

.cd-about-intro {
  font-family: "SuperBlue", serif;
  color: #625756;
  line-height: 1.25;
  margin: 0 0 1.5vw 0;
  opacity: 0;
  animation: cdFadeInLeft 0.7s ease 0.35s forwards;
}

.cd-about-col-left .details {
  margin-bottom: 2vw;
}

.cd-about-col-left .details .vce-single-image-container.full-width .vce-single-image-figure-inner {
  width: 13.5vw !important;
}
@media (max-width: 768px) {
  .cd-about-col-left .details .vce-single-image-container.full-width .vce-single-image-figure-inner {
    width: 200px !important;
  }
}
.cd-about-col-left .details .vce-single-image-container.full-width img {
  width: 100%;
  height: auto;
}

.btn-action-brown {
  display: inline-flex;
  align-items: center;
  padding: 0.8vw 1.7vw;
  background: #625756;
  color: #ffffff !important;
  font-family: "SuperBlue", serif;
  font-weight: 400;
  border-radius: 50px;
  text-decoration: none !important;
  transition: all 0.3s ease;
}
.btn-action-brown:hover {
  background: #4c4443;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(98, 87, 86, 0.3);
}

.horaire table {
  width: 100%;
  border-collapse: collapse;
  font-family: "Manrope", sans-serif;
}
.horaire td {
  color: #625756;
  vertical-align: top;
  font-weight: 400;
}

.cd-about-right {
  position: relative;
  z-index: 1;
}

.cd-team-circles {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  padding-left: 0;
  padding-bottom: 3vw;
}

.cd-team-circle-item {
  margin-left: -1.5vw;
  position: relative;
  transition: all 0.3s ease;
  cursor: pointer;
}
.cd-team-circle-item:first-child {
  margin-left: 0;
  z-index: 1;
}
.cd-team-circle-item:nth-child(1) {
  z-index: 1;
}
.cd-team-circle-item:nth-child(2) {
  z-index: 2;
}
.cd-team-circle-item:nth-child(3) {
  z-index: 3;
}
.cd-team-circle-item:nth-child(4) {
  z-index: 4;
}
.cd-team-circle-item:hover {
  z-index: 10;
}
.cd-team-circle-item img {
  width: 10.2vw;
  height: 10.2vw;
  object-fit: cover;
  object-position: top center;
  display: block;
  transition: transform 0.3s ease;
}
.cd-team-circle-item:hover img {
  transform: scale(1.05);
  border-color: #C58E80;
}

.cd-about-text {
  opacity: 0;
  animation: cdFadeIn 0.8s ease 0.4s forwards;
}
.cd-about-text .vce-text-block-wrapper p {
  font-family: "Manrope", sans-serif;
  color: #383839;
  line-height: 1.38;
  margin-bottom: 0.8vw;
}
.cd-about-text .vce-text-block-wrapper p:last-child {
  margin-bottom: 0;
}
.cd-about-text .vce-text-block-wrapper p strong {
  font-weight: 700;
}

@keyframes cdFadeInLeft {
  from {
    opacity: 0;
    transform: translateX(-20px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes cdFadeIn {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
/* ============================================================
   SERVICES SECTION
   ============================================================ */
.cd-service-col > .vce-col-inner {
  padding: 6.5vw 9vw !important;
}

.cd-title-service {
  font-family: "SuperBlue", serif;
  font-weight: 400;
  color: #625756;
  text-align: center;
  margin: 0 0 0.8vw 0;
  padding: 0;
  line-height: 1.1111;
  max-width: 513px;
  margin-left: auto;
  margin-right: auto;
}

.cd-text-service {
  font-family: "Manrope", sans-serif;
  color: #383839;
  line-height: 1.25;
  text-align: center;
  max-width: 670px;
  margin: 0 auto 3.4vw;
}

.cd-service-card {
  margin-bottom: 3vw;
}
.cd-service-card > .vce-col-inner {
  padding: 0 !important;
  border-radius: 40px;
  overflow: hidden;
  background: #F3F1ED;
  transition: all 0.35s ease;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.cd-service-card:hover > .vce-col-inner {
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.12);
  transform: translateY(-6px);
}
.cd-service-card h3 {
  line-height: 1.14;
  text-align: left;
  color: #625756;
  margin: 0 0 0.6vw 0;
  font-family: "SuperBlue", serif;
  margin-top: 0;
  z-index: 555;
  position: relative;
  background-color: #F4F3EF;
  max-width: 16vw;
  padding: 0.5vw 2.8vw;
  margin-bottom: -4.5vw;
  transform: translateY(-4.5vw);
}

.cd-img-service {
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
}
.cd-img-service .vce-single-image-figure-inner {
  width: 100% !important;
  border-radius: 0 !important;
}
.cd-img-service img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform 0.5s ease;
}
.cd-service-card:hover .cd-img-service img {
  transform: scale(1.05);
}

.cd-desc-service {
  font-family: "Manrope", sans-serif;
  color: #625756;
  line-height: 1.38;
  margin: 0;
  flex-grow: 1;
  padding: 1.2vw 2.8vw 1.3vw;
  margin-bottom: 1.0416666667vw;
}

.cd-service-col > .vce-col-content > .vce-text-block {
  text-align: center;
  margin-top: 2.5vw;
}

.btn-services,
.cd-service-col a.btn-services {
  display: inline-flex;
  align-items: center;
  padding: 0.7vw 2vw;
  background: transparent;
  color: #242424 !important;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  border: 2px solid #242424;
  border-radius: 50px;
  text-decoration: none !important;
  transition: all 0.3s ease;
}
.btn-services:hover,
.cd-service-col a.btn-services:hover {
  background: #242424;
  color: #ffffff !important;
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(36, 36, 36, 0.2);
}

.cd-service-card {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease, transform 0.6s ease, box-shadow 0.35s ease;
}
.cd-service-card.cd-visible {
  opacity: 1;
  transform: translateY(0);
}
.cd-service-card:nth-child(1) {
  transition-delay: 0.1s;
}
.cd-service-card:nth-child(2) {
  transition-delay: 0.25s;
}
.cd-service-card:nth-child(3) {
  transition-delay: 0.4s;
}

/* ============================================================
   GALLERY
   ============================================================ */
.cd-txt-gallery {
  padding: 8vw 28vw 3.5vw;
}
.cd-txt-gallery h2 {
  padding-bottom: 1vw;
}
@media (max-width: 1200px) {
  .cd-txt-gallery {
    padding: 8vw 21vw 3.5vw;
  }
}

.cd-gallery-slider {
  position: relative;
  padding-bottom: 14vw;
  overflow: hidden;
}
.cd-gallery-slider .vce-row-content .vce-single-image-inner {
  max-width: none !important;
  position: unset !important;
}
.cd-gallery-slider .vce-row-content .vce-single-image-inner img {
  display: block;
  width: 97% !important;
  margin: 0 auto;
}
.cd-gallery-slider .cd-slider-prev,
.cd-gallery-slider .cd-slider-next {
  position: absolute;
  bottom: -5.5vw;
  width: 2.2vw;
  height: 2.2vw;
  min-width: 36px;
  min-height: 36px;
  border-radius: 50%;
  border: 4px solid #BF9F94;
  background: transparent;
  color: #BF9F94;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  z-index: 10;
}
.cd-gallery-slider .cd-slider-prev:hover,
.cd-gallery-slider .cd-slider-next:hover {
  background: #242424;
  color: #ffffff;
}
.cd-gallery-slider .cd-slider-prev {
  left: calc(50% - 2.6vw);
}
.cd-gallery-slider .cd-slider-next {
  left: calc(50% + 0.4vw);
}

/* ============================================================
   APPOINTMENT
   ============================================================ */
.cd-appoint-section {
  padding: 10vw 5vw 9vw 14vw;
}
.cd-appoint-section h2 {
  padding-bottom: 1.2vw;
}
@media (max-width: 768px) {
  .cd-appoint-section h2 {
    padding-bottom: 20px;
  }
}
.cd-appoint-section a {
  margin-top: 1.3vw;
}
@media (max-width: 768px) {
  .cd-appoint-section a {
    margin-top: 20px;
  }
}
@media (max-width: 1200px) {
  .cd-appoint-section {
    padding: 10vw 5vw 9vw 8vw;
  }
}
@media (max-width: 768px) {
  .cd-appoint-section {
    padding: 25px 6vw 5vw !important;
  }
}

/* ============================================================
   URGENCE
   ============================================================ */
.cd-urgence-section {
  padding: 4.5vw 16vw 10vw 17vw;
}
@media (max-width: 1200px) {
  .cd-urgence-section {
    padding: 4.5vw 10vw 10vw;
  }
}
@media (max-width: 768px) {
  .cd-urgence-section {
    padding: 4vw 6vw 5vw !important;
  }
}

.cd-urgence-title-wrapper .vce-text-block-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.2vw;
  padding-left: 15vw;
  padding-right: 5vw;
  margin-bottom: 4.5vw;
}

.cd-deco-tooth-urgence {
  width: 9.5vw;
  height: auto;
  flex-shrink: 0;
}

/* ============================================================
   CONTACT FORM 7
   ============================================================ */
.wpcf7 p {
  margin: 0;
  padding-bottom: 0;
}
.wpcf7 br {
  display: none;
}
.wpcf7 label {
  font-family: var(--cd-font-body);
  font-weight: 400;
  color: var(--cd-text);
  display: block;
  margin-bottom: 1.2vw;
}
@media (max-width: 768px) {
  .wpcf7 label {
    margin-bottom: 15px;
  }
}
.wpcf7 .wpcf7-form-control-wrap {
  display: block;
  margin-top: 0.8vw;
}
@media (max-width: 768px) {
  .wpcf7 .wpcf7-form-control-wrap {
    margin-top: 15px;
  }
}
.wpcf7 input[type=text],
.wpcf7 input[type=email],
.wpcf7 input[type=tel] {
  width: 100%;
  height: 2.6vw;
  min-height: 42px;
  padding: 0 1vw;
  font-family: var(--cd-font-body);
  color: var(--cd-dark);
  background: #ffffff;
  border: none;
  border-radius: 25px;
  box-shadow: none;
  outline: none;
  transition: var(--cd-transition);
  box-sizing: border-box;
}
@media (max-width: 768px) {
  .wpcf7 input[type=text],
  .wpcf7 input[type=email],
  .wpcf7 input[type=tel] {
    height: 30px;
    min-height: 40px;
    padding: 0 15px;
  }
}
.wpcf7 input[type=text]:focus,
.wpcf7 input[type=email]:focus,
.wpcf7 input[type=tel]:focus {
  border: 1.5px solid var(--cd-primary);
  box-shadow: 0 0 0 3px rgba(132, 153, 148, 0.15);
}
.wpcf7 input[type=text]::placeholder,
.wpcf7 input[type=email]::placeholder,
.wpcf7 input[type=tel]::placeholder {
  color: var(--cd-text-light);
}
.wpcf7 textarea.wpcf7-textarea {
  width: 100%;
  height: 6.5vw;
  padding: 0.7vw 1vw;
  font-family: var(--cd-font-body);
  color: var(--cd-dark);
  background: #ffffff;
  border: none;
  border-radius: 25px;
  outline: none;
  resize: vertical;
  transition: var(--cd-transition);
  box-sizing: border-box;
}
@media (max-width: 768px) {
  .wpcf7 textarea.wpcf7-textarea {
    height: 30vw;
    padding: 15px;
  }
}
.wpcf7 textarea.wpcf7-textarea:focus {
  border: 1.5px solid var(--cd-primary);
  box-shadow: 0 0 0 3px rgba(132, 153, 148, 0.15);
}
.wpcf7 input[type=submit].wpcf7-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.7vw 2.5vw;
  background: var(--cd-brown);
  color: #ffffff;
  font-family: var(--cd-font-body);
  font-weight: 600;
  border: none;
  border-radius: var(--cd-radius-full);
  cursor: pointer;
  transition: var(--cd-transition);
  margin-top: 0.4vw;
}
@media (max-width: 768px) {
  .wpcf7 input[type=submit].wpcf7-submit {
    padding: 15px 30px;
    margin-top: 20px;
    display: block;
    margin-left: auto;
    margin-right: auto;
  }
}
.wpcf7 input[type=submit].wpcf7-submit:hover {
  background: var(--cd-brown-dark);
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(98, 87, 86, 0.3);
}
.wpcf7 .wpcf7-spinner {
  margin-left: 10px;
}
.wpcf7 .wpcf7-response-output {
  margin-top: 0.8vw;
  padding: 0.6vw 0.8vw;
  border-radius: 8px;
  font-family: var(--cd-font-body);
  border: none !important;
}
.wpcf7 .wpcf7-response-output.wpcf7-mail-sent-ok {
  background: #d4edda;
  color: #155724;
}
.wpcf7 .wpcf7-response-output.wpcf7-mail-sent-ng, .wpcf7 .wpcf7-response-output.wpcf7-validation-errors {
  background: #f8d7da;
  color: #721c24;
}
.wpcf7 .wpcf7-not-valid {
  border: 1.5px solid #e53e3e !important;
}

.c-appointment-form_label-firstname {
  display: block;
  width: 100%;
}

.cd-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1vw;
  margin-bottom: 0;
}

.cd-txt-form {
  padding-top: 1.5vw;
}

.contact-form {
  padding: 1.8vw 1.5vw 1vw 1.5vw;
}

.cd-content-section.cd-contact {
  padding: 1.19vw 21.66vw 3.64vw;
}
@media (max-width: 1200px) {
  .cd-content-section.cd-contact {
    padding-left: 17vw;
    padding-right: 17vw;
  }
}

.cd-infos-contact {
  padding: 0 21.66vw 5vw;
}
@media (max-width: 1200px) and (min-width: 769px) {
  .cd-infos-contact {
    padding-left: 17vw;
    padding-right: 17vw;
  }
}
@media (max-width: 768px) {
  .cd-infos-contact {
    padding: 0 6vw 6vw;
  }
}
.cd-infos-contact .cd-img-clinic img {
  border-radius: 40px;
}

.cd-services-list h3 {
  font-family: "SuperBlue", serif;
  font-size: clamp(1rem, 1.25vw, 1.5rem);
  color: #BF9F94;
  margin-bottom: 1vw;
  font-weight: 700;
}
.cd-services-list ul {
  list-style: none;
  padding: 0;
  margin: 0;
  padding-bottom: 1.71vw;
}
.cd-services-list ul li {
  font-family: "Manrope", sans-serif;
  font-size: clamp(0.875rem, 0.94vw, 1.125rem);
  color: var(--cd-text);
  padding: 0.2vw 0;
  display: flex;
  align-items: center;
  font-weight: 700;
}
.cd-services-list ul li::before {
  content: "›";
  color: #383839;
  font-size: clamp(0.875rem, 0.94vw, 1.125rem);
  font-weight: 700;
  padding-right: 1.1vw;
}
.cd-services-list ul li a {
  color: inherit;
  text-decoration: none;
  transition: color 0.3s ease;
}
.cd-services-list ul li a:hover {
  color: var(--cd-accent);
}
.cd-services-list ul li:last-child {
  border-bottom: none;
}

.cd-qst {
  padding-bottom: 2.44vw;
}

.cd-urgence-text {
  padding: 11.61vw 16.51vw 8.33vw 6.77vw;
}
@media (max-width: 768px) {
  .cd-urgence-text {
    padding: 8vw 6vw;
  }
}
.cd-urgence-text h2 {
  color: white;
}
.cd-urgence-text p {
  padding-bottom: 2.08vw;
}

.cd-map-section {
  padding: 6.25vw 21.66vw 7.81vw;
}
@media (max-width: 1200px) and (min-width: 769px) {
  .cd-map-section {
    padding-left: 17vw;
    padding-right: 17vw;
  }
}
@media (max-width: 768px) {
  .cd-map-section {
    padding: 8vw 6vw;
  }
}
.cd-map-section h3 {
  font-family: "SuperBlue", serif;
  font-size: clamp(1rem, 1.5625vw, 1.875rem);
  color: #BF9F94;
  margin-bottom: 1vw;
}
@media (max-width: 768px) {
  .cd-map-section h3 {
    margin-bottom: 2vw;
  }
}
.cd-map-section .cd-txt1 {
  padding-bottom: 2.6vw;
}
.cd-map-section .cd-txt2 {
  padding-bottom: 2.08vw;
}
.cd-map-section #map1 {
  border-radius: 40px;
}
/*# sourceMappingURL=../css/style.css.map */
