/* Commandes globales de l'en-tête Movlan : aucun chevauchement, même traduit. */
.movlan-region-globe { display: none; }
.header__icons,
.sf-nav-right {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: .65rem !important;
  min-width: 0 !important;
  overflow: visible !important;
}

.header__icons localization-form,
.header__icons .localization-form,
.sf-nav-right localization-form,
.sf-nav-right .localization-form {
  position: relative !important;
  flex: 0 0 min(23.5rem, 24vw) !important;
  min-width: 17rem !important;
  max-width: min(23.5rem, 24vw) !important;
  overflow: visible !important;
}

.header__icons .localization-form__select,
.sf-nav-right .localization-form__select {
  box-sizing: border-box !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.header__icons .localization-form .no-js-hidden,
.header__icons .localization-form .disclosure,
.sf-nav-right .localization-form .no-js-hidden,
.sf-nav-right .localization-form .disclosure {
  box-sizing: border-box !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  overflow: visible !important;
}

.header__icons .localization-form .disclosure__list-wrapper,
.sf-nav-right .localization-form .disclosure__list-wrapper {
  position: absolute !important;
  z-index: 120 !important;
  top: calc(100% + .8rem) !important;
  right: 0 !important;
  width: min(46rem, calc(100vw - 2rem)) !important;
  max-width: none !important;
  max-height: min(64rem, calc(100vh - 12rem)) !important;
  overflow: auto !important;
  border: 1px solid #dce3dd !important;
  border-radius: 1.4rem !important;
  background: #fff !important;
  box-shadow: 0 2rem 5rem rgba(18, 35, 23, .18) !important;
}

.header__icon--search,
.header__icon--account,
.header__icon--cart,
.sf-icon {
  box-sizing: border-box !important;
  flex: 0 0 4rem !important;
  width: 4rem !important;
  height: 4rem !important;
  min-width: 4rem !important;
  padding: 0 !important;
  border: 1px solid #dbe2dc !important;
  border-radius: 1.2rem !important;
  background: #f7f9f7 !important;
  color: #1d2820 !important;
  transition: border-color .16s ease, background .16s ease, transform .16s ease !important;
}

.header__icon--search:hover,
.header__icon--account:hover,
.header__icon--cart:hover,
.sf-icon:hover {
  border-color: #9eb0a2 !important;
  background: #edf3ee !important;
  transform: translateY(-1px) !important;
}

.header__icon--search svg,
.header__icon--account svg,
.header__icon--cart svg,
.sf-icon svg {
  width: 2rem !important;
  height: 2rem !important;
  stroke-width: 1.7 !important;
}

.movlan-cart-badge {
  position: absolute;
  top: -.55rem;
  right: -.55rem;
  display: grid;
  place-items: center;
  min-width: 1.65rem;
  height: 1.65rem;
  padding: 0 .3rem;
  border: 2px solid #fff;
  border-radius: 999px;
  background: #173e24;
  color: #fff;
  font-size: .95rem;
  font-weight: 800;
  line-height: 1;
}

.movlan-cart-badge[hidden] { display: none !important; }

/* Recherche prédictive native Scaleway. */
.movlan-predictive {
  width: min(72rem, calc(100vw - 3rem));
  padding: 1.2rem;
  border: 1px solid #dfe5e0;
  border-radius: 0 0 1.8rem 1.8rem;
  background: #fff;
  box-shadow: 0 2.4rem 5rem rgba(16, 33, 21, .15);
}
.movlan-predictive__heading { margin: 0; padding: .4rem .5rem 1rem; color: #607066; font-size: 1.15rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.movlan-predictive__list { display: grid; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.movlan-predictive__item { margin: 0; border-radius: 1.1rem; }
.movlan-predictive__item[aria-selected="true"] { background: #edf5ef; outline: 2px solid rgba(28, 82, 43, .18); }
.movlan-predictive__link { display: grid; grid-template-columns: 5.6rem minmax(0, 1fr); gap: 1.1rem; align-items: center; padding: .7rem; color: #172019; text-decoration: none; }
.movlan-predictive__media { display: grid; place-items: center; width: 5.6rem; height: 5.6rem; overflow: hidden; border-radius: .9rem; background: #f4f7f4; }
.movlan-predictive__media img { width: 100%; height: 100%; object-fit: contain; }
.movlan-predictive__body { display: grid; gap: .2rem; min-width: 0; }
.movlan-predictive__body small { color: #4d7257; font-size: 1rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.movlan-predictive__body strong { overflow: hidden; font-size: 1.35rem; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.movlan-predictive__body span { color: #38413b; font-size: 1.2rem; font-weight: 700; }
.movlan-predictive__all { display: flex; align-items: center; justify-content: center; min-height: 4.4rem; margin-top: .8rem; border-radius: 1rem; background: #173e24; color: #fff; font-size: 1.2rem; font-weight: 750; text-decoration: none; }
.movlan-predictive__error { margin: 0; padding: 1.3rem; border-radius: 1rem; background: #fff5f5; color: #812e2e; }

@media (max-width: 989px) {
  .header__icons localization-form,
  .header__icons .localization-form,
  .sf-nav-right localization-form,
  .sf-nav-right .localization-form {
    flex-basis: min(18rem, 28vw) !important;
    min-width: 13rem !important;
    max-width: min(18rem, 28vw) !important;
  }
}

@media (max-width: 749px) {
  .search-modal__content { padding: 1rem !important; }
  .search-modal__form { width: 100% !important; max-width: none !important; }
  .movlan-predictive { width: 100%; max-height: calc(100vh - 10rem) !important; overflow: auto; border-radius: 0 0 1.4rem 1.4rem; }

  .header__icons {
    display: grid !important;
    grid-template-columns: 4rem 4rem !important;
    grid-template-rows: 4rem 4rem !important;
    width: 8.35rem !important;
    max-width: 8.35rem !important;
    gap: .35rem !important;
  }

  .header__icons localization-form,
  .header__icons .localization-form,
  .sf-nav-right localization-form,
  .sf-nav-right .localization-form {
    flex-basis: min(12.5rem, 34vw) !important;
    min-width: 9rem !important;
    max-width: min(12.5rem, 34vw) !important;
    margin-right: .45rem !important;
  }

  .header__icon--localization-mobile localization-form,
  .header__icon--localization-mobile .localization-form {
    flex: 0 0 4rem !important;
    width: 4rem !important;
    min-width: 4rem !important;
    max-width: 4rem !important;
    margin: 0 !important;
  }

  .header__icon--localization-mobile .localization-form__select > span:first-child {
    font-size: 0 !important;
  }

  .header__icon--localization-mobile .movlan-current-lang-label {
    display: inline !important;
    font-size: 1.05rem !important;
  }
}

@media (max-width: 430px) {
  .header__icons localization-form,
  .header__icons .localization-form,
  .sf-nav-right localization-form,
  .sf-nav-right .localization-form {
    flex-basis: 9.5rem !important;
    min-width: 8.5rem !important;
    max-width: 9.5rem !important;
  }

  .header__icon--localization-mobile localization-form,
  .header__icon--localization-mobile .localization-form {
    flex: 0 0 4rem !important;
    width: 4rem !important;
    min-width: 4rem !important;
    max-width: 4rem !important;
    margin: 0 !important;
  }
}

/* Composition responsive unifiée : aucun élément ne dépasse du header. */
@media (min-width: 750px) and (max-width: 989px) {
  .header {
    grid-template-columns: minmax(19rem, 1fr) auto minmax(19rem, 1fr) !important;
    gap: 1rem !important;
    padding-inline: 1.5rem !important;
  }
  .header__custom-buttons--desktop { gap: .55rem !important; }
  .header__custom-buttons--desktop .header__custom-button { min-height: 4rem !important; padding-inline: 1rem !important; font-size: .9rem !important; }
  .header__heading-link, .header__heading-logo-wrapper { width: auto !important; max-width: 17rem !important; }
  .header__heading-logo { width: 17rem !important; height: auto !important; }
  .header__icons { gap: .25rem !important; }
}

@media (max-width: 749px) {
  .header {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-areas: "logo utilities" "actions actions" !important;
    align-items: center !important;
    gap: .8rem 1rem !important;
    min-height: 0 !important;
    padding: 1rem 1.2rem 1.2rem !important;
  }
  .header__heading-link {
    grid-area: logo !important;
    justify-self: start !important;
    width: auto !important;
    max-width: clamp(10.5rem, 34vw, 16rem) !important;
    margin: 0 !important;
  }
  .header__heading-logo-wrapper { width: auto !important; max-width: 100% !important; }
  .header__heading-logo { display: block !important; width: clamp(10.5rem, 34vw, 16rem) !important; height: auto !important; }
  .header__mobile-left { display: contents !important; }
  .header__mobile-actions {
    grid-area: actions !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
    max-width: none !important;
    gap: .65rem !important;
    margin: 0 !important;
    transform: none !important;
  }
  .header__mobile-actions .header__custom-button {
    width: 100% !important;
    min-height: 3.8rem !important;
    padding: .7rem .8rem !important;
    font-size: clamp(.78rem, 2.7vw, .98rem) !important;
    line-height: 1.15 !important;
    text-align: center !important;
  }
  .header__icons {
    grid-area: utilities !important;
    justify-self: end !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    width: auto !important;
    max-width: none !important;
    height: 4rem !important;
    gap: .1rem !important;
    transform: none !important;
  }
  .header__icons > .desktop-localization-wrapper { display: none !important; }
  .header__icons > .header__icon--localization-mobile,
  .header__icons > details-modal.header__search,
  .header__icons > .header__icon--account,
  .header__icons > .header__icon--cart {
    display: flex !important;
    flex: 0 0 3.7rem !important;
    width: 3.7rem !important;
    height: 3.7rem !important;
    margin: 0 !important;
    transform: none !important;
  }
  .header__icons .header__icon { padding: .75rem !important; }
  .header__icons .header__icon svg { width: 2rem !important; height: 2rem !important; }
  .header__icon--localization-mobile localization-form,
  .header__icon--localization-mobile .localization-form {
    flex: 0 0 3.7rem !important;
    width: 3.7rem !important;
    min-width: 3.7rem !important;
    max-width: 3.7rem !important;
  }
}

@media (max-width: 360px) {
  .header { padding-inline: .8rem !important; gap: .65rem !important; }
  .header__heading-link, .header__heading-logo { width: 9.8rem !important; max-width: 9.8rem !important; }
  .header__icons > .header__icon--localization-mobile,
  .header__icons > details-modal.header__search,
  .header__icons > .header__icon--account,
  .header__icons > .header__icon--cart { flex-basis: 3.35rem !important; width: 3.35rem !important; height: 3.35rem !important; }
}

/* La région dispose de sa propre ligne : elle ne concurrence plus les
   raccourcis compte/recherche/panier sur téléphone et fenêtre étroite. */
@media (max-width: 1199px) {
  header.movlan-header-region {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-areas: "logo utilities" "region region" "actions actions" !important;
    padding: 1rem 1.2rem 1.2rem !important;
    row-gap: .8rem !important;
  }
  .movlan-header-region > details-modal.header__search { display: none !important; }
  .movlan-header-region .header__custom-buttons--desktop { display: none !important; }
  .movlan-header-region .header__mobile-left { display: contents !important; }
  .movlan-header-region .header__mobile-actions,
  .movlan-header-region .sf-nav-left,
  .movlan-header-region .movlan-port-actions {
    grid-area: actions !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    gap: .65rem !important;
    transform: none !important;
  }
  .movlan-header-region .header__mobile-actions .header__custom-button { width: 100% !important; min-height: 3.8rem !important; padding: .7rem .8rem !important; font-size: 1.1rem !important; }
  .movlan-header-region .header__heading { grid-area: logo !important; min-width: 0; margin: 0; }
  header.movlan-header-region > .header__heading-link { grid-area: logo !important; justify-self: start !important; margin: 0 !important; }
  .movlan-header-region .movlan-port-brand { grid-area: logo !important; }
  .movlan-header-region .movlan-port-utilities { grid-area: utilities !important; }
  .movlan-header-region .header__icons { grid-area: utilities !important; }
  header.movlan-header-region .header__icons > .desktop-localization-wrapper { display: none !important; }
  .movlan-header-region > .movlan-region-row {
    grid-area: region !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    position: relative !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    margin: 0 !important;
    padding: .4rem 0 0 !important;
    border-top: 1px solid #e9eee9 !important;
    transform: none !important;
    z-index: 25;
  }
  .movlan-region-row localization-form,
  .movlan-region-row .localization-form,
  .movlan-region-row .no-js-hidden,
  .movlan-region-row .disclosure {
    display: block !important;
    position: static !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    flex: 1 1 auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .movlan-region-row .localization-form__select,
  .movlan-region-row.movlan-shell-localization > button {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: .8rem !important;
    position: relative !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: 44px !important;
    height: auto !important;
    padding: .8rem 1.2rem !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 1rem !important;
    box-shadow: none !important;
    background: #f4f7f4 !important;
    color: #274631 !important;
    font-size: 1.25rem !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
    letter-spacing: .01em !important;
    text-transform: none !important;
    text-decoration: none !important;
    cursor: pointer;
  }
  .movlan-region-row button::before,
  .movlan-region-row button::after { display: none !important; }
  .movlan-region-row button > span {
    display: block !important;
    height: auto !important;
    width: auto !important;
    font-size: inherit !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
    min-width: 0;
  }
  .movlan-region-row .movlan-current-lang-label { display: inline !important; height: auto !important; width: auto !important; font-size: inherit !important; font-weight: 650; }
  .movlan-region-row .movlan-localization-full { display: inline !important; }
  .movlan-region-row .movlan-localization-short { display: none !important; }
  .movlan-region-row button .movlan-region-globe {
    display: block !important;
    width: 1.8rem !important;
    height: 1.8rem !important;
    flex: 0 0 1.8rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
  }
  .movlan-region-row button .icon-caret {
    display: block !important;
    position: static !important;
    width: .9rem !important;
    height: .6rem !important;
    flex: 0 0 .9rem;
    margin: 0 !important;
    transform: none !important;
  }
  .movlan-region-row button[aria-expanded="true"] { background: #e8f0e9 !important; }
  .movlan-region-row button[aria-expanded="true"] .icon-caret { transform: rotate(180deg) !important; }
  .movlan-region-row button:focus-visible { outline: 2px solid #285e37 !important; outline-offset: 2px !important; }
  .movlan-region-row .disclosure__list-wrapper,
  .movlan-region-row .movlan-shell-localization-panel {
    position: absolute !important;
    top: calc(100% + .6rem) !important;
    inset-inline-end: 0 !important;
    left: auto !important;
    bottom: auto !important;
    width: min(48rem, 100%) !important;
    min-width: 0 !important;
    max-width: 100% !important;
    max-height: min(45rem, 60dvh) !important;
    margin: 0 !important;
    padding: .6rem !important;
    overflow: auto !important;
    border: 1px solid #dce5dd !important;
    border-radius: 1.4rem !important;
    background: #fff !important;
    box-shadow: 0 1.2rem 3rem #19372126 !important;
    transform: none !important;
    animation: none !important;
    z-index: 120 !important;
  }
  .movlan-region-row .disclosure__list-wrapper[hidden],
  .movlan-region-row .movlan-shell-localization-panel[hidden] { display: none !important; }
  .movlan-region-row .movlan-twin-panel {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }
  .movlan-region-row .movlan-twin-col + .movlan-twin-col { border-top: 0; border-inline-start: 1px solid #e9eee9; }
  .movlan-region-row .disclosure__list { min-width: 0 !important; width: 100% !important; max-width: 100% !important; max-height: min(36rem, 48dvh) !important; }
  .movlan-region-row .disclosure__link,
  .movlan-region-row .movlan-shell-localization-panel a {
    box-sizing: border-box;
    min-height: 44px;
    padding: .8rem .8rem .8rem 1.8rem !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
    font-size: 1.25rem !important;
    line-height: 1.4;
  }
  .movlan-region-row .localization-form__currency { display: none; }
}
@media (max-width: 749px) {
  header.movlan-header-region { grid-template-areas: "logo utilities" "region region" "actions actions" !important; }
  .movlan-header-region .header__icons { gap: .5rem !important; }
  .movlan-header-region .header__heading { justify-self: start; }
}
