/* ==========================================================
   Centre de Santé Bernissart — couche design globale (phase 1)
   Chargée par wp-content/novamira-sandbox/site-design.php
   Pour annuler : désactiver ce fichier PHP.
   ========================================================== */

:root {
  --sb-ink: #171717;
  --sb-ink-soft: #4a4d50;
  --sb-accent: #D7F24E;
  --sb-surface: #F6F6F3;
  --sb-line: #deded8;
  --sb-radius: 14px;
  --sb-shadow: 0 1px 2px rgba(23,23,23,.04), 0 8px 24px rgba(23,23,23,.07);
}

/* overflow-x:hidden sur html+body casse position:sticky ; clip garde l'effet sans le bug */
html, body { overflow-x: clip !important; }
body { -webkit-font-smoothing: antialiased; }

/* ---------- Typographie : Fraunces (titres) + Work Sans (texte) ---------- */
.elementor-nav-menu a,
.elementor-nav-menu--dropdown a,
.elementor-icon-box-title,
.elementor-icon-box-title a,
.elementor-icon-list-text,
.elementor-field-group .elementor-field,
.elementor-field-label,
.elementor-button {
  font-family: 'Work Sans', sans-serif !important;
}

/* ---------- Contraste : le citron sert de fond, jamais de texte sur fond clair ---------- */
.elementor-counter .elementor-counter-number-wrapper { color: var(--sb-ink) !important; }
.elementor-counter .elementor-counter-number-wrapper::after {
  content: ""; display: block; width: 40px; height: 4px; margin: 10px auto 0;
  background: var(--sb-accent); border-radius: 2px;
}
.elementor-nav-menu--main .elementor-item.elementor-item-active,
.elementor-nav-menu--main .elementor-item:hover,
.elementor-nav-menu--main .elementor-item:focus { color: var(--sb-ink) !important; }

/* sous-titre « Nos prestations » (accueil) : 36px pour 24px d'interligne -> lignes superposées */
.elementor-element-3f09509b p,
.elementor-element-3f09509b {
  font-size: clamp(17px, 1.6vw, 20px) !important;
  line-height: 1.5 !important;
  color: var(--sb-ink-soft) !important;
}

/* ---------- Boutons ---------- */
.elementor-button {
  border-radius: 999px !important;
  transition: background-color .2s ease, color .2s ease, box-shadow .2s ease !important;
}
.elementor-form .elementor-button[type="submit"] {
  background-color: var(--sb-accent) !important;
  color: var(--sb-ink) !important;
  text-transform: none !important;
  letter-spacing: .01em !important;
  font-weight: 600 !important;
  font-size: 16px !important;
  min-height: 50px;
}
.elementor-form .elementor-button[type="submit"]:hover,
.elementor-form .elementor-button[type="submit"]:focus-visible {
  background-color: var(--sb-ink) !important;
  color: #fff !important;
}

/* ---------- Accessibilité : focus visible ---------- */
a:focus-visible, button:focus-visible, select:focus-visible,
input:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid var(--sb-ink) !important;
  outline-offset: 2px !important;
}

