/**
 * Theme Name: Michel Adrian
 * Theme URI:  http://www.micheladrian.com
 * Description: 
 * Author:     Michel Adrian & Christophe Pardo
 * Author URI: http://www.inahya.com
 * Template:   Divi
 * Version:    1.0.0
 * License:    GNU General Public License v2 or later
 * License URI: https://www.gnu.org/licenses/gpl-2.0.html
 * Text Domain: michel-adrian
 * Generated by WPMasterToolKit
 * @link https://wordpress.org/plugins/wpmastertoolkit/
 */


/*
Theme Name: Divi Child
Template: Divi
Description: Child theme styles migrated from Customizer (no Divi Integration)
*/


/* =========================================================
   GENERAL
   ========================================================= */

/* ------------------------------------
   FONTS – Local GDPR-compliant hosting
-----------------------------------------*/  

/* FONTS
   Fonts loaded :
   - Edu NSW ACT Cursive
   - Birthstone
   - Open Sans Condensed
*/

/* Edu NSW ACT Cursive */
@font-face {
  font-family: 'Edu NSW ACT Cursive';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/EduNSWACTCursive-Regular.woff2') format('woff2');
}

/* Birthstone */
@font-face {
  font-family: 'Birthstone';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/Birthstone-Regular.woff2') format('woff2');
}

/* Open Sans Condensed (Light 300) */
@font-face {
  font-family: 'Open Sans Condensed';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('fonts/OpenSansCondensed-Light.woff2') format('woff2');
}

.font-osc { font-family: 'Open Sans Condensed'; }


/* ------------------------------------
   Basic styles
-----------------------------------------*/  

body {
  font-family: 'Edu NSW ACT Cursive', cursive;
  font-weight: 400 !important;
  font-size: 18px;
}

h1 { font-family: 'Birthstone', cursive !important; }

h2, h3, h4 {
  font-family: 'Edu NSW ACT Cursive', cursive;
  margin-bottom: 8px;
}


/* Liens sur fond foncé */

a,
a:visited {
  color: #eef1ef;
  text-decoration: none;
  border-bottom: 1px dotted #eef1ef;
}

a:hover {
  border-bottom: 0px;
}


/* Liens sur fond clair */

.dark-link * a,
.dark-link * a:visited,
.evo_taxlb_contacts * a,    /* Lien dans le detail d'un organisateur */
.evo_taxlb_contacts * a:visited
{
  color: #4b3331!important;
  text-decoration: none;
  border-bottom: 1px dotted #4b3331;
}

.dark-link * a:hover,
.evo_taxlb_contacts * a:hover {
  border-bottom: 0px;
}


/* ------------------------------------
   H2
-----------------------------------------*/  

/* Desktop (≥ 981px) */
h2 { font-size: 30px; line-height: 1.2; }

/* Tablet (980px → 768px) */
@media (max-width: 980px) {
  h2 { font-size: 28px; }
}

/* Mobile (≤ 767px) */
@media (max-width: 767px) {
  h2 { font-size: 24px; }
}


/* ------------------------------------
   Buttons
-----------------------------------------*/  

/* Bouton général */

.et_pb_button.btn-std,
.et_pb_button.btn-std:visited,
body.error404 .txt-404 * a,                /* Page 404 */
body.error404 .txt-404 * a:visited,        /* Page 404 */
form.fluent_form_1 .ff-btn-submit          /* Form fluent */
{
  font-family: 'Open Sans Condensed'!important;
  font-size: 20px!important;
  border: solid 1px #4b3331!important;
  border-radius: 15px 0 15px 0!important;
  background-color: #4b3331!important;
  color: #eef1ef!important;
  padding: 5px 24px!important;
}

.et_pb_button:hover.btn-std,
body.error404 .txt-404 * a:hover,          /* Page 404 */
.form.fluent_form_1 .ff-btn-submit:hover,  /* Form fluent */
.ff-default .ff_btn_style:focus,           /* Form fluent */
.ff-default .ff_btn_style:hover            /* Form fluent */
{
  border: solid 1px #8f482a!important;
  background-color: #8f482a!important;
  border-radius: 0 15px 0 15px!important;
}


