/* styles.css de Blue – placeholder */

body {
}

/* ==== BASE ==== */

:where(.wp-site-blocks *:focus) {
  outline-width: 0px;
  outline-style: solid;
}
:where(figure) {
  margin: 0;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 50px;
}

/* ==== UTILITAIRES ==== */
.gr_rad           { border-radius: 0px; }
.gr_shdow,
.gr_bloc_shdow    {
  box-shadow: rgba(0, 0, 0, 0.1) 0px 20px 25px -5px,
              rgba(0, 0, 0, 0.04) 0px 10px 10px -5px;
}
.gr_pos_rel       { position: relative; }
.gr_pos_abs       { position: absolute; }
.gr_ov_hid        { overflow: hidden; }




/* ------------slider hp--------------- */
/* ------------------------------- */
/* Banner rotative pour .gr_acc_ban */
.wp-block-cover.gr_acc_ban {
  position: relative;
  overflow: hidden;
}

/* Calques d'image gérés par le JS pour le crossfade */
.gr_acc_ban_layer {
  position: absolute;
  inset: 0;
  z-index: 0; /* sous le dégradé et le contenu */
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  opacity: 0;
  transition: opacity 900ms ease;
  pointer-events: none;
}

/* Dégradé au-dessus des images (top -> transparent à ~80%) */
.wp-block-cover.gr_acc_ban > .wp-block-cover__background {
  position: absolute; /* recouvre toute la bannière */
  inset: 0;
  z-index: 1; /* au-dessus des images, sous le contenu */
  background: linear-gradient(180deg, rgba(47,50,54,0.9) 0%, rgba(47,50,54,0) 80%);
  pointer-events: none;
}

/* Le contenu reste tout en haut */
.wp-block-cover.gr_acc_ban > .wp-block-cover__inner-container {
  position: relative;
  z-index: 2;
}

/* Source masquée si jamais pas déjà masquée par l’éditeur */
.gr_acc_ban_sources { display: none !important; }




/* Banière plein écran stricte */
.wp-block-cover.gr_acc_ban{
  width: 100%;
  min-height: 100svh; /* viewport “small” fiable mobile */
  /* si tu veux FORCER exactement la hauteur écran, remplace min-height par: */
  /* height: 100svh; */
  padding: 0; /* évite que des paddings globaux ne décalent la hauteur visuelle */
}

/* Fallbacks/compatibilité */
@supports (height: 100dvh) {
  .wp-block-cover.gr_acc_ban{
    min-height: 100dvh; /* ou height:100dvh si tu forces */
  }
}

