/*
Theme Name: Medicora Child
Theme URI: https://medicora.keydesign.xyz/
Description: Doctor & Medical Clinic Elementor WordPress Theme
Author: Key-Design
Author URI: http://themeforest.net/user/Key-Design
Template: medicora
Version: 1.0
License: Envato Standard License
License URI: https://themeforest.net/licenses/standard
Tags: one-column, two-columns, three-columns, four-columns, left-sidebar, right-sidebar, custom-menu, featured-images, flexible-header, post-formats, sticky-post, translation-ready
Text Domain: medicora-child
*/

/* ------------------------------------------------------------------
   Lisibilité — taille du texte courant sur tablette et mobile
   ------------------------------------------------------------------
   medicora-global (global.css) force --font-size-paragraphs à 14px
   sous 1024px, alors que :root déclare 16px. 14px est trop petit
   pour la patientèle du cabinet (migraine photophobe, troubles
   visuels, patients âgés). On rétablit 16px sur les deux paliers.
   ------------------------------------------------------------------ */
@media (max-width: 1024px) {
  body { --font-size-paragraphs: 16px; }
}


/* ------------------------------------------------------------------
   Pied de page — copyright client + crédit agence
   ------------------------------------------------------------------ */
.bp-copyright {
  margin: 0;
  text-align: center;
}

.bp-agency {
  margin: 30px 0 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  font-size: 14px;
  line-height: 1;
}

.bp-agency a {
  text-decoration: none;
}

.bp-agency a:hover,
.bp-agency a:focus-visible {
  text-decoration: underline;
}

/* Coeur — double battement, calqué sur le crédit agence maison */
.bp-heart {
  width: 1em;
  height: 1em;
  flex: none;
  fill: var(--e-global-color-primary, #96C0D0);
  transform-origin: center;
  animation: bp-heartbeat 1.5s ease-in-out infinite;
}

@keyframes bp-heartbeat {
    0% { transform: scale(1); }
   10% { transform: scale(1.28); }
   20% { transform: scale(1); }
   30% { transform: scale(1.22); }
   42% { transform: scale(1); }
  100% { transform: scale(1); }
}

/* Site médical : l'animation est désactivée pour les visiteurs qui
   demandent une réduction des animations (migraine, troubles
   vestibulaires, photosensibilité). Le coeur reste affiché. */
@media (prefers-reduced-motion: reduce) {
  .bp-heart { animation: none; }
}

/* keydesign-framework.css applique « font-size: inherit » sur
   .elementor-widget-text-editor p (spécificité 0,1,1), ce qui écrase
   .bp-agency (0,1,0). On repasse devant avec 0,2,1. */
.elementor-widget-text-editor p.bp-agency {
  font-size: 14px;
}

/* Pied de page — colonne Contact : l'adresse tient sur deux lignes, l'interligne
   par defaut (1.6) les ecartait trop. Cible uniquement cette liste. */
.elementor-element-c0a1b22 .elementor-icon-list-text {
  line-height: 1.3;
}

/* ------------------------------------------------------------------
   Page Contact — position de la carte « Coordonnées »
   ------------------------------------------------------------------
   Le gabarit centre verticalement cette carte sur la carte Google
   (top:50% + translateY(-50%)), ce qui la fait descendre trop bas.
   On l'ancre en haut de la section et on la remonte au niveau du
   titre « Nous joindre ». Le decalage est fixe, donc insensible aux
   variations de hauteur du contenu de la carte.
   Desktop uniquement : sous 1025px la carte se replace dans le flux.
   ------------------------------------------------------------------ */
@media (min-width: 1025px) {
  .elementor-31684 .elementor-element-5a453f4b {
    top: 0;
    transform: translateY(-236px);
  }
}

/* ------------------------------------------------------------------
   Page Contact — recentrage de la carte Google
   ------------------------------------------------------------------
   Le cadre des coordonnees occupe la droite ; le marqueur, centre par
   Google au milieu de l'element, se retrouvait juste derriere. On
   elargit l'element et on le decale a gauche d'autant : le marqueur
   se deplace de la moitie, soit 200px, et se pose au centre de la
   zone degagee. Aucun vide n'apparait a droite.
   Desktop uniquement : sous 1025px le cadre repasse sous la carte.
   ------------------------------------------------------------------ */
@media (min-width: 1025px) {
  .elementor-31684 .kd-google-map {
    width: calc(100% + 400px);
    margin-left: -400px;
  }
}

/* ------------------------------------------------------------------
   Lames bleues d'appel a l'action — survol du bouton
   ------------------------------------------------------------------
   Le theme (button.css) impose --e-global-color-secondary au survol,
   soit le meme bleu que le fond de la lame : le bouton disparaissait.
   On force le blanc, avec le texte en bleu primaire pour le contraste.
   Cible par classe et non par identifiant de widget : la regle survit
   a une recreation de l'element dans Elementor.
   ------------------------------------------------------------------ */
.lame-rdv .kd-button:hover,
.lame-rdv .kd-button:focus-visible {
  background-color: #FFFFFF;
  color: #15172B;
}

.lame-rdv .kd-button:hover .kd-button__label,
.lame-rdv .kd-button:focus-visible .kd-button__label {
  color: #15172B;
}

/* ------------------------------------------------------------------
   Page « Consultations et examens » — alignement des trois cartes
   ------------------------------------------------------------------
   Les descriptions sont de longueurs differentes : sans contrainte,
   titres et boutons se decalent en escalier. On fige la hauteur du
   bloc titre+texte et on centre son contenu verticalement, pour que
   les trois titres et les trois boutons s'alignent. Seuls les blancs
   internes varient.
   ------------------------------------------------------------------ */
@media (min-width: 1025px) {
  .page-cartes-alignees .kd-heading {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 170px;
  }
}

/* ------------------------------------------------------------------
   Complianz — bouton flottant « Gérer le consentement »
   ------------------------------------------------------------------
   Le plugin le place a droite (right: 40px) avec le fond du bandeau
   (blanc) et le texte en gris. On le passe a gauche et aux couleurs
   du site. La regle du plugin est en (1,1,0) : on prefixe par body
   pour passer devant sans recourir a !important.
   L'animation de glissement du plugin agit sur « bottom », elle n'est
   donc pas affectee par le changement d'ancrage horizontal.
   ------------------------------------------------------------------ */
body #cmplz-manage-consent .cmplz-manage-consent {
  right: auto;
  left: 40px;
  background-color: #96C0D0;
  color: #15172B;
  border-color: #96C0D0;
}

