/* Réparations fonctionnelles. La refonte de l'identité est un chantier séparé. */
.ui-split-animate,
.elementor-widget-heading.elementor-invisible,
.elementor-widget-text-editor.elementor-invisible {
  opacity: 1 !important;
  visibility: visible !important;
}
.ui-split-animate .char,
.ui-split-animate .word {
  opacity: 1 !important;
  transform: none !important;
}
#uicore-tb-header .bdt-navbar-nav > li > a { color: #52525b; }
#uicore-tb-header a:focus-visible,
.ps-mobile-menu summary:focus-visible,
.ps-archive-intro :is(input, button):focus-visible {
  outline: 2px solid #4a57f6;
  outline-offset: 4px;
}
.ps-mobile-menu { display: none; }
.ps-archive-intro { box-sizing: border-box; min-width: 0; width: 100%; flex: 0 0 100%; margin: 0 0 32px; }
/* loop_start est appelé dans la grille flex des archives UiCore. */
.uicore-archive > .uicore-grid-container > .ps-archive-intro { margin: 0; padding: 40px 40px 8px; }
.ps-archive-intro h1 { margin: 0 0 24px; overflow-wrap: anywhere; }
.ps-archive-intro form { max-width: 640px; }
.ps-archive-intro label { display: block; margin-bottom: 8px; }
.ps-archive-intro form > div { display: flex; gap: 12px; }
.ps-archive-intro input { min-width: 0; flex: 1; }
.ps-archive-intro input,
.ps-archive-intro button { min-height: 44px; }
@media (min-width: 768px) and (max-width: 1024px) {
  /* Décoration absolue du hero : rester dans sa colonne sur tablette. */
  .elementor .elementor-element.elementor-element-6bade6a { left: auto !important; right: 0 !important; }
  /* Les gouttières de 40 px dépassent les marges de page de la tablette. */
  .uicore-archive > .uicore-grid-row { margin-inline: -20px; }
  .uicore-archive > .uicore-grid-row > .uicore-grid-item { padding-inline: 20px; }
  .uicore-archive > .uicore-grid-row > .ps-archive-intro { padding-inline: 20px; }
}
@media (max-width: 767px) {
  #uicore-tb-header .elementor-element-1653cebb.elementor-hidden-mobile {
    display: block !important;
    width: auto;
    margin-left: auto;
    position: static;
  }
  #uicore-tb-header .elementor-element-1653cebb .bdt-navbar-wrapper { display: none; }
  #uicore-tb-header .elementor-element-1653cebb > .elementor-widget-container {
    margin: 0;
    padding: 0;
    position: static;
  }
  #uicore-tb-header .elementor-element-4eea4132 > .elementor-widget-wrap {
    position: relative;
    align-items: center;
    flex-wrap: nowrap;
    gap: 8px;
  }
  #uicore-tb-header .elementor-widget-image { flex-shrink: 1; min-width: 0; }
  #uicore-tb-header .elementor-widget-image img { width: 80px; }
  #uicore-tb-header .elementor-widget-button { width: auto; flex-shrink: 0; }
  #uicore-tb-header .elementor-button { padding: 12px; min-height: 44px; font-size: 12px; }
  /* Le panneau se cale sur la ligne complète, pas sur la largeur de « Menu ». */
  .ps-mobile-menu { display: block; position: static; color: #101828; }
  .ps-mobile-menu summary {
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 8px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    list-style: none;
    gap: 7px;
  }
  .ps-mobile-menu summary::-webkit-details-marker { display: none; }
  .ps-mobile-menu summary::after {
    content: "";
    width: 6px;
    height: 6px;
    border: solid currentColor;
    border-width: 0 1.5px 1.5px 0;
    transform: translateY(-2px) rotate(45deg);
  }
  .ps-mobile-menu[open] summary::after { transform: translateY(2px) rotate(225deg); }
  .ps-mobile-menu nav {
    position: absolute;
    z-index: 1000;
    top: calc(100% + 8px);
    inset-inline: 10px;
    width: auto;
    max-height: calc(100vh - 100px);
    max-height: calc(100dvh - 100px);
    overflow-y: auto;
    box-sizing: border-box;
    padding: 12px;
    background: #fff;
    border: 1px solid #e4e7ec;
    border-radius: 12px;
  }
  .ps-mobile-menu ul { list-style: none; margin: 0; padding: 0; }
  .ps-mobile-menu a { display: flex; align-items: center; min-height: 44px; padding: 8px 12px; color: #101828; overflow-wrap: anywhere; }
  .ps-mobile-menu a:hover { background: #f4f5f8; }
  .uicore-archive > .uicore-grid-container > .ps-archive-intro { padding: 20px 20px 8px; }
  .ps-archive-intro form > div { flex-wrap: wrap; }
}

/* Les trois H2 promus en H1 gardent la typographie H2 UiCore à chaque breakpoint. */
/* Spécificité supérieure au titre UiCore, même si LiteSpeed réordonne les feuilles. */
.elementor .elementor-widget h1.ps-preserve-h2-type {
  font-family: var(--uicore-typography--h2-f);
  font-size: var(--uicore-typography--h2-s);
  font-weight: var(--uicore-typography--h2-w);
  font-style: var(--uicore-typography--h2-st);
  line-height: var(--uicore-typography--h2-h);
  letter-spacing: var(--uicore-typography--h2-ls);
  text-transform: var(--uicore-typography--h2-t);
  color: var(--uicore-typography--h2-c);
}