/* Centre le contenu sur toute la hauteur */
.wp-block-cover.gr_acc_ban > .wp-block-cover__inner-container{
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

/* (Optionnel) neutralise les spacers internes dans la bannière */
.wp-block-cover.gr_acc_ban .wp-block-spacer{
  height: 0 !important;

}
.wp-block-cover.gr_acc_ban { background-color: #2f3236; }
/* ------------slider hp off--------------- */
/* ------------------------------- */




/* ==== NAVIGATION ==== */

.gr_nav_abs {
  position: absolute;
  top: 0;
  z-index: 900;
  width: 100%!important;
  background-color: transparent;
  transition: background-color 0.3s ease;
}
 .gr_menu {
  z-index: 900;
} 
/*===== f7f7f70a ======*/
.gr_sticky-nav {
  background-color: transparent;
    color: var(--wp--preset--color--accent-6);
  transition: background-color 0.4s ease, color 0.4s ease;
}
.gr_sticky-nav a {
  color: var(--wp--preset--color--base);
  transition: color 0.4s ease;
}

/* Variant 2: sticky nav with white default (pre-scroll) */
.gr_sticky-nav-cust2 {
  color: var(--wp--preset--color--base);
  transition: background-color 0.4s ease, color 0.4s ease;
}
.gr_sticky-nav-cust2 a {
  color: var(--wp--preset--color--base);
  transition: color 0.4s ease;
}
.gr_sticky-nav.fixed,
.gr_sticky-nav-cust2.fixed {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  color: var(--wp--preset--color--accent-2);
  background-color: var(--wp--preset--color--contrast); 
  transition: background-color 0.4s ease, color 0.4s ease;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}
.gr_sticky-nav.fixed a,
.gr_sticky-nav-cust2.fixed a {
  color: var(--wp--preset--color--accent-2)
 
}
.gr_bt_c1,
.gr_bt_c1 a {
  color: var(--wp--preset--color--base)!important;
}
/* display:none; display: block; */
/* ==== nav soulignement luxe animation ==== */

.gr_nav_h a {
  position: relative;
  display: inline-block;
  text-decoration: none;
  overflow: hidden;
}

.gr_nav_h a::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: -100%;
  width: 100%;
  height: 2px; /* Épaisseur du soulignement */
  background-color: var(--wp--preset--color--base); /* Couleur du soulignement */
  transition: left 0.5s ease-in-out;
}

.gr_nav_h a:hover::before {
  left: 0;
  background-color: var(--wp--preset--color--accent-2);
}
/* fin animation soulignement luxe */

/* ==== BOUTONS ==== */
.wp-element-button,
.wp-block-button__link,
.gr_bt {
  transform: scale(1);
  transition: background-color 0.7s ease, color 0.7s ease, transform 0.7s ease;
  border: 1px solid var(--wp--preset--color--accent);
}
.wp-element-button:hover,
.wp-block-button__link:hover,
.gr_bt:hover {
  color: var(--wp--preset--color--base) !important;
  background-color: var(--wp--preset--color--accent-2) !important;
  transform: scale(1);
  border: 1px solid var(--wp--preset--color--accent) !important;
  transition: transform 0.7s ease-in-out, background-color 0.7s ease, color 0.7s ease, border-color 0.7s ease;
}
/* Bouton luxe hover */
 .gr_bt_h a,
.wp-block-button__link {
  position: relative;
  display: inline-block;
  overflow: hidden;
  transition: color 0.3s ease-in-out;
}
.gr_bt_h a::before,
.wp-block-button__link::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background-color: var(--wp--preset--color--accent-2);
  transition: left 0.5s ease-in-out;
  z-index: -1;
}
.gr_bt_h a:hover::before,
.wp-block-button__link:hover::before {
  left: 0;
}
.gr_bt_h a:hover,
.wp-block-button__link:hover {
  color: var(--wp--preset--color--base)!important;
}
/* Hover luxe : fond glissant */
.gr_bt_h a:hover::before,
.gr_bt_h .wp-block-button__link:hover::before {
  left: 0;
}

/* Hover luxe : texte blanc */
.gr_bt_h a:hover,
.gr_bt_h .wp-block-button__link:hover {
  color: var(--wp--preset--color--base)!important;
}


.gr_bt_cards {
    transform: scale(1);
  transition: background-color 0.7s ease, color 0.7s ease, transform 0.7s ease;
  border: none!important;
}
.gr_bt_cards:hover {
  border: none!important;
  color: var(--wp--preset--color--base) !important;
  background-color: var(--wp--preset--color--accent-2) !important;
  transform: scale(1);
   transition: transform 0.7s ease-in-out, background-color 0.7s ease, color 0.7s ease, border-color 0.7s ease;
}
/* ==== CARDS & BLOCS ==== */
.gr_pos_bloc {
position:absolute;
width : 100%;
z-index : 900;
}
.gr_pos_bloc1 {
  width: 100%;
  z-index: 700;
  position: relative;
  margin-top: -150px !important;
}
.gr_pos_bloc2 {
width : 100%;
z-index : 700;
 position: relative;
margin-top:-250px!important;
}
.gr_pos_bloc3 {
width : 100%;
z-index : 700;
 position: relative;
margin-top:-125px!important;
}
.gr_pos_bloc4 {
width : 100%;
z-index : 700;
 position: relative;
margin-top:-125px!important;
}
.gr_pos_bloc5  {
width : 100%;
z-index : 700;
 position: relative;
margin-top:-200px!important;
}
/* ==== DIVERS ==== */
.grunion-field-label.consent.consent-explicit {
  font-size: 0.7rem !important;
}
.yoast-breadcrumbs a {
  color: var(--wp--preset--color--contrast-2) !important;
}
.breadcrumb_last {
  font-weight: bold;
}
:where(.wp-site-blocks) > * {
  margin-block-start: 0rem;
  margin-block-end: 0;
}

