/* ===============================
   HORIZON LIBRE — MODE SAFE
   Tout rentre dans l'écran, point.
   =============================== */

/* 0) Pas de scroll horizontal, jamais */
html, body { margin:0; padding:0; overflow-x:hidden; max-width:100%; }
*, *::before, *::after { box-sizing:border-box; }

/* 1) Neutralise TOUT ce qui tente le "plein écran" ou décale avec transform */
.alignfull,
.wp-block-group.alignfull,
.wp-block-cover.alignfull,
.alignwide,
.wp-block-group.alignwide {
  margin-left:auto !important;
  margin-right:auto !important;
  width:100% !important;
  max-width:100% !important;
  transform:none !important;
  left:auto !important; right:auto !important;
}

/* 2) Si un parent a des paddings, on cale les inner en 100% aussi */
.alignfull > *, .alignwide > *, .wp-block-cover__inner-container,
.wp-block-group__inner-container { max-width:100% !important; width:100% !important; }

/* 3) Médias/embeds fluides (fin des débordements débiles) */
img, video, canvas, svg { max-width:100%; height:auto; }
iframe { width:100% !important; max-width:100% !important; border:0; display:block; }

/* 4) Colonnes Gutenberg: empile sur mobile */
.wp-block-columns { gap:clamp(12px,3vw,24px); }
@media (max-width: 781.98px){
  .wp-block-columns { flex-wrap:wrap; }
  .wp-block-column { flex:0 0 100% !important; max-width:100% !important; }
}

/* 5) Blocs HTML personnalisés + wrappers maison: interdiction de dépasser */
.custom-html, .wp-block-html, .fix-mobile, [data-lightbox], [data-embed], .section, .wrap {
  max-width:100% !important; overflow:hidden;
}
@media (max-width: 782px){
  .custom-html [style*="width"],
  .fix-mobile [style*="width"]{ width:100% !important; max-width:100% !important; }
}

/* 6) Header qui arrête le cirque en 3 étagères */
header .wp-block-group.is-layout-flex,
.wp-block-template-part header .wp-block-group { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.site-title, .wp-block-site-title, .wp-block-site-title a { white-space:nowrap; word-break:keep-all; overflow-wrap:normal; margin-right:auto; }
.site-logo img, .wp-block-site-logo img { max-height:44px; height:auto; width:auto; }
header .wp-block-navigation,
.wp-block-woocommerce-customer-account,
.wp-block-woocommerce-mini-cart { display:inline-flex; align-items:center; gap:10px; }
@media (max-width:420px){
  header .wp-block-navigation{ order:3; width:100%; justify-content:flex-start; }
  .wp-block-woocommerce-customer-account svg,
  .wp-block-woocommerce-mini-cart svg{ width:20px; height:20px; }
}

/* 7) Typo: pas de coupures moches, mais wrap autorisé */
:where(h1,h2,h3,h4,h5,h6,.wp-block-heading,.site-title){ word-break:normal; overflow-wrap:anywhere; }

/* 8) Kill switch contre largeurs/min-width en dur qui cassent tout */
:where(.wp-site-blocks,.entry-content) * { max-width:100%; }
[style*="min-width:"]{ min-width:0 !important; }
[style*="left:"], [style*="right:"]{ max-width:100%; }

/* 9) Boutons/Badges “pilules” très arrondis: empêcher qu’ils élargissent la page */
a, button { max-width:100%; }
.wp-block-button__link{ display:inline-block; max-width:100%; white-space:normal; }
/* ===============================
   HORIZON LIBRE — ANTI-ZOOM HARD
   =============================== */

/* Base: pas d’horizontale, jamais */
html, body { margin:0; padding:0; width:100%; max-width:100%; overflow-x: clip; }
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; overscroll-behavior-x: none; }

/* Médias fluides */
img, video, canvas, svg { max-width:100%; height:auto; display:block; }
iframe { width:100% !important; max-width:100% !important; border:0; display:block; }

/* Neutralise toute “pleine largeur” qui fout le souk au chargement */
.alignfull, .wp-block-group.alignfull, .wp-block-cover.alignfull,
.alignwide, .wp-block-group.alignwide {
  margin-left:auto !important;
  margin-right:auto !important;
  width:100% !important;
  max-width:100% !important;
  transform:none !important;
  left:auto !important; right:auto !important;
}
.alignfull > *, .alignwide > *, .wp-block-cover__inner-container,
.wp-block-group__inner-container { max-width:100% !important; width:100% !important; }

/* Colonnes: empile sur mobile */
.wp-block-columns { gap: clamp(12px,3vw,24px); }
@media (max-width: 781.98px){
  .wp-block-columns { flex-wrap:wrap; }
  .wp-block-column { flex:0 0 100% !important; max-width:100% !important; }
}

/* Boutons/“pilules”: ne dépassent pas */
a, button { max-width:100%; }
.wp-block-button__link { display:inline-block; max-width:100%; white-space:normal; }

/* Textes: wrap propre, pas de cassure au milieu d’un mot */
:where(h1,h2,h3,h4,h5,h6,.wp-block-heading,.site-title){
  word-break: normal; overflow-wrap: anywhere;
}

