/*
Theme Name:Mercurio Material
Theme URI://
Description:
Version:1.0
Author:Sébastien Habsiger
*/

/* ===== Formulaire contact Lignatec ===== */
.lgn-form{
  max-width: 860px;
  margin: 40px auto;
  padding: 24px;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(0,0,0,.06);
}

.lgn-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 18px;
}

.lgn-field label{
  display:block;
  font-weight: 600;
  margin-bottom: 6px;
  color:#1f2937;
}

.lgn-field input,
.lgn-field textarea{
  width: 100%;
  padding: 12px 12px;
  border-radius: 10px;
  border: 1px solid rgba(0,0,0,.42); /* 05/11/2026 : était .16 (1,45:1), contour du champ à 3:1 */
  background: #fff;
  transition: box-shadow .15s ease, border-color .15s ease, transform .05s ease;
  outline: none;
}

.lgn-field textarea{ resize: vertical; min-height: 140px; }

.lgn-field input:focus,
.lgn-field textarea:focus{
  /* 05/11/2026 : focus nettement plus foncé que la bordure ordinaire (était rgba(0,0,0,.35) et une ombre à 8 %) */
  border-color: #1f2937;
  box-shadow: 0 0 0 2px #1f2937;
}

.lgn-span-2{ grid-column: 1 / -1; }

.lgn-actions{
  display:flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 6px;
}

.lgn-btn{
  padding: 12px 18px;
  border-radius: 12px;
  border: 0;
  cursor: pointer;
  font-weight: 700;
  letter-spacing: .2px;
  color: #fff;
  background: #111827;
  transition: transform .05s ease, filter .15s ease;
}

.lgn-btn:hover{ filter: brightness(1.05); }
.lgn-btn:active{ transform: translateY(1px); }

.lgn-help{
  margin: 8px 0 0;
  font-size: 13px;
  color: rgba(0,0,0,.62);
}

.lgn-note{
  margin: 0;
  font-size: 13px;
  color: rgba(0,0,0,.62);
}

.lgn-hidden{ display:none; }

/* Messages */
.message{
  max-width: 860px;
  margin: 16px auto 0;
  padding: 12px 14px;
  border-radius: 12px;
  font-weight: 700;
}
.message.success{
  background: rgba(16, 185, 129, .12);
  border: 1px solid rgba(16, 185, 129, .35);
  color: #065f46;
}
.message.error{
  background: rgba(239, 68, 68, .12);
  border: 1px solid rgba(239, 68, 68, .35);
  color: #7f1d1d;
}
/* 05/11/2026 : message d'envoi et note sur les champs obligatoires en tête du formulaire (contact et,
   depuis la relecture, demande RGPD) */
.lgn-form > .message{ margin: 0 0 16px; }
.lgn-form > .lgn-note,
.wpcf7-form > .lgn-note{ margin-bottom: 16px; }

/* Responsive */
@media (max-width: 720px){
  .lgn-form{ padding: 18px; margin: 18px auto; }
  .lgn-grid{ grid-template-columns: 1fr; }
  .lgn-actions{ justify-content: stretch; }
  .lgn-btn{ width: 100%; }
}

/* ===== Lecteurs vidéo et carte chargés après consentement (tarteaucitron) ===== */
/* Bloc créé par app/lib/lazyload.php : tarteaucitron y place la vignette « Autoriser »
   (à la taille du lecteur, donnée en style), puis l'iframe une fois le service autorisé.
   Fond de la vignette dès l'affichage : le lien de repli n'apparaît pas seul sur fond blanc */
.youtube_player,
.vimeo_player,
.googlemapsembed{
  display: inline-block;
  max-width: 100%;
  vertical-align: top;
  background: #333;
}
/* Lien de repli (avant le passage de tarteaucitron, ou si le script ne s'exécute pas) */
.youtube_player > a,
.vimeo_player > a,
.googlemapsembed > a{
  display: inline-block;
  padding: 10px;
  color: #fff;
  text-decoration: underline;
}
/* Vignette « Autoriser » : marge autour du texte d'information, bouton sur sa propre ligne
   (span. : l'emporte sur tarteaucitron.css, chargée après cette feuille) */
.youtube_player .tac_float,
.vimeo_player .tac_float,
.googlemapsembed .tac_float{
  padding: 10px 16px;
}
span.youtube_player .tac_float .tarteaucitronAllow,
span.vimeo_player .tac_float .tarteaucitronAllow,
span.googlemapsembed .tac_float .tarteaucitronAllow{
  display: table;
  margin: 8px auto 0;
}
.youtube_player iframe,
.vimeo_player iframe,
.googlemapsembed iframe{
  max-width: 100%;
  border: 0;
}
/* Dans un cadre adaptatif (accueil, contact) : le bloc occupe tout le cadre, comme l'iframe */
.su-u-responsive-media-yes > .youtube_player,
.su-u-responsive-media-yes > .vimeo_player,
.su-u-responsive-media-yes > .googlemapsembed{
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100% !important;
  height: 100% !important;
}
/* 13/11/2026 (tarteaucitron 1.37.0, décision T7) : l'iframe créée après l'accord reçoit sa taille en
   pixels dans un attribut style, et non plus dans ses attributs width et height, que la règle des
   iframes de shortcodes.css (largeur et hauteur à 100 %) remplaçait : sans !important, la vidéo ou la
   carte garderait sa taille d'origine au lieu de remplir le cadre adaptatif (accueil, contact) */