/*AAAVOIR*/
:where(.wp-site-blocks *:focus-visible){
  outline: 2px solid currentColor;
  outline-offset: 2px;
}
/*AAAVOIR*/
@media (prefers-reduced-motion: reduce){
  html { scroll-behavior: auto; }
  .gr_slider_fse_inner { scroll-behavior: auto; }
}

/* ==== RECAPTCHA ==== */
.grecaptcha-badge {
  visibility: hidden !important;
}

/* ==== SLIDE CUSTOM ==== */
/* --- dot espace haut et bas -- */
.wp-block-cb-carousel-v2[data-cb-pagination="true"] .swiper-horizontal {
  margin-bottom: calc(var(--wp--custom--carousel-block--pagination-bullet-size, 0px) * 0) !important;
}
/* ----- */
/* --- allignement droite et centré -- */
.gr_slide_cus1 .cb-pagination.swiper-pagination-horizontal {
  display: flex;
  justify-content: flex-start;
  bottom: calc(var(--wp--custom--carousel-block--pagination-bullet-size, 8px) * -2.5);
  top: var(--wp--custom--carousel-block--pagination-top, auto);
}

/* Ciblage spécifique mobile */
@media (max-width: 768px) {
  .gr_slide_cus1 .cb-pagination.swiper-pagination-horizontal {
    justify-content: center;
  }
}
/* ==== image en ligne ==== */
.gr_img_dcal img {
  position: relative;
  top: 5px;
  width: 20px!important;
}

/* == formmulaire == */
/* ====== form1 ====== */
/* Conteneur spécifique du formulaire */
.gr_form1_contact-form.gr_form1_form-inline-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 0 auto;
  text-align: center;
}

/* Label */
.gr_form1_form-inline-wrap label {
  color: var(--wp--preset--color--contrast);
  white-space: nowrap;
  margin-bottom: 0;
}

/* Champs texte et téléphone */
.gr_form1_form-inline-wrap .gr_bt_form {
  padding: 12px 16px;
  margin-top: 5px;
  border: none;
  background-color: var(--wp--preset--color--contrast-3);
  color: var(--wp--preset--color--contrast);
  border-radius: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  text-align: center;
}

/* Placeholder */
.gr_form1_form-inline-wrap .gr_bt_form::placeholder {
  color: var(--wp--preset--color--accent);
  opacity: 1;
  text-align: center;
}

/* Bouton */
.gr_form1_form-inline-wrap input[type="submit"].gr_bt_form {
  padding: 12px 24px;
  background-color: var(--wp--preset--color--accent);
  color: var(--wp--preset--color--contrast);
  border: none;
  cursor: pointer;
  transition: background-color 0.3s ease, color 0.3s ease;
}

/* Hover bouton */
.gr_form1_form-inline-wrap input[type="submit"].gr_bt_form:hover {
  background-color: var(--wp--preset--color--accent-2);
  color: var(--wp--preset--color--contrast);
}
/* ====== fin-form1 ====== */
/* ====== form2 ====== */
/* Conteneur spécifique du formulaire 2 */
.gr_form2_contact-form.gr_form2_form-inline-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.75rem;
  margin: 0 auto;
  max-width: 700px;
  text-align: left;
}

/* Label */
.gr_form2_form-inline-wrap label {
  color: var(--wp--preset--color--contrast);
  margin-bottom: 0.25rem;
}

