/* ===========================================================================
   Ajustements de la copie statique d'Icare Développement.
   Regroupés ici plutôt qu'en ligne dans chaque page : une seule feuille à
   relire, et une seule à modifier.
   Charte relevée dans le CSS du site : vert #B6C92F, vert foncé #5C6618,
   gris #575656, police « Work Sans ».
   =========================================================================== */

:root {
  --icare-vert: #B6C92F;
  --icare-vert-fonce: #5C6618;
  --icare-gris: #575656;
}

/* --- Aucun lien souligné, nulle part --------------------------------------
   Demandé le 2026-09-11. Le !important est nécessaire : l'extension Facebook
   souligne via des sélecteurs à identifiant (#cff a:hover), qu'une règle
   simple ne dépasserait pas.
   Compromis assumé : sans soulignement, un lien au fil du texte ne se
   distingue plus que par sa couleur. Les liens de navigation et les boutons,
   eux, restent évidents. */
a,
a:link,
a:visited,
a:hover,
a:focus,
a:active {
  text-decoration: none !important;
}

/* Cette règle de l'extension Facebook est elle-même en !important et porte une
   spécificité supérieure : il faut la viser nommément. Notre feuille étant
   chargée en dernier, à spécificité égale c'est la nôtre qui l'emporte. */
.sb-elementor-cta-selector span a {
  text-decoration: none !important;
}

/* Le bouton « Voir l'itinéraire » : ni le lien ni son intérieur. */
.icare-carte-lien,
.icare-carte-lien:hover,
.icare-carte-lien:focus,
.icare-carte-lien span {
  text-decoration: none !important;
}

/* --- Page contact : photo | coordonnées | carte -------------------------- */
/* Les coordonnées touchaient la photo. On leur donne de l'air des deux côtés
   et on les centre verticalement entre les deux blocs, qui n'ont pas la même
   hauteur. */
.icare-col-coordonnees > .elementor-widget-wrap {
  padding-left: 20px;
  padding-right: 20px;
  align-content: center;   /* .elementor-widget-wrap est un conteneur flex */
  align-items: center;
}
/* Le bloc est dimensionné sur son contenu, puis centré d'un seul tenant :
   les lignes restent alignées entre elles et l'ensemble respire des deux
   côtés. Une largeur maximale fixe ne centrait rien, car elle dépassait
   l'espace réellement disponible dans la colonne. */
.icare-coord-bloc {
  width: fit-content;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}
.icare-col-coordonnees > .elementor-widget-wrap > .elementor-element {
  width: 100%;
}
.icare-col-photo > .elementor-widget-wrap,
.icare-col-carte > .elementor-widget-wrap {
  align-content: center;
}

@media (max-width: 1024px) {
  .icare-col-coordonnees > .elementor-widget-wrap { padding-left: 24px; padding-right: 24px; }
}
@media (max-width: 767px) {
  .icare-col-coordonnees > .elementor-widget-wrap { padding-left: 0; padding-right: 0; }
}

/* --- Carte : carré, cliquable en entier ----------------------------------- */
.icare-carte {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 3px;
  background: #e9e9e9;
}
.icare-carte iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  /* la carte n'est pas manipulable sur place : tout clic ouvre Google Maps */
  pointer-events: none;
}
.icare-carte-lien {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 16px 12px;
  text-align: center;
  color: #fff;
  font: 600 .92em/1.3 "Work Sans", system-ui, sans-serif;
  text-decoration: none;
  background: linear-gradient(to top, rgba(0,0,0,.55), rgba(0,0,0,0) 45%);
  transition: background .18s ease;
}
.icare-carte-lien:hover,
.icare-carte-lien:focus {
  background: linear-gradient(to top, rgba(0,0,0,.68), rgba(0,0,0,.12));
  text-decoration: none;
}
.icare-carte-lien span {
  display: inline-block;
  padding: 8px 18px;
  background: var(--icare-vert);
  border-radius: 3px;
  color: #fff;
}