/* Formulaire de contact */

.fluent_form_1 button {
  color: #eef1ef !important;
  border-color: #4b3331;  
  font-size: 20px;
  background-color: #4b3331;
}


/* ------------------------------------
   Graphic elements
-----------------------------------------*/  

/* Croix celte avant les H2 */

.et_pb_module h2.croix::before {
  content: "";
  position: relative;
  display: inline-block;
  left: 0;
  background: url('https://dev.micheladrian.com/wp-content/uploads/2025/09/svg-croix-celte-02.svg') no-repeat;
  height: 25px;
  width: 25px;
  margin-right: 10px;
}


/* Scroll progress bar (structure wrapper + bar) */

#scroll-progress-wrap {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: 4px;
  z-index: 9999;
  background: transparent;
}


#scroll-progress-bar {
  width: 0;                /* animé en JS */
  height: 100%;
  background: #4e1e0a;     /* couleur de la barre */
  transition: width 0.2s ease-out;
}


/* Dark roll-over img */

.hover-img:hover {
  filter: brightness(75%);
  transition: filter 0.3s ease;
  cursor: pointer;
}


/* Correction responsive vidéos YouTube dans Divi */

.et_pb_video iframe {
  width: 100% !important;
  aspect-ratio: 16 / 9;
  height: auto !important;
  display: block;
}
.et_pb_video.ratio-4-3 iframe { aspect-ratio: 4 / 3; }
.et_pb_video.ratio-21-9 iframe { aspect-ratio: 21 / 9; }



/* =========================================================
   HEADER
   ========================================================= */

/* ------------------------------------
   Hamburger
-----------------------------------------*/  

#hamburger-btn {
  width: 30px;
  height: 24px;
  z-index: 10040; /* au-dessus du menu */
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  cursor: pointer;
}

#hamburger-btn span {
  display: block;
  height: 3px;
  background: #fff;
  border-radius: 2px;
  transition: 0.3s;
  box-shadow: 0 0 15px #999999;
}

/* Animation croix quand ouvert */

.menu-open #hamburger-btn span:nth-child(1) { transform: translateY(9px) rotate(45deg); }
.menu-open #hamburger-btn span:nth-child(2) { opacity: 0; }
.menu-open #hamburger-btn span:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }


/* ------------------------------------
   Mega menu
-----------------------------------------*/  

/* !!! Manage background color of each column into Section > CSS ! */

#mega-menu {
  position: fixed;
  top: 0;
  right: -100%;                          /* caché à droite par layout (utile si JS absent) */
  width: 800px;                          /* ajuster la largeur */
  height: 100vh !important;
  background: #fff;
  z-index: 10020;
  padding: 0 !important;
  box-shadow: -2px 0 10px rgba(0,0,0,0.15);
  overflow-y: scroll;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(-16px);
  transition:
    opacity .22s ease,
    transform .22s ease,
    visibility 0s linear .22s;
}


/* Ordre des colonnes */

#mega-menu .et_pb_column:first-child {
  order: 1;
  padding: 0 30px 0 30px;
  min-height: auto !important;
}

#mega-menu .et_pb_column:last-child {
  order: 2;
  padding: 160px 60px 0 60px;
  min-height: auto !important;
}


/* Tablette paysage */

@media (min-width: 768px) and (max-width: 1024px) and (orientation: landscape) {
  #mega-menu {
    width: 100%;
    display: flex;
    flex-direction: row; /* 2 colonnes côte à côte */
  }
  #mega-menu .et_pb_row {
    display: flex;
    flex-wrap: nowrap;
    width: 100%;
  }
  #mega-menu .et_pb_column { width: 50%; }
  #mega-menu .et_pb_column:first-child {
    order: 1; padding: 160px 60px 0 60px;
  }
  #mega-menu .et_pb_column:last-child {
    order: 2; padding: 160px 60px 0 60px;
  }
}


/* Tablette portrait */