/* Champs texte, email, tel, date, number */
.gr_form2_form-inline-wrap .wpcf7-form-control {
  padding: 12px 16px;
  margin-top: 5px;
  border: 1px solid rgba(247, 247, 247, 0.05); /* bordure semi-transparente */
  background-color: var(--wp--preset--color--contrast-2);
  color: var(--wp--preset--color--contrast);
  border-radius: 0;
  width: 100%;
  box-sizing: border-box;
  text-align: left;
}

/* Placeholder */
.gr_form2_form-inline-wrap .wpcf7-form-control::placeholder {
  color: var(--wp--preset--color--accent);
  opacity: 1;
  text-align: left;
}

/* Checkbox */
.gr_form2_form-inline-wrap .wpcf7-checkbox {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
}

/* Bouton de soumission */
.gr_form2_form-inline-wrap input[type="submit"].gr_bt_form {
  padding: 12px 24px;
  background-color: var(--wp--preset--color--accent);
  color: var(--wp--preset--color--contrast);
  border: none;
  cursor: pointer;
  transition: background-color 0.3s ease, color 0.3s ease;
  margin-top: 1rem;
}

/* Hover bouton */
.gr_form2_form-inline-wrap input[type="submit"].gr_bt_form:hover {
  background-color: var(--wp--preset--color--accent-2);
  color: var(--wp--preset--color--contrast);
}

/* Responsive alignement checkbox */
@media (max-width: 480px) {
  .gr_form2_form-inline-wrap .wpcf7-checkbox {
    align-items: flex-start;
    text-align: left;
  }
}
/* ==== fin form2 ===== */
/* === color calendar === */
.gr_form2_form-inline-wrap input[type="date"] {
  color: var(--wp--preset--color--contrast) !important;
  background-color: var(--wp--preset--color--contrast-2);
  border: 1px solid rgba(247, 247, 247, 0.05);
}

/* Coloriser l’icône calendrier sur WebKit */
.gr_form2_form-inline-wrap input[type="date"]::-webkit-calendar-picker-indicator {
  filter: brightness(0) invert(1);
}


/* ====== formulaire lieux de prière ====== */
.gr_form_lieux {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem 1.25rem;
  max-width: 900px;
  margin: 0 auto;
}



.gr_form_lieux label {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  color: var(--wp--preset--color--contrast-2);
  font-size: 0.95rem;
  line-height: 1.4;
}
.gr_form_lieux h3,
.gr_form_lieux .gr_form_lieux_full > h3,
.gr_form_lieux .gr_form_lieux_full > span {
  color: var(--wp--preset--color--contrast-2);
}

.gr_form_lieux .gr_form_lieux_full > h3 {
  margin: 0 0 0.35rem;
}

.gr_form_lieux .gr_form_lieux_full > span {
  display: block;
  margin-bottom: 0.45rem;
  font-size: 0.95rem;
  line-height: 1.4;
}

.gr_form_lieux label:has(textarea),
.gr_form_lieux p,
.gr_form_lieux .wpcf7-acceptance,
.gr_form_lieux input[type="submit"],
.gr_form_lieux .gr_form_lieux_full {
  grid-column: 1 / -1;
}

.gr_form_lieux .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}

.gr_form_lieux input[type="text"],
.gr_form_lieux input[type="email"],
.gr_form_lieux input[type="tel"],
.gr_form_lieux input[type="url"],
.gr_form_lieux select,
.gr_form_lieux textarea {
  width: 100%;
  padding: 14px 16px;
  border: 1px solid rgba(247, 247, 247, 0.08);
  background-color: var(--wp--preset--color--contrast-2);
  color: var(--wp--preset--color--contrast);
  border-radius: 0;
  box-sizing: border-box;
  transition: border-color 0.3s ease, background-color 0.3s ease;
}

.gr_form_lieux textarea {
  min-height: 150px;
  resize: vertical;
}

.gr_form_lieux input::placeholder,
.gr_form_lieux textarea::placeholder {
  color: var(--wp--preset--color--accent);
  opacity: 1;
}