.su-u-responsive-media-yes > .youtube_player iframe,
.su-u-responsive-media-yes > .vimeo_player iframe,
.su-u-responsive-media-yes > .googlemapsembed iframe{
  width: 100% !important;
  height: 100% !important;
}
/* Relecture finale du 05/11/2026 : tant que la vignette « Autoriser » est affichée, le cadre adaptatif
   (hauteur nulle, padding-bottom en 16:9 et overflow: hidden de shortcodes.css) grandit avec son texte.
   Sur téléphone ou avec un texte agrandi, le texte et le bouton sortaient du cadre : le bouton de la
   1re vidéo de l'accueil était coupé. Hauteur au moins égale au 16:9 ; après l'accord, l'iframe
   remplace la vignette et le cadre revient en 16:9 */
.su-u-responsive-media-yes:has(> .youtube_player .tac_activate),
.su-u-responsive-media-yes:has(> .vimeo_player .tac_activate),
.su-u-responsive-media-yes:has(> .googlemapsembed .tac_activate){
  height: auto;
  padding-bottom: 0;
}
.su-u-responsive-media-yes > .youtube_player:has(.tac_activate),
.su-u-responsive-media-yes > .vimeo_player:has(.tac_activate),
.su-u-responsive-media-yes > .googlemapsembed:has(.tac_activate){
  position: relative;
  height: auto !important;
  aspect-ratio: 16 / 9;
}

/* ===== Bandeau des cookies (tarteaucitron) ===== */
/* Relecture finale (2) du 05/11/2026 : fixé en bas de l'écran et sans limite de hauteur, le bandeau
   dépassait du haut d'un écran peu haut (320 × 256 px, soit un zoom de 400 % sur un écran de
   1280 × 1024, critère WCAG 1.4.10) : le début de son texte (finalités, tiers) restait hors d'atteinte.
   Hauteur limitée à celle de l'écran, avec défilement interne ; rien ne change quand le bandeau tient
   dans l'écran. « body » : même poids que la règle de theme.css (marges intérieures, box-sizing), qui
   l'emporte sur tarteaucitron.css, chargée en dernier */
body #tarteaucitronRoot #tarteaucitronAlertBig{
  max-height: 100vh;
  max-height: 100dvh;
  overflow-y: auto;
  box-sizing: border-box;
}
/* 13/11/2026 (tarteaucitron 1.37.0, décision T7) : la 1.37.0 donne par défaut au bandeau un fond blanc et
   un texte noir, et passe son texte à 16 px sous 768 px de large. theme.css garde le fond sombre (#181818)
   et le texte blanc de 0,8rem du site, mais ne règle ni le bouton « Politique de confidentialité » du
   bandeau, devenu noir sur ce fond sombre (contraste de 1,2:1), ni la taille du texte sur téléphone
   (bandeau de 429 px de haut au lieu de 307 px à 375 × 812, soit plus de la moitié de l'écran).
   Blanc et 0,8rem, comme avec la 1.9.9 (bandeau de 319 px avec cette règle) */
body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronPrivacyUrl{
  color: #fff;
}
body #tarteaucitronRoot #tarteaucitronAlertBig #tarteaucitronDisclaimerAlert{
  font-size: .8rem;
}
/* 13/11/2026 (tarteaucitron 1.37.0, décision T7 : mêmes textes, mêmes choix) : la 1.37.0 ajoute en bas
   du panneau « Personnaliser » un bouton « Enregistrer », qui refuse les services restés sans réponse
   puis ferme le panneau. Masqué pour garder les choix de la 1.9.9 (tout accepter, tout refuser,
   autoriser ou interdire chaque service, fermer) ; retirer cette règle pour l'afficher */
body #tarteaucitronRoot #tarteaucitronSave{
  display: none;
}

/* ===== Tableau des cookies (politique de confidentialité) ===== */
/* Les noms longs (VISITOR_PRIVACY_METADATA…) se coupent après les « _ » (<wbr> dans la page).
   Petits écrans : un bloc par cookie, chaque valeur précédée de l'intitulé de sa colonne (data-label) ;
   les intitulés du tableau restent lus par les lecteurs d'écran */
@media (max-width: 767.98px){
  .table.lgn-tableau-cookies thead{
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }
  .table.lgn-tableau-cookies tr,
  .table.lgn-tableau-cookies td{
    display: block;
    width: 100%;
  }
  .table.lgn-tableau-cookies tr{
    padding: 8px 0;
    border-top: 1px solid rgba(0,0,0,.16);
  }
  .table.lgn-tableau-cookies td{
    padding: 2px 0;
    border: 0;
  }
  .table.lgn-tableau-cookies td::before{
    content: attr(data-label) " : ";
    font-weight: 700;
  }
}
