/* ==========================================================================
   Passe-Sport-Sante-35 — Ameliorations responsive (mobile / tablette)
   Couche additionnelle non destructive. Retirable en supprimant le module.
   ========================================================================== */

/* --- Anti debordement horizontal global --- */
html.pss-js, body { overflow-x: hidden; }
img, video, iframe, svg { max-width: 100%; height: auto; }

/* Longs titres / longs mots : casser au lieu de deborder */
@media (max-width: 1024px){
  .elementor-heading-title, h1, h2, h3, h4 { overflow-wrap: anywhere; word-break: break-word; }
}

/* Temoignage (accueil) qui depassait de ~9px sur la droite */
.elementor-testimonial-wrapper,
.elementor-testimonial-content,
.elementor-testimonial-meta { max-width: 100% !important; }

/* Reduire uniquement les tres grands titres de hero sur mobile (evite le titre coupe) */
@media (max-width: 767px){
  h1.elementor-heading-title,
  .elementor-widget-heading h1.elementor-heading-title {
    font-size: clamp(1.9rem, 8.5vw, 2.6rem) !important;
    line-height: 1.15 !important;
  }
}

/* --- Lisibilite du texte du hero (accueil) par-dessus la photo --- */
.elementor-element-de48581 .elementor-heading-title,
.elementor-element-c7345d2 .elementor-heading-title {
  text-shadow: 0 0 3px rgba(255,255,255,.92), 0 1px 7px rgba(255,255,255,.6), 0 1px 2px rgba(0,0,0,.18);
}

/* ==========================================================================
   Menu hamburger — actif sous 1025px (mobile + tablette)
   ========================================================================== */
.pss-nav-toggle { display: none; }

@media (max-width: 1024px){
  #site-header {
    position: relative;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  #site-header .site-branding { flex: 0 1 auto; }
  #site-header .site-navigation { flex: 0 0 auto; }

  /* Bouton hamburger : on force le style pour battre le style 'button' global du theme */
  .pss-nav-toggle {
    display: inline-flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 5px !important;
    box-sizing: border-box !important;
    width: 48px !important; height: 44px !important;
    min-height: 0 !important;
    padding: 10px !important;
    margin-left: auto !important;
    background: #ffffff !important;
    background-image: none !important;
    border: 1px solid rgba(0,0,0,.18) !important;
    border-radius: 10px !important;
    box-shadow: none !important;
    color: #2e5d4b !important;
    cursor: pointer !important;
    -webkit-tap-highlight-color: transparent;
  }
  .pss-nav-toggle span {
    display: block !important;
    height: 3px !important; width: 26px !important;
    background: #2e5d4b !important;
    border-radius: 3px !important;
    padding: 0 !important; margin: 0 !important;
    transition: transform .25s ease, opacity .2s ease;
  }
  #site-header.pss-nav-open .pss-nav-toggle span:nth-child(1){ transform: translateY(8px) rotate(45deg); }
  #site-header.pss-nav-open .pss-nav-toggle span:nth-child(2){ opacity: 0; }
  #site-header.pss-nav-open .pss-nav-toggle span:nth-child(3){ transform: translateY(-8px) rotate(-45deg); }

  /* Menu cache par defaut (seulement si JS actif), affiche au clic --- */
  html.pss-js #site-header #menu-menu {
    position: absolute; top: 100%; left: 0; right: 0;
    display: none;
    flex-direction: column; align-items: stretch; gap: 0;
    margin: 0; padding: 6px 0;
    list-style: none;
    background: #ffffff;
    box-shadow: 0 12px 30px rgba(0,0,0,.14);
    border-top: 3px solid #2e5d4b;
    z-index: 99999;
    max-height: 82vh; overflow-y: auto;
  }
  html.pss-js #site-header.pss-nav-open #menu-menu { display: flex; }

  #site-header #menu-menu > li { width: 100%; margin: 0; float: none; }
  #site-header #menu-menu > li > a { display: block; padding: 15px 22px; font-size: 1.05rem; }
  #site-header #menu-menu > li + li { border-top: 1px solid rgba(0,0,0,.06); }
  #site-header #menu-menu > li.psps-account-btn { padding: 12px 18px; }
  #site-header #menu-menu > li.psps-account-btn > a { text-align: center; }
}

@media (min-width: 1025px){
  .pss-nav-toggle { display: none !important; }
}