.gr_form_lieux select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: calc(100% - 18px) calc(50% - 3px), calc(100% - 12px) calc(50% - 3px);
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
}

.gr_form_lieux input:focus,
.gr_form_lieux select:focus,
.gr_form_lieux textarea:focus {
  border-color: var(--wp--preset--color--accent);
  background-color: var(--wp--preset--color--contrast-2);
  outline: none;
}


.gr_form_lieux p {
    margin: 0;
    font-size: 0.8rem;
    line-height: 1.5;
    color: var(--wp--preset--color--contrast-2);
}


.gr_form_lieux .wpcf7-acceptance {
  display: block;
  margin-top: -0.25rem;
}

.gr_form_lieux .wpcf7-acceptance .wpcf7-list-item {
  margin: 0;
}

.gr_form_lieux .wpcf7-acceptance label {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 0.7rem;
  font-size: 0.82rem;
  line-height: 1.45;
}

.gr_form_lieux .wpcf7-acceptance input[type="checkbox"] {
  margin-top: 0.2rem;
}

.gr_form_lieux .gr_bt_form,
.gr_form_lieux input[type="submit"].gr_bt_form {
  width: auto;
  min-width: 220px;
  justify-self: flex-start;
  padding: 14px 28px;
  margin-top: 0.25rem;
  border: 1px solid var(--wp--preset--color--accent);
  background-color: var(--wp--preset--color--accent);
  color: var(--wp--preset--color--contrast);
  cursor: pointer;
}

.gr_form_lieux .gr_bt_form:hover,
.gr_form_lieux input[type="submit"].gr_bt_form:hover {
  background-color: var(--wp--preset--color--accent-2);
  color: var(--wp--preset--color--contrast);
}

.response-message {
  max-width: 900px;
  margin: 1rem auto 0;
}

.response-message .wpcf7-response-output {
  margin: 0;
  padding: 0.9rem 1rem;
  border-width: 1px;
  font-size: 0.9rem;
}

@media (max-width: 782px) {
  .gr_form_lieux {
    grid-template-columns: 1fr;
  }

  .gr_form_lieux .gr_bt_form,
  .gr_form_lieux input[type="submit"].gr_bt_form {
    width: 100%;
    min-width: 0;
    justify-self: stretch;
  }
}

.gr_checkbox_list .wpcf7-list-item {
  display: flex;
  margin: 0;
  width: 100%;
}

.gr_checkbox_list .wpcf7-list-item label {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.45rem;
  width: 100%;
}
.gr_checkbox_list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem 1rem;
  width: 100%;
}


/* ====== carte lieux de prière : correction affichage desktop ====== */
.wp-block-group-is-layout-constrained > .gr_leaflet_map_wrap,
.wp-block-group.has-global-padding.is-layout-constrained > .gr_leaflet_map_wrap {
  width: 100%;
  max-width: 1400px !important;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

.gr_leaflet_map_wrap {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(320px, 0.9fr);
  gap: 1.5rem;
  align-items: start;
}

.gr_leaflet_map_wrap > p {
  display: none !important;
  margin: 0 !important;
}

.gr_leaflet_map_wrap .gr_leaflet_map,
.gr_leaflet_map_wrap .gr_leaflet_map_list {
  min-width: 0;
}

.gr_leaflet_map_wrap .gr_leaflet_map {
  width: 100%;
}

.gr_leaflet_map_wrap .gr_leaflet_map_list {
  width: 100%;
}

@media (max-width: 640px) {
  .gr_checkbox_list {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 1100px) {
  .gr_leaflet_map_wrap {
    grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.95fr);
  }
}

@media (max-width: 900px) {
  .wp-block-group-is-layout-constrained > .gr_leaflet_map_wrap,
  .wp-block-group.has-global-padding.is-layout-constrained > .gr_leaflet_map_wrap {
    max-width: 100% !important;
  }

  .gr_leaflet_map_wrap {
    grid-template-columns: 1fr;
  }
}