@media (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {
  #mega-menu { width: 100%; }
  #mega-menu .et_pb_row {
    display: flex;
    flex-direction: column; /* 1 colonne */
  }
  #mega-menu .et_pb_column:first-child {
    order: 1; padding: 160px 60px 0 60px;
  }
  #mega-menu .et_pb_column:last-child {
    order: 2; padding: 160px 60px 0 60px;
  }
}


/* Mobile */

@media (max-width: 767px) {
  #mega-menu { width: 100%; }
  #mega-menu .et_pb_row {
    display: flex;
    flex-direction: column; /* 1 colonne */
  }
  #mega-menu .et_pb_column:first-child {
    order: 2; padding: 20px 30px 0 30px;
  }
  #mega-menu .et_pb_column:last-child {
    order: 1; padding: 100px 20px 0 30px;
  }
}


/* Disable hover styles of button (Divi override) */

body .et_pb_bg_layout_light.et_pb_button:hover,
body .et_pb_bg_layout_light .et_pb_button:hover,
body .et_pb_button:hover {
  /* border-radius: 2px !important; */
  letter-spacing: 0px !important;
}



/* =========================================================
   ULTIMATE FORMS
   Ensemble des formulaires de l'espace personnel
   Login, My account, etc.
   ========================================================= */

.ultimate-form label,
.ultimate-form .um-field-checkbox-state i,
.ultimate-form .um-field-radio-state i,
.ultimate-form .um-field-checkbox-option { color: white !important; }

.ultimate-form .um a.um-button,
.ultimate-form .um a.um-button.um-disabled:active,
.ultimate-form .um input[type=submit].um-button {
  color: #eef1ef !important;
  border-color: #4b3331 !important;
  font-size: 14px;
  text-transform: uppercase !important;
  background-color: #4b3331;
  font-family: 'Open Sans Condensed';
}

.ultimate-form .um .um-button.um-alt:hover,
.ultimate-form .um input[type=submit].um-button.um-alt:hover,
.ultimate-form .um a.um-button.um-disabled:hover,
.ultimate-form .um input[type=submit].um-button:hover,
.ultimate-form .um input[type=submit].um-button:focus {
  color: #FFFFFF !important;
  border-color: #8f482a !important;
  background-image: initial;
  background-color: #8f482a;
}

.ultimate-form a.um-link-alt { color: white !important; border-bottom: none !important; }
.ultimate-form a.um-link-alt:hover { color: white !important; }
.ultimate-form .um-field-block { color: white !important; }


/* ------------------------------------
   Login page
-----------------------------------------*/  

.ultimeate-form .header-content {
    max-width: 100%;
}

.ultimeate-form-login.et_pb_fullwidth_header .et_pb_fullwidth_header_container.center .header-content {
    margin: 20px auto;
    width: 100%;
}
   
@media (min-width: 768px) {
  .ultimeate-form-login .um-2061.um {
    max-width: 450px;
  }
}   



/* =========================================================
   FOOTER
   ========================================================= */

/* FONTS
   Fonts loaded :
   - Edu NSW ACT Cursive
   - Birthstone
   - Open Sans Condensed
*/ 

.color-bg-footer { position: relative; z-index: 0; }
.color-bg-footer::before {
  content: "";
  position: absolute;
  inset: 0; 
  background-color: rgb(68 25 25 / 65%);
  z-index: 1;
  pointer-events: none;
}



/* =========================================================
   HOME PAGE
   ========================================================= */

/* Fullwidth section : headline progressif */

.home-headline {
  color: white;
  opacity: 0;
  white-space: nowrap;
  overflow: hidden;
  width: 0;
  padding-top: 5px !important;
  transition: width 3s linear, opacity 3s ease-in-out;
}

.home-headline.visible {
  opacity: 1;
  width: 300px; /* ajuster si besoin */
}

.home-headline h2 { color: white !important; }


/* Section : Floating words */

.sticky-bg-section { position: relative; }
.sticky-bg-section::before {
  content: "";
  position: sticky;
  display: block;
  z-index: 0;
  top: 0; left: 0;
  width: 100%;
  height: 100vh;
  background: url("/wp-content/uploads/2025/09/simon-wilkes-S297j2CsdlM-unsplash.jpg") center / cover no-repeat;
}