body #cmplz-manage-consent .cmplz-manage-consent:hover,
body #cmplz-manage-consent .cmplz-manage-consent:focus-visible {
  background-color: #96C0D0;
  color: #15172B;
}

@media (max-width: 767px) {
  body #cmplz-manage-consent .cmplz-manage-consent {
    left: 16px;
  }
}

/* ------------------------------------------------------------------
   Carte Google — espace réservé avant consentement
   ------------------------------------------------------------------
   Complianz bloque le script de la carte, mais son visuel de
   remplacement ne s'applique qu'aux iframes : ici la carte est un div
   rempli par JavaScript, laissant un vide de 800px avant consentement.
   On s'appuie sur :empty — le conteneur ne contient rien tant que
   Google Maps n'a pas dessine la carte. Des que le script s'execute et
   injecte ses elements, le selecteur cesse de correspondre et le
   remplacement disparait de lui-meme. Aucune classe de Complianz n'est
   requise : le comportement suit l'etat reel du rendu.
   ------------------------------------------------------------------ */
.kd-google-map:empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 24px;
  text-align: center;
  background-color: #EBF7FB;
  color: #15172B;
}

.kd-google-map:empty::before {
  content: "Carte non affichée";
  font-family: "Literata", Georgia, serif;
  font-size: 22px;
  line-height: 1.3;
}

.kd-google-map:empty::after {
  content: "La carte Google est chargée depuis un service tiers. Acceptez les cookies pour l'afficher, ou consultez l'adresse ci-contre.";
  font-family: "Figtree", system-ui, sans-serif;
  font-size: 15px;
  line-height: 1.5;
  max-width: 34ch;
  opacity: 0.8;
}

@media (max-width: 1024px) {
  .kd-google-map:empty::after {
    max-width: 40ch;
  }
}

/* Pied de page, colonne Contact : titres en gras
   « Prise de rendez-vous : » et « Administration : » sont les seules lignes dont le
   texte n'est pas dans un lien : l'adresse et les numeros sont dans un <a>.
   ------------------------------------------------------------------ */
/* specificite superieure a la regle Elementor du pied de page (post-23632.css), qui fixe 500 */
.elementor-23632 .elementor-element.elementor-element-c0a1b22 .elementor-icon-list-item > span.elementor-icon-list-text {
  font-weight: 700;
}

/* Bandeau Consulter le Dr Claes : survol des liens
   Le theme colore les liens survoles de la description en Primary, soit la couleur
   du fond du bandeau : l adresse et le telephone disparaissaient. Ils restent blancs
   et se soulignent. Selecteur plus precis que celui du theme (heading.css).
   ------------------------------------------------------------------ */
.lame-rdv .kd-widget-container .kd-heading .kd-heading__desc a:hover,
.lame-rdv .kd-widget-container .kd-heading .kd-heading__desc a:focus-visible {
  color: #15172B;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Nouvelle couleur #96C0D0 : lisibilite
   Le bleu du site est clair : les textes poses dessus sont a l'encre, les textes et
   survols sur fond clair au « Bleu foncé » du kit (#37697B).
   ------------------------------------------------------------------ */

/* Boutons au style par defaut du theme (fond Primary, texte blanc) */
body .kd-widget-container .kd-button {
  color: #15172B;
}

/* Bandeau de titre des pages hors Elementor (page Cookies) */
.page-header.secondary-background-color.white-text-color *,
.page-header.secondary-background-color.white-text-color a {
  color: #15172B;
}

/* Liens survoles : le theme prend la couleur Primary, illisible sur blanc */
body a:hover {
  color: var(--e-global-color-bleufonce, #37697B);
}

/* Icones des listes sans couleur reglee : le theme prend Primary, trop clair sur fond clair */
body .kd-widget-container .kd-list-item .kd-list-icon {
  color: var(--e-global-color-bleufonce, #37697B);
}