/* Header: arrangement stable */
header .wp-block-group.is-layout-flex,
.wp-block-template-part header .wp-block-group {
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
}
.site-title, .wp-block-site-title, .wp-block-site-title a {
  white-space:nowrap; word-break:keep-all; overflow-wrap:normal; margin-right:auto;
}
.site-logo img, .wp-block-site-logo img { max-height:44px; height:auto; width:auto; }
header .wp-block-navigation,
.wp-block-woocommerce-customer-account,
.wp-block-woocommerce-mini-cart { display:inline-flex; align-items:center; gap:10px; }
@media (max-width:420px){
  header .wp-block-navigation{ order:3; width:100%; justify-content:flex-start; }
  .wp-block-woocommerce-customer-account svg,
  .wp-block-woocommerce-mini-cart svg{ width:20px; height:20px; }
}

/* **** COUPABLES FRÉQUENTS: menus et tiroirs “cachés” mais larges **** */

/* Menu responsive Gutenberg: quand fermé, il ne doit PAS compter dans la largeur */
.wp-block-navigation__responsive-container:not(.is-menu-open) {
  display:none !important;
}

/* Variantes WP/Theme : conteneur de menu off-canvas fermé */
.wp-block-navigation__responsive-container.is-menu-open {
  position: fixed; inset: 0; max-width: 100vw; overflow-x: hidden;
}

/* Mini-panier Woo (block) fermé: pas de largeur fantôme */
.wc-block-mini-cart__drawer[aria-hidden="true"],
.wc-block-mini-cart__drawer[hidden] {
  display:none !important;
}

/* Mini-panier / tiroirs ouverts: limiter la largeur quand même */
.wc-block-mini-cart__drawer {
  position: fixed; top:0; right:0; bottom:0; max-width:100vw; overflow-x:hidden;
}

/* Legacy Woo offcanvas courants */
.woocommerce-mini-cart__buttons, .widget_shopping_cart_content { max-width:100%; }

/* Kill switch contre widths/min-widths inline absurdes */
:where(.wp-site-blocks,.entry-content) * { max-width:100%; }
[style*="min-width:"]{ min-width:0 !important; }
[style*="left:"], [style*="right:"]{ max-width:100%; }

/* Empêche la page de s’étendre pendant les transitions */
html.is-lock-x, body.is-lock-x { overflow-x: clip !important; }
/* ======== Correction version bureau : menu visible ======== */
@media (min-width: 782px) {
  /* Rétablit le menu complet sur ordi */
  .wp-block-navigation__responsive-container,
  .wp-block-navigation__responsive-container:not(.is-menu-open) {
    display: block !important;
    position: static !important;
    max-width: none !important;
    overflow: visible !important;
  }

  /* Assure l’affichage des liens en ligne */
  .wp-block-navigation__container {
    display: flex !important;
    flex-wrap: nowrap;
    justify-content: flex-end;
    gap: 24px;
  }

  /* Nettoyage du bouton hamburger sur desktop */
  .wp-block-navigation__responsive-container-open,
  .wp-block-navigation__responsive-container-close {
    display: none !important;
  }
}
/* ========= HEADER DESKTOP PROPRE (≥ 782px) ========= */
@media (min-width: 782px){

  /* Conteneur du header centré et contenu sur une ligne */
  .wp-block-template-part header .wp-block-group,
  header .wp-block-group.is-layout-flex{
    display:flex !important;
    align-items:center !important;
    gap:18px !important;
    flex-wrap:nowrap !important;
    max-width:1200px;
    margin:0 auto;
    padding-inline:24px;
  }

  /* Ordre logique: 1) logo 2) titre 3) menu 4) compte/panier */
  .wp-block-site-logo{ order:1; }
  .wp-block-site-title{ order:2; }
  .wp-block-navigation{ order:3; margin-left:auto; }
  .wp-block-woocommerce-customer-account,
  .wp-block-woocommerce-mini-cart{ order:4; }

  /* Titre à côté du logo, pas catapulté à droite */
  .site-title, .wp-block-site-title, .wp-block-site-title a{
    display:block;
    white-space:nowrap;
    word-break:keep-all;
    margin:0;
  }
  .site-logo img, .wp-block-site-logo img{ max-height:48px; width:auto; height:auto; }

  /* Menu visible en version complète */
  .wp-block-navigation__responsive-container,
  .wp-block-navigation__responsive-container:not(.is-menu-open){
    display:block !important;
    position:static !important;
    max-width:none !important;
    overflow:visible !important;
  }
  .wp-block-navigation__container{
    display:flex !important;
    flex-wrap:nowrap;
    gap:28px;
    align-items:center;
    justify-content:flex-end;
  }

  /* Icônes compte/panier alignées et discrètes */
  .wp-block-woocommerce-customer-account,
  .wp-block-woocommerce-mini-cart{
    display:inline-flex !important;
    align-items:center;
    gap:16px;
  }

  /* Bouton burger et fermeture… au placard sur desktop */
  .wp-block-navigation__responsive-container-open,
  .wp-block-navigation__responsive-container-close{
    display:none !important;
  }
}

/* Un peu de respirations verticales pour éviter l’effet “menu collé au bord” */
.wp-block-template-part header{ padding-block:10px; }

/* Sécurité: pas de césure moche du nom */
.site-title, .wp-block-site-title, .wp-block-site-title a{
  overflow-wrap:normal; word-break:normal;
}