.sticky-bg-section * { position: relative; z-index: 1; }


/* Section : Events */

.color-bg-section-events { position: relative; z-index: 0; }
.color-bg-section-events::before {
  content: "";
  position: absolute;
  inset: 0; 
  /*background-color: rgb(2 0 33 / 60%);*/
  background-color: rgb(41 41 41 / 60%);
  z-index: 1;
  pointer-events: none;
}


/* Section : Youtube */

.color-bg-section-yt {
  position: relative;
  z-index: 0;
  background-size: 95% 95% !important;
  background-position: right -400px top 0 !important;
}




/* ------------------------------------
   PAGE 404
-----------------------------------------*/  

body.error404 .txt-404 h1,
body.error404 .txt-404 p
{
  text-shadow: black 1px 0 10px!important;
}




/* ------------------------------------
   ESPACE PERSONNEL
-----------------------------------------*/  

.menu-espace-perso * li:not(:first-child) a {
  font-family: 'Open Sans';
  text-transform: uppercase !important;
  font-weight: bold;
}

.menu-espace-perso * li.current-menu-item a {
  color: #8f482a !important;
  border-bottom: dotted 1px #8f482a;
}

/* Page Supports de suivi */

.yt-iframe * .support-titre-section { margin-bottom: 1em !important; }
.yt-iframe * .support-titre { margin-bottom: 0.5em !important; }
.yt-iframe * .support-content { margin-bottom: 1em !important; }





/* =========================================================
   LEGAL PAGES
   ========================================================= */

/* Mentions légales + Politique de confidentialité */

.legal-page * h3:not(:first-child) {
  margin: 1.5em 0 0 0;
}

.legal-page * h4 {
  margin: 1em 0 0 1em;
}

.legal-page * h4 + p {
  margin: 0 0 0 1em;
}

.legal-page * p {
  color: #8f482a;
}




/* =========================================================
   PLUGIN EVENTON
   ========================================================= */

/* Titres foncés pour EventON dans les zones avec classe eventon-dark-title */

.eventon-dark-title .ajde_evcal_calendar .evcal_month_line p {
    color: #4b3331!important;
    font-size: 1.5em;
    margin: 1em 0 0.4em 0;
}

/* ---- EventON custom button colors ---- */

/* Boutons principaux (More, etc.) */
.evcal_btn,
.evcal_evdata_btn,
.evo_get_direction_btn,
.evcal_btn.getdirbtn {
  /* font-family: 'Open Sans Condensed'!important; */
  font-size: 12px!important;
  border: solid 1px #4b3331!important;
  /*border-radius: 15px 0 15px 0!important;*/
  background-color: #4b3331!important;
  color: #eef1ef!important;
  padding: 5px 24px!important;
}

/* Effet au survol */
.evcal_btn:hover,
.evcal_evdata_btn:hover,
.evo_get_direction_btn:hover,
.evcal_btn.getdirbtn:hover {
  border: solid 1px #8f482a!important;
  background-color: #8f482a!important;
  /*border-radius: 0 15px 0 15px!important;*/
}  

/* EventOn Organisateur : bouton Whatsapp */

a.evo_ss.evo_wbg {
  background-color: #25d366!important;
}

a.evo_ss i {
    color: white;
}

a.evo_ss i:hover {
    color: grey;
}

/* EventCard - Fix height of Google map */

.evo_map.evoposr.evoh100p {
  height: 400px!important;
}

@media (min-width: 768px) {
  .evocard_box.gmap {
    height: 400px!important;
  }
}   
   



/* =========================================================
   ADMIN / BUILDER
   ========================================================= */

/* Toujours masquer dans le Visual Builder (filet de sécurité) */

.et-fb-preview #mega-menu,
.et-fb-preview #menu-backdrop,
.et-fb #mega-menu,
.et-fb #menu-backdrop,
.et_fb #mega-menu,
.et_fb #menu-backdrop {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateX(-16px) !important;
}

/* Éviter tout décalage horizontal pendant l’édition */