/* --- Formulaire de contact ------------------------------------------------ */
#formulaire { padding: 56px 20px 72px; background: #fff; }
#formulaire .icare-form-inner {
  max-width: 860px; margin: 0 auto;
  font-family: "Work Sans", system-ui, sans-serif;
}
#formulaire h2 { font-size: 2em; color: var(--icare-gris); margin: 0 0 8px; font-weight: 600; }
#formulaire .icare-form-intro { color: var(--icare-gris); margin: 0 0 32px; line-height: 1.6; }
#formulaire .icare-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px 24px; }
#formulaire .icare-full { grid-column: 1 / -1; }
#formulaire label { display: block; font-size: .92em; color: var(--icare-gris); margin-bottom: 6px; font-weight: 500; }
#formulaire label .req { color: var(--icare-vert-fonce); }
#formulaire input, #formulaire textarea {
  width: 100%; padding: 12px 14px; border: 1px solid #d8d8d8; border-radius: 3px;
  font: inherit; color: #313131; background: #fff; box-sizing: border-box;
}
#formulaire textarea { min-height: 150px; resize: vertical; }
#formulaire input:focus, #formulaire textarea:focus {
  outline: none; border-color: var(--icare-vert);
  box-shadow: 0 0 0 3px rgba(182, 201, 47, .22);
}
#formulaire .icare-actions { margin-top: 26px; }
#formulaire button {
  background: var(--icare-vert); color: #fff; border: 0; border-radius: 3px;
  cursor: pointer; padding: 14px 42px; font: inherit; font-weight: 600; letter-spacing: .03em;
}
#formulaire button:hover { background: var(--icare-vert-fonce); }
/* champ hors écran : un humain ne le voit ni ne le remplit jamais */
#formulaire .icare-pot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
#formulaire .icare-msg { padding: 16px 18px; border-radius: 3px; margin-bottom: 26px; line-height: 1.5; }
#formulaire .icare-msg.ok { background: #eef5d4; border: 1px solid var(--icare-vert); color: var(--icare-vert-fonce); }
#formulaire .icare-msg.ko { background: #fdecec; border: 1px solid #d98b8b; color: #8a2b2b; }

@media (max-width: 767px) {
  #formulaire .icare-grid { grid-template-columns: 1fr; }
  .icare-carte { aspect-ratio: 4 / 3; }
}

/* --- Sous-menus : survol vert, texte blanc et gras -------------------------
   Le survol par défaut posait un fond gris très sombre, peu lisible.
   Le !important est nécessaire : Elementor cible ces liens avec des sélecteurs
   à quatre classes (.elementor-1308 .elementor-element-XXXX …), qu'une règle
   simple ne dépasserait pas. Ces règles-là n'étant pas en !important, la nôtre
   l'emporte. */
.elementor-nav-menu--dropdown a.elementor-sub-item:hover,
.elementor-nav-menu--dropdown a.elementor-sub-item:focus,
.elementor-nav-menu--dropdown a.elementor-sub-item.highlighted,
.elementor-nav-menu--dropdown a.elementor-sub-item.elementor-item-active:hover {
  background-color: var(--icare-vert) !important;
  color: #fff !important;
  font-weight: 700 !important;
}

/* --- En-tête mobile --------------------------------------------------------
   Les trois pictos de certification (une seule image) restaient calés à gauche
   sous le logo, qui lui est centré. On les centre à leur tour. */
@media (max-width: 900px) {
  /* Le widget ne fait que 45 % de large (réglage Elementor) : centrer le texte
     à l'intérieur ne déplaçait rien, la boîte restait collée à gauche. C'est
     la BOÎTE qu'il faut centrer, par des marges automatiques. */
  .elementor-location-header .elementor-element-589a33d {
    margin-left: auto !important;
    margin-right: auto !important;
    align-self: center;
  }
  .elementor-location-header .elementor-element-589a33d,
  .elementor-location-header .elementor-element-589a33d .elementor-widget-container {
    text-align: center;
  }
  .elementor-location-header .elementor-element-589a33d img {
    margin-left: auto;
    margin-right: auto;
  }
}

/* --- Icônes en SVG ---------------------------------------------------------
   Le site chargeait 4 copies de Font Awesome (213 Ko de CSS + 156 Ko de
   polices) plus la police eicons d'Elementor, pour 17 icônes. Les polices
   sont retirées ; le dessin est maintenant un <svg> glissé DANS le porteur
   d'origine (<i class="fas fa-envelope">), qui conserve sa taille, sa couleur
   et ses marges Elementor.
   1em : l'icône suit la taille de police de son porteur, comme le faisait la
   police d'icônes. -.125em recale la ligne de base. */
.icare-icone {
  width: 1em;
  height: 1em;
  display: inline-block;
  vertical-align: -.125em;
  fill: currentColor;
}
/* Le bouton burger dimensionne son icône en pixels, pas en em. */
.elementor-menu-toggle .icare-icone {
  width: 1em;
  height: 1em;
}

/* --- Titres de la page d'accueil -------------------------------------------
   L'accueil n'avait AUCUNE balise h1..h6 : ses titres de section étaient des
   <span>. Ils sont devenus h1/h2. La classe elementor-heading-title porte
   déjà toute l'apparence — il ne reste qu'à annuler les marges et le poids
   que le thème applique par défaut à h1 et h2, que le span n'avait pas. */
h1.icare-titre,
h2.icare-titre {
  margin: 0;
  padding: 0;
  font: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  color: inherit;
  text-transform: inherit;
}