/* ---------- Formulaires ---------- */
.elementor-form .elementor-field-group .elementor-field-textual,
.elementor-form .elementor-select-wrapper select {
  border: 1px solid var(--sb-line) !important;
  border-radius: 10px !important;
  background-color: #fff !important;
  color: var(--sb-ink) !important;
  min-height: 48px;
  padding: 10px 14px !important;
  font-size: 15px !important;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.elementor-form .elementor-field-group .elementor-field-textual:focus,
.elementor-form .elementor-select-wrapper select:focus {
  border-color: var(--sb-ink) !important;
  box-shadow: 0 0 0 3px rgba(215,242,78,.7) !important;
  outline: none !important;
}
.elementor-form .elementor-field-label { font-weight: 600 !important; font-size: 14px !important; color: var(--sb-ink) !important; }
.elementor-form .elementor-field-group { margin-bottom: 14px; }
/* flèche de liste déroulante : l'icône (police eicons) ne se charge plus -> SVG */
.elementor-select-wrapper::before {
  content: "" !important;
  font-family: inherit !important;
  width: 12px; height: 12px;
  right: 16px !important;
  top: 50% !important; transform: translateY(-50%);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' fill='none' stroke='%23171717' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
  pointer-events: none;
}
.elementor-select-wrapper select { padding-right: 40px !important; -webkit-appearance: none; appearance: none; }

/* ---------- Carrousels : flèches surdimensionnées (Elementor 4 + Pro 3.6) ---------- */
.elementor-swiper-button {
  width: 44px !important; height: 44px !important;
  border-radius: 50%;
  background: rgba(255,255,255,.92);
  box-shadow: 0 2px 10px rgba(0,0,0,.15);
  display: flex !important; align-items: center; justify-content: center;
  transition: background-color .2s ease;
}
.elementor-swiper-button:hover { background: var(--sb-accent); }
.elementor-swiper-button svg,
.elementor-swiper-button .e-font-icon-svg {
  width: 18px !important; height: 18px !important;
  fill: var(--sb-ink) !important;
}
.elementor-swiper-button-prev { left: 12px !important; }
.elementor-swiper-button-next { right: 12px !important; }
.elementor-widget-image-carousel .swiper { border-radius: var(--sb-radius); }
.sb-contact-carousel .swiper-slide-image {
  width: 100%; height: clamp(260px, 36vw, 420px); object-fit: cover; border-radius: var(--sb-radius);
}
.elementor-widget-image-carousel .swiper-pagination-bullet-active { background: var(--sb-ink) !important; }

/* ---------- En-tête collant ---------- */
/* le collant doit être sur l'enveloppe OceanWP : #site-header a la même hauteur que l'en-tête */
#transparent-header-wrap {
  position: sticky; top: 0; z-index: 990;
  background: rgba(255,255,255,.96);
  -webkit-backdrop-filter: saturate(1.4) blur(8px);
  backdrop-filter: saturate(1.4) blur(8px);
  transition: box-shadow .2s ease;
}
.admin-bar #transparent-header-wrap { top: 32px; }
body.sb-scrolled #transparent-header-wrap { box-shadow: 0 1px 0 var(--sb-line), 0 6px 20px rgba(23,23,23,.06); }
.elementor-104 .elementor-element-1f49c91c img { max-width: 120px !important; height: auto; transition: max-width .25s ease; }
body.sb-scrolled .elementor-104 .elementor-element-1f49c91c img { max-width: 78px !important; }
.elementor-104 .elementor-column > .elementor-widget-wrap { transition: padding .25s ease; }
body.sb-scrolled .elementor-104 .elementor-column > .elementor-widget-wrap { padding-top: 6px !important; padding-bottom: 6px !important; }

/* menu sur une seule ligne */
@media (min-width: 1025px) {
  .elementor-104 .elementor-nav-menu--main > .elementor-nav-menu { flex-wrap: nowrap !important; }
  .elementor-104 .elementor-nav-menu--main .elementor-item {
    padding-left: 13px !important; padding-right: 13px !important;
    font-size: 16px !important; white-space: nowrap;
  }
}

@media (max-width: 767px) {
  .admin-bar #transparent-header-wrap { top: 0; }
  /* logo plus compact, réseaux sociaux retirés de l'en-tête (présents en pied de page/Contact) */
  .elementor-104 .elementor-element-6692608 { display: none !important; }
  .elementor-104 .elementor-element-1f49c91c img { max-width: 76px !important; }
  .elementor-104 .elementor-element-3c414827,
  .elementor-104 .elementor-element-2e7a75ab { min-height: 0 !important; }
  .elementor-104 .elementor-element-3c414827 > .elementor-widget-wrap,
  .elementor-104 .elementor-element-2e7a75ab > .elementor-widget-wrap { padding-top: 8px !important; padding-bottom: 8px !important; align-content: center; }
  .elementor-104 .elementor-element-1f49c91c { margin: 0 !important; }
}

/* menu mobile : bouton « + » des sous-menus aligné à droite de son lien */
.elementor-nav-menu--dropdown li.menu-item-has-children { display: flex; flex-wrap: wrap; align-items: center; }
.elementor-nav-menu--dropdown li.menu-item-has-children > a { flex: 1; }
.elementor-nav-menu--dropdown li.menu-item-has-children > .sub-menu { flex-basis: 100%; }
.elementor-nav-menu--dropdown .sbz-submenu-toggle {
  min-width: 44px; min-height: 40px; display: inline-flex !important; align-items: center; justify-content: center;
  font-size: 20px !important; margin: 0 !important; padding: 0 !important;
}

