/*
Theme Name: Hello Elementor Enfant - La Salle de Sport
Template: hello-elementor
Description: Thème enfant du site La Salle de Sport Ngaparou (charte : noir + jaune orangé clair)
Version: 1.1.0
Text Domain: hello-elementor-child
*/
:root{--lss-accent:#EF8700;--lss-noir:#0E0E0E;--lss-texte:#24292D;--lss-gris:#F4F5F7}
html{scroll-behavior:smooth}
body{font-family:'Montserrat',sans-serif;color:var(--lss-texte)}
.elementor-section-wrap,.elementor{overflow-x:clip}

/* ---------- En-tête ---------- */
.lss-header{z-index:999;background:#0E0E0E}
.lss-promo{background:var(--lss-accent);color:#0E0E0E;text-align:center;font-size:13px}
.lss-promo p{margin:0}
.lss-promo a{color:#0E0E0E;text-decoration:underline;font-weight:700}
.lss-bar{background:#0E0E0E}
.lss-logo .elementor-heading-title,.lss-logo .elementor-heading-title a{font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:28px;letter-spacing:.02em;color:#fff;margin:0;line-height:1}
.lss-nav .elementor-item{color:#fff!important;font-weight:600;text-transform:uppercase;font-size:14px;letter-spacing:.04em}
.lss-nav .elementor-item:hover{color:var(--lss-accent)!important}
.lss-nav .elementor-menu-toggle{color:#fff!important;background:transparent!important}
.lss-nav .elementor-menu-toggle svg{fill:#fff!important}
.lss-nav{width:auto}
.elementor-nav-menu--dropdown{background:#0E0E0E}
.elementor-nav-menu--dropdown .elementor-item{padding:14px 20px;text-align:left}
.lss-logo .elementor-heading-title{white-space:nowrap}
@media(max-width:1024px){
  .lss-bar{position:relative}
  .lss-nav{position:static!important}
  .lss-nav .elementor-nav-menu--dropdown{left:0!important;right:0;width:100%!important;border-top:1px solid #2C2C2C;z-index:1001}
}

/* ---------- Boutons ---------- */
.lss-btn-main .elementor-button,.lss-bar-cta .elementor-button{background:var(--lss-accent);color:#0E0E0E;border-radius:8px;font-family:'Montserrat',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:16px 26px;font-size:14px}
.lss-btn-main .elementor-button:hover,.lss-bar-cta .elementor-button:hover{background:#fff;color:#0E0E0E}
.lss-btn-ghost .elementor-button{background:transparent;color:#fff;border:2px solid #fff;border-radius:8px;font-weight:700;text-transform:uppercase;padding:14px 26px;font-size:14px}
.lss-btn-ghost .elementor-button:hover{background:#fff;color:#0E0E0E}
.lss-btn-ghost-dark .elementor-button{background:transparent;color:#0E0E0E;border:2px solid #0E0E0E;border-radius:8px;font-weight:700;text-transform:uppercase;padding:14px 26px;font-size:14px}
.lss-btn-ghost-dark .elementor-button:hover{background:#0E0E0E;color:#fff}
.lss-btn-dark .elementor-button{background:#0E0E0E;color:#fff;border-radius:8px;font-weight:700;text-transform:uppercase;padding:16px 26px;font-size:14px}
.lss-btn-dark .elementor-button:hover{background:#fff;color:#0E0E0E}
.lss-call-float{position:fixed!important;right:16px;bottom:16px;z-index:1000;width:auto!important}
.lss-call-float .elementor-button{border-radius:50%;width:58px;height:58px;padding:0;background:var(--lss-accent);color:#0E0E0E;font-size:26px;box-shadow:0 6px 18px rgba(0,0,0,.35)}
.lss-call-float .elementor-button-text{display:none}
.lss-call-float .elementor-button-icon{margin:0}

/* ---------- Hero ---------- */
.lss-hero{position:relative;color:#fff;background-color:#0E0E0E}
.lss-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,14,14,.5),rgba(14,14,14,.06)),linear-gradient(to top,rgba(14,14,14,.45),rgba(14,14,14,0) 45%);pointer-events:none}
.lss-hero>.e-con-inner{position:relative;z-index:1}
.lss-kicker .elementor-heading-title{color:var(--lss-accent);font-weight:700;letter-spacing:.14em;font-size:14px}
.lss-h1 .elementor-heading-title{font-size:clamp(46px,9vw,104px);line-height:.92;color:#fff}
.lss-lead p{font-size:18px;line-height:1.6;max-width:680px;color:#ececec;margin:0}
.lss-hero-note p{color:#fff;margin:0;font-size:15px}
.lss-hero-note strong{color:var(--lss-accent)}

/* ---------- Bandeau de réassurance ---------- */
.lss-ib .elementor-icon,.lss-ib .elementor-icon svg{color:var(--lss-accent)!important;fill:var(--lss-accent)!important;font-size:34px}
.lss-btn-main .elementor-button-icon svg,.lss-bar-cta .elementor-button-icon svg{fill:#0E0E0E}
.lss-btn-dark .elementor-button-icon svg{fill:#fff}
.lss-call-float .elementor-button-icon svg{fill:#0E0E0E}
.lss-btn-ghost .elementor-button-icon svg{fill:#fff}
.lss-ib .elementor-icon-box-title{color:#fff;font-weight:800;font-size:18px;margin-bottom:4px}
.lss-ib .elementor-icon-box-description{color:#c4c4c4;font-size:14px}

/* ---------- Grilles ---------- */
.elementor .e-con.lss-grid{display:grid!important;gap:20px;width:100%}
.lss-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.lss-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.lss-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.lss-grid-5{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:1024px){
  .lss-grid-4,.lss-grid-5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lss-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767px){
  .lss-grid-2,.lss-grid-3,.lss-grid-4{grid-template-columns:1fr}
  .lss-grid-5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lss-bar-cta{display:none}
}

/* ---------- Titres de section ---------- */
.lss-h2 .elementor-heading-title{font-size:clamp(34px,5.5vw,60px);line-height:1;color:#0E0E0E}
.lss-sub p{font-size:17px;color:#555;margin:0}
.lss-dark .lss-h2 .elementor-heading-title{color:#fff}
.lss-dark .lss-sub p{color:#c9c9c9}
.lss-center,.lss-center .elementor-heading-title,.lss-center p{text-align:center}
.lss-mt{margin-top:36px}
.lss-cta .lss-sub p{color:#1a1a1a}

/* ---------- Cartes activités ---------- */
.lss-card{position:relative;overflow:hidden;border-radius:14px;color:#fff;transition:transform .25s ease}
.lss-card:hover{transform:translateY(-4px)}
.lss-card::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.68),rgba(0,0,0,0) 58%);pointer-events:none}
.lss-card>*{position:relative;z-index:1}
.lss-tag{width:fit-content!important}
.lss-tag .elementor-heading-title{display:inline-block;background:var(--lss-accent);color:#0E0E0E;font-family:'Montserrat',sans-serif;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:99px}
.lss-card-title .elementor-heading-title{color:#fff;font-size:34px;line-height:1}
.lss-card-text p{color:#e2e2e2;font-size:14px;line-height:1.5;margin:0}

/* ---------- Tarifs ---------- */
.lss-price{background:#1A1A1A;border:2px solid #2C2C2C;border-radius:16px;color:#fff}
.lss-price-hot{border-color:var(--lss-accent)}
/* photo de fond (fond natif Elementor) + voile sombre pour garder le texte lisible */
.lss-price{position:relative;overflow:hidden}
.lss-price::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,14,14,.38),rgba(14,14,14,.58));pointer-events:none}
.lss-price>*{position:relative;z-index:1}
/* carte « 3 mois » : le voile s'allège vers la droite pour laisser voir la photo (texte à gauche reste lisible) */
.lss-price-hot::before{background:linear-gradient(90deg,rgba(14,14,14,.6) 0%,rgba(14,14,14,.4) 45%,rgba(14,14,14,.08) 100%)}
@media(max-width:767px){.lss-price-hot::before{background:linear-gradient(180deg,rgba(14,14,14,.5),rgba(14,14,14,.4))}}
.lss-badge{width:fit-content!important}
.lss-badge .elementor-heading-title{display:inline-block;background:var(--lss-accent);color:#0E0E0E;font-family:'Montserrat',sans-serif;font-size:11px;font-weight:800;letter-spacing:.08em;padding:5px 12px;border-radius:99px}
.lss-price-title .elementor-heading-title{color:#fff;font-size:40px;line-height:1}
.lss-price-amount .elementor-heading-title{font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:68px;line-height:1;color:var(--lss-accent)}
.lss-price-sub p{color:#bdbdbd;margin:0}
.lss-checks .elementor-icon-list-text{color:#fff;font-size:15px}
.lss-checks .elementor-icon-list-icon i{color:var(--lss-accent)}

/* ---------- Coachs ---------- */
.lss-coach{background:#fff;border-radius:14px;text-align:center;box-shadow:0 2px 12px rgba(0,0,0,.06)}
.lss-initial .elementor-heading-title{width:84px;height:84px;border-radius:50%;background:var(--lss-accent);color:#0E0E0E;display:flex;align-items:center;justify-content:center;font-size:46px;margin:0 auto}
.lss-coach-name .elementor-heading-title{font-size:28px;line-height:1;color:#0E0E0E}
.lss-coach-role p{color:#777;font-size:14px;margin:0}

/* ---------- Contact ---------- */
.lss-contact p{font-size:17px;line-height:1.7;margin:0 0 12px}
.lss-contact a{color:#0E0E0E;font-weight:700}
.lss-map iframe{border-radius:14px}

/* ---------- Pied de page ---------- */
.lss-footer,.lss-footer p{color:#bdbdbd}
.lss-footer a{color:#fff;text-decoration:none}
.lss-footer a:hover{color:var(--lss-accent)}
.lss-foot-title .elementor-heading-title{color:var(--lss-accent);font-size:22px}
.lss-footer .lss-logo .elementor-heading-title{font-size:30px}
.lss-copy{border-top:1px solid #2C2C2C;padding-top:18px;font-size:13px}
.lss-copy p{margin:0}

/* ---------- Logo image ---------- */
.lss-logo-img img{display:block;height:auto;max-width:100%}
.lss-logo-img{line-height:0}

/* ---------- Planning ---------- */
.lss-day{background:#fff;border-radius:14px;box-shadow:0 2px 12px rgba(0,0,0,.06)}
.lss-day-title .elementor-heading-title{font-size:26px;line-height:1;color:#0E0E0E;border-bottom:3px solid var(--lss-accent);padding-bottom:8px}
.lss-day-slots p{margin:0 0 12px;font-size:14px;line-height:1.4;color:#24292D}
.lss-day-slots strong{color:#0E0E0E;font-weight:800}

/* ---------- Avis ---------- */
.lss-rating p{font-size:18px;color:#24292D}
.lss-review{background:#F4F5F7;border-radius:14px}
.lss-stars p{margin:0;color:var(--lss-accent);font-size:22px;letter-spacing:3px}
.lss-quote p{margin:0;font-size:16px;line-height:1.6;color:#24292D}
.lss-author p{margin:0;font-size:14px;font-weight:700;color:#0E0E0E}

/* ---------- Galerie ---------- */
.lss-gal-item{overflow:hidden;border-radius:12px}
.lss-gal-item img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .3s ease}
.lss-gal-item:hover img{transform:scale(1.04)}

/* ---------- Ancres : le titre ne passe pas sous l'en-tête fixe ---------- */
#activites,#planning,#tarifs,#coachs,#avis,#galerie,#contact{scroll-margin-top:110px}

/* =====================================================================
   Effets haut de gamme (sobres) : un moment fort a l'ouverture,
   le reste repond au defilement ou au survol.
   ===================================================================== */

/* ---- En-tete : se compacte au defilement ---- */
.lss-header{background:#0E0E0E;transition:background .35s ease,box-shadow .35s ease}
.lss-bar{background:transparent!important}
.lss-promo{max-height:60px;overflow:hidden;transition:max-height .35s ease,padding .35s ease,opacity .25s ease}
.lss-logo-img img{transition:width .3s ease}
.lss-header.elementor-sticky--effects{background:rgba(14,14,14,.95);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 8px 28px rgba(0,0,0,.35)}
.lss-header.elementor-sticky--effects .lss-promo{max-height:0;padding-top:0!important;padding-bottom:0!important;opacity:0}
.lss-header.elementor-sticky--effects .lss-logo-img img{width:176px}

/* ---- Barre de progression de lecture (navigateurs compatibles) ---- */
@supports (animation-timeline: scroll()){
  body::before{content:'';position:fixed;top:0;left:0;width:100%;height:3px;background:var(--lss-accent);transform-origin:0 50%;transform:scaleX(0);z-index:1002;animation:lssProg linear both;animation-timeline:scroll(root)}
  @keyframes lssProg{to{transform:scaleX(1)}}
}

/* ---- Ouverture : le moment fort ---- */
.lss-hero{position:relative;z-index:2;clip-path:polygon(0 0,100% 0,100% calc(100% - 56px),0 100%)}
.lss-marquee{margin-top:-56px;padding-top:56px!important;position:relative;z-index:1}
@media(max-width:767px){
  .lss-hero{clip-path:polygon(0 0,100% 0,100% calc(100% - 28px),0 100%)}
  .lss-marquee{margin-top:-28px;padding-top:28px!important}
}
@media (min-width:1200px) and (min-aspect-ratio:17/10){
  .lss-hero{animation:lssKen 24s cubic-bezier(.2,.6,.2,1) both}
}
@keyframes lssKen{from{background-size:122% auto;background-position:62% 50%}to{background-size:106% auto;background-position:50% 50%}}
@keyframes lssUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes lssRise{from{opacity:0;transform:translateY(46px);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(-8% -8% -12% -8%)}}
.lss-hero .lss-kicker{animation:lssUp .8s cubic-bezier(.2,.8,.2,1) .1s both}
.lss-hero .lss-h1 .elementor-heading-title{animation:lssRise 1.15s cubic-bezier(.2,.8,.2,1) .25s both}
.lss-hero .lss-lead{animation:lssUp .9s cubic-bezier(.2,.8,.2,1) .75s both}
.lss-hero .lss-actions{animation:lssUp .9s cubic-bezier(.2,.8,.2,1) .95s both}
.lss-hero .lss-hero-note{animation:lssUp .9s cubic-bezier(.2,.8,.2,1) 1.15s both}

/* ---- Bandeau defilant (texte en contours) ---- */
.lss-marquee{overflow:hidden}
.lss-marquee-text{overflow:hidden;white-space:nowrap}
.lss-marquee-text .elementor-heading-title{display:inline-block;white-space:nowrap;font-size:clamp(34px,5vw,62px);line-height:1;padding:16px 0 20px;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.36);animation:lssTicker 60s linear infinite}
.lss-dia{color:var(--lss-accent);-webkit-text-stroke:0;font-size:.55em;vertical-align:middle;padding:0 .35em}
@keyframes lssTicker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.lss-marquee:hover .lss-marquee-text .elementor-heading-title{animation-play-state:paused}

/* ---- Chiffres animes ---- */
.lss-stats{margin:8px 0 12px}
.lss-counter{border-left:4px solid var(--lss-accent);padding-left:18px}
.lss-counter .elementor-counter{text-align:left!important}
.lss-counter .elementor-counter-number-wrapper{justify-content:flex-start!important;font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:clamp(56px,8vw,92px);line-height:1;color:#0E0E0E}
.lss-counter .elementor-counter-title{text-align:left!important;font-family:'Montserrat',sans-serif!important;font-size:15px;font-weight:600;color:#555;margin-top:6px;text-transform:none;letter-spacing:0}

/* ---- Boutons : reflet au survol ---- */
.lss-btn-main .elementor-button,.lss-bar-cta .elementor-button,.lss-btn-dark .elementor-button{position:relative;overflow:hidden;transition:transform .25s ease,box-shadow .3s ease,background .25s ease,color .25s ease}
.lss-btn-main .elementor-button::after,.lss-bar-cta .elementor-button::after,.lss-btn-dark .elementor-button::after{content:'';position:absolute;top:0;left:-130%;width:55%;height:100%;background:linear-gradient(115deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg);transition:left .7s ease}
.lss-btn-main .elementor-button:hover::after,.lss-bar-cta .elementor-button:hover::after,.lss-btn-dark .elementor-button:hover::after{left:150%}
.lss-btn-main .elementor-button:hover,.lss-bar-cta .elementor-button:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(239,135,0,.45)}

/* ---- Cartes : relief et soulignement au survol ---- */
.lss-card{transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease}
.lss-card:hover{transform:translateY(-8px);box-shadow:0 22px 44px rgba(0,0,0,.32)}
.lss-card-title .elementor-heading-title{position:relative;padding-bottom:10px}
.lss-card-title .elementor-heading-title::after{content:'';position:absolute;left:0;bottom:0;width:34px;height:3px;background:var(--lss-accent);transition:width .4s cubic-bezier(.2,.8,.2,1)}
.lss-card:hover .lss-card-title .elementor-heading-title::after{width:100%}

/* ---- Sections sombres : lueur d'orange discrete ; offre en cours : halo lent ---- */
.lss-dark{background-image:radial-gradient(ellipse 60% 70% at 15% 0%,rgba(239,135,0,.05),transparent 60%)}
.lss-price-hot{animation:lssGlow 3.4s ease-in-out infinite}
@keyframes lssGlow{0%,100%{box-shadow:0 0 0 0 rgba(239,135,0,0)}50%{box-shadow:0 0 38px 2px rgba(239,135,0,.26)}}

/* ---- Accessibilite : mouvement reduit ---- */
@media (prefers-reduced-motion:reduce){
  .lss-hero,.lss-hero *,.lss-marquee-text .elementor-heading-title,.lss-price-hot,body::before{animation:none!important}
  .lss-card,.lss-btn-main .elementor-button,.lss-gal-item img{transition:none}
  .elementor-invisible{visibility:visible!important}
}

/* ---------- Fonds alternes noir / blanc (plus de gris) ---------- */
@media(min-width:1025px){.lss-call-float{display:none!important}}
.lss-day{background:#1A1A1A;box-shadow:none;border:1px solid #2A2A2A}
.lss-day-title .elementor-heading-title{color:#fff}
.lss-day-slots p{color:#cfcfcf}
.lss-day-slots strong{color:#fff}
.lss-coach{background:#1A1A1A;box-shadow:none;border:1px solid #2A2A2A}
.lss-coach-name .elementor-heading-title{color:#fff}
.lss-coach-role p{color:#a8a8a8}
/* carte de coach avec portrait : la photo prend toute la largeur en haut de la carte */
.lss-coach-ph{overflow:hidden;padding:0!important}
.lss-coach-photo{width:100%;margin:0!important}
.lss-coach-photo img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:0}
.lss-coach-ph .lss-coach-name{margin-top:14px}
.lss-review{background:#fff;border:1px solid #E4E4E4;border-left:4px solid var(--lss-accent);box-shadow:0 4px 18px rgba(0,0,0,.05)}

/* ---------- Bouton d'appel flottant : cercle orange, icone blanche, libelle blanc en dessous ---------- */
.lss-call-float .elementor-button{width:auto!important;height:auto!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding:0!important}
.lss-call-float .elementor-button-content-wrapper{display:flex!important;flex-direction:column!important;align-items:center!important;gap:6px!important}
.lss-call-float .elementor-button-icon{width:60px;height:60px;border-radius:50%;background:var(--lss-accent);display:flex;align-items:center;justify-content:center;margin:0!important;box-shadow:0 6px 18px rgba(0,0,0,.35)}
.lss-call-float .elementor-button-icon svg{fill:#fff!important;width:26px;height:26px;display:block}
.lss-call-float .elementor-button-text{display:block!important;background:var(--lss-accent);color:#fff!important;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;padding:3px 11px;border-radius:12px;line-height:1.3;box-shadow:0 4px 12px rgba(0,0,0,.3)}

/* ---------- Mobile : cartes d'activites moins hautes (page moins longue) ---------- */
@media(max-width:767px){
  .lss-card{min-height:300px!important}
  #activites,#options{padding-top:56px!important;padding-bottom:56px!important}
}

/* ---------- Bouton d'appel flottant : icone seule, fond blanc, icone noire (decision Farouk) ---------- */
.lss-call-float .elementor-button-icon{background:#fff!important;border:1px solid rgba(0,0,0,.08);box-shadow:0 6px 20px rgba(0,0,0,.28)}
.lss-call-float .elementor-button-icon svg{fill:#0E0E0E!important}
.lss-call-float .elementor-button-text{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;background:transparent!important;box-shadow:none!important;display:block!important}

/* ---------- Bandeau d'offre : texte en blanc (decision Farouk) ---------- */
.lss-promo,.lss-promo p,.lss-promo strong,.lss-promo a,.lss-promo .elementor-widget-text-editor{color:#fff!important}
.lss-promo{font-size:14px;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.25)}
.lss-promo a{text-decoration:underline;font-weight:800}

/* ---------- Italique inspire du logo (la pente porte vers l'avant) ---------- */
.lss-h1 .elementor-heading-title,.lss-h2 .elementor-heading-title,.lss-card-title .elementor-heading-title,
.lss-price-title .elementor-heading-title,.lss-price-amount .elementor-heading-title,.lss-day-title .elementor-heading-title,
.lss-coach-name .elementor-heading-title,.lss-kicker .elementor-heading-title,.lss-foot-title .elementor-heading-title,
.lss-marquee-text .elementor-heading-title,.lss-counter .elementor-counter-number-wrapper{font-style:italic}
.lss-kicker .elementor-heading-title{padding-right:.2em}
/* Traits d'accent inclines comme la barre du logo */
.lss-h2 .elementor-heading-title::after{content:'';display:block;width:72px;height:6px;background:var(--lss-accent);margin-top:14px;transform:skewX(-24deg);transform-origin:left center}
.lss-center .elementor-heading-title::after{margin-left:auto;margin-right:auto;transform-origin:center}
.lss-cta .lss-h2 .elementor-heading-title::after{background:#0E0E0E}
.lss-card-title .elementor-heading-title::after{transform:skewX(-24deg);transform-origin:left center}

/* ---------- Bandeau defilant : contours blancs plus marques ---------- */
.lss-marquee-text .elementor-heading-title{-webkit-text-stroke:2px #fff!important;letter-spacing:.03em}
.lss-dia{-webkit-text-stroke:0!important}

/* ---------- Boutons orange : texte et icone en blanc (decision Farouk) ---------- */
.lss-btn-main .elementor-button,.lss-bar-cta .elementor-button{color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.2)}
.lss-btn-main .elementor-button-icon svg,.lss-bar-cta .elementor-button-icon svg{fill:#fff!important}
.lss-btn-main .elementor-button:hover,.lss-bar-cta .elementor-button:hover{color:#0E0E0E!important;text-shadow:none}
.lss-btn-main .elementor-button:hover .elementor-button-icon svg,.lss-bar-cta .elementor-button:hover .elementor-button-icon svg{fill:#0E0E0E!important}

/* ---------- Ouverture : le meme zoom lent sur mobile / ecrans hauts (calcul sur la hauteur : jamais de vide) ---------- */
@media (max-width:1199px),(max-aspect-ratio:17/10){
  .lss-hero{animation:lssKenM 22s cubic-bezier(.2,.6,.2,1) both}
}
@keyframes lssKenM{from{background-size:auto 140%;background-position:62% 50%}to{background-size:auto 112%;background-position:57% 50%}}

/* ---------- Bouton de l'ouverture : fond orange translucide (decision Farouk) ---------- */
.lss-hero .lss-btn-main .elementor-button{background:rgba(239,135,0,.7)!important;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.4)}
.lss-hero .lss-btn-main .elementor-button:hover{background:#fff!important}

/* =====================================================================
   Controle design (valide par Farouk le 30/10) : accessibilite, alignement, mobile
   ===================================================================== */

/* ---- Focus clavier visible partout (noir sur fond clair, blanc sur fond sombre) ---- */
a:focus-visible,button:focus-visible,[role=button]:focus-visible,.elementor-button:focus-visible{outline:3px solid #0E0E0E!important;outline-offset:3px!important}
.lss-dark a:focus-visible,.lss-dark .elementor-button:focus-visible,.lss-footer a:focus-visible,.lss-header a:focus-visible,.lss-header [role=button]:focus-visible,
.lss-strip a:focus-visible,.lss-hero a:focus-visible,.lss-hero .elementor-button:focus-visible,.lss-marquee a:focus-visible,.lss-call-float a:focus-visible,
.lss-price a:focus-visible,.lss-price .elementor-button:focus-visible{outline-color:#fff!important}

/* ---- Zones tactiles >= 44 px (zone de clic agrandie sans changer la mise en page) ---- */
.elementor-menu-toggle{min-width:44px;min-height:44px;align-items:center;justify-content:center}
/* Bouton hamburger : seulement sur tablette/mobile (sur ordinateur le menu est deja affiche en entier) */
@media(min-width:1025px){.lss-nav .elementor-menu-toggle{display:none!important}}
@media(max-width:1024px){.elementor-menu-toggle{display:inline-flex!important}}
.lss-promo a,.lss-footer a,.lss-contact a{position:relative}
.lss-promo a::after,.lss-footer a::after,.lss-contact a::after{content:'';position:absolute;inset:-13px -8px}

/* ---- Texte noir sur l'orange de la marque pour le petit texte (option A, contraste 7,5:1) ---- */
.lss-promo,.lss-promo p,.lss-promo strong,.lss-promo a,.lss-promo .elementor-widget-text-editor{color:#0E0E0E!important;text-shadow:none}
.lss-btn-main .elementor-button,.lss-bar-cta .elementor-button{color:#0E0E0E!important;text-shadow:none}
.lss-btn-main .elementor-button-icon svg,.lss-bar-cta .elementor-button-icon svg{fill:#0E0E0E!important}
/* le grand bouton de l'ouverture garde le blanc : il repose sur la photo sombre */
.lss-hero .lss-btn-main .elementor-button{color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.25)}
.lss-hero .lss-btn-main .elementor-button-icon svg{fill:#fff!important}
.lss-hero .lss-btn-main .elementor-button:hover{color:#0E0E0E!important;text-shadow:none}
.lss-hero .lss-btn-main .elementor-button:hover .elementor-button-icon svg{fill:#0E0E0E!important}

/* ---- Bouton d'appel flottant : de la place sous le pied de page pour ne rien cacher ---- */
@media(max-width:1024px){.lss-footer{padding-bottom:112px!important}}

/* ---- Espaces entre sections : 80 px haut + 80 px bas = 160 px de vide entre deux blocs, trop sur tablette/mobile.
        (le rembourrage de #activites/#options s'ajoutait EN PLUS : 136 px en haut, corrige ici) ---- */
@media(max-width:1024px){
  .elementor .lss-section{--padding-top:64px;--padding-bottom:64px;--gap:20px;--row-gap:20px}
  .elementor .lss-section>.e-con-inner{padding-top:64px!important;padding-bottom:64px!important;gap:20px!important}
}
@media(max-width:767px){
  .elementor .lss-section{--padding-top:44px;--padding-bottom:44px;--gap:18px;--row-gap:18px}
  .elementor .lss-section>.e-con-inner{padding-top:44px!important;padding-bottom:44px!important;gap:18px!important}
  #activites,#options{padding-top:0!important;padding-bottom:0!important}
  .lss-mt{margin-top:24px}
  .lss-sub p{font-size:16px}
}

/* ---- Mobile : rangees de cartes a balayer du doigt (la carte suivante depasse pour le signaler) ---- */
@media(max-width:767px){
  .elementor .e-con.lss-swipe{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:stretch;overflow-x:auto;overflow-y:hidden;gap:14px!important;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-right:-20px;width:calc(100% + 20px)!important;max-width:none!important;padding-right:20px!important}
  .lss-swipe::-webkit-scrollbar{display:none}
  .lss-swipe>*{flex:0 0 80%!important;max-width:80%!important;scroll-snap-align:start}
  .lss-grid-5.lss-swipe>.lss-day{flex-basis:76%!important;max-width:76%!important}
  .lss-grid-5.lss-swipe>.lss-coach{flex-basis:46%!important;max-width:46%!important}
  .lss-swipe-gal>*{flex-basis:84%!important;max-width:84%!important}
  /* pas d'apparition en cascade dans ces rangees : tout est visible tout de suite */
  .lss-swipe>.elementor-invisible{visibility:visible!important;opacity:1!important;animation:none!important}
}

/* ---- Section Planning : photo de fond + voile sombre (le voile natif d'Elementor ne s'affichait pas sur ce conteneur) ---- */
.lss-veil{position:relative}
.lss-veil::before{content:''!important;position:absolute;inset:0;background:rgba(14,14,14,.45)!important;pointer-events:none;z-index:0;opacity:1!important}
.lss-veil>.e-con-inner{position:relative;z-index:1}

/* ---- « Ils en parlent » : moins de hauteur ---- */
@media(min-width:1025px){
  #avis>.e-con-inner{padding-top:64px!important;padding-bottom:64px!important}
  .lss-stats{margin:0 0 4px}
  .lss-counter .elementor-counter-number-wrapper{font-size:clamp(48px,5vw,64px)}
}
@media(max-width:767px){
  /* les 3 chiffres cles sur UNE ligne (au lieu de 3 blocs empiles) */
  .elementor .e-con.lss-stats{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important;margin:0}
  .lss-counter{border-left-width:3px;padding-left:10px}
  .lss-counter .elementor-counter-number-wrapper{font-size:clamp(30px,9vw,40px)}
  .lss-counter .elementor-counter-title{font-size:12px;line-height:1.25;margin-top:4px}
  .lss-rating p{font-size:16px}
}

/* ---- Italique plus marqué (demande de Farouk 31/10) : la police est déjà en italique, on ajoute une inclinaison
        sur le conteneur du widget (pas sur le titre lui-même : ses animations d'apparition utilisent déjà « transform ») ---- */
.lss-h1>.elementor-widget-container,.lss-h2>.elementor-widget-container,.lss-card-title>.elementor-widget-container,
.lss-price-title>.elementor-widget-container,.lss-price-amount>.elementor-widget-container,.lss-day-title>.elementor-widget-container,
.lss-coach-name>.elementor-widget-container,.lss-kicker>.elementor-widget-container,.lss-foot-title>.elementor-widget-container{transform:skewX(-8deg);transform-origin:left bottom}
.lss-center.lss-h2>.elementor-widget-container{transform-origin:center bottom}
.lss-coach-name>.elementor-widget-container{transform-origin:center bottom}
.lss-counter .elementor-counter-number-wrapper{display:inline-flex;transform:skewX(-8deg);transform-origin:left bottom}
html,body{overflow-x:clip}

/* ---- Menu : caracteres plus grands sur ordinateur (demande de Farouk 01/11) ---- */
@media(min-width:1025px){
  .lss-nav .elementor-item{font-size:18px;letter-spacing:.05em;padding-left:22px!important;padding-right:22px!important}
}
/* menu deroulant mobile / tablette : texte lisible sur la photo de fond */
@media(max-width:1024px){
  .lss-nav .elementor-nav-menu--dropdown{background-color:#0E0E0E}
  .elementor-nav-menu--dropdown .elementor-item{font-size:17px;border-bottom:1px solid rgba(255,255,255,.08)}
}

/* ---------- Voiles allégés (01/11) : l'ombre sous le texte remplace l'assombrissement des photos ---------- */
.lss-hero .elementor-heading-title,.lss-hero p,.lss-card .elementor-heading-title,.lss-card p,.lss-price .elementor-heading-title,.lss-price p,.lss-veil .lss-h2,.lss-veil .lss-sub p{text-shadow:0 2px 14px rgba(0,0,0,.55),0 1px 3px rgba(0,0,0,.45)}

/* ---- Menu centre sur ordinateur (demande de Farouk 01/11) : logo a gauche, menu au centre exact de la barre ---- */
@media(min-width:1025px){
  .lss-bar{position:relative}
  .lss-nav{position:absolute!important;left:50%;top:50%;transform:translate(-50%,-50%)}
}
.lss-veil .lss-sub p{color:#fff!important;font-weight:500;text-shadow:0 1px 3px rgba(0,0,0,.9),0 2px 16px rgba(0,0,0,.85)}
.lss-veil .lss-h2 .elementor-heading-title{text-shadow:0 2px 4px rgba(0,0,0,.7),0 2px 18px rgba(0,0,0,.7)}
.lss-price-hot::before{background:linear-gradient(90deg,rgba(14,14,14,.72) 0%,rgba(14,14,14,.5) 50%,rgba(14,14,14,.06) 100%)}
.lss-price p,.lss-price li,.lss-price .elementor-icon-list-text{color:#fff!important;text-shadow:0 1px 3px rgba(0,0,0,.85),0 2px 12px rgba(0,0,0,.7)}

/* ---- Menu ordinateur : toujours sur UNE ligne (01/11) ---- */
@media(min-width:1025px){
  .lss-nav{width:max-content!important;max-width:none!important}
  .lss-nav .elementor-nav-menu{flex-wrap:nowrap!important}
  .lss-nav .elementor-item{white-space:nowrap}
}
/* ecrans moyens : un peu plus compact pour ne pas toucher le logo */
@media(min-width:1025px) and (max-width:1279px){
  .lss-nav .elementor-item{font-size:16px;padding-left:14px!important;padding-right:14px!important}
}
@media(min-width:1025px) and (max-width:1099px){
  .lss-nav .elementor-item{font-size:15px;letter-spacing:.03em;padding-left:9px!important;padding-right:9px!important}
}

/* ---- Voiles : retouches après mesure de contraste (01/11) ---- */
.lss-veil::before{background:rgba(14,14,14,.55)!important}
.lss-price-hot::before{background:linear-gradient(90deg,rgba(14,14,14,.8) 0%,rgba(14,14,14,.6) 50%,rgba(14,14,14,.06) 100%)}
@media(max-width:767px){
  .lss-hero::after{background:linear-gradient(90deg,rgba(14,14,14,.5),rgba(14,14,14,.06)),linear-gradient(to top,rgba(14,14,14,.72),rgba(14,14,14,0) 55%)}
}