.et-fb-preview body,
.et-fb body,
.et_fb body { overflow-x: hidden !important; }

/* Option “réduction d’animations” — si vous gardez ce fichier dans le child, c’est OK.
   Si vous remettez des règles dans Divi Options et que ça bloque, retirez ce bloc. */
   
@media (prefers-reduced-motion: reduce) {
  #mega-menu, #menu-backdrop { transition: none !important; }
}


/* =========================================================
   MAIN MENU — Mega-menu off-canvas (droite)
   Pile (z-index croissants) :
   - Header          : 1000
   - Backdrop        : 10010
   - Mega-menu pane  : 10020
   ========================================================== */
   
   
/* Background colors (gradient) for Mega-menu */
/* For Mobile, colors defined in each column of related row */

@media (min-width: 768px) {
  #mega-menu {
    /*background: linear-gradient(to right, #fbf0e0 0%, #fbf0e0 50%, #4b3331 50%, #4b3331 100%)!important;*/
    background: linear-gradient(to right, #bb9762 0%, #bb9762 50%, #e0ede6 50%, #e0ede6 100%) !important;
  }
}   
   

/* Contexte d'empilement du header (Divi) */

.et-l--header{
  position: relative;
  z-index: 1000;
}


/* --- ÉTAT PAR DÉFAUT (AVANT JS) : tout fermé, rien ne capte --- */
/* Backdrop fermé par défaut */

#menu-backdrop{
  position: fixed;
  inset: 0;
  z-index: 10010;                 /* sous le panneau, au-dessus du contenu */
  background: rgba(0,0,0,.4);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity   .28s ease,
    visibility 0s linear .28s;    /* masque la visibilité après le fade-out */
}


/* Panneau fermé par défaut */

#mega-menu {
  position: fixed;
  top: 0;
  right: 0;                       /* ancré au bord droit */
  height: 100vh;
  width: 800px;                   /* adapte selon layout ; 100% en mobile */
  z-index: 10020;                 /* au-dessus du backdrop */
  transform: translateX(100%);    /* hors écran à droite */
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    transform .28s ease,
    opacity   .28s ease,
    visibility 0s linear .28s;    /* masque la visibilité après l’anim */
  will-change: transform, opacity;
}

.mega-menu-left-column {
  display: flex;
  align-items: flex-start;
}


/* --- OUVERTURE PILOTÉE PAR ARIA (source de vérité) --- */

#menu-backdrop[aria-hidden="false"] {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition:
    opacity   .28s ease,
    visibility 0s;                /* visible immédiatement à l’ouverture */
}


#mega-menu[aria-hidden="false"] {
  transform: translateX(0);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition:
    transform .22s ease,
    opacity   .22s ease,
    visibility 0s;                /* visible immédiatement à l’ouverture */
}


/* --- FILET DE SECOURS (si un thème/JS tierce n’a pas mis à jour ARIA) --- */

body.menu-open #menu-backdrop{
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition:
    opacity   .28s ease,
    visibility 0s;
}

body.menu-open #mega-menu{
  transform: translateX(0);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition:
    transform .22s ease,
    opacity   .22s ease,
    visibility 0s;
}


/* --- Sécurité Builder (toujours fermés dans l’éditeur) --- */

.et-fb-preview #mega-menu,
.et-fb #mega-menu,
.et_fb #mega-menu,
.et-fb-preview #menu-backdrop,
.et-fb #menu-backdrop,
.et_fb #menu-backdrop{
  transform: translateX(100%) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}


/* --- Mobile / tablette --- */

@media (max-width: 1024px){
  #mega-menu{ width: 100%; }
}


/* --- Accessibilité : réduire les animations si demandé --- */

@media (prefers-reduced-motion: reduce){
  #menu-backdrop,
  #mega-menu{ transition: none; }
}


/* (Optionnel) Éviter une pile parasite côté page */

#page-container{ position: relative; z-index: 0; }


/* (Optionnel) Bloquer le scroll arrière-plan à l’ouverture */

body.menu-open{ overflow: hidden; }