/* ---------- Barre d'action mobile (Appeler / Rendez-vous) ---------- */
.sb-mbar, .sb-sheet { display: none; }
@media (max-width: 767px) {
  .sbz-sticky-cta { display: none !important; }
  #scroll-top { bottom: 84px !important; }
  body { padding-bottom: 76px; }
  .sb-mbar {
    display: flex; gap: 10px;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 9998;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
    background: rgba(255,255,255,.97);
    box-shadow: 0 -1px 0 var(--sb-line), 0 -6px 20px rgba(23,23,23,.06);
  }
  .sb-mbar a, .sb-mbar button {
    flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    min-height: 48px; border-radius: 999px;
    font: 600 15px/1 'Work Sans', sans-serif; text-decoration: none; cursor: pointer;
  }
  .sb-mbar__call { background: #fff; color: var(--sb-ink); border: 1.5px solid var(--sb-ink); }
  .sb-mbar__rdv { background: var(--sb-accent); color: var(--sb-ink) !important; border: 1.5px solid var(--sb-accent); }
  .sb-mbar svg { width: 18px; height: 18px; flex: none; }

  .sb-sheet[data-open="true"] { display: block; }
  .sb-sheet {
    position: fixed; inset: 0; z-index: 9999;
    background: rgba(23,23,23,.45);
  }
  .sb-sheet__panel {
    position: absolute; left: 0; right: 0; bottom: 0;
    background: #fff; border-radius: 20px 20px 0 0;
    padding: 20px 16px calc(20px + env(safe-area-inset-bottom));
    font-family: 'Work Sans', sans-serif; color: var(--sb-ink);
  }
  .sb-sheet__title { font: 600 20px/1.2 'Fraunces', serif; margin: 0 0 4px; }
  .sb-sheet__hint { font-size: 14px; color: var(--sb-ink-soft); margin: 0 0 14px; }
  .sb-sheet__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
  .sb-sheet__list a {
    display: flex; justify-content: space-between; align-items: center;
    padding: 14px 16px; border-radius: 12px; background: var(--sb-surface);
    color: var(--sb-ink); text-decoration: none; font-size: 15px;
    gap: 12px; white-space: nowrap;
  }
  .sb-sheet__list a > span { white-space: normal; min-width: 0; }
  .sb-sheet__list a span { color: var(--sb-ink-soft); font-size: 13px; }
  .sb-sheet__list strong { font-weight: 600; }
  .sb-sheet__close {
    margin-top: 12px; width: 100%; min-height: 46px; border-radius: 999px;
    background: transparent; border: 1px solid var(--sb-line); font: 500 15px 'Work Sans', sans-serif; color: var(--sb-ink);
  }
}

/* ---------- Page Contact ---------- */
/* bandeau : titre lisible sur la photo */
.elementor-element-868580c { position: relative; isolation: isolate; }
.elementor-element-868580c::after {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: linear-gradient(90deg, rgba(23,23,23,.62) 0%, rgba(23,23,23,.25) 60%, rgba(23,23,23,.05) 100%);
}
.elementor-element-868580c > *:not(.elementor-absolute) { position: relative; z-index: 1; }
.elementor-element-0c8dcdd {
  position: absolute !important; z-index: 1;
  left: max(16px, 8vw) !important; right: 16px !important; top: 50% !important;
  transform: translateY(-50%); width: auto !important; margin: 0 !important;
}
.elementor-element-0c8dcdd .elementor-heading-title {
  color: #fff !important; text-align: left !important;
  font-size: clamp(40px, 7vw, 72px) !important; line-height: 1.05 !important;
}

/* coordonnées en cartes */
.elementor-element-9fe968f .elementor-icon-list-items { display: grid; gap: 10px; }
.elementor-element-9fe968f .elementor-icon-list-item {
  margin: 0 !important; padding: 14px 16px !important;
  background: var(--sb-surface); border-radius: 12px;
  transition: background-color .15s ease;
}
.elementor-element-9fe968f .elementor-icon-list-item::after { display: none !important; }
.elementor-element-9fe968f .elementor-icon-list-item:hover { background: #eeeee8; }
.elementor-element-9fe968f .elementor-icon-list-item a { color: var(--sb-ink) !important; }
.elementor-element-9fe968f .elementor-icon-list-text { font-size: 15px !important; color: var(--sb-ink) !important; }

/* formulaire dans une carte */
.elementor-element-47fc636 {
  background: #fff !important; border: 1px solid var(--sb-line);
  border-radius: 18px !important; box-shadow: var(--sb-shadow);
  padding: clamp(20px, 4vw, 36px) !important;
}

/* « avant votre visite » en cartes */
.elementor-element-8601c5b .elementskit-infobox {
  background: #fff !important; border: 1px solid var(--sb-line) !important;
  border-radius: var(--sb-radius) !important; box-shadow: var(--sb-shadow) !important;
  padding: 22px !important; height: 100%;
  text-align: left !important;
}
.elementor-element-8601c5b .elementskit-infobox .elementskit-info-box-title {
  font-size: 18px !important; margin-bottom: 8px !important;
}
.elementor-element-8601c5b .elementskit-infobox .box-body p {
  font-size: 14.5px !important; line-height: 1.6 !important; color: var(--sb-ink-soft) !important;
}

/* carte Google intégrée */
.sb-map-wrap iframe { border-radius: var(--sb-radius); display: block; }

/* ==========================================================
   Phase 2 — accueil : bandeau de confiance + entrée par symptôme
   ========================================================== */

/* ---------- Bandeau de confiance ---------- */
.sb-trust { border-bottom: 1px solid var(--sb-line); }
.sb-trust .elementor-icon-box-wrapper { display: flex !important; align-items: center !important; gap: 14px; text-align: left !important; }
.sb-trust .elementor-icon-box-icon { margin: 0 !important; flex: none; }
.sb-trust .elementor-icon {
  width: 46px; height: 46px; border-radius: 50%;
  background: var(--sb-accent); display: inline-flex !important; align-items: center; justify-content: center;
  font-size: 18px !important; color: var(--sb-ink) !important; padding: 0 !important;
}
.sb-trust .elementor-icon svg { width: 18px !important; height: 18px !important; fill: var(--sb-ink) !important; }
.sb-trust .elementor-icon-box-title { margin: 0 0 2px !important; font-size: 15.5px !important; font-weight: 600 !important; line-height: 1.3 !important; color: var(--sb-ink) !important; }
.sb-trust .elementor-icon-box-title a { color: inherit !important; }
.sb-trust .elementor-icon-box-description { margin: 0 !important; font-size: 13.5px !important; line-height: 1.4 !important; color: var(--sb-ink-soft) !important; }
@media (max-width: 1024px) {
  .sb-trust > .elementor-container { display: grid !important; grid-template-columns: 1fr 1fr; gap: 18px 14px; }
  .sb-trust > .elementor-container > .elementor-column { width: 100% !important; }
}
@media (max-width: 480px) {
  .sb-trust .elementor-icon { width: 40px; height: 40px; }
  .sb-trust .elementor-icon-box-wrapper { flex-direction: column !important; align-items: flex-start !important; gap: 8px; }
}

/* ---------- Entrée par symptôme ---------- */
.sb-symptoms .sb-symptoms__title .elementor-heading-title { font-size: clamp(30px, 4vw, 44px) !important; line-height: 1.1 !important; }
.sb-symptoms .sb-symptoms__intro { color: var(--sb-ink-soft); font-size: 17px; max-width: 640px; }
.sb-symptoms .sb-symptoms__grid > .elementor-container {
  display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 16px;
}
.sb-symptoms .sb-symptoms__grid > .elementor-container > .elementor-column { width: 100% !important; }
.sb-symptoms .sb-symptoms__grid > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 0 !important; height: 100%; }
@media (max-width: 1024px) { .sb-symptoms .sb-symptoms__grid > .elementor-container { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 420px) { .sb-symptoms .sb-symptoms__grid > .elementor-container { gap: 10px; } }

.sb-tile { height: 100%; }
.sb-tile .elementor-widget-container { height: 100%; }
.sb-tile .elementor-icon-box-wrapper {
  position: relative; height: 100%; text-align: left !important;
  background: var(--sb-surface); border: 1px solid transparent; border-radius: var(--sb-radius);
  padding: 22px 22px 48px;
  transition: background-color .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.sb-tile .elementor-icon-box-wrapper::after {
  content: "→"; position: absolute; left: 22px; bottom: 16px;
  font: 600 18px/1 'Work Sans', sans-serif; color: var(--sb-ink); transition: transform .2s ease;
}
.sb-tile:hover .elementor-icon-box-wrapper,
.sb-tile:focus-within .elementor-icon-box-wrapper {
  background: #fff; border-color: var(--sb-line); box-shadow: var(--sb-shadow); transform: translateY(-2px);
}
.sb-tile:hover .elementor-icon-box-wrapper::after { transform: translateX(4px); }
.sb-tile .elementor-icon-box-icon { display: none !important; }
.sb-tile .elementor-icon-box-title { margin: 0 0 6px !important; font: 600 19px/1.25 'Fraunces', serif !important; color: var(--sb-ink) !important; }
.sb-tile .elementor-icon-box-title a { color: inherit !important; text-decoration: none !important; }
/* toute la carte est cliquable */
.sb-tile .elementor-icon-box-title a::before { content: ""; position: absolute; inset: 0; border-radius: var(--sb-radius); }
.sb-tile .elementor-icon-box-description { margin: 0 !important; font-size: 14.5px !important; line-height: 1.5 !important; color: var(--sb-ink-soft) !important; }
@media (max-width: 420px) {
  .sb-tile .elementor-icon-box-wrapper { padding: 16px 14px 40px; }
  .sb-tile .elementor-icon-box-wrapper::after { left: 14px; bottom: 12px; }
  .sb-tile .elementor-icon-box-title { font-size: 17px !important; }
  .sb-tile .elementor-icon-box-description { font-size: 13.5px !important; }
}
.sb-symptoms__more a { color: var(--sb-ink) !important; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--sb-accent); text-decoration-thickness: 3px; }
