
/* ==========================================================
   Xavier Vignon – Mosaïque SECTION 2
   Desktop: carré gauche + (rect 2:1 en haut droite) + (2 carrés en bas)
   Mobile:  A A / B B / C D
   Filets via background #5F5C5B (1.5px)
   ========================================================== */

/* Kill le clearfix Divi dans CETTE section seulement */
.et_pb_section_2 .et_pb_row:after,
.et_pb_section_2 .et_pb_row_inner:after { content: none !important; display: none !important; }

/* Visuels & fond-bordures */
.et_pb_section_2 { background:#5F5C5B; padding:0 !important; }
.et_pb_section_2 .difl_hoverbox .df_hb_background { position:absolute; inset:0; background-size:cover; background-position:center; }
.et_pb_section_2 .difl_hoverbox .df_hb_background img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.et_pb_section_2 .difl_hoverbox .df_hb_container,
.et_pb_section_2 .difl_hoverbox .df_hb_background,
.et_pb_section_2 .difl_hoverbox .df_hb_inner { border-radius:0 !important; }

/* ----------------------------------------------------------
   ≥ 981px — Desktop / Laptop
   ---------------------------------------------------------- */
@media (min-width: 981px) {
  .et_pb_section_2 { --gap: 1.5px; }

  /* La ROW est une grille 2 colonnes avec un filet central */
  .et_pb_section_2 .et_pb_row {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: var(--gap);
    align-items: stretch !important;
  }

  /* Colonne GAUCHE (grille cell #1) → on laisse Divi wrapper mais on enlève floats/width */
  .et_pb_section_2 .et_pb_column_3 { width:auto !important; float:none !important; margin:0 !important; padding:0 !important; }

  /* Le module gauche est un carré parfait piloté par la largeur */
  .et_pb_section_2 .difl_hoverbox_0 { aspect-ratio: 1 / 1; height:auto !important; width:100% !important; }
  .et_pb_section_2 .difl_hoverbox_0 .df_hb_container { height:100% !important; }

  /* Colonne DROITE (grille cell #2) = 2 étages + filet horizontal */
  .et_pb_section_2 .et_pb_column_4.et_pb_specialty_column {
    width:auto !important; float:none !important; margin:0 !important; padding:0 !important;
    display: flex !important; flex-direction: column; gap: var(--gap);
  }

  /* Etage HAUT = rectangle 2:1 → hauteur = 50% de la largeur de la colonne droite */
  .et_pb_section_2 .difl_hoverbox_1 { aspect-ratio: 2 / 1; height:auto !important; width:100% !important; }
  .et_pb_section_2 .difl_hoverbox_1 .df_hb_container { height:100% !important; }

  /* Etage BAS = 2 carrés côte à côte + filet central */
  .et_pb_section_2 .et_pb_row_inner_1 { display:flex !important; gap: var(--gap); margin:0 !important; padding:0 !important; }
  .et_pb_section_2 .et_pb_row_inner_1 .et_pb_column_1_4 {
    flex:1 1 50%; display:flex; flex-direction:column;
    width:auto !important; float:none !important; margin:0 !important; padding:0 !important;
  }
  .et_pb_section_2 .difl_hoverbox_2,
  .et_pb_section_2 .difl_hoverbox_3 { aspect-ratio: 1 / 1; height:auto !important; width:100% !important; }
  .et_pb_section_2 .difl_hoverbox_2 .df_hb_container,
  .et_pb_section_2 .difl_hoverbox_3 .df_hb_container { height:100% !important; }
}



/* ----------------------------------------------------------
   ≤ 767px — Mobile (maquette A A / B B / C D)
   ---------------------------------------------------------- */
@media (max-width: 767px) {
  .et_pb_section_2 { --gap: 1px; --scale: clamp(.82, 100vw/1440, 1); }

  /* La ROW devient la grille finale */
  .et_pb_section_2 .et_pb_row {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    grid-template-areas:
      "A A"
      "B B"
      "C D" !important;
    gap: var(--gap) !important;
    align-items: stretch !important;
  }

  /* Wrappers Divi transparents → les modules deviennent les items de grille */
  .et_pb_section_2 .et_pb_row > .et_pb_column,
  .et_pb_section_2 .et_pb_row .et_pb_row_inner,
  .et_pb_section_2 .et_pb_row .et_pb_column_inner {
    display: contents !important;
    width:auto !important; float:none !important; margin:0 !important; padding:0 !important;
  }

  /* Mapping des 4 tuiles */
  .et_pb_section_2 .difl_hoverbox_0 { grid-area: A !important; }
  .et_pb_section_2 .difl_hoverbox_1 { grid-area: B !important; }
  .et_pb_section_2 .difl_hoverbox_2 { grid-area: C !important; }
  .et_pb_section_2 .difl_hoverbox_3 { grid-area: D !important; }

  /* Ratios mobiles : A/B rectangulaires, C/D carrés */
  .et_pb_section_2 .difl_hoverbox_0,
  .et_pb_section_2 .difl_hoverbox_1 { aspect-ratio: 3 / 2 !important; height:auto !important; }
  .et_pb_section_2 .difl_hoverbox_2,
  .et_pb_section_2 .difl_hoverbox_3 { aspect-ratio: 1 / 1 !important; height:auto !important; }
  .et_pb_section_2 .difl_hoverbox .df_hb_container { height:100% !important; }

  /* Typo & paddings qui scale agréablement */
  .et_pb_section_2 .difl_hoverbox .title { line-height:1.1; margin:0; }
  .et_pb_section_2 .difl_hoverbox .content p { font-size: 16px !important; line-height:1.45; margin:.4em 0; }
  .et_pb_section_2 .difl_hoverbox .df_hb_inner { padding: 5px !important; }
  .df_hb_def_content_hover {width:96%!important;}
  
  /****Journal du vin******/
  .blogsSection-0-2-135 {
	  margin-left:0px;
	  padding-top: 50px;
        padding-left: 10px;
		width:100vw;
	  }
  /*.xv-journalduvin .img-0-2-150 {width:420px !important;}*/
  .blogsLink-0-2-141 {padding:0!important; margin-top:-55px!important; margin-bottom:60px;padding-right:50px!important;}

.background-journalduvin {
	width: 700px;
    height: 780px;
    z-index: 0;
    left: -20%;
    top: -5%;
	}

.blogsSection-0-2-135:before {
		width:600px; 
		background:#F5F5F5;
        top: 5%;
        left: 10%;
        width: 100%;
        height: 90%;
    }
	
	
	
	
/*************Le menu*************/

/* ====== Mobile / Tablette ====== */
@media (max-width: 980px) {

	#xavier-modal-menu {overflow:auto;}

	.container-0-2-16 {
		width: 100%;
		margin: auto;
		display: block;
		padding: 0 20px;
		max-width: 1384px;
		margin-top: 0;
		align-items: stretch;
		margin-bottom: 0;
		padding-bottom: 2rem;
	}

	.mainNav-0-2-20 {
		width: 100%;
		padding-top: 1rem;
		padding: 1rem 0 2rem 0;
	}

	.menuItems-0-2-25 {
		margin: 2rem 0;
		padding-left: 0!important;
		list-style: none;
		
	}

	.menuItem-0-2-321 {
		padding: 0 0 28px;
	}
	  
	.aside-0-2-335 {
		width: 100%;
		position: relative;
	}

	.content-0-2-329 {
		height: 100%;
		display: flex;
		z-index: 1;
		position: relative;
		align-items: center;
		flex-direction: column;
		justify-content: center;
	}
		
	


  
}

/* ==========================================================
   Fix Divi clearfix qui cassait la grille de la section mosaïque
   (section .et_pb_section_2 uniquement)
   ========================================================== */
.et_pb_section_2 .et_pb_row:after,
.et_pb_section_2 .et_pb_row_inner:after {
  content: none !important;
  display: none !important;
}



/* ========================================================================== */
/* ≥ 1280px – Desktop large                                                   */
/* ========================================================================== */
@media (min-width: 1024px) {

}

/* ========================================================================== */
/* 981–1279px – Laptop / Desktop standard (breakpoint Divi)                   */
/* ========================================================================== */
@media (min-width: 981px) and (max-width: 1024px) {

}

/* ========================================================================== */
/* 768–980px – Tablette (breakpoint Divi)                                     */
/* ========================================================================== */
@media (min-width: 768px) and (max-width: 980px) {

}

/* ========================================================================== */
/* ≤ 767px – Mobile (breakpoint Divi)                                         */
/* ========================================================================== */
@media (max-width: 767px) {
	.my-slider {height:450px!important;}
	.swiper-position {bottom:0 !important;}
}

/* ========================================================================== */
/* Fixes spécifiques (à compléter selon tes composants)                       */
/* ========================================================================== */




/* ==========================================================
   HEADER mobile/tablette — 3 colonnes égales + svg sans marge
   ========================================================== */
@media (max-width: 980px) {
  /* 3 colonnes = 1/3 chacune pour centrer réellement le logo */
  .et_pb_section_0_tb_header .et_pb_row_0_tb_header {
    display: flex !important;
    align-items: center !important;
    padding: 0 20px !important;
    min-height: 56px;
  }
  .et_pb_section_0_tb_header .et_pb_row_0_tb_header
  > .et_pb_column_0_tb_header,
  .et_pb_section_0_tb_header .et_pb_row_0_tb_header
  > .et_pb_column_1_tb_header,
  .et_pb_section_0_tb_header .et_pb_row_0_tb_header
  > .et_pb_column_2_tb_header {
    flex: 0 0 33.3333% !important;   /* ← parts égales */
    max-width: 33.3333% !important;
    width: 33.3333% !important;
    display: flex !important;
    align-items: center !important;
    margin: 0 !important; padding: 0 !important; float: none !important;
	z-index:99;
  }

  /* gauche : burger aligné à gauche de sa tierce */
  .et_pb_section_0_tb_header .et_pb_column_0_tb_header { justify-content: flex-start; }
  .et_pb_section_0_tb_header .burger-0-2-44 { width: 36px; height: 36px; }

  /* centre : logo vraiment centré */
  .et_pb_section_0_tb_header .et_pb_column_1_tb_header { justify-content: center; }
  .et_pb_section_0_tb_header .et_pb_image_0_tb_header img {
    height: clamp(34px, 10vw, 50px);
    width: auto;
    display: block;
  }

  /* droite : pictos alignés à droite de leur tierce */
  .et_pb_section_0_tb_header .et_pb_column_2_tb_header { justify-content: flex-end; }
  .et_pb_section_0_tb_header .navSecondary-0-2-5 { display:flex; gap:14px; margin:0; padding:0; margin-right:20px!important;margin-bottom: 0 !important; margin-top: 0 !important;}
  .et_pb_section_0_tb_header .navSecondary-0-2-5 .link-0-2-11 { font-size:0 !important; line-height:0 !important; }
  .et_pb_section_0_tb_header .navSecondary-0-2-5 .navItem-0-2-9 { width:36px; height:36px; display:inline-flex; align-items:center; justify-content:center; }
  .et_pb_section_0_tb_header .navSecondary-0-2-5 svg {
    width:22px; height:22px; display:block; margin:0 !important; /* ← demandé */
  }
  .ligne-header .et-last-child .et_pb_code_1_tb_header {padding-top:0!important;}
  
  .suggestionsRelated-0-2-378 {display:none;}
  
  
   /* Si le layout met l'image "sommelier" à gauche, on la passe au-dessus pour libérer la largeur du slider */
  .suggestions-0-2-377 .sliderWrapper-0-2-243{
    display:block; /* évite un grid/2-col qui enferme le slider */
  }
  .suggestions-0-2-377 .suggestionsRelated-0-2-378{
    margin-bottom: 20px; /* stack au-dessus du slider */
  }
  /* Swiper : un slide occupe TOUTE la largeur du viewport */
  .suggestions-0-2-377 .swiper-0-2-427 .swiper-slide{
    width:100% !important;
    flex:0 0 100% !important;
  }
  /* Petits espacements plus doux en mobile */
  .suggestions-0-2-377 .swiper-0-2-427{
    padding-left:0; padding-right:0;
  }
  


/* fait défiler horizontalement (comme déjà vu) */
.anchorLinks-0-2-179{
  position:relative;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  border-bottom:1px solid #e6e6e6; /* fine séparation grise comme la source */
   position:fixed;
}
.anchorLinks-0-2-179::-webkit-scrollbar{height:0;} /* cache la scrollbar iOS/Chrome mobile */

.anchorLinksContainer-0-2-180{
  display:flex; flex-wrap:nowrap;
  gap:1.25rem;
  padding:0 1rem .5rem;
  min-width:max-content;
}
.anchorLink-0-2-181{ flex:0 0 auto; white-space:nowrap; }

/* piste + curseur orange */
.anchorLinksProgress-0-2-186{
  position:absolute; left:0; right:0; bottom:0;
  height:4px; /* hauteur du trait */
  pointer-events:none;
}
.anchorLinksProgressBar-0-2-187{
  display:block; height:4px; width:0;
  background:#e25f3a; /* orange de la source */
  border-radius:2px;
  transform:translateX(0);
  transition:transform .15s ease; /* lisse le déplacement */
}

/* optionnel : petite marge à gauche comme sur la capture */
@media (max-width: 767px){
  .anchorLinksContainer-0-2-180{ padding-left:.75rem; padding-right:.75rem; }
}

 /* La barre sort des gouttières du layout */
  .anchorLinks-0-2-179{
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    width: 100vw !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box;
    overflow-x: auto;            /* swipe horizontal */
    -webkit-overflow-scrolling: touch;
    scroll-behavior: auto;       /* pas d’inertie qui gêne le reset */
  }
  .anchorLinksContainer-0-2-180{
    padding-left: 116vw !important;  /* retire le petit décalage visuel */
    padding-right: 0 !important;
  }

  /* Au cas où une “fade”/bordure serait injectée via ::before */
  .anchorLinksContainer-0-2-180::before{
    content: none !important;
  }

  /* Barre de progression: collée à gauche */
  .anchorLinksProgress-0-2-186{ left:0 !important; right:0 !important; }
  
  
}











/* ===== Header Xavier Vins — Alignement & Rythme ===== */
.et-l--header {
  position: relative;
  z-index: 999;
}
.et-l--header .et_pb_section {
  padding: 0 !important;
}
.et-l--header .et_pb_row {
  align-items: center;
}

/* Hauteur de barre + centrage vertical */
.header-xv,
.et-l--header .et_pb_section.et_pb_section_0_tb_header {
  min-height: 65px;
  display: flex;
  align-items: center;
}

/* Logo : taille maîtrisée + retrait à droite */
.et-l--header .et_pb_menu__logo img {
  max-height: 56px;
  height: auto;
}
.et-l--header .et_pb_menu__logo-wrap {
  margin-right: clamp(16px, 3vw, 36px);
}

/* Menu desktop : typo + espacement + uppercase */
.et-l--header .et_pb_menu__menu > nav > ul > li > a {
  text-transform: uppercase;
  font-weight: 500;
  letter-spacing: 0.06em;
  font-size: 14px;
  padding: 0 14px !important;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  position: relative;
}

/* Couleurs par défaut/hover/actif */
.et-l--header .et_pb_menu__menu > nav > ul > li > a {
  color: #111;
  transition: color .25s ease;
}
.et-l--header .et_pb_menu__menu > nav > ul > li > a:hover {
  color: rgb(232,75,49);
}

/* Soulignement fin façon “source” (hover & actif) */
.et-l--header .et_pb_menu__menu > nav > ul > li > a::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -10px;
  width: 0;
  height: 2px;
  background: rgb(232,75,49);
  transform: translateX(-50%);
  transition: width .25s ease;
}
.et-l--header .et_pb_menu__menu > nav > ul > li > a:hover::after,
.et-l--header .et_pb_menu__menu > nav > ul > li.current-menu-item > a::after,
.et-l--header .et_pb_menu__menu > nav > ul > li.current_page_item > a::after,
.et-l--header .et_pb_menu__menu > nav > ul > li.current-menu-ancestor > a::after {
  width: 80%;
}

/* Espacement entre items légèrement réduit vs Divi par défaut */
.et-l--header .et_pb_menu__menu > nav > ul > li {
  margin: 0 2px;
}

/* ===== Sticky (rétrécissement doux) ===== */
.et_pb_sticky .et_pb_section_0_tb_header,
.et_pb_sticky .header-xv {
  min-height: 74px;
  box-shadow: 0 8px 18px rgba(0,0,0,.06);
}
.et_pb_sticky .et_pb_menu__logo img {
  max-height: 46px;
  transition: max-height .25s ease;
}

/* ===== Burger & Mobile ===== */
.et_mobile_nav_menu .mobile_menu_bar {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
}

.et_mobile_menu {
  border-top: 0;
  box-shadow: 0 12px 30px rgba(0,0,0,.12);
}
.et_mobile_menu li a {
  text-transform: uppercase;
  letter-spacing: .06em;
  padding: 14px 18px;
}

/* Overlay “propre” sur ouverture mobile (optionnel) */
body.et_mobile_menu_active:before {
  content: "";
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.24);
  z-index: 998;
}

/* Rétablir le z-index des colonnes si conflit avec d’autres blocs */
.et-l--header .et_pb_column {
  z-index: 0;
}

/* ===== Finitions accessibilité : zone clic + focus ===== */
.et-l--header .et_pb_menu__menu > nav > ul > li > a {
  padding-top: 6px !important;
  padding-bottom: 6px !important;
}
.et-l--header .et_pb_menu__menu > nav > ul > li > a:focus-visible {
  outline: 2px solid rgb(232,75,49);
  outline-offset: 3px;
}














